Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Teile-und-herrsche-Verfahren

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 …

Inhalt6 Abschnitte
  1. 1. Kernidee
  2. 2. Algorithmische Bedeutung
  3. 3. Arten der Gesamtlösung
  4. 4. Frühe Beispiele
  5. 5. Programmierpraxis
  6. 6. Alltägliche Anwendung

Kernidee

Das Teile-und-herrsche-Verfahren ist in der Informatik ein Paradigma, also ein grundlegendes Entwurfsprinzip, für effiziente Algorithmen. Es wird besonders bei Such- und Sortierverfahren eingesetzt. Die zentrale Idee lautet: Ein Problem, das als Ganzes zu schwierig erscheint, wird rekursiv in kleinere und einfachere Teilprobleme zerlegt. Rekursiv bedeutet, dass dieselbe Vorgehensweise auf die kleineren Teilprobleme erneut angewendet wird.

Die Zerlegung wird so lange fortgesetzt, bis die Teilprobleme einfach genug sind, um direkt gelöst zu werden. Danach werden die Teillösungen wieder zu einer Lösung für das Gesamtproblem rekonstruiert. Das Verfahren besteht also aus drei gedanklichen Schritten: Teilen des Problems, Lösen der Teilprobleme und Zusammenführen oder Auswählen der passenden Teillösungen.

Algorithmische Bedeutung

„Teile und herrsche“ gehört zu den wichtigsten Prinzipien für effiziente Algorithmen. Es nutzt aus, dass bei vielen Aufgaben der Lösungsaufwand sinkt, wenn man sie in kleinere Teilprobleme aufspaltet. Diese Teilprobleme können parallel oder sequenziell bearbeitet werden. Parallel bedeutet gleichzeitig, sequenziell bedeutet nacheinander.

Oft wird das Prinzip durch rekursive Programmierung umgesetzt. Dabei werden Teilprobleme wie eigenständige Probleme behandelt, bis sie auf triviale Lösungen zurückgeführt sind oder ein Restfehler hinreichend klein ist. Triviale Lösungen sind so einfache Fälle, dass sie ohne weitere Zerlegung gelöst werden können.

Je nach Algorithmus liegt die eigentliche Schwierigkeit an unterschiedlicher Stelle. Bei Quicksort steckt die Kernidee vor allem im Teilen; die Rekombination ist einfach. Bei Mergesort ist das Teilen einfach, während der „Merge“-Schritt, also das Zusammenführen zweier sortierter Teile, die wichtige Arbeit leistet. Bei manchen Algorithmen sind sowohl das Teilen als auch das Wiederzusammensetzen komplex.

Arten der Gesamtlösung

Die Lösung des Gesamtproblems entsteht je nach Verfahren auf verschiedene Weise.

Eine Möglichkeit ist das Zusammenfügen von Teillösungen. Beim Quicksort-Algorithmus wird eine sortierte Ergebnisliste aus kleineren, jeweils für sich sortierten Teillisten durch Aneinanderreihen zusammengesetzt.

Eine zweite Möglichkeit ist das Kombinieren von Teillösungen. Beim Mergesort-Algorithmus wird das Ergebnis aus je zwei sortierten Teilen durch den „Merge“-Schritt konstruiert.

Eine dritte Möglichkeit ist die Auswahl der besten Teillösung nach bestimmten Kriterien. Bei manchen Optimierungsproblemen wird der Lösungsraum in Unterräume aufgeteilt. In diesen Unterräumen sucht man jeweils nach optimalen Lösungen; aus diesen „Unterraumoptima“ wird dann die beste Lösung als Gesamtlösung gewählt. Als konkretes Beispiel nennt der Artikel Krylow-Unterraum-Verfahren.

Eine vierte Möglichkeit besteht darin, dass die Lösung des letzten Teilproblems bereits die Lösung des Gesamtproblems ist. Beim Suchen in einem Binärbaum ist nach dem letzten Suchschritt die passende Stelle im Baum bestimmt.

Ein weiterer wichtiger Anwendungsbereich des Teile-und-herrsche-Prinzips ist die schnelle Fourier-Transformation, abgekürzt FFT.

Frühe Beispiele

