Das Teile-und-herrsche-Verfahren (englisch divide and conquer bzw. lateinisch divide et impera) bezeichnet in der Informatik ein Paradigma für den Entwurf von effizienten Algorithmen.

Der Grundsatz findet unter anderem Anwendung in Such- und Sortierverfahren.

Grundprinzip

Bearbeiten

Bei einem Teile-und-herrsche-Ansatz wird das eigentliche – in seiner Gesamtheit – als zu schwierig erscheinende Problem so lange rekursiv in kleinere und einfachere Teilprobleme zerlegt, bis diese gelöst („beherrschbar“) sind. Anschließend wird aus diesen Teillösungen eine Lösung für das Gesamtproblem (re-)konstruiert.

Historische Vorläufer

Bearbeiten

Die binäre Suche nach einem Schlüssel ist eine der ersten algorithmischen Anwendungen des Prinzips von „teile und herrsche“. Sie lässt sich zu den Babyloniern zurückverfolgen. Bei der binären Suche wird ein Schlüssel in einer sortierten Schlüsselmenge gesucht. Dazu vergleicht man den gesuchten Schlüssel mit dem Median der Schlüsselmenge und sucht dann entsprechend in der Teilmenge der Elemente kleiner als der Median oder in der Teilmenge der Elemente größer als der Median rekursiv weiter.

Der euklidische Algorithmus zur Bestimmung des größten gemeinsamen Teilers zweier Zahlen folgt ebenfalls dem „Teile-und-herrsche“-Prinzip. Hierbei wird das Problem iterativ vereinfacht, indem man „gemeinsame“ Teile entfernt.

Anwendung in Algorithmen

Bearbeiten

„Teile und herrsche“ ist eines der wichtigsten Prinzipien für effiziente Algorithmen. Dabei wird ausgenutzt, dass bei vielen Problemen der Lösungsaufwand sinkt, wenn das Problem in kleinere Teilprobleme zerlegt wird. Dies lässt sich meist durch rekursive Programmierung umsetzen, bei der die Teilprobleme wie eigenständige Probleme gleichzeitig parallel oder sequenziell (einzeln nacheinander) behandelt werden, bis sie auf triviale Lösungen zurückgeführt sind oder der Restfehler hinreichend klein ist. Bei manchen Algorithmen steckt dabei die Kernidee im Schritt des „Teilens“, während die „Rekombination“ einfach ist (beispielsweise Quicksort). In anderen Verfahren (beispielsweise Mergesort) ist das Teilen einfach, während die Rekombination die Kernidee des Algorithmus enthält. In manchen Algorithmen sind beide Schritte komplex.

Die Lösung für das Gesamtproblem ergibt sich je nach Algorithmus auf verschiedene Weise. Möglichkeiten sind unter anderem:

  • Die Teillösungen werden zu einer Gesamtlösung zusammengefügt. Beispielsweise wird beim Sortieren mit dem Quicksort-Algorithmus die sortierte Ergebnisliste aus kleinen, jeweils für sich sortierten Teillisten durch Aneinanderreihen zusammengesetzt.
  • Die Teillösungen werden zu einer Gesamtlösung kombiniert. Beispielsweise wird beim Sortieren mit dem Mergesort-Algorithmus das Ergebnis aus je zwei sortierten Teilen durch den „Merge“-Schritt konstruiert.
  • Aus den Teillösungen wird nach bestimmten Kriterien die beste Lösung als Lösung für das Gesamtproblem ausgewählt. Beispielsweise wird bei manchen Optimierungsproblemen der Lösungsraum aufgeteilt und aus den Unterräumen die optimale Lösung gesucht. Aus den „Unterraumoptima“ wird dann die beste Lösung als Gesamtlösung gewählt. Konkret etwa Krylow-Unterraum-Verfahren.
  • Die Lösung für das letzte Teilproblem ist gleichzeitig Lösung des gesamten Problems. Beispielsweise ist beim Suchen im Binärbaum nach dem letzten Suchschritt die passende Stelle im Baum bestimmt.
  • Ein weiterer wichtiger Anwendungsbereich ist die schnelle Fourier-Transformation (FFT).

Anwendung in Programmiersprachen

Bearbeiten

In vielen Programmiersprachen wird die Gliederung von Computerprogrammen in Prozeduren, Funktionen, Module, Objekte, Komponenten, Prozesse und Threads nach dem Prinzip „Teile und herrsche“ umgesetzt.

Anwendung jenseits der Informatik

Bearbeiten

Die Methode „Teile und herrsche“ lässt sich auch für Probleme nicht-mathematischer Fachbereiche und im Alltag anwenden. Man zerlegt ein schwieriges Problem in kleine Teilprobleme, die man dann einzeln lösen und zu einem Gesamtergebnis zusammenfügen kann. Wer beispielsweise ein Buch schreiben will, kann eine Skizze als Gerüst verfassen, dann jede Komponente einzeln angehen und abschließend alles zu einem zusammenhängenden Werk zusammenfügen.[1]

Siehe auch

Bearbeiten

Einzelnachweise

Bearbeiten
  1. Charles Fadel, Bernie Trilling, Maya Bialik: Four-Dimensional Education: The Competencies Learners Need to Succeed. 2015, ISBN 978-1-5186-4256-2, S. 79.

📚 Artikel Terkait di Wikipedia

Akra-Bazzi-Theorem

bestimmen, die bei der asymptotischen Analyse insbesondere von Divide-and-Conquer-Algorithmen auftreten. Es wurde 1998 veröffentlicht und ist eine Verallgemeinerung

Erfüllbarkeitsproblem der Aussagenlogik

Parallele Algorithmen für das Erfüllbarkeitsproblem Parallele SAT-Solver können in drei Kategorien eingeteilt werden: Portfolio, Divide-and-conquer und parallele

Mergesort

stabiler Sortieralgorithmus, der nach dem Prinzip teile und herrsche (divide and conquer) arbeitet. Er wurde erstmals 1945 durch John von Neumann vorgestellt

Dichtestes Punktpaar

Kleinberg, Éva Tardos. Algorithm Design. Pearson International Edition, 2006. ISBN 0-321-37291-3. Seiten 225 ff (Divide & Conquer); S. 741 ff (Randomisierter

Hirschberg-Algorithmus

Algorithmus verwendet die Methode der Dynamischen Programmierung und das Divide-and-conquer Prinzip. Der Hirschberg-Algorithmus ist ein allgemein einsetzbarer

Graphpartitionierung

in allen der im Folgenden erwähnten Algorithmen angewendet werden. Es verfolgt das verbreitete Divide-and-conquer-Prinzip und besteht darin, dass der

Stoogesort

rekursiver Sortieralgorithmus nach dem Prinzip Teile und herrsche (divide and conquer). Sind das erste und das letzte Element nicht in der richtigen Reihenfolge

Jon Bentley (Informatiker)

Chapel Hill, an der er 1976 bei Donald Stanat promoviert wurde (Divide and Conquer Algorithms for Closest Point Problems in Multidimensional Space). Anfang