Partitionsproblem

Partitionsproblem

Das Partitionsproblem (auch Zahlenaufteilungsproblem, oft mit PARTITION notiert) ist ein Optimierungs- bzw. Entscheidungsproblem der Kombinatorik.

Inhaltsverzeichnis

Formulierung des Partitionsproblems

Die Aufgabenstellung beim Partitionsproblem lautet: Gegeben sei eine (Multi-)Menge von natürlichen Zahlen. Gesucht wird eine Aufteilung dieser Zahlen auf zwei Haufen, so dass die Differenz der Summen der Zahlen in den beiden Haufen möglichst klein ist.

Eine äquivalente Formulierung lautet präziser: Gegeben sei eine (Multi-)Menge A von N natürlichen Zahlen ai. Gesucht wird eine Untermenge A_1 \subset A, so dass

 E := \left| \sum_{a_i \in A_1} a_i - 
\sum_{a_i \in A \setminus A_1} a_i \right|

minimal wird. Eine Aufteilung, für die E = 0 ist, heißt perfekte Aufteilung.

Als zusätzliche Bedingung kann man die Lösungsmenge des Partitionsproblems von vornherein einschränken, indem man nur ausgewogene Aufteilungen zulässt, in denen beide Haufen gleich groß sind, das heißt die Anzahl der Zahlen in den Untermengen muss für gerades N gleich sein und muss sich für ungerades N um 1 unterscheiden.

Wandelt man die Fragestellung ab und fragt, „Gibt es eine perfekte Aufteilung?“, so wird das oben beschriebene Optimierungsproblem zu einem Entscheidungsproblem. Dabei sucht man nicht mehr nach der besten Aufteilung, sondern fragt nur noch nach deren Existenz.

Das Partitionsproblem gehört zu den 21 klassischen NP-vollständigen Problemen, von denen Richard M. Karp 1972 die Zugehörigkeit zur Klasse der NP-vollständigen Probleme zeigen konnte.

Phasenübergang im Partitionsproblem

Man beobachtet beim Partitionsproblem zwei verschiedene sogenannte Phasen: Besteht die Menge A aus vielen kleinen Zahlen, so ist anschaulich klar, dass es viele perfekte Aufteilungen gibt, und es einfach ist, eine dieser Aufteilungen zu finden (einfache Phase). Besteht A hingegen aus wenigen großen Zahlen, so ist es unwahrscheinlich, dass überhaupt eine perfekte Aufteilung existiert, und man muss alle Möglichkeiten durchprobieren, um die beste Aufteilung zu finden (harte Phase).

Zwischen der einfachen und der harten Phase beobachtet man einen Übergang, den man in Analogie zur statistischen Physik Phasenübergang nennt. An diesem Phasenübergang fällt die Wahrscheinlichkeit, eine perfekte Aufteilung zu finden, sprunghaft von 1 in der einfachen Phase auf 0 in der harten Phase. Mit wachsender Anzahl N der Zahlen wird der Übergang immer schärfer.

Die Lage des Phasenübergangs in Abhängigkeit von der Anzahl und der Größe der einzelnen Zahlen lässt sich mit Methoden der statistischen Physik berechnen.

Ein solcher Algorithmus hat eine „worst-case-Laufzeit“, die exponentiell mit der Anzahl der Zahlen N wächst, das heißt im schlimmsten Fall benötigt er zur Lösung des Entscheidungsproblem eine Rechenzeit, die exponentiell mit N ansteigt. In vielen Fällen liegt die tatsächlich benötigte Rechenzeit jedoch deutlich darunter: In der einfachen Phase stößt der Algorithmus schnell auf eine der vielen perfekten Lösungen und kann das Entscheidungsproblem somit mit „ja, es gibt eine perfekte Lösung“ beantworten und die Suche abbrechen. Auch in der harten Phase können geeignete Algorithmen (z. B. der cBLDM-Algorithmus[1]) die Suche schnell mit einer negativen Entscheidung abschließen, falls keine Lösung existiert. Die „schwierigsten“ Probleme liegen somit direkt am Phasenübergang, wo erst alle 2N − 1 Aufteilungen durchprobiert werden müssen, bevor das Problem entschieden werden kann.

Lösung durch dynamische Programmierung

Mithilfe der dynamischen Programmierung kann man das Partitionsproblem in pseudopolynomieller Zeit entscheiden.[2] Hierbei werden systematisch kleinere Teilprobleme betrachtet und ihre Lösungen tabelliert und rekursiv zusammengefügt.

