Interaktive Demo

Breitensuche

Die Breitensuche (BFS) erkundet ein Gitter wie eine Welle: erst alle Zellen einen Schritt entfernt, dann zwei Schritte, dann drei. Erreicht sie das Ziel zum ersten Mal, hat sie einen Weg mit den wenigsten Schritten gefunden.

Dein Browser unterstützt das HTML5-Canvas-Element nicht.

Zeichne Wände oder Schlamm ins Gitter und ziehe Start und Ziel. Ist eine Suche fertig, wird nach jeder Änderung sofort neu gesucht. Male etwas Schlamm zwischen Start und Ziel: Die Breitensuche läuft mitten hindurch, denn jeder Schritt zählt gleich.

Ablauf

Erweitert
–
Front (max.)
–
Wegkosten
–

Drücke Abspielen oder Nächster Schritt, um die Suche zu starten.

Raster

Optionen

Legende

  • Start (ziehen zum Verschieben)
  • Ziel (ziehen zum Verschieben)
  • Wand
  • Schlamm
  • Front (Open List)
  • Besucht (Closed List)
  • Gerade erweitert
  • Weg

Eigenschaften

Optimal

Mit Bedingung

Wenigste Schritte, das ist nur ohne Schlamm und Diagonalen der günstigste Weg.

Gewichtete Zellen

Nein

Jeder Schritt zählt gleich, Schlamm wird wie freies Gelände durchquert.

Heuristik

Nein

Weiß nicht, wo das Ziel liegt, und breitet sich gleichmäßig in alle Richtungen aus.

Beliebiger Winkel

Nein

Bewegt sich von Zelle zu Zelle, gerade oder diagonal.

Alle Wegfindungsalgorithmen im Vergleich

AlgorithmusOptimalGewichtete ZellenHeuristikBeliebiger Winkel
Breitensuche diese SeiteOhne Schlamm und DiagonalenNeinNeinNein
TiefensucheNeinNeinNeinNein
Dijkstra-AlgorithmusJaJaNeinNein
Bidirektionale SucheJaJaNeinNein
Gierige BestensucheNeinNeinJaNein
A*-SucheMit Gewicht 1 und zulässiger HeuristikJaJaNein
Jump Point SearchOhne SchlammNeinJaNein
Theta*NeinAbkürzungen nur über freies GeländeJaJa

1. Eine Warteschlange

  1. Lege den Start in eine Warteschlange.
  2. Nimm die älteste Zelle heraus und sieh dir ihre Nachbarn an.
  3. Jeder noch nicht gesehene Nachbar merkt sich, woher er kam, und stellt sich hinten an.
  4. Wiederhole das, bis das Ziel herausgenommen wird. Die Vorgänger rückwärts ergeben den Weg.

2. Wenigste Schritte

Weil die Warteschlange zuerst herausgibt, was zuerst kam, verlassen die Zellen sie in der Reihenfolge ihrer Schrittzahl. Deshalb ist die Breitensuche optimal, wenn jeder Schritt gleich viel kostet. Mit Schlamm oder diagonalen Schritten (√2) sind die wenigsten Schritte nicht der günstigste Weg.

3. Wo sie verwendet wird

Die Breitensuche ist einfach und braucht keine Schätzung der Entfernung. Sie findet kürzeste Wege in ungewichteten Graphen, etwa die wenigsten Züge in einem Puzzle, Freunde von Freunden in einem Netzwerk oder die Fläche der Füllfunktion in einem Malprogramm.