Teile und Herrsche 1 SS09

Aus ProgrammingWiki
< AuK
Archivierte Version vom 2009-03-24T16:22:11+00:00. Aktuelle Version

Inhaltsverzeichnis

Die Idee

"Teile und Herrsche" (engl. "divide and conquer" bzw. lat. "divide et impera") beschreibt ein Verfahren zur Lösung von Problemen, wobei das Problem

  1. in Teilprobleme zerlegt wird
  2. die Teilprobleme gelöst werden
  3. die Teilprobleme zu einer Lösung vereint werden.


Die folgende Rechnung dient als Beweis, dass eine Effizienzverbesserung auftritt:
Wir nehmen an, dass ein bestimmter Algorithmus A ein Problem mit O\left(n^2\right), also T_A\leq c \cdot n^2, löst. Für ein Algorithmus B, der drei dieser Probleme der Größe \frac{n}{2} mit A bearbeitet und mit O\left( n \right) zusammenfügt gilt:

\begin{array}{ccl} T_B & = & 3T_A\left(\left\lceil \frac{n}{2}\right\rceil\right)+d\cdot n\\\\ & \leq & 3 \cdot c \cdot \left( \frac{n+1}{2}\right)^2+d\cdot n\\\\ & \leq & 3 \cdot c \cdot \left( \frac{n}{2} + \frac{1}{2} \right)^2+d \cdot c\\\\ & \leq & 3 \cdot c \cdot \left( \frac{n^2}{4}+2\frac{n}{4}+\frac{1}{4} \right)+d \cdot n\\\\ & \leq & \frac{3}{4}cn^2+\frac{3}{2}nc+\frac{3}{4}c+d \cdot n\\\\ & \leq & \frac{3}{4}cn^2+\left(\frac{3}{2}c+d\right)n+\frac{3}{4}c \end{array}

Es tritt also eine Effizienzverbesserung um 25% auf. Da der Aufwand allerdings quadratisch ist, kann man bei großen n den Faktor vernachlässigen. Es ist also offensichtlich das eine Effizienzverbesserung nur auftritt, wenn der Exponent kleiner wird.

Um dies zu erreichen nehmen wir an, das wir einen Algorithmus C haben, der die Teilprobleme rekursiv löst. Das bedeutet, dass der Algorithmus auch die Teilprobleme löst, einzig die Basisfälle n \leq n_0 werden von dem Algorithmus A übernommen. Das bedeutet:

T_C(n)=\begin{cases}T_A(n), & wenn n\leq n_0 \\ 3T_C(\frac{n}{2}), & sonst\end{cases}

Die Anwendung der Meistermethode ergibt:
T_C(n)=O(n^{1,59}).

Anhand der Ergebnisses kann man sehen, das "Teile und Herrsche" aus Effizienzgründen immer mit Rekursion arbeitet.

Quicksort

Das Verfahren

Funktionsorientierte Beschreibung

Effizienz von Quicksort

Interne Suchberfahren


Mergesort

Das Verfahren

Funktionsorientierte Beschreibung mit Multiple-value-context

Effizienzanalysen