Maximieren Sie die Ressourcennutzung bei mehreren Ressourcentypen und bestimmten Ressourcengemischen pro Task

8

Gegeben

Sie haben einige sehr viele mögliche Aufgaben, von denen jede die Verwendung einer Teilmenge möglicher Ressourcen aus einer großen Anzahl möglicher Ressourcen erfordert.

Jede Aufgabe hat eine zugeordnete Ressourcenkosten:

Aufgabe 1

  • 1 Gold
  • 2 Silber

Aufgabe 2

  • 2 Gold
  • 1 Bronze

Aufgabe 3

  • 1 Bronze

Und Sie haben eine Reihe von verfügbaren Ressourcen:

Ressourcen

  • 3 Gold
  • 2 Bronze

Problem

Wählen Sie eine Teilmenge von Aufgaben aus, von denen einige mehr als einmal durchgeführt werden können. Dies macht die "beste Nutzung" von allen verfügbaren Ressourcen. In diesem Fall würden wir vielleicht Task 2 und Task 3 wählen, da uns nur noch 1 Gold übrig bleibt. Wir können Task 1 nicht ausführen, weil wir kein Silber haben.

Fragen

Das scheint eine Art Optimierungsproblem zu sein, aber ich bin mir überhaupt nicht sicher, was dieses Problem "genannt" würde. Gibt es dafür einen Namen, den ich nachschlagen könnte, um mich bei der Suche nach möglichen Lösungen zu unterstützen? Gibt es einfache Algorithmen, die das lösen? Ist es in einer angemessenen Zeit lösbar? Gibt es einige gute heuristische Ansätze?

Notizen

  • Das gezeigte Problem impliziert, dass Ressourcen anders gewichtet werden können (d. h. es ist schlimmer, wenn 1 Gold übrig bleibt als 1 Bronze), aber das ist nicht unbedingt ein Problem. Die Lösung muss dies nicht berücksichtigen, aber es wäre eine interessante Erweiterung.
  • Die Aufgaben und Ressourcen müssen keine ganzzahligen Werte sein, aber ich bin mir nicht sicher, ob das das Problem erheblich ändert.
aardvarkk 14.06.2013, 14:52
quelle

2 Antworten

8

Das klingt wie ein Problem mit mehreren Rucksäcken. Das Einzige, was Sie ändern müssen, ist es, jedem Gegenstand einen Wert zuzuordnen, der der Summe der Gegenstände entspricht. Dann wird er zu einem Standardrucksack, da die Summe maximiert wird Rest ist minimiert.

    
Ziyao Wei 14.06.2013, 15:00
quelle
2

Dieses Problem ist eine Art von set packing . Es ist auch bekannt als das "Problem der Flugbesatzung". Sie haben eine bestimmte Anzahl von Piloten, Ingenieuren, Stewards usw. und verschiedene Flugzeuge, die unterschiedliche Sortimente für jeden Crew-Typ benötigen. Normalerweise sucht man bei der Flugbesatzung nach einer genauen Zuordnung zwischen Personal und Flugzeugen, aber hier wollen wir die Personalauslastung maximieren, indem wir verschiedene Arten von Flugzeugen auswählen (was "Aufgaben" in der Post sind).

In jedem Fall wird die Lösung dieser Probleme, die NP-schwer sind, durch erschöpfende Suche mit Mixed Integer Linear Programming erreicht. Siehe Sandia-Umfrage zu MILP oder MIT Aeronautics Seite auf MILP .

Es gibt ein Paket SYMPHONY , das Set-Partitioning- und Packing-Solver enthält, die dies tun.

    
Tyler Durden 14.06.2013 15:46
quelle

Tags und Links