Ein frühes Beispiel für das Prinzip ist die binäre Suche nach einem Schlüssel. Sie lässt sich bis zu den Babyloniern zurückverfolgen. Bei der binären Suche sucht man einen Schlüssel in einer sortierten Schlüsselmenge. Dazu vergleicht man den gesuchten Schlüssel mit dem Median der Schlüsselmenge. Der Median ist hier das mittlere Element beziehungsweise der Wert, der die Menge in zwei Bereiche teilt. Danach sucht man rekursiv entweder in der Teilmenge der kleineren Elemente oder in der Teilmenge der größeren Elemente weiter.

Auch der euklidische Algorithmus zur Bestimmung des größten gemeinsamen Teilers zweier Zahlen folgt dem Teile-und-herrsche-Prinzip. Dabei wird das Problem iterativ vereinfacht, indem man „gemeinsame“ Teile entfernt. Iterativ bedeutet, dass ein Schritt wiederholt angewendet wird.

Programmierpraxis

Das Teile-und-herrsche-Prinzip zeigt sich nicht nur in einzelnen Algorithmen, sondern auch in der Struktur von Computerprogrammen. Viele Programmiersprachen gliedern Programme in kleinere Einheiten wie Prozeduren, Funktionen, Module, Objekte, Komponenten, Prozesse und Threads.

Diese Gliederung folgt demselben Grundgedanken: Ein großes Programm oder eine große Aufgabe wird in überschaubare Teile zerlegt. Jeder Teil übernimmt eine bestimmte Aufgabe und kann getrennt betrachtet, entwickelt oder ausgeführt werden.

Alltägliche Anwendung

Die Methode lässt sich auch außerhalb der Informatik nutzen, etwa in nicht-mathematischen Fachbereichen oder im Alltag. Ein schwieriges Problem wird in kleinere Teilprobleme zerlegt. Diese werden einzeln gelöst und anschließend zu einem Gesamtergebnis zusammengefügt.

Als Beispiel nennt der Artikel das Schreiben eines Buches. Man kann zuerst eine Skizze als Gerüst verfassen, danach jede Komponente einzeln bearbeiten und abschließend alles zu einem zusammenhängenden Werk zusammenfügen.

Lernvideos zu Teile-und-herrsche-Verfahren

Weiterlesen

Informatik Als einfache Rechengeräte leisteten Abakus und später der Rechenschieber unschätzbare Dienste. 1641 konstruierte Blaise Pascal eine mechanische … Algorithmus Algorithmen bestehen aus endlich vielen, wohldefinierten Einzelschritten. ... Damit können sie zur Ausführung in ein Computerprogramm implementiert, aber auch in … Suchverfahren Dieser Artikel beschreibt die Suche nach Daten im Kontext der Informatik. Für die Suche nach vermissten Personen und Schiffen siehe Suchmuster. Dieser … Sortierverfahren Unter einem Sortierverfahren versteht man in der Informatik einen Algorithmus, der dazu dient, ein Tupel (i. Allg. ein Array) zu sortieren. Rekursion Als Rekursion (lateinisch recurrere ‚zurücklaufen') wird ein prinzipiell unendlicher Vorgang bezeichnet, der sich selbst als Teil enthält oder mithilfe von sich … Binäre Suche Die binäre Suche ist ein Algorithmus, der in einem Array sehr effizient ein gesuchtes Element entweder findet oder dessen Vorhandensein zuverlässig … Median In der Statistik ist der Median (Plural Mediane) – auch Zentralwert genannt – ein Mittelwert und Lageparameter. Der Median der Messwerte einer Urliste ist … Euklidischer Algorithmus Der euklidische Algorithmus ist ein Algorithmus aus dem mathematischen Teilgebiet der Zahlentheorie. Mit ihm lässt sich der größte gemeinsame Teiler zweier … Größter gemeinsamer Teiler In der elementaren Mathematik ist dessen wichtigste Anwendung das Kürzen von Brüchen. So ist der ggT ⁡ ( 10 , 15 ) = 5 {\displaystyle \operatorname {ggT} … Rekursive Programmierung Bei der rekursiven Programmierung ruft sich eine Prozedur, Funktion oder Methode in einem Computerprogramm selbst wieder auf (d. h. enthält eine Rekursion). Quicksort Quicksort (englisch quick ‚schnell' und to sort ‚sortieren') ist ein schneller, rekursiver, nicht-stabiler Sortieralgorithmus, der nach dem Prinzip Teile … Mergesort Mergesort (von englisch merge ‚verschmelzen' und sort ‚sortieren') ist ein stabiler Sortieralgorithmus, der nach dem Prinzip teile und herrsche (divide and …