Seite 1 von 1

Datenstruktur für Zustandsautomaten

Verfasst: Samstag 2. Januar 2021, 21:21
von Zizibee
Hallo zusammen,

ich habe mit einem lernenden Zusandsautomaten (Reinforcement Learning) einen Computergegner für Tic Tac Toe geschrieben / angelernt. Dafür habe ich mich von der Struktur her erstmal stark an einen Udemy Kurs gehalten und die Zustände in ein Dictionary geschrieben. Die Keys sind das Spielfeld als String und die Values sind die Gewichtungen für jedes der 9 Teilspielfelder als Liste.
Nun will ich zum schnelleren Lernen die Anzahl der Zustände reduzieren, indem ich Drehsymmetrien nutze. Wenn also der aktuelle Zustand des Spielfeldes durch Drehen in einen bereits gespeicherten Zustand überführt werden kann, soll er nicht extra gespeichert werden.

So viel zur Vorgeschichte.
Für die Berechnung des Drehens würde ich gerne numpy arrays verwenden, die aber leider nicht im Dictionary gespeichert werden können. Wenn ich alles als Tuple und Liste speicher, muss es immer zwischen den Formaten hin und her berechnet werden.
Kennt dafür jemand eine gute Lösung oder mache ich mir da gerade unnötig Gedanken wegen der Umrechnung?

Schon einmal vielen Dank.

Re: Datenstruktur für Zustandsautomaten

Verfasst: Dienstag 5. Januar 2021, 11:11
von Zizibee
Da keine Antworten oder Rückfragen kommen, gehe ich mal davon aus, dass mein Text verständlich war, aber niemandem etwas besseres einfällt :)

Re: Datenstruktur für Zustandsautomaten

Verfasst: Dienstag 5. Januar 2021, 11:44
von __deets__
Ich wuerde die Drehung in Python implementieren. Das ist ja fuer diesen Fall trivial. Ausserdem gibt es natuerlich noch mehr Symetrien - Spiegeln um zwei oder sogar 4 Achsen.

Re: Datenstruktur für Zustandsautomaten

Verfasst: Dienstag 5. Januar 2021, 12:17
von Zizibee
Danke für deine Antwort. Vielleicht ist numpy hier wirklich ein bisschen wie mit Kanonen auf Spatzen zu schießen.
Spiegelungen kommen danach, aber danke für den Hinweis!