Bisektion

Verfahren zur Erzeugung konvergenter Folgen von Intervallschachtelungen
(Weitergeleitet von Intervallhalbierungsverfahren)

Die Bisektion, auch fortgesetzte Bisektion oder Intervallhalbierungsverfahren genannt, ist ein Verfahren der Mathematik und der Informatik. Bisektion erzeugt endlich viele Glieder einer Intervallschachtelung, also eine Folge von Intervallen, die genau eine reelle Zahl definiert. Je ein Intervall entsteht aus dem vorhergehenden durch Teilung in zwei Hälften; hierfür stehen die lateinischen Bestandteile bi („zwei“) und sectio („Schnitt“) des Wortes „Bisektion“.

Grundsätzlich finden Bisektionsverfahren immer dann Anwendung, wenn ein Problem gelöst werden kann, indem es in zwei etwa gleich große Teilprobleme zerlegt wird, die dann einzeln für sich behandelt werden können.

Beispiel

Bearbeiten

Ein einfaches Beispiel stellt folgende Aufgabe dar: Gesucht ist eine Zahl zwischen 1 und 1000, die ein Spieler erraten soll. Er erhält als Hinweis immer nur „größer“ oder „kleiner“ oder „Treffer“.

Angenommen die Zahl sei 512. Verwendet der Spieler zum Raten das Bisektionsverfahren der binären Suche, ergibt sich folgender Dialog:

  1. 500 – größer
  2. 750 – kleiner
  3. 625 – kleiner
  4. 562 – kleiner
  5. 531 – kleiner
  6. 515 – kleiner
  7. 507 – größer
  8. 511 – größer
  9. 513 – kleiner
  10. 512 – Treffer

Hätte der Spieler stattdessen linear gesucht und bei 1 begonnen, so hätte der Dialog folgenden Verlauf genommen:

1. 1 – größer
2. 2 – größer
511. 511 – größer
512. 512 – Treffer

Statt zehn Fragen hätte er also 512 Fragen gebraucht; die Bisektion ist hier also deutlich effizienter.

Laufzeit und Konvergenz

Bearbeiten

Diskreter Fall

Bearbeiten

Im diskreten Fall, also wenn das zugrundeliegende Problem nur eine endliche Anzahl von zu testenden Lösungen besitzt, kann ein solches Problem immer als eine Suche aufgefasst werden: Aus einer endlichen Menge   soll ein Element   mit der Eigenschaft   gefunden werden.   soll hierbei eine Funktion

 

sein, wobei   genau dann gelten soll, wenn die gesuchte Eigenschaft erfüllt ist, also  . Um dieses Problem mittels Bisektion zu lösen, soll weiterhin gelten:

  •   falls  
  •   falls  

Die Funktion   gibt also nicht nur den Treffer an (bei  ), sondern weist im anderen Fall auch die Richtung, in der weitergesucht werden muss. Dabei wird natürlich stillschweigend vorausgesetzt, dass   durch eine Relation < geordnet wird.

  wird in zwei möglichst gleich große Hälften geteilt, indem zunächst   für ein Element möglichst nah der Mitte von   ausgewertet wird. Der Fall, dass sich   aufgrund einer ungeraden Anzahl von Elementen lediglich in zwei nur ungefähr gleich große Teile teilen lässt, kann unterschlagen werden, er wirkt sich bei großen Elementzahlen so gut wie nicht aus. Nach jedem Schritt kann also eine Hälfte der zuletzt untersuchten Menge verworfen werden, die Menge halbiert sich mit jeder Auswertung von  . Das Verfahren endet spätestens, wenn die Menge nur noch ein Element enthält, dieses muss das gesuchte sein, sofern es überhaupt in der Ausgangsmenge enthalten war. Um also eine Menge der Größe   durch fortgesetztes Halbieren auf 1 zu reduzieren, sind   Schritte notwendig, mit:

 

Das Verfahren hat also eine Laufzeit von O .

Kontinuierlicher Fall

Bearbeiten
 
Ablauf der Bisektion (Animation)

Im kontinuierlichen Fall ist als Lösung meist ein Intervall gesucht, das ein Teilintervall eines anderen gegebenen endlichen Intervalls ist. Eine wichtige Anwendung ist die Suche nach einem kleinen Intervall, das eine Nullstelle einer gegebenen Funktion enthält:

Gesucht ist die Nullstelle einer stetigen streng monoton steigenden Funktion   im Intervall  . Diese soll mit einer Genauigkeit   angegeben werden; es wird also ein Teilintervall von   gesucht, das die Nullstelle enthält und höchstens die Länge   hat. Da es unendlich viele derartige Intervalle gibt, können diese nicht einfach alle durchprobiert werden. Es gilt jedoch:

  • Eine stetige streng monoton steigende Funktion   hat in einem Intervall   genau dann eine Nullstelle, wenn   und   ist.

