2009-11-12 5 views
16

Es gibt viele Schach-KI's, und offensichtlich sind einige gut genug, um einige der größten Spieler der Welt zu schlagen.Ist das Brettspiel "Go" NP abgeschlossen?

Ich habe gehört, dass viele Versuche unternommen wurden, erfolgreiche AI's für das Brettspiel Go zu schreiben, aber bis jetzt wurde nichts über den durchschnittlichen Amateurlevel hinaus gedacht.

Könnte es sein, dass die Aufgabe, die optimale Bewegung zu einem bestimmten Zeitpunkt in Go mathematisch zu berechnen, ein NP-vollständiges Problem ist?

+0

Weiß nicht, warum Sie downvoted wurden. Das ist eine berechtigte Frage. +1 – mpen

+1

Nun, aktuelle Monte Carlo und ähnliche Algorithmen haben die Grenze zum durchschnittlichen Amateur-Level geschoben. Zu den gesuchten Namen gehören unter anderem Zenith, viele Gesichter von Go, Fuego, Leela. – Svante

Antwort

16

Schach und Go sind beide EXPTIME complete. IIRC, Go hat mehr mögliche Züge, daher halte ich es für ein höheres Vielfaches dieser Komplexitätsklasse als Schach. Wikipedia hat eine good article über die Komplexität von Go.

+12

Sie möchten vielleicht erwähnen, dass beide Ergebnisse für verallgemeinerte Versionen der Spiele sind. Die Spiele mit konstant großen Tafeln können trivialerweise beide in konstanter Zeit gelöst werden. (Obwohl die Konstante zu groß ist, um sie im Augenblick und möglicherweise überhaupt zu behandeln.) – ShreevatsaR

+3

In Bezug auf das Verständnis, was gemeint ist, wenn ein Experte sagt "Schach ist EXPTIME-vollständig", ist der Punkt von ShreevatsaR sehr wichtig. – PeterAllenWebb

4

Auch wenn Go ist nur in P könnte es etwas sein, noch horrend wie O(n^m) wo n die Anzahl der Räume und m ist einige (große) festgelegte Anzahl. Selbst in P zu sein macht nichts vernünftiges zu berechnen.

2

Weder Chess or Go AIs bewerten alle Möglichkeiten vollständig, bevor Sie sich für einen Zug entscheiden.

Schach-AIs verwenden verschiedene Heuristiken, um den Suchraum einzuschränken und um zu quantifizieren, wie gut eine gegebene Position auf der Tafel ist. Dies kann rekursiv durchgeführt werden, indem mögliche Platinenpositionen bewertet werden 14-15 bewegt sich voraus und wählt einen Pfad, der zu einer guten Position führt.

Es gibt ein bisschen "Magie" darin, wie eine Brettposition quantifiziert wird, so dass die KI auf der obersten Ebene einfach gehen kann Move A> Move B deshalb Move A. Aber da gibt es eine begrenzte Anzahl an Teilen und sie alle haben einen quantifizierbaren Wert und ein 'gut genug' Algorithmus kann implementiert werden.

Aber es ist viel schwieriger für ein Programm, zwei mögliche Boardpositionen in Go auszuwerten und diese A> B Berechnung zu machen. Ohne dieses kritische Stück ist es etwas schwierig, den Rest der KI zu arbeiten.

Verwandte Themen