![]() |
Ideen zur Schach KI
Hallo !
Ich möchte zur Zeit 'ne Schach-KI programmieren. Meine Komponenten sind fast fertig. Ich fang also damit an meinem Gegner beizubringen schach zu denken. Nach welchen Kriterien sollte denn die KI ihre Entscheidungen treffen ? :wiejetzt: meine ersten Ideen: - Figurenvorteil - möglichst große Anzahl an gedeckten Feldern ... Teilt mir bitte eure Ideen mit ! |
Re: Ideen zur Schach KI
Tja, sowas hab ich auch mal vor längerer Zeit probiert, bin aber an der KI gescheitert. :oops:
Also ich bin damals davon ausgegangen, dass man neben dem rein materiellen Vorteil auch die jeweilige Stellung auf dem Schachbrett bewertet. Je nachdem, welcher Zug zu einer besseren Stelung führte (d.h. einen positionellen Vorteil brachte), wurde dieser ausgeführt. MfG Binärbaum |
Re: Ideen zur Schach KI
also, da ich auch mal dieses projekt hatte, habe ich mir genau die selben fragen gestellt.
- Material - Angriffsmöglichkeiten - Königsstellung/sicherheit - Bauernstellung - Zentrum - Entwicklung - Felder unter Kontrolle - Taktische Gesichtspunkte (Löcher, Springer/Läufer, ...) hilft dir vielleicht weiter... |
Re: Ideen zur Schach KI
Zitat:
Welche Stellungen sind denn gut ? |
Re: Ideen zur Schach KI
Zitat:
Also ein Bauer ist zum Beispiel am wertvollsten, wenn er in der 7. (weiß) bzw. 2. Reihe (schwarz) steht, da man diesen beim nächsten Zug verwandeln kann. Für König ist es hingegen sinnvoll, wenn man die Rochade ausführt, da er so besser geschützt ist. Für Springer ist es gut, wenn aich sich im (erweiterten) Zentrum befinden,... ... Die Liste lässt sich jetzt noch ein ganzes Stück fortsetzen. Das eigentliche problem ist, erstmal die Kriterien zu finden, nach denen man entscheidet, ob eine Figur mindestens genau so gut oder besser steht als vorher. Die Umsetzung sollte dann das kleinere Problem sein (zumindest war es bei mir so). MfG Binärbaum |
Re: Ideen zur Schach KI
Zitat:
Zum Beispiel: Taktische Gesichtspunkte: Löcher. Wie findet mein Programm löcher ? Durch neuronale Netze ? Schach kann ich ja mehr oder weniger spielen. Für mein' Prohjekt interessiert mich aber mehr die mathematische Logik dahinter. Und was verstehst du unter Entwicklung ? Möglichst viele Figuren an der Front ? Trotzdem danke. |
Re: Ideen zur Schach KI
Zitat:
Bin zwar, was programmieren angeht ein totaler n00b, aber egal.. Vergessen sollte man nicht, dass ein Schachprogramm besonders am Spielbeginn dem menschl. Spieler unterlegen ist, da dieser oft bestimmte Varianten (Sizilianisch, Französisch, etc. etc.) einstudiert hat, die, langfristig gesehen, den Spielaufbau zu seinen Gunsten entscheiden können, während die nur auf die nächsten Züge bedachte KI erst im Mittel- bzw. Endspiel den Vorteil "mathematischer Logik" einsetzen kann. Ich würde daher empfehlen, dass du deinem Programm eine Reihe von Eröffnungen einprogrammierst, die dem Programm beim Spielbeginn "auf die Sprünge helfen". :coder2: |
Re: Ideen zur Schach KI
OT:
Danke für die Fjorde Slartibart ;) (hoffe das ich den Namen jetzt noch richtig im Kopf habe, 42 :) Zurück zum Thema: Ich weiss zwar nicht wie man ne Schach KI programmiert aber diesen Thread behalt ich mal weiter im Auge, ist ne seeehr interessante Problemstellung! Vielleicht mal n OSS Schachprogramm nach Denkansätzen durchforsten? mfg |
Re: Ideen zur Schach KI
Zitat:
Da musst du einfach abfragen, ob z.B. auf den betreffenden Feldern noch eigene Figuren stehen, die die dahinterliegenden schützen (beim König wichtig), oder ob sie evtl. auch nur einen Läufer blockieren. Mit Entwicklung meint er sicher, dass man mehrere Züge hintereinander auf ein bestimmtes Ziel (z.B. Angriff auf dem Königsflügel) hinarbeitet. Das wird aber schon schwieriger (für die KI). Und zur "mathematischen Logik": Ein ehemaliger Schach-Weltmeister hat mal gesagt (nicht wörtlich, aber vom Inhalt her): "Ein Spiel, indem alles so klar wäre wie 2 mal 2 gleich 4, würde schnell an Reiz verlieren." Soll heißen, dass es nicht so einfach ist, eine gewisse Logik herauszuarbeiten, um das Schachspiel zu beschreiben. Und wie man diese "Logik" dann in dein Programm implementiert, hängt stark davon ab, wie du die gegenwärtige Stellung auf dem Brett darstellst (d.h. Datentypen, ...). MfG Binärbaum |
Re: Ideen zur Schach KI
Zitat:
Das interessante an Schach ist ja gerade, das jeder mögliche Zug der beste sein kann. Es gibt genug Partien die gewonnen wurden, weil der spätere Gewinner 4 Züge vorher seine Dame geopfert hat! Deshalb ist der Ansatz nach generell-günstigen Positionen zu spielen IMHO falsch. Ich bin mit so einer KI zwar auch gescheitert aber mein Ansatz war die Position bewerten zu lassen nach Anzahl der ungedeckten Figuren/Anzahl der gedeckten (Im Optimum 1) sowie Anzahl der ungedeckten Felder/Anzahl der gedeckten (Im Optimum 1) Damit hat man 1) ne Aussage über die eigene Position (Wenn alles gedeckt ist steht man gut ;) ) 2) ne Aussage über die Möglichkeiten des Gegners (Wenn alle Felder gedeckt sind... Wo soll er noch hin) Dieser Ansatz ist schon nicht so schlecht, aber er führt zu 2 Problemen: 1) Wenn ein Bauer durch ne Dame gedeckt ist, so ist er eigentlich nicht gedeckt da niemand die Dame opfert... 2) Im Endspiel läuft man so komplett gegen den Baum! Soweit ich weiß benutzen heutige KI's 3 Engines: die Erste für die Eröffnung (wird in Datenbanken gespeichert) die Zweite für das Spiel (das ist die Richtige KI) die Dritte für das Endspiel (Ab 5 Steinen pro Spieler steht bei Fehlerfreiem Spiel fest wer gewinnt, glaube ich) Falls das Opensource-entwickelt werden soll würde ich mich da übrigens gerne dran beteiligen! nen neuer Versuch kann nicht schaden ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz