Splitting-Werte in den Gruppen gleichmäßig
Lassen Sie mich versuchen zu erklären, die situation, die ich am besten kann.
Können sagen, ich habe 3 Werte
1, 2, 3
Ich sagen, dass ein Algorithmus aufteilen dieser Werte in x-Spalten. Sagen wir, dass x = 2 eine Klarstellung.
Ermittelt der Algorithmus, dass die Gruppe der Werte ist am besten in zwei Spalten in der folgenden Weise.
1st column 2nd column
---------------------------
1 3
2
Jeder Spalte eine gerade Anzahl (Summen -, nicht-Literale) Wert.
Nun angenommen ich habe folgende Werte
7, 8, 3, 1, 4
Ich sagen, der Algorithmus, dass ich will, dass die Werte aufgeteilt in 3 Spalten. Jetzt den Algorithmus, der mir sagt, dass die folgende ist die am besten passen.
1st column 2nd column 3rd column
8 7 3
1 4
Beachten Sie, wie die Spalten nicht ruhig, auch, aber es ist so nah wie es bekommen kann. Ein wenig über und ein wenig unter, ist als ok, solange die Liste ist SO NAHE SOGAR, WIE ES SEIN KANN.
Hat jemand irgendwelche Vorschläge? Wissen alle guten Methoden, dies zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde es so machen:
Wenn Sie wollen, exakt die gleichen Werte, die dann für die Anzahl der Spalten x=2, es ist die klassische Partition Problem ist NP-Vollständig, hat aber pseudo-polynomialen Lösungen.
Mehr Spalten (D. H. x>2), und es wird stark NP-Vollständig. 3-Partition Problem.
Für x > 3, ich vermute, es wird immer noch stark NP-Vollständig.
Da die x-partition-problem reduziert werden kann, zu deinem problem, es ist so hart wie die oben genannten Probleme.
Würden Sie wahrscheinlich müssen einige heuristische Methoden, um Ihnen zu helfen.
Ich eine ähnliche Frage beantwortet eine Weile zurück.
Ich denken kann, eine gierige sub-optimale Lösung.
Ist das nie gehen, um Ihnen die optimale Lösung wenn.
Für Ihren Fall, 8 7 4 3 1 wäre die Reihenfolge. Und würden Sie (zum Glück) die gleichen Ergebnisse erhalten, wie Sie erwähnt haben.
8 = 8
7 1 = 8
4 3 = 7
Diese wird nicht immer die optimale Lösung