loading...

Artificial Intelligence with Python

lecture0-720p-en.txt

Übersicht der Suchalgorithmen aus dem Vortrag

Uninformierte Suchalgorithmen

Informierte Suchalgorithmen

Adversarial Search Algorithmus

Optimierung von Minimax

Modifikation von Minimax für komplexe Spiele

Funktionsweise und Vor- und Nachteile von Suchalgorithmen

Lineare Suche

Binäre Suche

Tiefensuche (DFS)

Breitensuche (BFS)

A*-Suchalgorithmus

Hash-Suche

lecture0-720p-en.txt

Notwendige Datentypen und Strukturen für Suchalgorithmen

Initialzustand

Zustandsraum

Nachfolgerfunktion (auch Übergangsfunktion)

Zieltest (auch Endzustandsprüfung)

Pfadkosten (auch Schrittkostenfunktion)

Suchbaum oder Graph

Offene Liste (Frontier)

Geschlossene Liste (Explored Set)

Datenstrukturen für die Speicherung von Knoten

Heuristikfunktion (nur für heuristische Suchalgorithmen relevant)

Minimax-Algorithmus

Der Minimax-Algorithmus ist eine grundlegende Technik in der Spieltheorie für die Optimierung der Entscheidungsfindung in sogenannten Nullsummen-Spielen mit zwei Spielern (wie Schach, Dame oder Tic-Tac-Toe), bei denen der Gewinn des einen Spielers dem Verlust des anderen entspricht.

Spieler

Max-Spieler

Angehend von der Maximierung seines Gewinns. Ziel ist es, die höchste Punktzahl zu erreichen.

Min-Spieler

Sucht das beste Ergebnis aus seiner Sicht, also die niedrigstmögliche Punktzahl für den Max-Spieler.

Spielbrettzustände

Anfangszustand (S0)

Das Spiel beginnt.

Intermediärer Zustand

Das Spiel entwickelt sich und die Spieler wechseln sich mit ihren Zügen ab.

Endzustand

Das Spiel ist zu Ende, wenn ein Spieler gewinnt oder ein Unentschieden vorliegt.

Wichtige Funktionen

Spieler-Funktion (Player)

Ermittelt, welcher Spieler am Zug ist.

Aktionen-Funktion (Actions)

Listet alle möglichen Züge für den aktuellen Spieler auf.

Ergebnis-Funktion (Result)

Berechnet den neuen Zustand des Spielbretts nach einem Zug.

Terminaltest-Funktion (Terminal Test)

Prüft, ob das Spiel vorbei ist (Endzustand erreicht ist).

Nutzenfunktion (Utility)

Weist jedem Endzustand einen Wert zu (Gewinn, Verlust, Unentschieden).

Arbeitsweise

Tiefe des Spiels

Anzahl der Züge, die im Voraus betrachtet werden, bevor der Algorithmus stoppt (bei "Depth-limited Minimax").

Bewertungsfunktion (Evaluation)

Schätzt den Wert eines nicht-terminalen Zustands ab, wenn eine Begrenzung der Tiefe angewendet wird.

Entscheidungsfindung

Minimax-Entscheidungsprozess

  1. Beginnt mit dem aktuellen Zustand des Spiels.

  2. Expandiert den Baum aller möglichen Züge rekursiv.

  3. Wendet die Nutzenfunktion auf alle Endzustände an.

  4. Propagiert diese Werte zurück an die vorherige Ebene, um zwischen Min- und Max-Zügen zu unterscheiden.

  5. Der Max-Spieler wählt den Zug mit dem höchsten Wert, der Min-Spieler den mit dem niedrigsten Wert.

Optimierungen

Alpha-Beta-Pruning

Reduziert die Anzahl der zu prüfenden Zustände erheblich, indem offensichtlich schlechte Züge abgeschnitten werden.

Depth Limit

Begrenzt die Suche auf eine maximale Suchtiefe, um die Berechnung praktisch zu machen.

Der Minimax-Algorithmus ist essentiell für die Erstellung von künstlichen Intelligenzen (KI), welche in der Lage sind, strategische Spiele gegen menschliche Gegner oder andere KIs zu spielen und dabei schwierige Entscheidungen zu treffen.


login
signup