Welchen Algorithmus kann ich verwenden, um gewichtete Objekte gleichmäßig in n Teilen zu verteilen?

9

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

    
Pratik Garg 27.08.2009, 10:23
quelle

2 Antworten

9

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.

    
pjp 27.08.2009, 10:30
quelle
2

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.

    
Mageek 06.01.2016 18:43
quelle

Tags und Links