Dies führt zu folgendem Algorithmus:

  1. Setze   und  .
  2. Teste, ob   eine Nullstelle enthält. Wenn nicht: Abbruch.
  3. Teste, ob   ist. Wenn ja, ist das Lösungsintervall gefunden.
  4. Sonst teile   in der Mitte und setze das Verfahren mit beiden Teilintervallen rekursiv bei 2. fort.

Ähnlich wie im diskreten Fall endet der Algorithmus spätestens, wenn das Intervall die Länge   unterschreitet. Also:

 

Es ergibt sich somit eine logarithmische Laufzeit in Abhängigkeit vom Verhältnis der Intervalllänge zur gewünschten Genauigkeit.

Die Monotonie der Funktion ist nicht zwingend erforderlich. Eine stetige Funktion hat im Intervall   nach dem Zwischenwertsatz schon dann mindestens eine Nullstelle, wenn  . Der Algorithmus ist dem obigen sehr ähnlich und sieht dann so aus:

  1. Setze   und  .
  2. Teste, ob  . Wenn nicht: Abbruch.
  3. Setze  .
  4. Wenn   setze   sonst setze  
  5. Teste, ob   ist. Wenn ja, ist das Lösungsintervall gefunden.

Vor- und Nachteile des Verfahrens

Bearbeiten

Die Bisektion eignet sich für folgende Fälle:

  • Ein Vorzeichenwechsel liegt im gegebenen Intervall vor und die Funktion ist stetig
  • Die Startwerte der klassischen Verfahren (Newton-Verfahren, Regula falsi) liegen nicht hinreichend nah genug an der Nullstelle, so dass dort keine lokale Konvergenz eintritt
  • Mehrfache Nullstellen mindern die Konvergenzgeschwindigkeit der klassischen Verfahren

Nachteile der Bisektion:

  • Bei einfachen Fällen (streng monotone Funktion) ist sie langsamer als ein quadratisch konvergentes Verfahren
  • Ohne Vorzeichenwechsel im gegebenen Intervall sind Zusatzprüfungen notwendig, um ein lokales Minimum von einer Nullstelle zu unterscheiden

Bisektion und Binärbäume

Bearbeiten

Es besteht ein enger Zusammenhang zwischen Bisektion und Binärbäumen. Während einer Bisektion wird in jedem Schritt eine Entscheidung getroffen, ob mit der linken oder der rechten Teilmenge fortgesetzt werden soll, und beim Durchlaufen eines Binärbaums von der Wurzel aus muss in jedem Knoten entschieden werden, ob der linken oder der rechten Kante gefolgt werden soll. Zu einer gegebenen Mengengröße und einem Bisektionsverfahren gibt es also genau einen zugeordneten Binärbaum, der alle potentiellen Verläufe der Bisektion beschreibt. Der Baum hat dabei genau so viele Blätter, wie das gegebene Problem mögliche Ergebnisse liefern kann. Da sich mit jeder Entscheidung in einem Knoten die Anzahl der noch möglichen Ergebnisse etwa halbiert, hat er ungefähr

 

Ebenen. Dies entspricht der Laufzeit der Bisektion, da die Anzahl der Ebenen die Weglänge von oben nach unten festlegt, die wiederum gleich der Laufzeit ist. Der sich durch diese Zuordnung ergebende Baum entspricht einem balancierten binären Suchbaum.

Bisektion und binäre Zahlen

Bearbeiten

Bisektion lässt sich beispielsweise auch verwenden, um die binäre Darstellung einer Zahl zu ermitteln. Eine Zahl zwischen   und   kann durch eine Folge von „größer-oder-gleich“- und „kleiner“-Entscheidungen gekennzeichnet werden. Wird   als eine Potenz von 2 gewählt, so kann immer auf das Element „rechts der Mitte“ getippt werden, da die Menge eine gerade Größe hat. Für   ergibt sich zum Beispiel die Menge   – die Suche nach der 2 liefe nun wie folgt ab:

  • 4 – kleiner
  • 2 – größer oder gleich (auf einen „Treffer“ wird verzichtet)
  • 3 – kleiner

Damit ist die 2 genau beschrieben. Setzen wir nun für „kleiner“ die 0 und für „größer oder gleich“ die 1, so ergibt sich 010. Dies ist gerade die binäre Darstellung der 2.

Bearbeiten