| Inhalt |
Kurz gesagt: Es gibt keinen bekannten „Gewinn-Algorithmus“ für Schach, der aus der Ausgangsstellung garantiert sagt: Weiß gewinnt so, Schwarz so, oder es ist remis – und dir dann nur noch die Züge ausspuckt. Schach ist (noch) nicht vollständig gelöst.
Trotzdem gibt es sehr starke Spielalgorithmen, mit denen Engines praktisch jeden Menschen schlagen. Ich gliedere das mal:
Theoretisch könnte es einen Algorithmus geben, der:
So einen Algorithmus gibt es für einfache Spiele wie Tic-Tac-Toe oder für viele Endspiele im Schach (mit wenigen Steinen). Für das ganze Schachbrett ist der Baum aber astronomisch groß → mit heutiger Rechenleistung völlig unpraktisch.
Fazit: Ein „bester Gewinn-Algorithmus“ im Sinne von „immer gewinnt aus der Startposition“ ist nicht bekannt (und vielleicht praktisch nie machbar).
Sie verwenden ungefähr dieselbe Grundidee, aber abgeschnitten:
Klassische Engines (z. B. Stockfish) benutzen:
Minimax:
Alpha-Beta-Pruning:
Weil man nicht bis zum Matt rechnen kann, stoppt man nach z. B. 20–40 Halbzügen („Tiefe“) und benutzt dann:
Eine Heuristik, die sagt:
Diese Stellung ist +1.2 Bauern gut für Weiß.
Typische Kriterien:
Systeme wie AlphaZero und Leela Chess Zero kombinieren:
Neurales Netz, das Stellung → (Bewertung, Zugwahrscheinlichkeiten) ausgibt
Monte-Carlo-Tree-Search (MCTS):
Sie lernen durch Selbstpartien („reinforcement learning“), statt von Menschenpartien/Hand-Features.
Moderne Top-Engines wie Stockfish (mit NNUE) mischen:
Das ist im Moment praktisch das Stärkste, was es gibt.
Für Stellungen mit wenigen Figuren (z. B. alle Stellungen mit bis zu 7 Steinen) gibt es sogenannte Tablebases:
Engines nutzen das: Sobald deine Stellung in einer Tablebase ist, spielt die Engine 100 % perfekt.
Wenn man „beste“ meint im praktischen Sinne (Elo-Stärke):
Heutige Top-Engines verwenden:
Theoretisch „der beste“ wäre:
Ein Algorithmus, der das ganze Spiel komplett löst (perfekt berechnet und immer das korrekte Resultat erzwingt).
Den gibt es aber nicht (nur für Teilbereiche und vereinfachte Spiele).
| Inhalt |