Bisektion
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
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:
- 500 – größer
- 750 – kleiner
- 625 – kleiner
- 562 – kleiner
- 531 – kleiner
- 515 – kleiner
- 507 – größer
- 511 – größer
- 513 – kleiner
- 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
Diskreter Fall
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

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:
- Setze
und
.
- Teste, ob
eine Nullstelle enthält. Wenn nicht: Abbruch.
- Teste, ob
ist. Wenn ja, ist das Lösungsintervall gefunden.
- 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:
- Setze
und
.
- Teste, ob
. Wenn nicht: Abbruch.
- Setze
.
- Wenn
setze
sonst setze
- Teste, ob
ist. Wenn ja, ist das Lösungsintervall gefunden.
Vor- und Nachteile des Verfahrens
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
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
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.



© biancahoegel.de
Datum der letzten Änderung: Jena, den: 31.05. 2020