- Lernen
- Informatik & Informationswissenschaften
- Informatik
- Künstliche Intelligenz – Suche, Logik, Wahrscheinlichkeit und Lernen
- Uninformierte und informierte Suche
Uninformierte und informierte Suche
MittelEinheit 2 von 10 in Kurs: Künstliche Intelligenz – Suche, Logik, Wahrscheinlichkeit und Lernen
Was du lernst
- Formuliere ein Problem als Zustandsraum, den ein Algorithmus durchsuchen kann, verfolge, wie das allgemeine Suchverfahren einen Suchbaum aufbaut, und vergleiche Algorithmen anhand von Vollständigkeit, Kostenoptimalität, Zeit und Speicherbedarf.
- Beschreibe ein Suchproblem und seinen ZustandsraumBenenne die Bestandteile eines Suchproblems, stelle dir seinen Zustandsraum als Graphen vor, wähle einen nützlichen Abstraktionsgrad und schätze die Größe des Zustandsraums.
- Baue mit dem allgemeinen Suchalgorithmus einen Suchbaum aufErkläre anhand von Knoten, Suchfront und Menge der erreichten Zustände, wie ein Suchalgorithmus einen Suchbaum expandiert, wiederholte Arbeit vermeidet und den Lösungspfad wiederherstellt.
- Bewerte und vergleiche Suchalgorithmen anhand von KennzahlenBeurteile beliebige Suchalgorithmen anhand von Vollständigkeit, Kostenoptimalität, Zeit und Speicherbedarf, drücke ihren Aufwand mit den Parametern b, d, m, C* und ε aus und erkenne, warum exponentielles Wachstum die uninformierte Suche begrenzt.
- Beschreibe ein Suchproblem und seinen Zustandsraum
- Führe Breiten-, uniforme Kosten-, Tiefen- und iterative Suche von Hand durch, erkläre ihre jeweiligen Garantien und ihren Aufwand und wähle die passende Strategie für ein Problem.
- Führe eine Breitensuche durchDurchsuche einen Zustandsraum mit einer FIFO-Warteschlange Schicht für Schicht, vollziehe den Ablauf auf einer kleinen Karte nach und gib an, wann die Suche vollständig und kostenoptimal ist.
- Finde mit uniformer Kostensuche den kostengünstigsten PfadExpandiere Knoten mit einer Prioritätswarteschlange in der Reihenfolge ihrer Pfadkosten, vollziehe den Algorithmus nach und erkläre, warum er kostenoptimal ist und welchen Aufwand er hat.
- Spare Speicher mit Tiefensuche und Suche mit iterativer VertiefungVollziehe die Tiefensuche nach, verwende eine Tiefenbeschränkung und erkläre, wie die iterative Vertiefung den Speicherbedarf der Tiefensuche mit den Garantien der Breitensuche verbindet.
- Vergleiche uninformierte Suchstrategien und wähle eine ausVergleiche die uninformierten Strategien direkt, nimm die bidirektionale Suche hinzu und wähle eine geeignete Strategie für ein gegebenes Problem.
- Führe eine Breitensuche durch
- Nutze eine heuristische Schätzung zur Steuerung der Suche, vollziehe gierige Bestensuche und A* nach, beweise, wann A* optimal ist, und verwende Varianten, die zugunsten von Geschwindigkeit oder geringerem Speicherbedarf auf Optimalität verzichten.
- Nutze eine Heuristik bei der gierigen BestensucheDefiniere eine heuristische Funktion, vollziehe die gierige Bestensuche nach und erkläre, warum sie schnell ist, aber eine schlechte Lösung zurückgeben kann.
- Finde mit der A*-Suche optimale PfadeVollziehe A* mit f = g + h nach, erkläre, warum eine zulässige Heuristik die Suche kostenoptimal macht, und erkenne, wie eine bessere Heuristik die Suche beschneidet.
- Wäge Optimalität gegen Laufzeit oder Speicherbedarf abNutze gewichtetes A*, Strahlsuche und speicherbeschränkte Versionen von A* wie IDA*, wenn einfaches A* zu langsam ist oder zu viel Speicher benötigt, und gib an, worauf jedes Verfahren verzichtet.
- Nutze eine Heuristik bei der gierigen Bestensuche
- Prüfe eine Heuristik auf Zulässigkeit und Konsistenz, leite zulässige Heuristiken aus relaxierten Problemen und Teilproblemen ab und vergleiche Heuristiken anhand von Dominanz und effektivem Verzweigungsfaktor.
- Prüfe Heuristiken auf Zulässigkeit und KonsistenzPrüfe, ob eine Heuristik nie überschätzt und die Dreiecksungleichung erfüllt, und erkläre, warum beide Eigenschaften für A* wichtig sind.
- Leite zulässige Heuristiken aus relaxierten Problemen abLeite Heuristiken ab, indem du Beschränkungen eines Problems entfernst, berechne sie für das 8-Puzzle und entwickle stärkere Heuristiken aus Teilproblemen und durch Kombination.
- Vergleiche Heuristiken anhand von Dominanz und effektivem VerzweigungsfaktorEntscheide anhand der Dominanz, welche von zwei Heuristiken besser ist, bewerte eine Heuristik mit dem effektiven Verzweigungsfaktor und wäge ihre Genauigkeit gegen den Berechnungsaufwand ab.
- Prüfe Heuristiken auf Zulässigkeit und Konsistenz
- Löse Optimierungsprobleme, indem du dich durch eine Landschaft vollständiger Zustände bewegst, nutze Bergsteigen und seine Varianten und entkomme lokalen Optima mit simulierter Abkühlung und populationsbasierten Verfahren.
- Beschreibe lokale Suche und die Landschaft des ZustandsraumsErkläre, wann der Pfad unwichtig ist, formuliere ein Problem mit vollständigen Zuständen und beschreibe die Eigenschaften der Landschaft, die lokale Suche erschweren.
- Gelange durch Bergsteigen zu besseren ZuständenFühre Bergsteigen mit steilstem Anstieg durch, erkenne, wo es stecken bleibt, und verbessere es durch Seitwärtsschritte, zufällige Entscheidungen, zufällige Neustarts und lokale Strahlsuche.
- Entkomme lokalen Optima mit simulierter Abkühlung und genetischen AlgorithmenAkzeptiere einige schlechtere Züge mit einer Wahrscheinlichkeit, die beim Sinken der Temperatur abnimmt, entwickle einen Abkühlungsplan und nutze Populationen mit Rekombination und Mutation.
- Beschreibe lokale Suche und die Landschaft des Zustandsraums
Uninformierte und informierte Suche einfach erklärt
1Formuliere Probleme als Suchprobleme und beurteile Suchalgorithmen
Ein Suchalgorithmus braucht eine genaue Beschreibung dessen, was geschehen kann und was als Erfolg zählt. Eine Straßenkarte und ein Schiebepuzzle sehen unterschiedlich aus, doch beide lassen sich mit Zuständen, Aktionen, Zielen und Kosten beschreiben. Die Suche baut dann Pfade durch diesen Raum auf. Die Unterscheidung zwischen einem Zustand und einem Suchknoten macht den Umgang mit Duplikaten klar; die Unterscheidung zwischen Vollständigkeit und Kostenoptimalität macht den Vergleich von Algorithmen aussagekräftig.
1.1 Beschreibe ein Suchproblem und seinen Zustandsraum
Ein Suchproblem beschreibt Wahlmöglichkeiten, bevor ein Algorithmus beginnt, Entscheidungen zu treffen. Seine Formulierung bestimmt sowohl, was eine Lösung bedeutet, als auch, wie viele Möglichkeiten der Algorithmus berücksichtigen muss.
Definiere das Problem
Es gibt sechs Bestandteile:
- Zustände beschreiben die möglichen Situationen.
- Der Anfangszustand ist der Ausgangspunkt der Suche.
- Aktionen sind die in einem Zustand verfügbaren Wahlmöglichkeiten.
- Das Übergangsmodell, , gibt den Zustand nach Aktion an.
- Der Zieltest erkennt einen akzeptablen Zustand.
- Die Aktionskostenfunktion, , weist jedem Schritt Kosten zu.
Alle Aktionskosten sind hier positiv. Eine Lösung für ein Wegfindungsproblem ist eine Aktionsfolge, die zu einem Ziel führt. Addiere ihre Aktionskosten, um ihre Pfadkosten zu erhalten. Eine kostenoptimale Lösung minimiert diese Summe. Allein das Ziel zu nennen, sagt einem Agenten nicht, wie er es erreichen kann.
Formuliere das 8-Puzzle
Ein Brett enthält acht nummerierte Kacheln und ein leeres Feld. Erfasse alle neun Positionen als Zustand. Der Anfangszustand ist die vorgegebene Anordnung; das Ziel ist „1 2 3 / 4 5 6 / 7 8 leer“. Eine Aktion bewegt das leere Feld nach links, rechts, oben oder unten, sofern der Zug auf dem Brett bleibt. Der Übergang vertauscht das leere Feld mit der benachbarten Kachel, und jeder Zug kostet 1. In einer Ecke sind zwei Aktionen möglich; in der Mitte vier.
Eine Lösung ist eine Folge wie „Links, oben, rechts“, sofern diese Züge zulässig sind und zum Ziel führen. Da jeder Zug gleich viel kostet, bedeutet die Minimierung der Kosten, die Anzahl der Züge zu minimieren.
Wähle den Zustandsraum
Stelle dir Zustände als Ecken eines gerichteten Graphen und Aktionen als mit Kosten beschriftete Kanten vor. Eine Straße in beide Richtungen ergibt zwei gerichtete Kanten. Bei der Wegfindung kann ein Zustand der aktuelle Ort sein und die Kosten eines Schritts können der Straßenentfernung in Kilometern entsprechen.
Abstraktion lässt irrelevante Einzelheiten weg. Die Musik im Auto muss nicht Teil eines Routenzustands sein. Eine abstrakte Lösung muss sich weiterhin ausführen lassen. Wenn du eine Einzelheit entfernst, die bestimmt, welche Aktionen zulässig sind, veränderst du das Problem, statt nur seine Beschreibung zu vereinfachen.
Die Formulierung kann mehr Arbeit sparen als eine schnellere Warteschlange. Setzt man acht Damen auf beliebige freie Felder, ergeben sich mögliche geordnete Platzierungsfolgen. Setzt man jede nächste Dame in die am weitesten links liegende freie Spalte auf ein nicht angegriffenes Feld, bleiben 2.057 erreichbare Zustände. Dies sind unterschiedliche Konstruktionen derselben Zielbedingung.
Erzeuge Möglichkeiten nach Bedarf
Das 8-Puzzle hat von einem festen Start aus erreichbare Zustände. Das 15-Puzzle hat . Eine vollständige Darstellung des 8-Damen-Problems mit einer Dame pro Spalte hat Zustände.
Solche Räume werden meist implizit vorgegeben: Die Suche erhält einen Anfangszustand und Verfahren für Aktionen und Übergänge. Sie erzeugt den relevanten Teil während ihrer Ausführung. Halte bei einem Pfadproblem die Aktionsfolge fest. Bei einem Optimierungsproblem wie der Platzierung von Damen kann die endgültige Anordnung selbst die Antwort sein.
Wichtige Erkenntnisse
- Ein Suchproblem legt Zustände, einen Anfangszustand, Aktionen, Übergänge, einen Zieltest und Aktionskosten fest.
- Eine Pfadlösung ist eine Aktionsfolge; ihre Kosten sind die Summe ihrer Schrittkosten.
- Eine Abstraktion muss erhalten, dass ihre Lösungen ausführbar sind.
- Ein impliziter Zustandsraum wird nach Bedarf aus Aktionen und Übergängen erzeugt.
- Die Formulierung kann die Anzahl der betrachteten Zustände oder Pfade stark verringern.
1.2 Baue mit dem allgemeinen Suchalgorithmus einen Suchbaum auf
Der Zustandsraum beschreibt, was möglich ist. Der Suchbaum hält die Pfade fest, die der Algorithmus ausprobiert hat. Mehrere Knoten können denselben Zustand beschreiben, weil sie ihn über unterschiedliche Pfade erreicht haben.
Speichere einen Pfad in einem Knoten
Ein Knoten speichert einen Zustand, seinen Elternknoten, die Aktion von diesem Elternknoten aus und die Pfadkosten . Auch die Tiefe kann gespeichert werden. Die Wurzel hat keinen Elternknoten und Pfadkosten von 0. Beim Expandieren eines Knotens wird jede zulässige Aktion auf seinen Zustand angewandt und seine Kindknoten werden erzeugt.
Auf einer Karte mit Straßen in beide Richtungen enden die Pfade „S, A“ und „S, B, C, A“ im selben Zustand, ergeben aber unterschiedliche Knoten. Selbst eine endliche Karte kann einen unendlichen Suchbaum erzeugen: „S, A, S, A, …“ erzeugt immer längere Pfade.
Die Suchfront, auch Randmenge genannt, enthält erzeugte Knoten, die auf ihre Expansion warten. Die Menge der erreichten Zustände erfasst erzeugte Zustände und den jeweils besten dafür gefundenen Knoten. Sie umfasst sowohl Zustände, die noch in der Suchfront liegen, als auch bereits expandierte Zustände. Eine abgeschlossene Menge oder Menge der expandierten Zustände bezeichnet meist nur expandierte Zustände.
Führe das allgemeine Bestensuchverfahren durch
- Lege die Wurzel in die Suchfront und die Tabelle der erreichten Zustände.
- Ist die Suchfront leer, gib Misserfolg zurück.
- Entnimm den Knoten mit dem kleinsten Bewertungswert .
- Ist sein Zustand ein Ziel, gib diesen Knoten zurück.
- Expandiere ihn. Füge jeden neuen Zustand hinzu; ersetze bei einem zuvor erreichten Zustand den gespeicherten Knoten nur, wenn der neue Pfad günstiger ist.
- Wiederhole ab Schritt 2.
Ein günstigerer Pfad zu einem bereits expandierten Zustand kann erfordern, ihn wieder zu öffnen. Eine Rückkehr zu gleichen Kosten bringt keine Verbesserung. Bei einem Heap kann ein alter Eintrag physisch vorhanden bleiben; er muss beim Entnehmen als veraltet erkannt und übersprungen werden.
Die Regel für die Suchfront bestimmt die Strategie. Eine FIFO-Warteschlange wählt für die Breitensuche Knoten mit geringer Tiefe aus. Ein LIFO-Stapel wählt für die Tiefensuche Knoten mit großer Tiefe. Nach , und geordnete Prioritätswarteschlangen ergeben uniforme Kostensuche, gierige Bestensuche und A*-Suche.
Verfolge die Knoten auf der Straßenkarte
Verwende diese Straßen in beide Richtungen, mit Entfernungen in Kilometern: S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 und D–G 2. Starte bei S und suche G. Löse Gleichstände alphabetisch auf.
Beim Expandieren von S entstehen A mit Kosten von 2, B mit Kosten von 3 und D mit Kosten von 9. Jeder hat S als Elternknoten. Die Suchfront enthält A, B und D; die Tabelle der erreichten Zustände enthält außerdem S. Später kann C über A zu Kosten von 6 oder über B zu Kosten von 4 erreicht werden. Das sind zwei Knoten für einen Zustand, und der günstigere sollte C repräsentieren.
Um eine Lösung wiederherzustellen, folge den Elternverweisen des zurückgegebenen Zielknotens rückwärts und kehre die Aktionen um. Würden die Kosten aktualisiert, ohne den Elternknoten zu aktualisieren, stimmte der verbleibende Pfad nicht mit seinen angegebenen Kosten überein.
Entscheide, was gespeichert wird
Die Graphensuche merkt sich erreichte Zustände, um wiederholte Arbeit zu vermeiden. Die Baumsuche hat keine globale Tabelle der erreichten Zustände; sie verwirft möglicherweise nur Zyklen auf dem aktuellen Pfad. Sie spart Speicher, kann aber denselben Zustand über viele Pfade erzeugen.
Das allgemeine Verfahren prüft Ziele beim Entnehmen. Die Breitensuche kann beim Erzeugen prüfen, weil die Erzeugung nach Tiefe geordnet erfolgt. Kostenbasierte Suche muss bis zum Entnehmen warten: Das zuerst erzeugte Ziel kann einen teureren Pfad haben als ein später gefundenes Ziel.
Wichtige Erkenntnisse
- Ein Zustand ist eine Situation; ein Knoten repräsentiert einen Pfad zu einem Zustand.
- Die Suchfront enthält erzeugte, nicht expandierte Knoten; die Tabelle der erreichten Zustände speichert auch expandierte Zustände.
- Behalte einen günstigeren Pfad zu einem Zustand einschließlich des dazugehörigen Elternverweises.
- Graphensuche spart wiederholte Arbeit; Baumsuche spart Speicher.
- Uniforme Kostensuche und A* prüfen ein Ziel, wenn es aus der Suchfront entnommen wird.
- Elternverweise stellen die Aktionsfolge vom zurückgegebenen Zielknoten aus wieder her.
1.3 Bewerte und vergleiche Suchalgorithmen anhand von Kennzahlen
Ein Algorithmus kann zuverlässig und dennoch zu aufwendig für die Ausführung sein. Beurteile seine Garantien getrennt von seinem Ressourcenbedarf und prüfe dann, ob diese Garantien zum tatsächlich zu lösenden Problem passen.
Stelle vier verschiedene Fragen
Vollständigkeit bedeutet, eine Lösung zu finden, wann immer eine existiert. In einem endlichen erreichbaren Raum kann das Ausschöpfen aller Möglichkeiten auch den Misserfolg nachweisen. Ein unendlicher Raum ohne Lösung kann selbst von einem vollständigen Algorithmus ewig durchsucht werden.
Kostenoptimalität bedeutet, eine Lösung mit den geringsten Pfadkosten zurückzugeben. Sie sagt nichts darüber aus, wie schnell der Algorithmus läuft. Ein Verfahren kann zuverlässig eine Lösung finden und dabei eine teure Route zurückgeben.
Die Zeitkomplexität zählt erzeugte oder expandierte Knoten. Gib beim Vergleich von Messungen an, welche Anzahl verwendet wird. Die Speicherkomplexität misst die maximale Anzahl gleichzeitig gespeicherter Knoten, einschließlich der Suchfront und gespeicherter Suchinformationen.
Bestimme die Parameter
Für einen impliziten Suchraum verwende:
| Symbol | Bedeutung |
|---|---|
| Maximaler Verzweigungsfaktor: Nachfolger pro Knoten | |
| Tiefe einer Lösung mit geringster Tiefe | |
| Maximale Pfadtiefe, möglicherweise unendlich | |
| Kosten einer optimalen Lösung | |
| Positive untere Schranke der Aktionskosten |
Bei einem bereits explizit im Speicher vorliegenden Graphen sind die Anzahlen der Ecken und Kanten meist nützlicher. Eine Durchlaufschranke in und beantwortet eine andere Frage als eine Schranke für das Erzeugen eines noch nicht bekannten Baums.
Erkenne, warum Tiefe aufwendig ist
Ein vollständiger Baum bis zur Tiefe enthält
Knoten für . Bei Verzweigungsfaktor 10 und Tiefe 5 sind das 111.111 Knoten einschließlich der Wurzel. Eine Erhöhung der Tiefe um eins fügt eine Schicht mit zehnmal so vielen Knoten wie in der vorherigen Schicht hinzu.
Bei einer Million Knoten pro Sekunde und 1 Kilobyte pro Knoten ändern sich die Größenordnungen schnell:
| Tiefe | Ungefähre Knotenzahl | Zeit | Speicher |
|---|---|---|---|
| 6 | 1,1 Millionen | 1 Sekunde | 1,1 GB |
| 8 | 111 Millionen | 2 Minuten | 111 GB |
| 10 | 11 Milliarden | 3 Stunden | 11 TB |
| 12 | 1,1 Billionen | 13 Tage | 1,1 PB |
Dies sind dezimale Speichereinheiten: 1 GB sind Byte. Der Speicherbedarf kann eine Suche ausschließen, lange bevor ihre Laufzeit unangemessen erscheint.
Lies Garantien zusammen mit ihren Bedingungen
Die Breitensuche erreicht bei endlichem Verzweigungsfaktor schließlich jede endliche Tiefe. Die Tiefensuche kann ewig auf einem unendlichen Zweig bleiben und ein nahe gelegenes Ziel nie ausprobieren. Dieser Unterschied erklärt ihre Ergebnisse zur Vollständigkeit.
Die Breitensuche findet einen Pfad mit den wenigsten Aktionen. Kostet eine Route mit zwei Schritten 11 km und eine Route mit drei Schritten 9 km, ist die Route mit geringerer Tiefe nicht kostenoptimal. Gleiche Schrittkosten lassen Tiefe und Kosten übereinstimmen; unterschiedliche Kosten können sie auseinanderfallen lassen.
Eine O-Schranke für den schlechtesten Fall sagt nicht jeden Ablauf voraus. Zwei Verfahren mit derselben Schranke können sich in Konstanten, im Umgang mit Duplikaten und in der Anzahl nützlicher Zweige unterscheiden. Eine Heuristik kann einen typischen Ablauf stark verbessern, ohne den exponentiellen schlechtesten Fall zu beseitigen.
Wichtige Erkenntnisse
- Vollständigkeit betrifft das Finden einer Lösung; Kostenoptimalität betrifft die Kosten der zurückgegebenen Lösung.
- Ein unendlicher Raum ohne Lösung muss nicht zu einer abschließenden Misserfolgsmeldung führen.
- Verzweigungsfaktor und Tiefe erklären das exponentielle Wachstum impliziter Suchbäume.
- Miss neben der Knotenzahl auch den maximalen Speicherbedarf; der Speicher setzt oft zuerst eine Schranke.
2Suche ohne Fachwissen über das Problemgebiet
Ohne Heuristik muss eine Suche anhand der Tiefe oder der bereits angefallenen Kosten auswählen, was sie untersucht. Eine Warteschlange, ein Stapel und eine nach Kosten geordnete Prioritätswarteschlange können daher auf derselben Karte sehr unterschiedliche Routen ergeben. Vollziehe die Änderungen der Suchfront nach, um zu erkennen, warum sich ihre Garantien unterscheiden. Iterative Vertiefung spart Speicher, indem sie Arbeit in geringer Tiefe wiederholt, während bidirektionale Suche die Tiefe verringern kann, wenn das Ziel und umgekehrte Aktionen verfügbar sind.
2.1 Führe eine Breitensuche durch
Die Breitensuche untersucht den Raum in Schichten. Als Nächstes expandiert sie den noch wartenden Knoten mit der geringsten Tiefe, sodass jeder Pfad mit einer Aktion betrachtet wird, bevor ein Pfad mit zwei Aktionen expandiert wird.
Halte die Warteschlange in Ordnung
Die Suchfront arbeitet nach dem FIFO-Prinzip: Entnimm vorne und füge Kindknoten hinten an. Erfasse Zustände, wenn sie erzeugt werden. Wurde der Zustand eines Kindknotens bereits erreicht, überspringe ihn; andernfalls könnten zwei verschiedene Elternknoten denselben Zustand in die Warteschlange aufnehmen.
Prüfe den Anfangszustand vor der Suche. Für spätere Knoten kann die Breitensuche einen frühen Zieltest beim Erzeugen anwenden. Das erste erzeugte Ziel hat minimale Tiefe, weil der Algorithmus Kindknoten Schicht für Schicht erzeugt. Die Reihenfolge innerhalb einer Schicht kann zwischen Lösungen gleicher Tiefe entscheiden, aber keine tiefere Lösung zuerst erscheinen lassen.
Vollziehe den Ablauf auf der Beispielkarte nach
Die Straßen in beide Richtungen sind S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 und D–G 2 km. Starte bei S, suche G und erzeuge Nachbarn alphabetisch. In der Tabelle steht der als Nächstes zu entnehmende Knoten links.
| Expandierter Knoten | Neu erreichte Zustände | Warteschlange danach |
|---|---|---|
| S | A, B, D | A, B, D |
| A | C | B, D, C |
| B | Keine | D, C |
| D | G, das den Zieltest besteht | Suche stoppt |
Wenn B expandiert wird, sind C und D bereits erreicht. Sie wechseln nicht auf neue Positionen in der Warteschlange. Wenn D den Knoten G erzeugt, lautet dessen Elternkette G–D–S. Kehre sie um, um S–D–G mit zwei Straßen und einer Gesamtentfernung von km zu erhalten.
C wurde bereits erzeugt, aber noch nicht expandiert. Seine Route zu G hätte drei Straßen. Die Breitensuche kann anhalten, ohne sie zu untersuchen, weil drei Straßen die Anzahl der Aktionen einer Lösung mit zwei Straßen nicht verbessern können.
Erkenne, was das Ergebnis minimiert
Die Breitensuche ist bei endlichem Verzweigungsfaktor vollständig, selbst wenn der Raum unendlich ist: Jede endliche Schicht wird vor der nächsten bearbeitet. Sie ist kostenoptimal, wenn alle Aktionen gleich viel kosten. Bei einem Schiebepuzzle mit Kosten von 1 pro Zug ist eine Lösung mit geringster Tiefe auch eine günstigste Lösung.
Auf dieser Straßenkarte kostet S–B–C–G km. Die Breitensuche gibt die 11 km lange Route zurück, weil die Entfernung nicht ihre Ordnungsregel ist. „Kürzester Pfad“ braucht daher eine Einheit: Die wenigsten Straßen und die wenigsten Kilometer sind unterschiedliche Ziele.
Berücksichtige den Speicherbedarf
Mit frühem Zieltest benötigt die Breitensuche Zeit und Speicher. Sie kann nahezu jeden Knoten bis zur Zieltiefe erzeugen und die Suchfront sowie Informationen über erreichte Zustände speichern. Werden Ziele erst beim Entnehmen geprüft, kann das Expandieren anderer Knoten in Tiefe die Tiefe erzeugen. Daraus ergibt sich für diese Version die übliche Schranke .
Bei Verzweigungsfaktor 10 und 1 Kilobyte pro Knoten benötigt die Speicherung eines Baums bis Tiefe 10 etwa 11 TB. Die Breitensuche ist für Probleme mit geringer Tiefe und gleichen Kosten nützlich, wenn genügend Speicher verfügbar ist, etwa für Netzwerkpfade mit den wenigsten Zwischenstationen oder Puzzles mit den wenigsten Zügen. Eine FIFO-Warteschlange nutzt die numerischen Kantenkosten nicht, selbst wenn sie am Graphen stehen.
Wichtige Erkenntnisse
- Die Breitensuche expandiert mithilfe einer FIFO-Warteschlange den Knoten mit der geringsten Tiefe.
- Erfasse erreichte Zustände beim Erzeugen, um doppelte Warteschlangeneinträge zu vermeiden.
- Das erste erzeugte Ziel hat die wenigsten Aktionen.
- Gleiche Aktionskosten machen die Breitensuche kostenoptimal.
- Mit frühem Zieltest betragen Zeit- und Speicherkomplexität .
2.2 Finde mit uniformer Kostensuche den kostengünstigsten Pfad
Die uniforme Kostensuche ordnet Pfade nach den bereits angefallenen Kosten. Sie kann ein nahe gelegenes, aber teures Ziel übergehen, während sie längere Routen aus günstigen Schritten untersucht.
Entnimm den günstigsten Pfad
Setze und verwende eine Prioritätswarteschlange. Findet eine Expansion einen günstigeren Pfad zu einem erreichten Zustand, aktualisiere sowohl seine Kosten als auch seinen Elternknoten. Ein Pfad mit gleichen Kosten verbessert den Eintrag nicht. Die uniforme Kostensuche ist die Suchform des Dijkstra-Algorithmus und hält an, wenn sie ein Ziel entnimmt.
Der späte Zieltest ist entscheidend. Das Erzeugen eines Ziels beweist, dass eine Route existiert. Wird dieses Ziel als günstigster Knoten der Suchfront entnommen, beweist das bei positiven Aktionskosten, dass keine noch unvollständige günstigere Route es übertreffen kann.
Vollziehe den Ablauf auf der Beispielkarte nach
Verwende die Straßen in beide Richtungen S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 und D–G 2 km. Löse Kostengleichstände alphabetisch auf. Die folgenden Einträge der Suchfront zeigen Zustand und Pfadkosten.
| Entnommener Knoten | Aktualisierung | Suchfront danach |
|---|---|---|
| S, 0 | Erreiche A, B, D | A 2; B 3; D 9 |
| A, 2 | Erreiche C über A | B 3; C 6; D 9 |
| B, 3 | Verbessere C über B | C 4; D 9 |
| C, 4 | Erreiche G | D 9; G 9 |
| D, 9 | G über D kostet 11; behalte 9 | G 9 |
| G, 9 | Zieltest erfolgreich | Rückgabe |
Das Ersetzen von C ist entscheidend: ist besser als . Der Elternknoten von G ist C, der von C ist B und der von B ist S. Die zurückgegebene Route S–B–C–G kostet 9 km. D wird nur wegen der alphabetischen Gleichstandsregel vor G entnommen.
Würde eine direkte Straße S–G von 12 km hinzugefügt, erzeugte S sofort ein Ziel. Ein früher Test gäbe 12 km zurück, bevor die 9 km lange Route entdeckt wird. Die Prioritätswarteschlange kann die Optimalität nicht schützen, wenn die Abbruchregel sie umgeht.
Erkläre die Garantie
Bei endlichem Verzweigungsfaktor und Aktionskosten von mindestens einem bestimmten passen nur endlich viele Pfadschritte unter eine feste Kostenschranke. Die uniforme Kostensuche entnimmt daher schließlich ein Ziel, wann immer eines existiert. Positive Kosten stellen sicher, dass das Erweitern eines Pfads ihn nicht günstiger machen kann, was den Optimalitätsbeweis stützt.
Bei Kosten von null ist Vorsicht nötig. Baumsuche kann immer wieder einen Zyklus ohne Kosten durchlaufen. Graphensuche verwirft Rückkehrschritte zum selben Zustand bei gleichen Kosten, aber eine unendliche Kette verschiedener Zustände mit beschränkten Gesamtkosten kann ein Ziel dennoch ewig verzögern. Negative Schrittkosten entkräften das übliche Optimalitätsargument der uniformen Kostensuche.
Verstehe den Aufwand
Die übliche Schranke für Zeit und Speicher im schlechtesten Fall ist . Auf dieser Karte gilt und , was ergibt. Dies ist eine grobe Schranke, nicht die tatsächliche Anzahl der auf der Karte mit sechs Zuständen expandierten Knoten.
Viele günstige Pfade in Sackgassen können die uniforme Kostensuche zu erheblicher Arbeit zwingen, bevor sie eine teure nützliche Aktion ausführt. Wenn alle Schrittkosten gleich sind, ergibt ihr später Zieltest die bekannte Schranke . A* mit führt genau dieselben Prioritätsvergleiche wie die uniforme Kostensuche durch.
Wichtige Erkenntnisse
- Die uniforme Kostensuche ordnet die Suchfront nach den aufsummierten Pfadkosten .
- Gib ein Ziel beim Entnehmen zurück, wenn es der günstigste noch ausstehende Pfad ist.
- Ersetze eine teurere Route zu einem erreichten Zustand einschließlich ihres Elternknotens.
- Ein endlicher Verzweigungsfaktor und eine positive untere Schranke der Schrittkosten ergeben Vollständigkeit.
- Die uniforme Kostensuche ist im Modell mit positiven Kosten kostenoptimal.
2.3 Spare Speicher mit Tiefensuche und Suche mit iterativer Vertiefung
Die Tiefensuche folgt einem Zweig, bevor sie dessen Alternativen ausprobiert. Das kann den Speicherbedarf stark verringern, doch ein ungünstig gewählter Zweig kann alle anderen Möglichkeiten verzögern.
Folge einem tiefen Zweig
Die Tiefensuche verwendet einen Stapel nach dem LIFO-Prinzip. Verwirf in einer baumartigen Version Zustände, die bereits auf dem aktuellen Pfad liegen, um unmittelbare Zyklen zu vermeiden. Speichere den aktuellen Pfad und die noch nicht expandierten Geschwisterknoten entlang dieses Pfads. Um Nachfolger mit einem Stapel alphabetisch auszuprobieren, lege sie in umgekehrter alphabetischer Reihenfolge auf den Stapel.
Starte auf der Karte mit Straßen in beide Richtungen S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 und D–G 2 km bei S und suche G. Wenn Nachbarn alphabetisch ausprobiert und Ziele beim Entnehmen geprüft werden, ergibt sich S, A, C, B, D, G. Bei C ist B der erste Nachbar, der noch nicht auf dem Pfad liegt. Die zurückgegebene Route S–A–C–B–D–G kostet km.
Die Tiefensuche ist nicht kostenoptimal. In einem endlichen Raum mit Zyklusprüfung entlang des Pfads ist sie vollständig, kann aber einem unendlichen Zweig ewig folgen. Ihre Zeitkomplexität im schlechtesten Fall beträgt , und die gespeicherten Pfade und Geschwisterknoten benötigen Speicher. Backtracking, das jeweils einen Kindknoten erzeugt, verringert den Speicherbedarf auf . Bei Verzweigungsfaktor 10 und maximaler Tiefe 12 umfasst die Speicherung von Pfad und Geschwisterknoten etwa 120 Knoten, gegenüber ungefähr einer Billion bei der Breitensuche bis Tiefe 12. Eine globale Tabelle der erreichten Zustände benötigte zusätzlichen Speicher.
Beschränke die Tiefe
Die tiefenbeschränkte Suche beendet die Expansion bei Tiefe . Ein Ziel dort kann weiterhin erkannt werden. Sie unterscheidet drei Ergebnisse:
- Eine Lösung wurde gefunden.
- Abbruch wegen Tiefenbeschränkung: Die Tiefenschranke verhinderte eine vollständige Suche.
- Misserfolg: Die relevanten Möglichkeiten wurden ohne Ziel oder Abbruch wegen Tiefenbeschränkung ausgeschöpft.
Ein Abbruch wegen Tiefenbeschränkung beweist nicht, dass keine Lösung existiert. Liegt das Ziel mit der geringsten Tiefe in Tiefe 7, kann eine Beschränkung auf 5 es nicht erreichen. Zeit- und Speicherkomplexität im schlechtesten Fall betragen und .
Erhöhe die Beschränkung schrittweise
Die Suche mit iterativer Vertiefung führt tiefenbeschränkte Suchen mit den Beschränkungen 0, 1, 2 und so weiter durch. Sie findet eine Lösung mit geringster Tiefe, ohne eine Suchfront wie bei der Breitensuche zu speichern. Bei endlichem Verzweigungsfaktor ist sie vollständig; bei gleichen Aktionskosten ist sie kostenoptimal. Die Zeitkomplexität beträgt und die Speicherkomplexität .
Die meisten Knoten eines breiten Baums liegen in der letzten Schicht, sodass das Wiederholen der oberen Schichten oft wenig Aufwand verursacht. Zähle für und die erzeugten Knoten unterhalb der Wurzel:
Die Breitensuche erzeugt bis Tiefe 5 insgesamt 111.110 solcher Knoten. Die Suche mit iterativer Vertiefung erzeugt etwa 11 % mehr Knoten und benötigt dabei nur den Speicher einer Tiefensuche. Die wiederholten Besuche der Wurzel sind in diesen beiden Zählungen nicht enthalten.
Bei Verzweigungsfaktoren größer als 1 nähert sich der Mehraufwand im breiten Baum dem Faktor an. Dieser Vorteil ist bei einer schmalen Kette geringer, wo wiederholte Anfangsabschnitte überwiegen. Die Suche mit iterativer Vertiefung ist eine nützliche uninformierte Wahl, wenn die Lösungstiefe unbekannt ist und eine vollständige Suchfront nicht in den Speicher passt. In Räumen mit vielen Wegen zum selben Zustand kann das Fehlen einer globalen Menge der erreichten Zustände zu erheblicher wiederholter Erzeugung führen.
Wichtige Erkenntnisse
- Die Tiefensuche benötigt wenig Speicher für Pfade, kann aber auf einem unendlichen Zweig ein Ziel für immer verfehlen.
- Zyklusprüfungen entlang des Pfads verhindern die Rückkehr zu Vorgängern, ohne eine globale Tabelle der erreichten Zustände zu benötigen.
- Ein Abbruch wegen Tiefenbeschränkung bedeutet, dass die Beschränkung eine weitere Suche verhindert hat, nicht dass das Problem keine Lösung hat.
- Die Suche mit iterativer Vertiefung erhöht die Tiefenbeschränkung, bis eine Lösung mit geringster Tiefe gefunden wird.
- Die Suche mit iterativer Vertiefung ist bei endlichem Verzweigungsfaktor vollständig und bei gleichen Schrittkosten kostenoptimal.
- Die Suche mit iterativer Vertiefung tauscht wiederholtes Erzeugen gegen einen Speicherbedarf von ein.
2.4 Vergleiche uninformierte Suchstrategien und wähle eine aus
Eine nützliche Strategie passt zum benötigten Ergebnis und zu den verfügbaren Ressourcen. Die uninformierte Suche nutzt die Problemdefinition ohne eine Schätzung der verbleibenden Entfernung. Sie kann trotzdem systematisch und sorgfältig geordnet vorgehen.
Vergleiche unter gleichen Bedingungen
Nimm einen endlichen Verzweigungsfaktor und die Bedingungen positiver Kosten für die uniforme Kostensuche an. Die Zeile zur Breitensuche verwendet einen frühen Zieltest; die Zeile zur Tiefensuche verwendet Zyklusprüfungen entlang des Pfads und keine globale Tabelle der erreichten Zustände.
| Strategie | Vollständig? | Kostenoptimal? | Zeit | Speicher |
|---|---|---|---|---|
| Breitensuche | Ja | Bei gleichen Schrittkosten | ||
| Uniforme Kostensuche | Ja, bei Kosten mit positiver unterer Schranke | Ja | Wie die Zeitkomplexität | |
| Tiefensuche | In endlichen Räumen | Nein | ||
| Tiefenbeschränkte Suche | Wenn die Beschränkung eine Zieltiefe erreicht | Nein | ||
| Suche mit iterativer Vertiefung | Ja | Bei gleichen Schrittkosten |
Breitensuche und Suche mit iterativer Vertiefung minimieren die Kosten auch dann, wenn die Kosten allein eine monoton nicht fallende Funktion der Tiefe sind. Das Wort „allein“ ist wichtig: Für diese allgemeinere Bedingung müssen alle Pfade einer bestimmten Tiefe dieselben Kosten haben. Positive Kantenkosten allein machen die Breitensuche nicht kostenoptimal.
Suche von beiden Enden
Die bidirektionale Suche arbeitet vorwärts vom Start und rückwärts vom Ziel. Treffen sich die Suchen nahe der Mitte, erreicht jede ungefähr die Tiefe . Der Aufwand beträgt dann ungefähr statt . Bei Verzweigungsfaktor 10 und Lösungstiefe 6 ergibt der Vergleich der jeweils größten Schicht etwa 2.000 gegenüber 1.000.000 Knoten.
Dafür braucht sie einen expliziten Zielzustand und eine Möglichkeit, Vorgänger zu erzeugen. Umkehrbare Straßen in beide Richtungen erleichtern die Rückwärtsexpansion. Eine Zieleigenschaft wie „Alle Damen sind sicher“ kann zu viele Zielzustände beschreiben, um einen geeigneten rückwärtigen Ausgangspunkt zu bieten.
Bei Breiten- oder kostenbasierten Suchen können geeignete Regeln für das Zusammentreffen und Beenden Vollständigkeit und Optimalität erhalten. Halte auf einer gewichteten Karte erst an, wenn keine günstigere Verbindung mehr möglich ist. Die erste Überschneidung der beiden Suchen muss nicht die günstigste Verbindung sein.
Wähle passend zum Problem
Für die wenigsten Züge in einem kleinen Schiebepuzzle ist bei gleichen Zugkosten die Breitensuche geeignet, wenn reichlich Speicher vorhanden ist. Für die kürzeste Reiseentfernung bei unterschiedlichen Straßenlängen und ohne Heuristik wähle die uniforme Kostensuche. Bei einem riesigen Puzzle mit gleichen Kosten und unbekannter Lösungstiefe vermeidet die Suche mit iterativer Vertiefung eine riesige Suchfront. In einem endlichen Raum mit vielen tief liegenden Zielen, bei dem jede Lösung genügt, kann die Tiefensuche praktisch sein. Sind Start und Ziel bekannt und die Aktionen umkehrbar, lohnt es sich, bidirektionale Suche zu erwägen.
Beim Speicherbedarf muss berücksichtigt werden, was die gewählte Version speichert. Eine Tiefensuche mit globaler Tabelle der erreichten Zustände hat nicht mehr dasselbe Speicherprofil wie baumartige Tiefensuche. Der Ablauf einer Breitensuche mit spätem Zieltest sollte nicht mit einer Komplexitätsschranke für den frühen Zieltest verglichen werden, als wären die Versionen identisch.
Selbst die beste uninformierte Wahl kann auf exponentielles Wachstum stoßen. Sind nützliche Kenntnisse über das Problemgebiet verfügbar, kann eine Heuristik unnötige Exploration verringern. Wenn nur eine endgültige Konfiguration zählt, kann lokale Suche auf die Speicherung eines Suchbaums verzichten.
Wichtige Erkenntnisse
- Wähle eine Strategie anhand des gewünschten Ziels, der Kostenstruktur, des Speichers und der Lösungstiefe.
- Bidirektionale Suche braucht ein Ziel als Ausgangspunkt und eine Möglichkeit, Vorgänger zu erzeugen.
- Ein frühes Zusammentreffen ist keine sichere Abbruchregel bei einer Suche mit unterschiedlichen Kosten.
- Bei gleichen Aktionskosten stimmen der Pfad mit den wenigsten Aktionen und der günstigste Pfad überein.
3Suche mit Heuristiken: gierige Bestensuche und A*
Eine Heuristik schätzt den noch nötigen Aufwand, um ein Ziel zu erreichen. Die gierige Suche folgt dieser Schätzung direkt; A* kombiniert sie mit den bereits angefallenen Kosten. Ein Vergleich ihrer Abläufe zeigt, warum Orientierung Expansionen sparen kann und warum eine falsche Schätzung eine günstige Route verbergen kann. Wenn gewöhnliches A* zu viel Zeit oder Speicher benötigt, wägen seine Varianten Lösungsqualität, Speicherbedarf und wiederholte Arbeit unterschiedlich gegeneinander ab.
3.1 Nutze eine Heuristik bei der gierigen Bestensuche
Eine Heuristik weist einem Zustand eine Schätzung der geringsten verbleibenden Kosten bis zu einem Ziel zu. Schreibe sie als für den Zustand im Knoten . Sie hängt vom Zustand ab, nicht vom Pfad, auf dem er erreicht wurde, und ist an einem Ziel null.
Schätze den verbleibenden Aufwand
Die Luftlinienentfernung schätzt die verbleibende Straßenentfernung. In einem Gitter mit horizontalen und vertikalen Zügen der Länge eins addiert die Manhattan-Distanz die Koordinatendifferenzen:
Von Zelle (1, 1) zu (4, 5) ergibt das Züge. Die Luftlinienentfernung zwischen denselben Koordinaten beträgt . Die Schätzungen beantworten unterschiedliche Fragen zu relaxierten Bewegungsmöglichkeiten. Eine Heuristik muss zu den Einheiten der Kosten passen, die sie schätzt; Kilometer schätzen ohne ein geeignetes Umrechnungsmodell nicht unmittelbar die Reisezeit.
Informierte Suche nutzt eine Schätzung, um die Expansion zu steuern. Die Schätzung muss dem Algorithmus nicht sagen, welche Aktion er ausführen soll. Sie bewertet die Zustände, die durch die zulässigen Aktionen entstehen, und die Regel für die Suchfront entscheidet, welcher ausstehende Pfad als Nächstes untersucht wird.
Folge der kleinsten Schätzung
Die gierige Bestensuche setzt . Ihre Prioritätswarteschlange entnimmt den Zustand, der dem Ziel am nächsten zu liegen scheint, und ignoriert die bereits angefallenen Kosten.
Verwende die Straßen in beide Richtungen S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 und D–G 2 km. Die heuristischen Schätzungen bis G betragen für S 8, A 7, B 5, C 4, D 2 und G 0 km.
- Expandiere S. Die Suchfront enthält A mit Schätzung 7, B mit 5 und D mit 2.
- Entnimm D, weil 2 am kleinsten ist. Beim Expandieren von D entsteht G mit Schätzung 0. Die Pfadkosten bis G betragen km.
- Entnimm G und gib S–D–G zurück.
Nur S und D wurden expandiert. Die 9 km lange Route S–B–C–G war verfügbar, aber die Schätzung 5 für B sah schlechter aus als die 2 für D. Die gierige Suche bezog die bereits bis D zurückgelegten 9 km nie in ihren Vergleich ein.
Unterscheide Orientierung und Garantien
Selbst eine Heuristik, die nie überschätzt, macht die gierige Suche nicht kostenoptimal. Die Schätzungen im Beispiel sind zulässig, dennoch ist die zurückgegebene Route zu teuer. Die gierige Suche nutzt nur die verbleibende Schätzung und kann daher zu viel bezahlen, bevor sie einen vielversprechenden Zustand erreicht.
Graphensuche ist in einem endlichen Zustandsraum vollständig, wenn sie Duplikate richtig behandelt. Baumartige gierige Suche kann bei attraktiv erscheinenden wiederholten Zuständen in eine Schleife geraten, und ein unendlicher Raum kann immer wieder irreführende niedrige Schätzungen bieten. Zeit- und Speicherkomplexität im schlechtesten Fall betragen , obwohl eine nützliche Schätzung einen tatsächlichen Ablauf kurz halten kann.
Ein Ort kann in Luftlinie nahe an einem Ziel liegen, aber einen langen Umweg um einen Fluss erfordern. Kleine heuristische Werte garantieren keine guten Gesamtrouten. Auch die Berechnung der Heuristik benötigt Zeit: Weniger Expansionen helfen nur, wenn die Berechnung der Schätzungen die Einsparung nicht aufzehrt.
Wichtige Erkenntnisse
- Eine Heuristik schätzt verbleibende Kosten und hängt vom Zustand ab.
- Die gierige Bestensuche ordnet nach und ignoriert die bisher angefallenen Kosten.
- Selbst eine zulässige Heuristik macht die gierige Suche nicht kostenoptimal.
- Graphensuche in endlichen Räumen behandelt Duplikate; baumartige gierige Suche kann in eine Schleife geraten.
3.2 Finde mit der A*-Suche optimale Pfade
A* bewertet die gesamte vorgeschlagene Reise: die bereits angefallenen Kosten plus eine Schätzung der verbleibenden Kosten. Seine Priorität ist
Verwende eine Prioritätswarteschlange, ersetze teurere Pfade und prüfe ein Ziel beim Entnehmen. An einem Ziel gilt , sodass seine Priorität seinen tatsächlichen Pfadkosten entspricht.
Vollziehe die Regel aus Kosten und Schätzung nach
Die Straßen in beide Richtungen sind S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 und D–G 2 km. Die heuristischen Schätzungen bis G sind S 8, A 7, B 5, C 4, D 2 und G 0. Löse Gleichstände alphabetisch auf.
| Entnommener Knoten | Was sich ändert |
|---|---|
| S, | Füge B mit , A mit und D mit hinzu |
| B, | Füge C mit hinzu; D über B ist nicht günstiger |
| C, | Füge G mit hinzu |
| A, | C über A kostet 6 und ist damit schlechter als die gespeicherte 4 |
| G, | Gib S–B–C–G mit Kosten von 9 km zurück |
A wird wegen der Gleichstandsregel vor G entnommen. A* expandiert vier Nichtzielknoten und nie D. Die uniforme Kostensuche auf derselben Karte expandiert auch D. Setzte man alle heuristischen Schätzungen auf null, entfiele diese Orientierung und man erhielte die uniforme Kostensuche.
Erkläre, warum eine optimistische Schätzung funktioniert
Eine zulässige Heuristik übersteigt nie die tatsächlichen Restkosten . Für A* mit Wiederöffnen garantiert Zulässigkeit Kostenoptimalität; baumartiges A* hat unter den Suchbedingungen mit positiven Kosten dieselbe Garantie.
Angenommen, ein schlechteres Ziel mit Kosten stünde kurz vor der Entnahme. Ein Knoten auf einem optimalen Pfad muss noch ausstehen. Für seinen Anfangsabschnitt auf dem optimalen Pfad gilt:
Die Warteschlange muss diesen Knoten vor dem schlechteren Ziel auswählen. Das widerspricht dem angenommenen Abbruchzeitpunkt. Das Wiederöffnen ist wichtig, weil ein später entdeckter günstigerer Anfangsabschnitt durch einen bereits expandierten Zustand weiterverfolgt werden können muss.
Eine konsistente Heuristik sorgt dafür, dass entlang von Pfaden monoton nicht fällt. Sie stellt sicher, dass bei der ersten Expansion eines Zustands ein günstigster Pfad dorthin verwendet wird. A* kann expandierte Zustände dann dauerhaft abschließen. Bei bloßer Zulässigkeit kann eine dauerhafte abgeschlossene Menge eine entscheidende Verbesserung verwerfen.
Verstehe die Beschneidung und ihre Grenzen
Bei Konsistenz expandiert A* jeden relevanten Knoten, für den gilt, möglicherweise Knoten mit dem gleichen Wert und vor der Rückgabe keine oberhalb dieses Werts. Die Priorität 11 von D übersteigt die Lösungskosten 9, sodass D nicht expandiert wird. In der Klasse vorwärts Pfade aufbauender Algorithmen, die dieselbe heuristische Information nutzen, ist A* abgesehen von Gleichständen optimal effizient. Dies ist ein Vergleich notwendiger Expansionen und keine Aussage, dass sein Programmcode immer am schnellsten läuft.
Überschätzung kann das Argument entkräften. Ändere die Schätzung für B auf 9, obwohl seine tatsächlichen Restkosten 6 betragen. B hat nun Priorität 12. A* folgt S, A, C und D und gibt S–A–C–G zu Kosten von 11 zurück, während B noch wartet.
A* hat weiterhin einen exponentiellen schlechtesten Fall und speichert erzeugte Suchinformationen.
Wichtige Erkenntnisse
- A* ordnet Pfade nach und prüft Ziele beim Entnehmen.
- Zulässigkeit garantiert Kostenoptimalität für A*, das verbesserte Zustände wiederöffnet.
- Konsistenz erlaubt das dauerhafte Abschließen nach der ersten Expansion eines Zustands.
- Überschätzung kann die optimale Route verzögern, bis ein schlechteres Ziel zurückgegeben wurde.
- Gleichstände bei den optimalen Kosten können die Anzahl der Expansionen beeinflussen.
- A* mit einer Heuristik von null ist uniforme Kostensuche; gewöhnliches A* kann erheblichen Speicher benötigen.
3.3 Wäge Optimalität gegen Laufzeit oder Speicherbedarf ab
Wenn die Suchfront nicht mehr in den Speicher passt oder eine Antwort zu langsam eintrifft, wähle, welche Ressource oder Garantie du eintauschen möchtest. Auf Geschwindigkeit ausgelegte Varianten ändern Prioritäten oder verwerfen Kandidaten. Auf Speicherersparnis ausgelegte Varianten erzeugen Pfade erneut, die sie nicht speichern konnten.
Gewichte die Schätzung stärker
Gewichtetes A* verwendet mit . Es bevorzugt normalerweise stärker den Fortschritt in Richtung eines Ziels. Mit einer zulässigen Heuristik sowie den Aktualisierungen bei besseren Pfaden und dem Wiederöffnen des allgemeinen Verfahrens betragen die zurückgegebenen Kosten höchstens . Diese Schranke erlaubt eine schlechtere Lösung, verlangt sie aber nicht.
Verwende auf der Straßenkarte aus den Beispielen die Schätzungen S 8, A 7, B 5, C 4, D 2 und G 0 sowie das Gewicht 2. Von S aus sind die Prioritäten B 13, D 13 und A 16. Bei alphabetischer Auflösung des Gleichstands wird B gewählt. Sein Kindknoten C hat ; C erzeugt dann G mit Priorität 9. Die Route mit Kosten von 9 wird nach drei Expansionen von Nichtzielknoten zurückgegeben. Die Garantie erlaubt bis zu 18 km, obwohl dieser Durchlauf das Optimum findet.
In derselben Formel ergibt Gewicht 0 die uniforme Kostensuche und Gewicht 1 A*. Mit wachsendem Gewicht dominiert die Schätzung die Vergleiche zunehmend und das Verhalten nähert sich der gierigen Suche an.
Die Strahlsuche behält nur die besten ausstehenden Knoten und verwirft den Rest. Die gespeicherte Suchfront ist beschränkt, aber ein verworfener Kandidat kann die einzige Lösung enthalten. Daher gibt das Verfahren weder eine Vollständigkeits- noch eine Optimalitätsgarantie.
Vertiefe anhand eines Schwellenwerts für geschätzte Kosten
IDA* führt eine Tiefensuche mit einem Schwellenwert für durch. Der erste Schwellenwert ist der Wert der Wurzel. Beschneide jeden Knoten oberhalb des Schwellenwerts und halte den kleinsten überschrittenen Wert fest. Dieser wird zum nächsten Schwellenwert; er ist nicht unbedingt der alte Schwellenwert plus 1. Verwende Zyklusprüfungen entlang des Pfads.
Für die Beispielkarte beträgt der erste Schwellenwert 8. A bei 9 und D bei 11 werden beschnitten; B und C bei 8 werden untersucht, aber G bei 9 wird beschnitten. Der nächste Schwellenwert ist 9. In dieser Iteration erzeugt der Pfad über A den Knoten C bei 10 und wird beschnitten. Der Pfad S–B–C–G bleibt innerhalb von 9 und führt zum Erfolg.
Bei Zulässigkeit erhält IDA* die Kostenoptimalität und benötigt nur Speicher für einen Pfad wie bei der Tiefensuche. Die wiederholten Durchläufe können aufwendig sein, wenn die Kosten viele verschiedene Schwellenwerte ergeben. Kleine ganzzahlige Kosten machen die Anzahl der Schwellenwerte oft besser beherrschbar.
Nutze beschränkten Speicher gezielter
Die rekursive Bestensuche (RBFS) speichert auf jeder Ebene die beste alternative Priorität. Sie folgt dem vielversprechendsten Zweig, bis diese Alternative besser wird, und geht dann zurück. Sie benötigt linearen Speicher, kann aber vergessene Zweige erneut erzeugen.
SMA* nutzt den verfügbaren Speicher, verwirft bei vollem Speicher das schlechteste Blatt der Suchfront und überträgt dessen Wert zurück an seinen Elternknoten. Dieser Eintrag erlaubt eine spätere erneute Erzeugung. Mit einer zulässigen Heuristik ist das Verfahren kostenoptimal, wenn ein optimaler Lösungspfad in den Speicher passt. Andernfalls kann es eine schlechtere Lösung zurückgeben oder scheitern, wenn kein Lösungspfad hineinpasst.
Wähle A* für eine optimale Antwort, wenn der Speicher ausreicht. Wähle IDA* oder eine geeignete speicherbeschränkte Variante, wenn Optimalität wichtig ist, aber die Suchfront nicht hineinpasst. Gewichtetes A* bietet eine numerische Qualitätsschranke; die Strahlsuche bietet starke Beschneidung ohne diese Schranke.
Wichtige Erkenntnisse
- Gewichtetes A* verwendet und kann unter seiner Garantie bei zulässiger Heuristik eine Lösung mit Kosten bis zu zurückgeben.
- Die Strahlsuche verwirft Kandidaten und kann die einzige Lösung verlieren.
- IDA* erhöht seinen Schwellenwert auf den kleinsten überschrittenen -Wert.
- RBFS und SMA* können vergessene Arbeit erneut ausführen, um den Speicherbedarf zu begrenzen.
- SMA* benötigt genügend Speicher für einen optimalen Lösungspfad, um Optimalität zu garantieren.
4Entwickle und bewerte Heuristiken
Eine nützliche Heuristik muss sowohl zum Problem als auch zur benötigten Garantie passen. Zulässigkeit vergleicht ihre Schätzung mit den tatsächlichen Restkosten; Konsistenz vergleicht benachbarte Schätzungen für jede Aktion. Das Aufheben von Beschränkungen bietet eine praktische Möglichkeit, diese Eigenschaften zu beweisen, ohne das ursprüngliche Problem zu lösen. Dominanz und effektiver Verzweigungsfaktor helfen anschließend beim Vergleich der Orientierung durch die Heuristiken, während Zeitmessungen ihren Berechnungsaufwand zeigen.
4.1 Prüfe Heuristiken auf Zulässigkeit und Konsistenz
Eine Heuristik kann insgesamt optimistisch sein und sich dennoch zwischen benachbarten Zuständen zu stark ändern. Zulässigkeit und Konsistenz erfassen diese unterschiedlichen Prüfungen, und jede Eigenschaft stützt eine andere Version von A*.
Vergleiche Schätzungen mit tatsächlichen Kosten
Eine zulässige Heuristik erfüllt in jedem Zustand . An einem Ziel sind die tatsächlichen Restkosten null, also muss auch seine Schätzung null sein. Zulässig bedeutet nicht genau: Überall null ist sicher, gibt aber keine Richtung vor.
Auf der Straßenkarte aus den Beispielen sind die Schätzungen und exakten günstigsten Restentfernungen bis G:
| Zustand | Schätzung | Tatsächliche Restkosten |
|---|---|---|
| S | 8 | 9 |
| A | 7 | 9 |
| B | 5 | 6 |
| C | 4 | 5 |
| D | 2 | 2 |
| G | 0 | 0 |
Jede Schätzung ist höchstens so groß wie die tatsächlichen Kosten. Bei einem großen Problem kann die Berechnung dieser exakten Kosten genauso schwer sein wie die ursprüngliche Suche. Ein Beweis anhand der Struktur des Problems ist dann nützlicher als eine vollständige Tabelle.
Prüfe jede Aktion
Konsistenz, auch Monotonie genannt, verlangt für jede Aktion sowie null an Zielen. Die aktuelle Schätzung darf die Kosten eines Schritts plus die Schätzung des Nachfolgers nicht übersteigen.
Auf der Straßenkarte ergibt A→C die Ungleichung , C→B ergibt und D→G ergibt . Straßen in beide Richtungen erfordern die Prüfung beider Richtungen. Alle 16 gerichteten Prüfungen sind für diese Schätzungen erfüllt.
Addiert man die Ungleichungen entlang eines Pfads zu einem Ziel, heben sich die dazwischenliegenden Schätzungen auf. Auf einem optimalen Pfad ergibt sich , also folgt aus Konsistenz die Zulässigkeit. Außerdem ergibt sich
Prioritäten können entlang eines Pfads nicht fallen. Die erste Expansion eines Zustands erfolgt daher auf einem günstigsten Pfad, selbst wenn seine erste Erzeugung teurer war.
Erkenne, warum bloße Zulässigkeit das Wiederöffnen erfordert
Betrachte Straßen in beide Richtungen S–A 1, A–C 1, S–B 1, B–C 2 und C–G 3. Die Schätzungen seien S 0, A 4, B 1, C 1 und G 0. Sie übersteigen die tatsächlichen Kosten S 5, A 4, B 5, C 3 und G 0 nicht und sind daher zulässig. Aber A→C verletzt die Konsistenz: .
A* expandiert S, dann B mit Priorität 2 und dann C, das zu Kosten von 3 mit Priorität 4 erreicht wurde. Anschließend expandiert es A mit Priorität 5 und entdeckt einen günstigeren Pfad zu C mit Kosten von 2. Wird C dauerhaft verworfen, weil es abgeschlossen ist, bleibt ein Ziel mit Kosten von 6. Das Wiederöffnen von C gibt die Verbesserung weiter und ergibt das Optimum mit Kosten von 5.
Passe die Heuristik an das Bewegungsmodell an
Die Manhattan-Distanz ist für horizontale und vertikale Züge der Länge eins zulässig und konsistent. Kosten auch diagonale Züge 1, benötigt die Reise von (0, 0) nach (3, 3) nur drei Züge, während die Manhattan-Distanz 6 angibt. Für dieses Bewegungsmodell ergibt die Entfernung ohne Hindernisse. Die Garantie einer Heuristik gilt für ein bestimmtes Aktionsmodell.
Wichtige Erkenntnisse
- Zulässigkeit beschränkt eine Schätzung durch die tatsächlichen Restkosten.
- Konsistenz prüft jede gerichtete Aktion und verlangt null an Zielen.
- Aus Konsistenz folgt Zulässigkeit; aus Zulässigkeit folgt keine Konsistenz.
- Konsistente Heuristiken sorgen dafür, dass entlang eines Pfads monoton nicht fällt.
- Zulässige, aber inkonsistente Heuristiken erfordern für die allgemeine A*-Garantie das Wiederöffnen.
- Eine Änderung der erlaubten Züge kann eine Heuristik ungültig machen.
4.2 Leite zulässige Heuristiken aus relaxierten Problemen ab
Um eine sichere Schätzung zu entwickeln, löse eine einfachere Version des Problems. Ein relaxiertes Problem entfernt Aktionsbeschränkungen, sodass jede ursprüngliche Lösung weiterhin verfügbar ist. Seine geringsten Kosten können die geringsten ursprünglichen Kosten nicht übersteigen.
Entferne Beschränkungen gezielt
Exakte Kosten des relaxierten Problems ergeben eine zulässige Heuristik. Sie ist auch konsistent, wenn die ursprünglichen Aktionen mit ihren Kosten verfügbar bleiben: Ein ursprünglicher Schritt und danach eine optimale relaxierte Route ergeben eine mögliche relaxierte Route, sodass das relaxierte Optimum nicht mehr kosten kann.
Beim 8-Puzzle kann eine Kachel nur dann auf ein benachbartes Feld ziehen, wenn dieses Feld leer ist. Entfernt man die Bedingung des leeren Feldes, können Kacheln durch besetzte Felder hindurchziehen. Jede nummerierte Kachel benötigt dann mindestens ihre horizontale plus ihre vertikale Entfernung zu ihrem Ziel. Die Summe ergibt die Manhattan-Distanz .
Entfernt man auch die Bedingung der Nachbarschaft, kann jede falsch platzierte Kachel in einem Zug direkt zu ihrem Ziel springen. Die entstehenden Kosten sind die Anzahl der falsch platzierten Kacheln . Beide lassen sich leicht berechnen, ohne das ursprüngliche Puzzle zu durchsuchen.
Berechne beide Schätzungen
Betrachte für das Ziel „1 2 3 / 4 5 6 / 7 8 leer“ den Zustand „5 1 3 / 4 leer 2 / 7 8 6“. Nummeriere Zeilen und Spalten ab 1.
| Kachel | Aktuelle Position | Zielposition | Entfernung |
|---|---|---|---|
| 5 | (1, 1) | (2, 2) | 2 |
| 1 | (1, 2) | (1, 1) | 1 |
| 2 | (2, 3) | (1, 2) | 2 |
| 6 | (3, 3) | (2, 3) | 1 |
Die anderen nummerierten Kacheln liegen bereits richtig. Vier sind falsch platziert, also gilt . Ihre Entfernungen ergeben zusammen , also gilt . Die optimale Lösung benötigt 12 Züge; die Relaxationen ignorieren Wechselwirkungen, die zusätzliche Arbeit verursachen.
Zähle das leere Feld nicht mit. Einen Zug vom Ziel entfernt sind eine nummerierte Kachel und das leere Feld beide verschoben. Würde man beide zählen, ergäbe sich 2 bei tatsächlichen Kosten von 1. Das leere Feld ermöglicht Züge; es ist keine zusätzliche Kachel, für die Kosten anfallen.
Speichere gelöste Teilprobleme
Eine Musterdatenbank erfasst exakte Kosten für ein ausgewähltes Teilproblem, etwa die korrekte Platzierung der Kacheln 1 bis 4, während andere Kacheln als austauschbar behandelt werden. Erstelle die Tabelle einmal durch Rückwärtssuche vom Ziel aus. Schlage während einer neuen Suche den Wert nach, statt das Teilproblem erneut zu lösen.
Das Teilproblem benötigt nicht mehr Arbeit als das vollständige Problem und liefert damit eine untere Schranke. Das Addieren zweier gewöhnlicher Musterkosten kann jedoch denselben realen Zug doppelt anrechnen. Die Addition ist bei disjunkten Mustern sicher, wenn jede Datenbank nur Züge ihrer eigenen Kacheln zählt. Disjunkte Kachelnamen allein begründen diese Regel der Kostenrechnung nicht.
Kombiniere sichere Schätzungen
Das Maximum zulässiger Schätzungen ist zulässig:
Jeder Kandidat bleibt unter den tatsächlichen Restkosten oder ist gleich groß, also gilt das auch für ihr Maximum. Es ist mindestens so aussagekräftig wie jede einzelne Schätzung. Eine einfache Summe bietet diesen Schutz nicht.
Eine aus gelösten Beispielen gelernte Heuristik kann die Restkosten im Durchschnitt gut vorhersagen. Durchschnittliche Genauigkeit begründet keine untere Schranke für jeden Zustand. Sie erhält die Garantie von A* für zulässige Heuristiken nur, wenn nachgewiesen wird, dass ihre Schätzungen nie überschätzen.
Wichtige Erkenntnisse
- Die exakten Kosten eines relaxierten Problems sind eine untere Schranke der ursprünglichen Kosten.
- Die Anzahl falsch platzierter Kacheln und die Manhattan-Distanz stammen aus unterschiedlichen Relaxationen des 8-Puzzles.
- Lass das leere Feld bei der Berechnung beider Puzzleheuristiken weg.
- Musterdatenbanken tauschen Vorberechnung und Tabellenspeicher gegen schnelles Nachschlagen ein.
- Addiere Musterkosten nur bei einer Kostenrechnung, die das doppelte Zählen von Zügen verhindert.
- Das Maximum zulässiger Heuristiken ist zulässig.
- Das Lernen einer Heuristik beweist für sich genommen keine Zulässigkeit.
4.3 Vergleiche Heuristiken anhand von Dominanz und effektivem Verzweigungsfaktor
Eine genauere Schätzung kann die Exploration verringern, doch eine aufwendige Schätzung kann die Suche trotzdem verlangsamen. Vergleiche sowohl die gelieferten Informationen als auch den gesamten erforderlichen Rechenaufwand.
Weise Dominanz für jeden Zustand nach
Eine zulässige Heuristik dominiert die zulässige Heuristik , wenn überall gilt. Ein günstiges Brett allein reicht nicht aus, um diese Beziehung zu beweisen.
Die Manhattan-Distanz dominiert beim 8-Puzzle die Anzahl falsch platzierter Kacheln. Jede falsch platzierte Kachel muss sich mindestens ein Feld bewegen, sodass ihr Beitrag zur Manhattan-Distanz mindestens die 1 beträgt, die die schwächere Heuristik zählt. Eine richtig platzierte Kachel trägt zu beiden null bei.
Mit konsistenten Schätzungen muss A* Pfade mit expandieren. Wird eine sichere Schätzung erhöht, fallen einige Pfade aus diesem zwingend zu expandierenden Bereich heraus. Eine dominierende konsistente Heuristik expandiert abgesehen von Unterschieden bei Gleichständen nicht mehr Knoten. Eine unzulässige Schätzung kann noch größer sein, verliert aber die Optimalitätsgarantie und kommt für diesen Dominanzvergleich nicht infrage.
Fasse den Suchaufwand zusammen
Der effektive Verzweigungsfaktor beschreibt die Breite eines entsprechenden gleichmäßigen Baums. Zähle erzeugte Knoten unterhalb der Wurzel und sei die Lösungstiefe. Löse
Die zusätzliche 1 berücksichtigt die Wurzel. Eine einheitliche Zählweise ist wichtig: Wenn eine Messung die Wurzel bereits enthält, addiere sie nicht ein zweites Mal.
Für 52 erzeugte Knoten unterhalb der Wurzel und die Lösungstiefe 5 beträgt die Gesamtzahl 53 und es gilt . Für 1.000 erzeugte Knoten und Tiefe 8 gilt . Bestimme diese Werte numerisch, indem du einen Versuchswert erhöhst oder verringerst, bis seine geometrische Summe mit der Gesamtzahl der Knoten übereinstimmt.
Ein Wert nahe 1 weist auf eine schmale Suche hin. Vergleiche Ergebnisse über repräsentative Instanzen hinweg mit derselben Zählregel und vergleichbaren Lösungstiefen. Der effektive Verzweigungsfaktor kann helfen, die Skalierung zu schätzen, aber eine ungewöhnlich einfache Instanz ist keine verlässliche Vorhersage für eine ganze Problemfamilie.
Miss die Zeit für die gesamte Berechnung
Angenommen, ein Knoten benötigt 10 Mikrosekunden, einschließlich 1 Mikrosekunde zur Berechnung der alten Heuristik. Ein Ersatz halbiert die Knotenzahl, benötigt aber 100 Mikrosekunden pro Berechnung. Die übrige Arbeit kostet weiterhin 9 Mikrosekunden, sodass die neuen Gesamtkosten pro Knoten 109 betragen. Das Verhältnis der Gesamtzeiten ist
Die Suche ist etwa 5,5-mal langsamer, obwohl sie weniger Knoten besucht. Benötigt die neue Berechnung nur 2 Mikrosekunden, steigt die Gesamtzeit pro Knoten auf 11 und das Zeitverhältnis beträgt . Das ist etwa 1,8-mal schneller.
Auch eine Musterdatenbank verursacht Erstellungskosten. Viele Suchen mit demselben Ziel können sich diese Investition teilen; eine kleine Suche allein macht sie möglicherweise nicht wett. Miss Vorverarbeitung, Nachschlagezeit, erzeugte Knoten und Speicher getrennt, damit weniger Expansionen nicht mit einer automatischen Beschleunigung verwechselt werden.
Wichtige Erkenntnisse
- Dominanz erfordert zwei zulässige Heuristiken und eine Ungleichung, die in jedem Zustand gilt.
- Eine dominierende konsistente Heuristik verringert abgesehen von Gleichständen die notwendigen A*-Expansionen.
- Der effektive Verzweigungsfaktor bestimmt einen gleichmäßigen Baum passend zu Knotenzahl und Lösungstiefe.
- Zähle die Wurzel bei Verwendung der Gleichung für die geometrische Summe einmal.
- Die Gesamtlaufzeit umfasst die Berechnung der Heuristik und jede Vorberechnung.
5Nutze lokale Suche für sehr große Zustandsräume
Manche Probleme verlangen eine gute Anordnung, keinen Weg dorthin. Lokale Suche arbeitet direkt mit vollständigen Kandidaten und speichert nur sehr wenig Suchverlauf. Die Herausforderung verlagert sich von der Verwaltung einer Suchfront zur Bewegung durch eine Landschaft mit lokalen Optima, flachen Bereichen und Graten. Bergsteigen, Neustarts, simulierte Abkühlung und populationsbasierte Verfahren unterscheiden sich darin, wie sie weiter vorankommen, wenn keine unmittelbare Verbesserung verfügbar ist.
5.1 Beschreibe lokale Suche und die Landschaft des Zustandsraums
Lokale Suche verändert wiederholt einen vollständigen Lösungskandidaten. Sie eignet sich für Aufgaben, bei denen die endgültige Konfiguration zählt und die Folge der Schritte zu ihrer Ermittlung verworfen werden kann.
Stelle einen vollständigen Kandidaten dar
Setze beim 8-Damen-Problem eine Dame in jede Spalte. Stelle den Zustand durch die acht Zeilennummern dar und lies die Spalten von links nach rechts. Jeder Zustand enthält alle acht Damen, auch Zustände mit Konflikten. Bei einem Nachbarn wird eine Dame in eine andere Zeile ihrer eigenen Spalte bewegt.
Es gibt Zustände und Nachbarn pro Zustand. Eine feste Anzahl aktueller Zustände ersetzt die große Suchfront und die Elternverweise der Pfadsuche. Der Speicherbedarf hängt weiterhin von der Größe eines Zustands ab; ein Tupel mit acht Einträgen zu speichern ist weniger aufwendig als ein riesiger Stundenplan.
Stundenplanung, Chipentwurf und die Wahl einer vollständigen Rundreise durch Städte folgen demselben allgemeinen Muster: Jeder Zustand ist ein vollständiger Vorschlag. Eine Rundreise ist selbst eine mögliche Anordnung, obwohl ihr Inhalt eine Reise beschreibt. Lokale Suche muss die Folge der Änderungen zur Verbesserung dieser Rundreise nicht bewahren.
Definiere, was besser bedeutet
Eine Zielfunktion gibt jedem Zustand einen zu maximierenden Wert. Gleichwertig kannst du zu minimierende Kosten definieren. Beim n-Damen-Problem zähle mit die Paare von Damen, die einander angreifen. Zähle jedes Paar einmal, einschließlich Angriffen entlang von Zeilen oder Diagonalen, selbst wenn eine andere Dame dazwischenliegt. Für eine Lösung gilt .
Bei vier Spalten setzt das Tupel (1, 2, 3, 4) alle Damen auf eine Diagonale. Alle seine Paare greifen einander an. Das Tupel (2, 1, 3, 4) hat zwei angreifende Paare, während (2, 4, 1, 3) keine hat. Hier sind niedrigere Werte besser; der Buchstabe bezeichnet Zielfunktionskosten, keine von A* verwendete Schätzung verbleibender Pfadkosten.
Interpretiere die Landschaft
Stelle dir die Qualität eines Zustands als Höhe vor. Für die Maximierung gilt:
- Ein globales Maximum hat den besten Wert im gesamten Raum.
- Ein lokales Maximum ist besser als seine Nachbarn, kann aber schlechter als ein weit entfernter Zustand sein.
- Ein Plateau ist ein zusammenhängender flacher Bereich. Es kann ein flaches lokales Maximum ohne aufwärtsführenden Ausgang oder eine Schulter sein, von der aus Seitwärtsschritte einen aufwärtsführenden Ausgang erreichen können.
- Ein Grat kann in eine Richtung ansteigen, der die verfügbaren einzelnen Züge nicht folgen können. Jede unmittelbare Wahl kann schlechter aussehen.
Bei der Kostenminimierung kehre die Höhe um: Die Suche sucht Minima und Täler. Ein lokales Minimum ist kein Beweis dafür, dass anderswo kein Zustand mit niedrigeren Kosten existiert. Die Nachbarschaft bestimmt, welche Zustände in einem Schritt verglichen werden können. Eine Änderung der erlaubten Bearbeitung kann daher verändern, wo die Suche stecken bleibt.
Prüfe, ob der Pfad ignoriert werden kann
Ein Agent zur Wegfindung muss zulässige Aktionen von seinem tatsächlichen Start aus zurückgeben. Ein gutes Ziel allein genügt nicht. Lokale Suche gibt im Allgemeinen nur den Kandidatenzustand zurück, ohne eine Elternkette durch alle früheren Änderungen.
Ein vollständiges lokales Suchverfahren fände ein Ziel, wann immer eines existiert; ein optimales fände das globale Optimum. Einfache lokale Verfahren bieten keine dieser allgemeinen Garantien. Ihr Vorteil ist, dass sie schnell gute Kandidaten erreichen können, wenn die Speicherung eines systematischen Suchbaums nicht praktikabel ist.
Wichtige Erkenntnisse
- Lokale Suche verändert vollständige Kandidatenzustände und verwirft meist den Pfad der Änderungen.
- Eine Zielfunktion definiert, welche benachbarten Zustände besser sind.
- Ein lokales Optimum kann schlechter sein als ein entferntes globales Optimum.
- Eine Schulter hat einen aufwärtsführenden Ausgang, der durch Züge zu gleichwertigen Zuständen erreichbar ist.
- Die Nachbarschaft beeinflusst sowohl die Suchlandschaft als auch die Stellen, an denen der Fortschritt endet.
5.2 Gelange durch Bergsteigen zu besseren Zuständen
Bergsteigen führt die beste unmittelbar auffindbare Verbesserung aus. Bei einem zu maximierenden Wert wählt Bergsteigen mit steilstem Anstieg den Nachbarn mit dem höchsten Wert. Bei zu minimierenden Kosten wählt es den Nachbarn mit den niedrigsten Kosten. Es hält an, wenn keine strikte Verbesserung existiert.
Verfolge einen Durchlauf mit vier Damen
Ein Zustand gebe die Zeile der Dame in jeder Spalte an und zähle angreifende Paare. Beginne mit (1, 2, 3, 4), dessen Kosten 6 betragen.
- Bewerte die Züge mit jeweils einer Dame. Ein bester Nachbar ist (2, 2, 3, 4) mit Kosten von 4.
- Von dort ist ein bester Nachbar (2, 1, 3, 4) mit Kosten von 2.
- Kein Nachbar, der durch den Zug einer Dame entsteht, hat Kosten unter 2. Das strikte Bergsteigen hält an.
Die Anordnung (2, 4, 1, 3) mit Kosten von null existiert, kann aber vom erreichten Zustand aus nicht durch einen unmittelbar verbessernden Zug erreicht werden. Dies ist eine Folge der lokalen Regel und kein Beleg dafür, dass das Programm Konflikte falsch gezählt hat.
Erlaube nützliche Seitwärtsbewegungen
Ein Seitwärtsschritt behält denselben Wert bei. Er kann eine Schulter zu einem verbessernden Ausgang überqueren, aber auch auf einem flachen lokalen Optimum umherwandern. Beschränke aufeinanderfolgende Seitwärtsschritte, um endlose Zyklen zu vermeiden.
In dem von Russell und Norvig beschriebenen Experiment zum 8-Damen-Problem ist Bergsteigen mit steilstem Anstieg von zufälligen Starts aus in etwa 14 % der Fälle erfolgreich und benötigt bei Erfolg etwa 4 Schritte und beim Steckenbleiben 3. Erlaubt man bis zu 100 aufeinanderfolgende Seitwärtsschritte, steigt der berichtete Erfolg auf etwa 94 %, mit etwa 21 Schritten pro Erfolg und 64 pro Misserfolg. Dies sind Ergebnisse dieses Experiments, keine allgemeinen Erfolgsraten für Bergsteigen.
Ändere die Auswahl eines Nachbarn
Stochastisches Bergsteigen wählt zufällig einen verbessernden Nachbarn aus und kann dabei größere Verbesserungen bevorzugen. Bergsteigen mit erster Verbesserung zieht Nachbarn einzeln und nimmt die erste Verbesserung. So vermeidet es, vor jedem Zug eine riesige Nachbarschaft auszuwerten. Beide lehnen weiterhin schlechtere Züge ab.
Bergsteigen mit zufälligem Neustart beginnt nach einem fehlgeschlagenen Durchlauf einen neuen Durchlauf von einem neu zufällig gezogenen Zustand aus. Bei unabhängigen Durchläufen mit Erfolgswahrscheinlichkeit beträgt die erwartete Anzahl der Durchläufe bis einschließlich zum ersten Erfolg . Für sind das etwa 7 Durchläufe. Mit den berichteten Schrittzahlen beträgt die erwartete Gesamtzahl der Schritte
Auch die fehlgeschlagenen Durchläufe verursachen Arbeit. Bei positiver Erfolgswahrscheinlichkeit und unabhängigen Neustarts nähert sich die Wahrscheinlichkeit eines späteren Erfolgs mit wachsender Anzahl der Durchläufe der 1 an.
Lass mehrere Kandidaten Entdeckungen teilen
Die lokale Strahlsuche behält Zustände, erzeugt ihre Nachbarn gemeinsam und behält die besten aus dieser zusammengefassten Auswahl. Ein vielversprechender Elternknoten kann mehrere verbleibende Zustände beitragen, während ein anderer keinen beiträgt. Dieses Teilen unterscheidet das Verfahren von unabhängigen Neustarts.
Das Zusammenfassen kann auch dazu führen, dass sich alle Kandidaten in einer Region häufen. Die stochastische Strahlsuche zieht verbleibende Zustände mit einer Wahrscheinlichkeit, die mit der Qualität steigt, um mehr Vielfalt zu erhalten. Die Wahl zwischen Seitwärtsschritten, Neustarts und Vielfalt in der Population hängt davon ab, warum der Fortschritt ausbleibt: wegen einer nahe gelegenen Brücke aus gleichwertigen Zuständen, einer ungünstigen Startregion oder zu vieler Kandidaten, die denselben Bereich erkunden.
Wichtige Erkenntnisse
- Bergsteigen mit steilstem Anstieg akzeptiert die beste strikte Verbesserung und hält andernfalls an.
- Seitwärtsschritte können Schultern überqueren, brauchen aber in flachen Bereichen eine Beschränkung.
- Bergsteigen mit erster Verbesserung zieht Nachbarn, bis es eine Verbesserung findet.
- Unabhängige Neustarts mit Erfolgswahrscheinlichkeit benötigen durchschnittlich Durchläufe.
- Lokale Strahlsuche wählt aus zusammengefassten Nachbarn aus, sodass Kandidaten ihren Fortschritt teilen.
- Eine Häufung der Population kann die Exploration verringern, selbst wenn mehrere Zustände behalten werden.
5.3 Entkomme lokalen Optima mit simulierter Abkühlung und genetischen Algorithmen
In manchen Landschaften muss vorübergehend eine Verschlechterung in Kauf genommen werden, bevor ein besserer Zustand erreichbar wird. Simulierte Abkühlung erlaubt solche Züge mit einer kontrollierten Wahrscheinlichkeit. Genetische Algorithmen erkunden den Raum dagegen durch die Auswahl und Kombination vollständiger Kandidaten.
Akzeptiere gelegentlich einen schlechteren Zug
Die simulierte Abkühlung zieht einen zufälligen Nachbarn. Akzeptiere einen verbessernden Zug. Schreibe für eine zu maximierende Zielfunktion ihre Änderung als . Gilt , akzeptiere den schlechteren Zug mit der Wahrscheinlichkeit
Bei der Kostenminimierung sei der Anstieg der Kosten. Für einen schlechteren Zug gilt dann und die Akzeptanzwahrscheinlichkeit ist . Züge zu einem Zustand mit gleichem Wert haben nach beiden Formeln die Wahrscheinlichkeit 1. Temperatur und Änderungen der Zielfunktion müssen eine zueinander passende numerische Skala verwenden.
Ein Rückgang des Werts um 2 wird bei Temperatur 10 mit einer Wahrscheinlichkeit von etwa 0,819 akzeptiert, bei Temperatur 1 mit 0,135 und bei Temperatur 0,5 mit 0,018. Bei Temperatur 10 hat ein größerer Rückgang um 5 die Wahrscheinlichkeit von etwa 0,607. Die Temperatur steuert also die Toleranz, während bei gleicher Temperatur weiterhin die Größe der Verschlechterung zählt.
Senke die Temperatur
Ein Abkühlungsplan legt die Temperatur über die Zeit fest. Geometrische Abkühlung verwendet mit einem Faktor nahe 1, etwa 0,95. Bei hoher Temperatur werden viele schlechtere Züge akzeptiert und die Exploration ähnelt einem Zufallsweg. Nahe null werden schlechtere Züge selten und das Verhalten ähnelt dem Bergsteigen.
Zu schnelles Abkühlen kann die Suche festhalten, bevor sie einer ungünstigen Region entkommt. Sehr langsames Abkühlen erhöht den Rechenaufwand. Das asymptotische Ergebnis zum globalen Optimum erfordert ausreichend langsames Abkühlen und die übliche Möglichkeit, Zustände über die Nachbarschaft zu erreichen; ein gewöhnlicher endlicher geometrischer Durchlauf garantiert keinen globalen Erfolg. Das Verfahren wird seit den 1980er-Jahren für Chipentwurf und Ablaufplanung eingesetzt. Sein Name stammt vom Erhitzen und langsamen Abkühlen von Metall, sodass es eine energieärmere Struktur annimmt.
Erzeuge eine neue Population
Ein genetischer Algorithmus stellt Kandidaten als Zeichenketten dar. Jede Generation bewertet ihre Fitness, wählt Eltern unter Bevorzugung höherer Fitness aus, erzeugt Nachkommen durch Rekombination und wendet gelegentlich Mutationen an.
Beim 8-Damen-Problem beschreiben acht Zeilenziffern je eine Dame pro Spalte. Die Fitness kann die Anzahl der sich nicht angreifenden Paare zählen, wobei 28 das Maximum ist. Schneide die Elternzeichenketten „64751517“ und „64278273“ nach der vierten Ziffer. Die Kombination der jeweils anderen Hälften ergibt „64758273“ und „64271517“.
Die Eltern haben die Fitnesswerte 23 und 24; die Nachkommen haben die Fitnesswerte 27 und 21. Ein Nachkomme verbessert sich gegenüber beiden Eltern, während der andere schlechter ist. Rekombination bietet neue Kombinationen, garantiert aber keine Verbesserung. Sie ist nützlich, wenn gute Bausteine bei ihrer Kombination tendenziell ihren Wert behalten. Mutation verändert gelegentlich eine Position und hilft, über diese Kombinationen hinaus Vielfalt einzubringen.
Selektion, Rekombination und Mutation haben unterschiedliche Aufgaben: Selektion bevorzugt nützliche Kandidaten, Rekombination kombiniert sie neu und Mutation verändert einzelne Positionen. Wie die stochastische Strahlsuche verwaltet das Verfahren eine Population, aber neue Kandidaten können Material von zwei Eltern beziehen. Weder ein Elternteil mit hoher Fitness noch eine niedrige Endtemperatur allein beweist, dass das globale Optimum gefunden wurde.
Wichtige Erkenntnisse
- Die simulierte Abkühlung zieht einen Nachbarn und akzeptiert schlechtere Züge mit einer temperaturabhängigen Wahrscheinlichkeit.
- Bei einem Kostenanstieg beträgt die Akzeptanzwahrscheinlichkeit .
- Abkühlung verringert die Exploration; zu schnelles Abkühlen kann die Suche in einem lokalen Optimum festhalten.
- Genetische Algorithmen kombinieren fitnessbasierte Selektion, Rekombination und Mutation.
- Rekombination kann sowohl bessere als auch schlechtere Nachkommen erzeugen.
Uninformierte und informierte Suche: Beispiele
1Formuliere ein Problem als Suche
13 Schritte
- 1EinführungVon Wahlmöglichkeiten zu einer Lösung
Ein Suchalgorithmus erhält keine Anweisung wie „Löse das irgendwie“. Er erhält ein Modell möglicher Situationen (Zustände) und zulässiger Aktionen.
Erstelle dieses Modell anhand eines Schiebepuzzles und verfolge dann die dabei entstehenden Sucheinträge, die Knoten heißen. Das Modell beschreibt die Welt; die Einträge beschreiben die betrachteten Pfade. Diese Unterscheidung erklärt, warum zwei Knoten in einem Zustand enden können und warum das Speichern jedes möglichen Pfads aufwendig werden kann.
- 2BeispielSpezifiziere das Puzzle
Beim 8-Puzzle führt ein Zustand die Positionen von acht nummerierten Kacheln und dem leeren Feld auf. Der Anfangszustand ist das vorgegebene Brett.
Die Zielanordnung ist „1 2 3 / 4 5 6 / 7 8 leer“. Zulässige Aktionen bewegen das leere Feld nach links, rechts, oben oder unten, ohne das Brett zu verlassen. Der Übergang vertauscht es mit einer benachbarten Kachel. Jede Aktion kostet 1. Diese Festlegungen spezifizieren das Problem, bevor eine Suche beginnt.
- 3ErklärungGib Aktionen zurück, nicht nur ein Ziel
Der Zieltest erkennt ein erfolgreiches Brett. Eine Pfadlösung benötigt weiterhin die zulässigen Züge, die vom Anfangsbrett dorthin führen.
Wenn jeder Zug 1 kostet, kostet ein Pfad mit sechs Zügen 6. Bei unterschiedlichen Straßenkosten addiere stattdessen die Kantenkosten, statt Aktionen zu zählen. Ein Zielzustand sagt dir, wo du enden möchtest; die Lösung sagt dir, wie du dorthin gelangst, und die Pfadkosten sagen dir, was dieser Weg kostet.
- 4HerausforderungBehalte die Einzelheit, die Aktionen verändert
Ein Routenplaner modelliert einen Roboter anhand seines aktuellen Raums. Manche Türen erfordern einen Schlüssel, den der Roboter mit sich führen kann. Kann der Planer gefahrlos weglassen, ob der Roboter den Schlüssel hat?
---reveal---
Nein. Der Besitz des Schlüssels verändert die zulässigen Aktionen aus demselben Raum. Der Zustand muss ihn erfassen, andernfalls kann eine abstrakte Route das Durchqueren einer Tür enthalten, das der Roboter nicht ausführen kann. Die Lackfarbe des Roboters kann weggelassen werden, wenn sie weder Aktionen noch Kosten verändert.
- 5KernaussageErzeuge einen großen Raum nach Bedarf
Ein impliziter Raum ist eine Vorschrift für Nachfolger, keine gespeicherte Liste jedes Zustands. Das ist selbst bei klein wirkenden Puzzles wichtig: Das 8-Puzzle hat 181.440 erreichbare Zustände, während das 15-Puzzle etwa hat.
Die Suche erzeugt den Teil, den sie benötigt. Eine bessere Repräsentation kann auch diesen Teil verkleinern: Wird jede Dame nur in die nächste freie Spalte gesetzt, entfallen viele redundante Platzierungsreihenfolgen.
- 6ErklärungSpeichere in jedem Knoten einen Pfad
Ein Zustand ist eine Situation. Ein Knoten ist ein Pfadeintrag, der diesen Zustand, seinen Elternknoten, die eingehende Aktion und die bisher angefallenen Kosten enthält.
Die Routen „S, A, C“ und „S, B, C“ erzeugen unterschiedliche Knoten, die bei C enden. Die Karte enthält ein C, aber der Suchbaum kann beide Ankünfte enthalten. Folgt man den Elternverweisen von einem zurückgegebenen Ziel aus und kehrt die Aktionen um, erhält man dessen konkrete Route.
- 7BeispielUnterscheide ausstehende und erreichte Einträge
Auf der Karte mit Straßen in beide Richtungen hat S Straßen nach A für 2 km, B für 3 km und D für 9 km. Das Expandieren von S erzeugt drei Knoten mit Elternknoten S.
Die Suchfront enthält nun A, B und D, die auf ihre Auswahl warten. Die Tabelle der erreichten Zustände enthält neben diesen drei Zuständen auch S. Sie merkt sich erzeugte Zustände, nicht nur expandierte, sodass eine andere Route nicht unbemerkt ein unnötiges Duplikat eines ausstehenden Zustands hinzufügen kann.
- 8ErklärungGib eine Verbesserung weiter
Angenommen, C wird zuerst über A zu Kosten von 6 erreicht. Später bietet B eine Route zu C mit Kosten von 4. Ersetze den besten Eintrag für C einschließlich seines Elternknotens, sodass spätere Routen den günstigeren Anfangsabschnitt übernehmen.
Wenn C bereits expandiert wurde, müssen manche Algorithmen es wieder öffnen, um die Verbesserung weiterzugeben. Enthält ein Heap noch den alten Eintrag mit Kosten von 6, überspringe diesen veralteten Eintrag beim Entnehmen; er repräsentiert nicht mehr den besten Pfad zu C.
- 9HerausforderungStelle die richtige Route wieder her
Ein Zielknoten Z hat den Elternknoten M. Der beste Knoten für M hat den Elternknoten K und der Elternknoten von K ist die Wurzel R. Ein älterer Knoten für M hatte den Elternknoten P. Welche Route soll zurückgegeben werden?
---reveal---
Gib R–K–M–Z zurück, indem du der tatsächlichen Elternkette des zurückgegebenen Knotens rückwärts folgst und sie dann umkehrst. Der ältere Knoten für M beschreibt einen anderen Pfad. Würde sein Elternknoten mit den verbesserten Kosten vermischt, stimmte die angegebene Route nicht mit ihrem eigenen Sucheintrag überein.
- 10ErklärungStelle vier getrennte Fragen
Vollständig bedeutet, eine Lösung zu finden, wann immer eine existiert. Kostenoptimal bedeutet, die günstigste Lösung zurückzugeben. Ein unlösbarer unendlicher Raum muss nicht zu einer abschließenden Misserfolgsmeldung führen.
Zeit misst erzeugte oder expandierte Knoten; Speicher misst die maximal gespeicherte Information. Ein Verfahren kann vollständig sein und dennoch eine teure Route zurückgeben oder die günstigste Route zurückgeben und dabei zu viel Speicher benötigen, um bei einer größeren Instanz praktikabel zu sein.
- 11BeispielBeobachte das Wachstum der Schichten
Bei Verzweigungsfaktor 10 enthalten die Schichten bis Tiefe 5 insgesamt 1, 10, 100, 1.000, 10.000 und 100.000 Knoten. Zusammen enthalten sie 111.111 Knoten.
Die meisten liegen in der letzten Schicht. Deshalb ist eine zusätzliche Tiefenstufe so bedeutsam: Sie fügt vor Duplikatprüfungen weitere 1.000.000 Pfade hinzu. Bei 1 Kilobyte pro Knoten kann eine breite Exploration eine Speicherschranke erreichen, selbst wenn die Knotenerzeugung selbst schnell ist.
- 12HerausforderungVerwechsle einen kurzen Pfad nicht mit einem günstigen
Ein vollständiger Algorithmus gibt immer eine Route mit zwei Aktionen und Kosten von 17 Einheiten zurück, obwohl eine Route mit vier Aktionen 10 kostet. Ist er kostenoptimal, und beantwortet seine Vollständigkeit diese Frage?
---reveal---
Er ist nicht kostenoptimal, weil eine günstigere Lösung existiert. Vollständigkeit stellt fest, dass er eine Lösung findet, nicht welche Lösung er auswählt. Die zusätzlichen Aktionen machen die Route mit vier Aktionen nicht schlechter, wenn die Gesamtkosten das Ziel sind.
- 13ZusammenfassungInterpretiere einen Suchablauf zielgerichtet
Halte drei Ebenen auseinander: die Zustände und Aktionen des Problems, die als Knoten gespeicherten Pfade und die Regel zur Auswahl des nächsten Knotens der Suchfront. Frage dann, ob der zurückgegebene Pfad das gewünschte Ziel erfüllt.
Bestimme für Ressourcenvergleiche Verzweigungsfaktor, Lösungstiefe und maximale Tiefe. Prüfe neben dem, was expandiert wird, auch, was gespeichert wird; zwei Strategien können dasselbe Ziel mit sehr unterschiedlichem Speicherbedarf suchen.
2Vollziehe uninformierte Suche auf einer Karte nach
16 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungEine Karte, mehrere Suchreihenfolgen
- 2BeispielBeginne die Warteschlange der Breitensuche
- 3BeispielLass das erste Ziel erscheinen
- 4HerausforderungInterpretiere das Ergebnis der Breitensuche
- 5TippVerwende die passende Schranke für die Breitensuche
- 6BeispielOrdne nach bereits angefallenen Kosten
- 7BeispielEntnimm das Ziel zu minimalen Kosten
- 8HerausforderungWarte auf die günstigere unvollständige Route
- 9KernaussageBeschränke die Kosten endloser Tiefe
- 10BeispielFolge dem Zweig der Tiefensuche
- 11ErklärungUnterscheide eine Schranke von Misserfolg
- 12BeispielZahle einen kleinen Preis für weniger Speicher
- 13HerausforderungWähle eine Tiefenstrategie
- 14ErklärungTriff auf eine Suche vom Ziel aus
- 15HerausforderungWähle anhand von Kosten und rückwärtigem Zugriff
- 16ZusammenfassungStimme die Garantie auf die Aufgabe ab
3Steuere eine Suche mit Schätzungen
15 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungSchätze den noch ausstehenden Weg
- 2ErklärungGib der Schätzung eine Bedeutung
- 3BeispielLass die scheinbare Nähe entscheiden
- 4HerausforderungWähle zwischen einem günstigen Anfangsabschnitt und einer kleinen Schätzung
- 5BeispielAddiere die beiden Kosten
- 6BeispielLöse den letzten Gleichstand auf
- 7KernaussageHalte eine optimale Route konkurrenzfähig
- 8ErklärungErkenne, wann ein abgeschlossener Zustand geschlossen bleibt
- 9HerausforderungDiagnostiziere eine fehlende Verbesserung
- 10BeispielBetone den Fortschritt zum Ziel
- 11ErklärungErhöhe eine Kostenkontur, statt eine Suchfront zu speichern
- 12BeispielVerschiebe den Schwellenwert von acht auf neun
- 13TippEntscheide, ob vergessene Pfade zurückkehren können
- 14HerausforderungWähle eine Garantie bei begrenztem Speicher
- 15ZusammenfassungUnterscheide Ordnung, Abbruch und Speicher
4Entwickle und prüfe eine sichere Heuristik
15 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungBeweise, dass die Schätzung sicher ist
- 2ErklärungPrüfe die Schranke der tatsächlichen Kosten
- 3BeispielPrüfe einen gerichteten Schritt
- 4HerausforderungUnterscheide eine optimistische von einer gleichmäßig verlaufenden Schätzung
- 5VerbindungLass die Züge die Entfernung bestimmen
- 6ErklärungErzeuge gezielt ein einfacheres Problem
- 7BeispielRelaxiere zwei Beschränkungen des Puzzles
- 8BeispielZähle die verschobenen nummerierten Kacheln
- 9HerausforderungVermeide, einen Zug doppelt zu zählen
- 10ErklärungBerechne untere Schranken vor und kombiniere sie
- 11ErklärungVergleiche Schätzungen überall
- 12BeispielBestimme einen entsprechenden Baum
- 13BeispielBerücksichtige die Kosten der Heuristikberechnung
- 14HerausforderungNutze zwei Schätzungen ohne Dominanzbehauptung
- 15ZusammenfassungBeurteile Sicherheit und Nutzen getrennt
5Verbessere vollständige Kandidaten
16 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungSuche nach einer Anordnung
- 2BeispielNimm jede Dame in den Zustand auf
- 3BeispielZähle angreifende Paare
- 4ErklärungStelle dir die Fallen vor
- 5HerausforderungEntscheide, ob der Änderungsverlauf wichtig ist
- 6BeispielFolge den besten unmittelbaren Zügen
- 7ErklärungProbiere Seitwärtsschritte oder einen Neustart
- 8HerausforderungBerücksichtige den erfolgreichen Durchlauf
- 9VerbindungTeile Fortschritt, ohne jede Alternative zu verlieren
- 10ErklärungAkzeptiere eine vorübergehende Verschlechterung
- 11BeispielHalte die Verschlechterung fest und senke die Temperatur
- 12HerausforderungHalte die Vorzeichen einheitlich
- 13TippKühle in einem geeigneten Tempo ab
- 14BeispielKombiniere zwei Elternzeichenketten
- 15HerausforderungDiagnostiziere eine stagnierende Population
- 16ZusammenfassungWähle einen Weg am Hindernis vorbei
Uninformierte und informierte Suche: Übungsaufgaben
Set 1: Zustände, Suchfronten und uninformierte Suche10 Übungsfragen
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Set 2: Heuristiken, A* und Speicherbeschränkungen10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 3: Prüfe, konstruiere und vergleiche Heuristiken10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 4: Landschaften, Neustarts und populationsbasierte Suche10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 5: Wähle und diagnostiziere Suchverfahren10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Hängst du bei deiner eigenen Aufgabe fest? Hausaufgabenhilfe
Schlüsselbegriffe
A
A*-Suche
Abbruch wegen Tiefenbeschränkung
Abkühlungsplan
Abstraktion
Additive Musterheuristik
Aktionskosten
Anfangszustand
B
Backtracking-Suche
Baumsuche
Berechnungsaufwand der Heuristik
Bergsteigen
Bergsteigen mit erster Verbesserung
Bewertungsfunktion
Bidirektionale Suche
Breitensuche
D
Dominanz
Dreiecksungleichung
E
Effektiver Verzweigungsfaktor
Expansion
F
FIFO-Warteschlange
Fitnessfunktion
Früher Zieltest
G
Genetischer Algorithmus
Gewichtetes A*
Gierige Bestensuche
Graphensuche
Grat
H
Heuristik der falsch platzierten Kacheln
Heuristische Funktion
I
IDA*
Impliziter Zustandsraum
K
Konsistente Heuristik
Kostenkontur der optimalen Lösung
Kostenoptimalität
Kostenschranke
L
LIFO-Stapel
Lokale Strahlsuche
Lokale Suche
Lokales Optimum
Lösung mit geringster Tiefe
Lösungstiefe
Luftlinienentfernung
M
Manhattan-Distanz
Menge der erreichten Zustände
Musterdatenbank
Mutation
N
Nachbarschaft
O
Optimale Effizienz
P
Pfadkosten
Plateau
Positive untere Kostenschranke
Prioritätswarteschlange
R
Rekombination
Rekursive Bestensuche
Relaxiertes Problem
S
Seitwärtsschritt
Simulierte Abkühlung
SMA*
Später Zieltest
Speicherkomplexität
Stochastisches Bergsteigen
Strahlsuche
Suche mit iterativer Vertiefung
Suchfront
Suchknoten
T
Tatsächliche Restkosten
Temperatur
Tiefenbeschränkte Suche
Tiefensuche
Ü
Übergangsmodell
U
Uniforme Kostensuche
Uninformierte Suche
V
Verzweigungsfaktor
Vollständige Zustandsformulierung
Vollständigkeit
Vorberechnung
Vorgänger
W
Wiederöffnen
Z
Zielfunktion
Zieltest
Zufälliger Neustart
Zulässige Heuristik
Zustand
Zyklusprüfung im aktuellen Pfad
Über diese Einheit
Erstelle deine eigenen Lernmaterialien
Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.