Modellierung eines komplexen Arbeitsplans


9

Ich habe ein reales Problem, das ich darstellen und automatisieren möchte. Ich habe es vereinfacht und auf Folgendes abstrahiert:

  • Es gibt n Arbeitsplätze (P1, P2, ..., Pn).
  • Jeder Ort, Pn hat einen Schlüssel, Kn.
  • Es gibt m Arbeiter (W1, W2, ..., Wm).
  • Um bei Pn arbeiten zu können, muss ein Arbeiter Kn halten.
  • Jeder Schlüssel kann entweder von einem Mitarbeiter gehalten oder an der Börse E hinterlassen werden.
  • Ein Mitarbeiter kann jederzeit eine Reise zur Börse unternehmen, um nicht beanspruchte Schlüssel abzuholen oder einige Schlüssel abzugeben, damit andere sie verwenden können.

  • Jetzt gibt es einen exogenen Arbeitsplan, der in einer strengen Reihenfolge abgeschlossen werden muss. Beispielsweise:

    • 2016-04-21 W1 muss bei P6 arbeiten
    • 2016-04-21 W2 muss bei P3 arbeiten
    • ** Schlüsselaustausch erforderlich **
    • 2016-04-22 W3 muss bei P3 arbeiten
    • 2016-04-22 W2 muss bei P6 arbeiten
  • Eine beliebige Anzahl von Arbeitnehmern muss möglicherweise irgendwann in ihrem Zeitplan bei Pn arbeiten, allerdings nie am selben Tag

Wir wissen:

  • Der Startort aller Schlüssel, entweder mit Arbeitern oder bei E.
  • Die zukünftigen Arbeitsaufträge, die jeder Mitarbeiter erfüllen muss

Ich kämpfe also darum, diese ganze Situation zu modellieren. Können Sie Datenstrukturen und Algorithmen vorschlagen, die ich mir ansehen sollte, um sie in den Griff zu bekommen und die Fahrten zum Austausch für jeden Mitarbeiter zu optimieren?

Was ich minimieren möchte, ist die Gesamtzahl der Fahrten nach E. Ein sekundäres Ziel wäre es, sicherzustellen, dass kein Arbeitnehmer eine unverhältnismäßig große Anzahl von Fahrten unternimmt.

Danke im Voraus!!


2
Durchschnittliche Anzahl der Fahrten nach E pro Arbeitnehmer = "Gesamtzahl der Fahrten" / m. Wenn also m konstant ist, sind Ihre beiden Ziele dasselbe Ziel. Interessanter: Ich denke, jeder Arbeiter kann mehr als einen Schlüssel gleichzeitig tragen?
Doc Brown

Ja, Arbeiter können beliebig viele Schlüssel tragen. In Bezug auf "Durchschnitt" denke ich, dass ich mich schlecht ausgedrückt habe. Ich dachte mehr über Fairness nach, dass kein Arbeiter eine unverhältnismäßig große Anzahl von Fahrten absolvieren muss, also eine geringe Abweichung. (bearbeitete Frage passend)
Gareth Lloyd

Da den Mitarbeitern offensichtlich Schlüssel anvertraut werden und sie möglicherweise über Nacht und so lange wie nötig aufbewahrt werden - solange kein Austausch erforderlich ist -, warum nicht für jeden Mitarbeiter, den sie dauerhaft aufbewahren, einen Schlüsselsatz erstellen? Alternativ können Sie für jeden Mitarbeiter einen Schlüsselsatz für alle Orte erstellen, die er für einen bestimmten Zeitraum, z. B. eine Woche, besucht. Die Schlüssel werden nach Bedarf dupliziert, um für jeden Mitarbeiter einen Wochensatz zu erstellen. Alle Arbeiter tauschen einmal pro Woche die Schlüssel aus.
Radarbob

Gibt es Kosten (Geld oder Zeit), um zur Börse zu gehen?
Dan Pichelman

Ja, mehr Reisen zur Börse sind ein schlechteres Ergebnis.
Gareth Lloyd

Antworten:


1

Die Frage ist in einem wichtigen Punkt etwas mehrdeutig: Welche Elemente versuchen wir zu lösen? Möchten wir die Reihenfolge optimieren, in der Ressourcen delegiert werden? Reisen zur Börse minimieren? Arbeitsauftragsdurchsatz maximieren?

In diesem Sinne gehe ich davon aus, dass wir eine beliebige Mischung dieser Dinge tun und die Antwort auf einem ziemlich hohen Niveau halten könnten.

Das erste, was mir in den Sinn kommt, ist, dass sich die miteinander verbundenen Probleme, die damit gelöst werden sollen, hauptsächlich auf das Abhängigkeitsmanagement konzentrieren. Arbeiter, Schlüssel und Standorte können als Abhängigkeiten betrachtet werden, die aufgelöst werden müssen, um Arbeitsjobs abzuschließen.

Um dies auf die nächste Ebene zu bringen, würde ich eine Anpassung der topologischen Sortierung betrachten ( https://en.wikipedia.org/wiki/Topological_sorting ). Modellieren Sie den Problemraum als großen Graphen (moderne Graphendatenbanken könnten auch für einige dieser Analysen ein gutes Medium sein) und verwenden Sie dann verschiedene topologische Sortierungen, um verschiedene Aspekte des Problemraums zu lösen.

Auf eine leichte Tangente klingt dies nach einem wirklich lustigen Projekt. Heute beneide ich Sie, Sir.


Schauen Sie sich auf Graphen in meinem GitHub github.com/MatheusArleson/Graphs
linuxunil

Hilft der Farbalgorithmus in dieser Situation? en.m.wikipedia.org/wiki/Graph_coloring
linuxunil
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.