- Registriert
- Dez. 2017
- Beiträge
- 948
Ja... es ist sehr empfehlenswert...
Koi Koi hat maximal 8 Spielzüge. Dazu kommen pro Spielzug maximal 2 weitere Entscheidungsmöglichkeiten. Wir reden hier also bei Spielbäumen über beide Spieler von 16!*4^16 Zuständen.
Da reicht ja nichtmal ein Quantencomputer um das in sinnvoller Laufzeit auszurechnen. Ich kriege maximal 7 Zustände hin, mehr ist nicht drin. Selbst wenn ich Alpha/Beta mäßig auf 99% aller zustände verzichte ist die Laufzeit so groß dass die Rechenzeit pro Spielzug mehrere Minuten bedarf.
Wenn das gesamte Spielfeld bekannt ist ist es aber, wie bei meiner früheren Schach Ki nicht nur möglich sondern auch effizient eine Bewertungsfunktion zu bauen, was ich ja gerade tue...
Aber was ich eigentlich sagen wollte: Ich konnte die Laufzeit erneut drastisch reduzieren indem ich die Eingabe also im code die cardProberties in ein double-Array konvertiert habe bevor die eigentlichen Berechnungen beginnen. Die Zugriffszeiten sind deutlich besser und ich bin jetzt pro Spielzug bei 200-300ms.
Und ja die KI bestimmt gute Züge. Sie hat eine statische Funktion die eigenschaften in einem Spielzug kombiniert und am ende einen Wert ausgibt.
Bei den Wahrscheinlichkeiten reden wir eindeutig aneinander vorbei aber wenn mir jemand bei der Performanceoptimierung der Mathematik meiner bisherigen Formel und der des Algorithmus helfen könnte wäre das wirklich riesig
solche Tipps wie "Verwende statt Listen Array" oder "double rechnet schneller als float" wären wirklich enorm hilfreich gewesen
Koi Koi hat maximal 8 Spielzüge. Dazu kommen pro Spielzug maximal 2 weitere Entscheidungsmöglichkeiten. Wir reden hier also bei Spielbäumen über beide Spieler von 16!*4^16 Zuständen.
Da reicht ja nichtmal ein Quantencomputer um das in sinnvoller Laufzeit auszurechnen. Ich kriege maximal 7 Zustände hin, mehr ist nicht drin. Selbst wenn ich Alpha/Beta mäßig auf 99% aller zustände verzichte ist die Laufzeit so groß dass die Rechenzeit pro Spielzug mehrere Minuten bedarf.
Wenn das gesamte Spielfeld bekannt ist ist es aber, wie bei meiner früheren Schach Ki nicht nur möglich sondern auch effizient eine Bewertungsfunktion zu bauen, was ich ja gerade tue...
Aber was ich eigentlich sagen wollte: Ich konnte die Laufzeit erneut drastisch reduzieren indem ich die Eingabe also im code die cardProberties in ein double-Array konvertiert habe bevor die eigentlichen Berechnungen beginnen. Die Zugriffszeiten sind deutlich besser und ich bin jetzt pro Spielzug bei 200-300ms.
Und ja die KI bestimmt gute Züge. Sie hat eine statische Funktion die eigenschaften in einem Spielzug kombiniert und am ende einen Wert ausgibt.
Bei den Wahrscheinlichkeiten reden wir eindeutig aneinander vorbei aber wenn mir jemand bei der Performanceoptimierung der Mathematik meiner bisherigen Formel und der des Algorithmus helfen könnte wäre das wirklich riesig
solche Tipps wie "Verwende statt Listen Array" oder "double rechnet schneller als float" wären wirklich enorm hilfreich gewesen