Ich habe ein Problem, das auf ein Zuordnungsproblem reduziert werden kann. (In einer früheren Frage habe ich herausgefunden, wie das geht.)
Das heißt, wir haben eine Menge von Agenten und eine Menge von Aufgaben sowie eine Kostenfunktion . Wir müssen einen Auftrag finden, damit die Gesamtkosten minimal sind.
Der ungarische Algorithmus kann in mindestens eine optimale Lösung finden . Was für mich gut klingt.
Mein neues Problem ist: Es gibt eine bestimmte Anzahl von Tagen. Ich muss das Zuweisungsproblem für jeden Tag lösen, damit jede Aufgabe jeden Tag erledigt wird und kein Agent dieselbe Aufgabe zweimal erledigt .
Was ich versucht habe: Wir könnten den ungarischen Algorithmus für jeden Tag separat ausführen und die Anzahl der möglichen Kombinationen basierend auf dem Ergebnis des vorherigen Tages begrenzen. Dies würde uns jedoch in späteren Tagen in Schwierigkeiten bringen, wo es höchstwahrscheinlich unmöglich sein wird, eine praktikable Lösung zu finden.
Eine andere Idee ist es, die lokale Suche irgendwie zu integrieren, um Entscheidungen zu ändern, die am Vortag getroffen wurden. Aber ich denke, wir können uns nicht darauf verlassen.
Die Problemfälle, denen ich mich stellen muss, liegen irgendwo in der Nähe von . Die Kostenmatrix hat viele gleiche Werte (zB meistens 1 oder unendlich, nur einige 2 oder 3). Während des ungarischen Algorithmus gibt es also viel Platz, um verschiedene optimale Lösungen für einen einzelnen Tag zu erstellen.
Ich würde mich freuen, einige Ideen oder Ratschläge zu hören, wie man eine gute Lösung für das Problem findet. Danke im Voraus.