Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Jutta Gengler Geändert vor über 11 Jahren
1
Teil 5: Kollisionsvermeidung & Wegplanung
KI-Übung Teil 5: Kollisionsvermeidung & Wegplanung
2
Wegplanung Minkowski Summe A ◦ B = { a + b | a elem A,b elem B}
Negation : –A = { -a | a elem A } KI-Übung SoSe 2006
3
Behandlung der Rotation
Diskretisierung der Rotation In jedem Winkelbereich ergibt sich eine Konfigurationsebene KI-Übung SoSe 2006
4
Der Gelenkraum Beispiel: Gelenkmechanismus mit 2 Drehgelenken
KI-Übung SoSe 2006
5
Wegsuche im Gelenkraum
- Wegsuche ist Suche nach einer Bewegung für Punkte zwischen Gelenkraumhindernissen KI-Übung SoSe 2006
6
Zerlegung des Konfigurationsraums
Quadtree, Octrees: KI-Übung SoSe 2006
7
Die Via Punkt Strategie
Seien Gelenkraumhindernisse initial unbekannt Stelle rekursiv Anfragen für Strecken im Gelenkraum: Nachteil: Keine Lösung innerhalb isolierter Zusammenhangskomponenten des Glenkraums KI-Übung SoSe 2006
8
Die Potientialfeldmethode
Hindernissen werden abstossende Potientiale und dem Zielpunkt ein anziehendes Potential zugeordnet Punkt wird durch Hindernissraum bis zum Ziel bewegt Nachteil 1: Endlosschleifen in lokalen Minima Kombination mit einer zufälligen Suche Nachteil 2: Exponentielles Wachstum der Anzahl der Nachbarn Reduktion des Aufwandes durch zufällige Auswahl einer Teilmenge der Nachbarn von KI-Übung SoSe 2006
9
Die Potientialfeldmethode
KI-Übung SoSe 2006
10
Angepasster A* Algorithmus
Kombination des A* Verfahrens in Kombination mit einer zufälligen Suche KI-Übung SoSe 2006
11
Aspiration Windows KI-Übung SoSe 2006
12
Principal Variation (NegaScout) Suche
Marsland, Campbell 1982, Verbesserung führt zu NegaScout-Algorithmus (Reinefeld 1983) Die Principal-Variation-Suche nimmt an, dass ein Folgezug der zwischen Alpha und Beta liegt, sich als bester möglicher Zug herausstellen wird. Deshalb wird Alpha-Beta-Fenster minimal verkleinert, um maximale Anzahl an Cutoffs zu erreichen, aber dennoch die verbleibenden Züge als schlechter zu beweisen. KI-Übung SoSe 2006
13
Principal Variation Search
int NegaScout ( position p; int alpha, beta ); { /* compute minimax value of position p */ int a, b, t, i; determine successors p_1,...,p_w of p; if ( w == 0 ) return ( Evaluate(p) ); /* leaf node */ a = alpha; b = beta; for ( i = 1; i <= w; i++ ) { t = -NegaScout ( p_i, -b, -a ); if (t > a) && (t < beta) && (i > 1) && (d < maxdepth-1) a = -NegaScout ( p_i, -beta, -t ); /* re-search */ a = max( a, t ); if ( a >= beta ) return ( a ); /* cut-off */ b = a + 1; /* set new null window */ } return ( a ); KI-Übung SoSe 2006
14
Principal Variation Suche
KI-Übung SoSe 2006
15
Principal Variation Search
Knoten gehört einer der drei Kategorien an: Alpha-Knoten: Jeder Folgezug liefert Wert kleiner oder gleich Alpha kein guter Zug möglich Beta-Knoten: Mindestens ein Folgezug liefert Wert größer oder gleich Beta Cutoff Principal Variation-Knoten: Mindestens ein Folgezug liefert Wert größer als Alpha, aber alle liefern einen Wert kleiner oder gleich Beta. KI-Übung SoSe 2006
16
Principal Variation Search
Manchmal frühzeitig erkennbar welche Art von Knoten vorliegt: Erste getestete Folgezug Wert größer gleich Beta Beta-Knoten. Wert kleiner gleich Alpha möglicherweise Alpha-Knoten (vorausgesetzt, die Züge sind gut vorsortiert) Wert zwischen Alpha und Beta möglicherweise Principal Variation-Knoten. KI-Übung SoSe 2006
17
Killer Heuristik Die Killer-Heuristik ist eine spezielle Art der Zugvorsortierung. Man nimmt an, dass Züge, die Cutoffs verursacht haben, auch in anderen Teilen des Suchbaumes (bei gleicher Tiefe) einen Cutoff verursachen werden. Deshalb künftig immer zuerst betrachten, sofern gültiger Zug Vorsicht: Heuristik kann nicht bei allen Spielen sinnvoll angewendet werden, da Aussicht, dass Killerzüge auch in anderen Teilen des Suchbaumes noch gültige Züge sind, gering ist. KI-Übung SoSe 2006
18
Alpha Beta Suche KI-Übung SoSe 2006
19
NegaMax Algorithmus Variante des Alpha-Beta Algorithmus
Während die Standard-Implementierung für einen Spieler maximiert und für den anderen Spieler minimiert, maximiert die Negamax-Variante für beide Spieler und vertauscht und negiert Alpha und Beta bei der Rekursion. Bewertungsfunktion muss sich unterschiedlich verhalten Standard-Implementierung: Je besser die Brettstellung für maximierenden Spieler desto größer Rückgabewert der Bewertungsfunktion. Je besser für minimierenden Spieler desto kleiner ist der Rückgabewert. Negamax-Implementierung: Da beide Spieler maximieren, muss die Bewertungsfunktion desto größere Werte liefern, je besser die Brettposition des gerade Ziehenden ist. KI-Übung SoSe 2006
20
NegaMax Algorithmus int AlphaBeta(int tiefe, int alpha, int beta) {
if (tiefe == 0) return Bewerten(); GeneriereMoeglicheZuege(); while (ZuegeUebrig()) FuehreNaechstenZugAus(); wert = -AlphaBeta(tiefe-1, -beta, -alpha); MacheZugRueckgaengig(); if (wert >= beta) return beta; if (wert > alpha) alpha = wert; } return alpha; KI-Übung SoSe 2006
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.