Aufgabe 5.2 Tic Tac Toe

Geschwindigkeit und Speicherbedarf meiner Prolog-Lösung

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Aufgabe 5.2 Tic Tac Toe
Hallo zusammen,

ich habe jetzt den Minimax-Algorithmus in Prolog programmiert und er scheint sogar zu funktionieren :slight_smile:
Problem ist leider, dass meine MiniMax-Entscheidung vom Computer für ein leeres Brett [b,b,b,b,b,b,b,b,b]
recht lange dauert (5-6 Sekunden auf meiner Hardware) und außerdem den lokalen Stack überschritten hat (Stack Overflow).

Mit der Option :- set_prolog_stack(local, limit(2 000 000 000)). lief dann alles durch.

Ist das OK? Ansonsten muss ich in Prolog wahrscheinlich das Optimieren anfangen (Oh Gott).

Nebenbei, wenn man selber den ersten Zug macht (wie es bei playo passiert), dann kommt die Antwort in unter einer Sekunde.
Zum Spielen reicht es also.


Passt :slight_smile: Schreib vielleicht nen Kommentar mit dem set_prolog_stack dazu, damit korrektoren wissen wie sie’s zum laufen bringen :wink:


Perfekt, danke für die schnelle Antwort :slight_smile:

Muss man auch selfgame auf minimax erweitern?
Hi,

bisher habe ich es soweit fertig gebracht playo mit minimax “auszuführen”. Ich dachte nicht, dass es so schön sein kann ständig zu verlieren/unentschieden zu spielen. Wenn ich selfgame starte läuft es immernoch mit der alten Logik. Müssen wir selfgame, wie playo auch auf minimax erweitern? Ich bin der Meinung der Kern der Aufgabe ist verinnerlicht sobald man playo auf minimax gebracht hat.

Viele Grüße


Nein; wie in der Aufgabenstellung ersichtlich reicht es das prädikat „orespond“ anzupassen; wenn das nur bei playo aufgerufen wird, so be it :wink: