MakarovSuites
Deutsch
EnglishDeutschРусскийУкраїнськаFrançaisEspañolItalianoPolski
Kontakt & Lizenzen

Math

Breite und Tiefe

Zwei Kopien eines Labyrinths, zwei Durchläufe, eine Zelle pro Takt. Die Schicht, in der die Breitensuche eine Zelle findet, IST der kürzeste Abstand - eine Identität. Die Tiefensuche ist nie kürzer, und wie viel länger, hängt vom Ziel ab.

Breite und Tiefe — Bild aus der Anwendung
Bild aus der Anwendung

Was passiert

Ein Labyrinth, zwei Suchen, eine Entdeckung pro Schritt. Links nimmt die Breitensuche Zellen aus einer WARTESCHLANGE - wer zuerst kommt, geht zuerst -, darum breitet sie sich in Ringen aus, und der Ring, in dem sie eine Zelle findet, ist deren kürzeste Entfernung: In einem ungewichteten Labyrinth IST die Breitensuche die Suche nach dem kürzesten Weg. Rechts nimmt die Tiefensuche sie von einem STAPEL - wer zuletzt kommt, geht zuerst -, darum taucht sie in die erste Abzweigung und kehrt nur an einer Sackgasse um; ihr Weg ist ein Weg, ohne Versprechen, kurz zu sein. Blaue Zellen warten in der Struktur, graugrüne sind fertig, das goldene Quadrat wird gerade erweitert, und unter jedem Labyrinth stehen die echte Warteschlange und der echte Stapel, die nächste Zelle zuerst. Zeichnen Sie Wände, klicken Sie in ein Labyrinth, um vorherzusagen, wohin diese Suche als Nächstes geht, und machen Sie einen Schritt. Ist das Ziel abgemauert, enden beide Suchen am Rand der Komponente des Starts und sagen es.

Gleichungen des Moduls
Gleichungen
Labyrinth auf einem m x m Gitter, vier Nachbarn, Start in der linken oberen Ecke; Nachbarreihenfolge oben, rechts, unten, links - in beiden Suchen gleich
Breitensuche: die Schicht, in der eine Zelle gefunden wird, IST die Länge des kürzesten Weges - eine Identität, geprüft gegen eine UNABHÄNGIGE Relaxation bis zum Fixpunkt und, auf kleinen Gittern, gegen eine vollständige Aufzählung einfacher Wege
leeres Gitter:  Abstand zu (i, j) = i + j;  Zellen im Abstand d = min(d, m−1) − max(0, d−m+1) + 1;  breiteste Schicht = m bei d = m − 1;  fernste Ecke = 2(m−1) = 40 bei m = 21
beide Suchen überdecken dieselbe Menge - die Komponente des Starts, unabhängig durch eine Union-Find-Struktur gezählt - und jede betrachtet jede Kante zweimal: 2|E| = 1196 bei 21x21 mit 20 % Wänden
Tiefensuche ist nie kürzer, und wie viel länger, hängt von der ZELLE ab: zur fernsten Ecke eines leeren Gitters braucht sie dieselben 2(m−1) Schritte, zur Zelle einen Schritt unter dem Start braucht sie 421 bei m = 21
auf einem leeren Gitter ist der Tiefensuchbaum ein HAMILTON-PFAD - jede Zelle hat höchstens ein Kind, die tiefste liegt bei m²−1, und die Parität entscheidet, wo die Schlange endet: (1,0) für gerades m, (m−1,0) für ungerades m
21x21, 20 % Wände, Ziel in der fernsten Ecke:  Breitensuche 40 Schritte nach Berührung von 370 Zellen;  Tiefensuche 50 Schritte nach Berührung von 53 - beide zahlen, in verschiedener Währung
dasselbe Labyrinth, Ziel in der Mitte:  Breitensuche 20, Tiefensuche 156;  und auf 297 der 371 erreichbaren Zellen ist der Tiefensuchweg mindestens dreimal so lang

Weitere Experimente

Zum Katalog
Der billigste Weg — Bild aus der Anwendung

Math

Der billigste Weg

Gelände, in dem ein Schritt den Preis der betretenen Zelle kostet, und die Welle geschlossener Knoten breitet sich nach PREIS aus, nicht nach Entfernung. Ein Regler legt eine negative Kante aufs Feld und hat drei gemessene Bereiche.

Nim und die Binärsumme — Bild aus der Anwendung

Math

Nim und die Binärsumme

Steinhaufen und darunter ihre Binärziffern. Eine Spalte mit ungerader Anzahl Einsen brennt rot; ohne rote Spalte hat der Ziehende schon verloren. Die Regel wird durch vollständiges Lösen des Spielbaums geprüft, nicht zitiert.

Spielbaum und Alpha-Beta — Bild aus der Anwendung

Math

Spielbaum und Alpha-Beta

Ein Spielbaum, in dem jeder Block so hoch ist wie sein Wert: ein MAX-Knoten so hoch wie sein höchstes Kind, ein MIN-Knoten so niedrig wie sein niedrigstes. Minimax liest jedes Blatt; Alpha-Beta überspringt, was die Antwort nicht ändern kann, und wie viel es überspringt, hängt von der Zugreihenfolge ab.