Ich möchte x(i)
objects (x E {1...n})
verteilen, wobei jedes Objekt das Gewicht w(i)
hat, in n
Portionen.
Die Verteilung sollte so erfolgen, dass für alle Teile die Summe der Gewichte möglichst gleich ist.
Prost! Pratik
Berechnen Sie die Gesamtsumme der Gewichte, dividieren Sie durch n, die Anzahl der Portionen, um das erforderliche Portionsgewicht zu erhalten. Verwenden Sie dann einen bin-Packing-Algorithmus , um zu versuchen, n Bins dieser maximalen Größe zu füllen.
Beachten Sie, dass alle Gewichte kleiner als das Portionsgewicht sein müssen, damit dies richtig funktioniert. Andernfalls können Sie keine Gegenstände mit großem Gewicht überall platzieren.
Ich denke, Sie beschreiben das Multiprozessor-Scheduling Problem.
Hier ist eine Julia-Implementierung:
%Vor%Sie könnten wahrscheinlich etwas besser arbeiten, wenn Sie eine Prioritätswarteschlange verwenden würden.
Tags und Links algorithm