Menu

#73 Möglichkeit, Karten für die KI zu sperren

closed
Ai (7)
5
2011-11-12
2009-02-13
Kirsch
No

Es wird immer Situationen geben, in denen Heuristiken keine beste zu spielende Karte finden können. Das ist ja einer der Reize eines so komplexen Spieles wie DoKo und die Existenzberechtigung für die Monte-Carlo und VirtualGames Methoden der KI. Häufig wäre es in solchen Situationen aber möglich, Karten heuristisch zu bestimmen, die auf keinen Fall gespielt werden dürfen: Trumpfvolle (vor allem die Füchse - siehe Bugreport), Dullen-Aufspiel wenn der Partner nicht wissen kann, zu welchem Team man selbst gehört und deshalb kein Pfund werfen kann (entfällt, wenn Dullen-Aufspiel-Konvention existiert) oder Fehlfarben, die nur ein hinten sitzender Gegner mit Sicherheit stechen kann. Die Liste lässt sich sicher erweitern, insbesondere für die verschiedenen Solo-Typen.

Würde es die Spielstärke der KI-Methoden nicht verbessern, wenn man ihnen diese Informationen übermitteln könnte?

Konkret:
* ein lock/unlock/reset/is_locked Mechanismus für die Handkarten der Spieler
* MC, VG und nicht bis zum Spielende durchrechnende Spielbäume testen nur !is_locked() Karten
* spezielle Sperr-Heuristiken wie z.B. lock_worries_for_ai oder lock_dullen_for_ai
* Einordnen der Sperr-Heuristiken vorzugsweise am Ende der jeweiligen Spieltyp-Heuristikliste

Eine andere (komplexere) Möglichkeit wäre es, nicht mit Sperren, sondern mit Handicaps zu arbeiten. Die KIs würden Handicap-Karten testen, aber nur dann spielen, wenn sie um mindestens das Handicap stärker als alle anderen Karten wären. Die Implementation dieser Möglichkeit stelle ich mir aber sehr aufwendig vor (insbesondere die Bestimmung eines konkreten numerischen Wertes für ein Handicap) und würde daher die deutlich einfacheren Sperren zumindest solange vorziehen, wie sie keine eindeutig schlechten Ergebnisse liefern.

Noch ein paar unsortierte Gedanken dazu:
* es muss mindestens eine im Stich spielbare Karte ungesperrt bleiben
* ist nur eine Karte nicht gesperrt, braucht keine KI aufgerufen werden
* deshalb ist die Reihenfolge des Sperrens zu beachten, es gibt Sperren hoher und niedriger Priorität (kann über die Aufrufreihenfolge der Sperr-Heuristiken geregelt werden)
* bis zum Spielende durchrechnende Spielbäume sollten die Sperren ignorieren, um auch unkonventionelle Gewinnzüge finden zu können (z.B. ein Fuchsopfer als einzige Gewinnmöglichkeit)

Discussion

  • Kirsch

    Kirsch - 2009-02-13

    Beispiel-Bugreport

     
  • Dr. Diether Knof

    • status: open --> closed
     
  • Dr. Diether Knof

    Wir haben durch "Monte Carlo (stechen/bedienen)" die meisten solchen Situationen behandelt. Das sollte reichen.

    Diether

     

Log in to post a comment.

MongoDB Logo MongoDB