ProblemGewicht Balancer Algorithmus
eine Liste von Elementen mit unterschiedlichen Gewichten und einer bestimmten Menge an Containern gegeben, dass die Gewichte in gespeichert werden können, die Lösungsmenge finden, die die Gewichte in den Behältern ausgleicht. Die optimale Lösung minimiert die Unterschiede zwischen dem Behälter mit dem größten Gewicht und dem Behälter mit dem geringsten Gewicht.
Kriterien
- die Alle Gewichte müssen
- Die Gewichte verwendet werden können, nicht in getrennte Behälter
Anwendung
Die eigentliche Anwendung dieses Algorithmus unterteilt werden ist es zu versuchen, einen Zeitplan in einem realen auszugleichen Zeit Betriebssystem. Die Gewichtungen sind die Laufzeit jeder geplanten Funktion und die Container sind die Rahmen, in denen die Funktionen ausgeführt werden können. Auf diese Weise versuchen Sie, die Laufzeit jeder Funktion zu verteilen, um die Gesamtrahmenzeit zu minimieren.
Gedanken
Dies scheint eine Kreuzung zwischen einer 1/0 mehr Knapsackproblems und dem Bin Packing Problem. Ich versuche, einen Algorithmus zu entwickeln, der dynamische Programmierung verwendet, um das Problem zu lösen. Ich kämpfe um zu sehen, wie ich es für dieses Problem verwenden könnte. Hat jemand Vorschläge oder Material zu ähnlichen Problemen?
Ich glaube nicht, dynamische Programmierung wird das Problem lösen (es sei denn, Sie haben sehr wenige Container und sehr kleine Gewichte). In diesem Artikel finden Sie einen guten Überblick über andere Methoden: ["Ein vollständiger Algorithmus für die Nummerierung von Partitionen"] (http://www.sciencedirect.com/science/article/pii/S0004370298000861). –