Sei S die Summe aller gegebenen Zahlen. Falls sie ungerade ist, existiert offensichtlich keine perfekte Aufteilung. Andernfalls wird für alle 1 \leq i \leq N und alle 0 \leq j \leq S/2 geprüft, ob es eine Auswahl von Zahlen in der Familie {a1,a2,...,ai} der ersten i Zahlen gibt, deren Summe genau j ergibt. Für i = 1 und j = 0 ist dies offenbar der Fall, genauso für i = 1 und j = a1. Für i = 1 und alle anderen j dagegen nicht. Dies ist der Anfang der Rekursion, der in der ersten Zeile einer Tabelle notiert wird. Für die weiteren Zeilen ergeben sich die Einträge nach folgender Rekursion: Eine Auswahl für (i,j) existiert genau dann, wenn entweder bereits eine für (i − 1,j) existiert, oder wenn j > ai ist und eine Auswahl für (i − 1,jai) existiert. Die Antwort auf das Entscheidungsproblem gibt der letzte Eintrag in der Tabelle (für i = N und j = S / 2) an.

Die Komplexität dieses Algorithmus ist \mathcal{O}(n \cdot S).

Literatur

Quellen

  1. S. Mertens: A complete anytime algorithm for balanced number partitioning, arXiv:cs/9903011
  2. Michael R. Garey and David S. Johnson (1979). Computers and Intractability: A Guide to the Theory of NP-Completeness. W.H. Freeman. ISBN 0-7167-1045-5.

Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • PARTITION — Das Partitionsproblem (auch Zahlenaufteilungsproblem, oft mit PARTITION notiert) ist ein Optimierungs bzw. Entscheidungsproblem der Kombinatorik. Inhaltsverzeichnis 1 Formulierung des Partitionsproblems 2 Phasenübergang im Partitionsproblem 3… …   Deutsch Wikipedia

  • Zahlenaufteilungsproblem — Das Partitionsproblem (auch Zahlenaufteilungsproblem, oft mit PARTITION notiert) ist ein Optimierungs bzw. Entscheidungsproblem der Kombinatorik. Inhaltsverzeichnis 1 Formulierung des Partitionsproblems 2 Phasenübergang im Partitionsproblem 3… …   Deutsch Wikipedia

  • Cliquenproblem — Das Cliquenproblem (mit CLIQUE notiert) ist ein Entscheidungsproblem der Graphentheorie. Das Cliquenproblem ist eines der 21 klassischen NP vollständigen Probleme, deren Zugehörigkeit zu dieser Klasse Richard M. Karp 1972 bewies.… …   Deutsch Wikipedia

  • Erfüllbarkeitsproblem der Aussagenlogik — Das Erfüllbarkeitsproblem der Aussagenlogik (SAT, von engl. satisfiability) ist ein Entscheidungsproblem. Es fragt, ob eine aussagenlogische Formel erfüllbar ist. Anwendungen finden sich unter anderem in der Komplexitätstheorie, Verifikation und… …   Deutsch Wikipedia

  • Feedback Vertex Set — Der Begriff Feedback Vertex Set bzw. kreiskritische Knotenmenge bezeichnet in der Komplexitätstheorie ein graphentheoretisches Entscheidungsproblem, das NP vollständig ist. Definition Es fragt, ob es zu einem ungerichteten Multigraphen G = (V,E) …   Deutsch Wikipedia

  • Hamiltonkreisproblem — Ein Hamiltonkreis ist ein geschlossener Pfad in einem Graphen, der jeden Knoten genau einmal enthält. Ob ein solcher Kreis in einem gegebenen Graph besteht, ist ein fundamentales Problem der Graphentheorie. Im Gegensatz zum leicht lösbaren… …   Deutsch Wikipedia

  • Hitting-Set-Problem — Das Hitting Set Problem ist ein NP vollständiges Problem aus der Mengentheorie. Es gehört zur Liste der 21 klassischen NP vollständigen Probleme von denen Richard M. Karp 1972 die Zugehörigkeit zu dieser Klasse zeigen konnte. Gegeben ist eine… …   Deutsch Wikipedia

  • Karps 21 NP-vollständige Probleme — Eines der bedeutendsten Resultate der Komplexitätstheorie ist der von Stephen Cook im Jahr 1971 erbrachte Nachweis, dass das Erfüllbarkeitsproblem der Aussagenlogik (meist nur kurz SAT genannt) NP vollständig ist. 1972 griff Richard Karp diese… …   Deutsch Wikipedia

  • Knotenüberdeckungsproblem — Das Knotenüberdeckungsproblem (oft mit VERTEX COVER notiert) ist ein Problem der Graphentheorie. Es fragt, ob zu einem gegebenen einfachen Graphen und einer natürlichen Zahl k eine Knotenüberdeckung der Größe von höchstens k existiert. Das heißt …   Deutsch Wikipedia

  • Load Balancing Problem — Das Lastverteilungsproblem (Load Balancing Problem) beschäftigt sich mit den theoretischen Aspekten der Lastverteilung. Es wird dazu angenommen, dass jeder Job von jeder Maschine erfüllt werden kann, und dass alle Jobs und Maschinen bereits im… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”