Hartkodierte Intelligenz

In einem ersten Schritt wollen wir nun unsere Erfahrungen, die wir mit dem Spiel gemacht haben, in ein Computerprogramm übersetzen, das das Spiel spielt. Ein Teil des Programmtextes ist bereits vorgefertigt. In den Dateien, die in Spiel_Anfang.zip aus dem vorigen Abschnit verpackt sind, befinden sich u.a. zwei Dateien, die wir jetzt benötigen:

Aufgabe 1: Dokumentieren der besten Aktionen

In einem ersten Schritt solltest du das spiel-mensch.py noch einmal spielen und dir für jede Situation die deiner Meinung nach beste Aktion notieren. Da alle Situationen und Aktionen durchnummeriert sind, kann man das in einer einfachen Tabelle tun.

Aufgabe 2: Test der vorgefertigten Funktion "beste_aktion"

Betrachte die Python-Funktion beste_aktion(s,moegliche_aktionen) in der Datei q_agent.py:
def beste_aktion(s,moegliche_aktionen):
    '''
    Sucht zu einer bestimmten Situation s die (nach seinem Wissen) beste Aktion aus.
    Der Parameter moegliche_aktionen ist dabei eine Liste von Aktions-Nummern, 
    die in der Situation s überhaupt möglich sind.
    '''
    return 0
Man sieht: Die bisherige Funktion beste_aktion(s,moegliche_aktionen) gibt als beste Aktion immer nur die Aktion Nummer 0 zurück, das entspricht der Aktion "Weglaufen". Unser Agent in dieser Form könnte deshalb guten Gewissens als "Feigling" bezeichnet werden. Den Effekt kann man sich anschauen: Man startet das Programm spiel_ki.py und drückt den Button "Optimal spielen". Man sieht den Effekt des Weglaufens: Der Drache freut sich und beleidigt den Agenten als "Versager".

Aufgabe 3: Implementation einer hartkodierten Fallunterscheidung

Ändere nun den Code so ab, dass eine Fallunterscheidung für den Agenten entscheidet, welche Aktion er in welchen Situationen ausführt. Die Liste moegliche_aktionen ist hierbei noch uninteressant, da die beste von uns ausgewählte Aktion mit Sicherheit auch einer der möglichen Aktionen entsprechen wird.
X

Fehler melden

X

Suche