AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ideen zur Schach KI

Ein Thema von Cicaro · begonnen am 12. Apr 2005 · letzter Beitrag vom 25. Mai 2005
Antwort Antwort
Seite 8 von 10   « Erste     678 910      
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#71

Re: Ideen zur Schach KI

  Alt 26. Apr 2005, 10:16
Zitat von Seniman:
Zitat von Binärbaum:
Zitat von tr909:
Also was die KI angeht, würde ich es folgendermaßen machen.
Eine Eröffnungsdatenbank, wo der Spielbaum für die ersten Züge abgelegt wird, sowie eine Endspiel-Datenbank.
Aber was den Rest angeht, stimme ich zu, bis auf die DB für das Endspiel. Die ist IMHO nicht nötig (im Gegensatz zur Eröffnungsdatenbank).
Dazu kommt, das eine DB für das Endspiel viel zu groß, einfach, weil die Endsituation immer anders aussieht, während die Figuren am Anfang immer gleich stehen. Außerdem gibt es am Ende immer andere Figuren die da sind. Dadurch vergrößert sich die Anzahl der theoretisch denkbaren Endspiele unglaublich schnell.
einen kompletten Spielbaum anzufertigen ist keine gute Idee;
find' ich;
denn theoretisch kann eine Partie endlos sein;
einen Baum bis zum 10. Zug:=OK;
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#72

Re: Ideen zur Schach KI

  Alt 26. Apr 2005, 10:32
Hi

Zitat von Airblader:
Wenn bei Schach etwas Nebensache ist, dann wohl die Zeit
Das ist so nicht richtig. Natürlich speilen auch echte Profis - vorallem diese - auf Zeit, Auch wenn es manchmal nicht so ausschaut.

Was himitsu meinte war wohl aber auch etwas anders zu verstehen. Wenn du viel schneller Abschätzen kannst welche Züge völliger Mist sind, kannst du dich ja mit deiner Zeit, die du ja nur begrenzt zur verfügung hast, viel sinnvolleren Dingen zuwenden. Eine KI muss selbst entscheiden wann es sinnvoll ist den äußersten Bauern, der nach einer Rocharde den König schützt, um eins vorzuziehen.

Als Konkretes Beispiel:
Sinnvoll ist es wenn so ein bevorstehendes Matt verhindert werden kann, weil der Turm schon weg ist und der König "Luft braucht" oder wenn der Turm noch steht um einen Angriff mit einer Dame oder einem Läufer von Forne abzuwähren. Unsinnig ist es den selben Bauernzug überhaupt in betracht zu ziehen, wenn die Rocharde überhaupt noch nicht, oder bereits zur anderen Seite gemacht wurde. Auch unsinnig ist er als Eröffnung beispielsweise.

Die KI sollte immer wenn sie am Zug ist möglichst viele Züge vorausberechnen um einen möglichst großen Pool zu haben aus dem sie sich den besten oder erfolgverspechensten Zug auswählt. Nätürlich hat die KI nicht Stunden Zeit für jeden Zug, und natürlich muss sie diese Berechnung öfter machen. Entweder bei jedem Zug neu oder - viel eleganter - erst dann wenn ihr Plan (Der aktuell gültige Branch) nicht mehr funktionieren kann. Wenn sie also - wie auch immer - erkennt, welcher Branch überhaupt nie zu was führen kann (Beispiel oben) hat sie mehr Zeit einen qualitativ hochwertigen Pool in der selben Zeit zu erstellen.

Ich könnt noch Stunden so weiter machen... Das Thema versprüht eine irre Faszination *g*

MfG

Tonic
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#73

Re: Ideen zur Schach KI

  Alt 26. Apr 2005, 10:58
Besitzt jemand eine Umfangreiche Eröffnungsdatenbank ?
Sowas hätte ich gerne, würde eine solche auch gern in mein Spiel einbauen.
  Mit Zitat antworten Zitat
Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#74

Re: Ideen zur Schach KI

  Alt 26. Apr 2005, 11:41
naja ich hab eröffnungsbücher zuhause.
hab ne zeitlang in nem club gespielt - recht gut sogar - gut über 1500 elo und das in der ersten liga

sicher kann ich dir ein paar eröffnungen posten, eine fertige datenbank hab ich leider nicht.

Die eröffnung geht übrigens über ca. 12-14 züge - solange wird praktisch die verteidigung aufgebaut bzw. der Angriff vorbereitet.
Die eröffnung - ist aber schon ziemlich bald sehr variabel - meistens geht es bei einer eröffnung darum eine position zu stärken oder sich in einem bestimmte bereich platz zu schaffen.

Ich hab hier nicht alles geslesen - aber die ansätze stimmen wohl.
Wertigkeiten hätte ich 1. den figuren gegeben 2. den positionen der figuren.
Türme die eine linie beherschen sind sehr stark.
Läufer die auf langen schrägen stehen werden ebenfalls als stark angesehen.
Springer haben ebenfalls positionen die sehr stark sind.

Bauern haben ebenfalls wertigkeiten am feld - die mittleren bauern sind eher als stärker zu betracheten.

Jeh nach plan ist es auch sinnvoll sich erstmal platz zu verschaffen (typische königsbauern eröffnung).
Allerdings sollte man mit bauern eher weniger machen - die anderen figuren müssen ins spiel.
Figuren die auf der Grundlinie stehen sind wertlos oder kommen erst beim endspiel ins spiel und das ist oft zu spät.

Jede Figur hat also eine tabelle mit wertigkeiten - verhältnisse.
( 2 bauern für einen springer - 2 türme für eine dame und einen bauern usw.)
Jede figur hat gleichzeitig felder an denen sie ihre wertigkeit erhöhen können.
Das ist jetzt rein taktisches spielen und wird das schachprogramm nicht gut machen aber es ist eine grundfunktion auf die man zurückgreifen kann.
Auch sollte die wertigkeit variabel werden können - für späteren ausbau. - also sich der spielsituation anpassen können.
Wie das beispiel von dem bauern der sich in eine dame verwandeln kann. - klar hat der hohe wertigkeit aber nicht zu beginn des spiels!

Das ist mal die basisfunktion.
Eröffnungsdatenbank ist sicherlich sehr wichtig - man kann tatsächlich von der eröffnung schon auf die richtung des zu erwartenden angriffs schließen.
Also man kann tatsächlich beim ersten Zug richtig oder falsch reagieren.
Hier sollte die Datenbank also beinhalten.
1. Die Zugreihenfolge wie aus den Büchern ( bis zu 14-15 Züge ).
2. Die fallen der Eröffnung - (ist dann gleich mal ein eröffnungstrainer ).
3. Die Grundtaktik der Eröffnung und die idee hinter der eröffnung ( ja die gibt es ).

und dann kommen wir zu dem teil der die eigentliche ki ausmacht.

Ein Plan muß her - so machen es die Menschen.
natürlich kann man einfach situationen berechnen lassen - aber ein zug ist schon ordentlicher recheaufwand - geschweige denn 4-5 Züge.
Hier muß also wieder eine wertigkeit eingeführt werden - welche Figuren sind als passiv zu betrachten und welche Aktiv.
Welche stellen eine gefahr dar und welche sind ganz aus der berechnung rauszunehmen.

Hier hab ich aber auch nur spinnereien zu liefern .. nicht mehr.

Arnulf
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#75

Re: Ideen zur Schach KI

  Alt 26. Apr 2005, 12:24
Zitat von Arnulf:
Jede Figur hat also eine tabelle mit wertigkeiten - verhältnisse.
( 2 bauern für einen springer - 2 türme für eine dame und einen bauern usw.)
Jede figur hat gleichzeitig felder an denen sie ihre wertigkeit erhöhen können.
Das klingt interessant. Die Tabelle hätte ich gerne, wenns recht ist. Dann hätte ich bei der KI-Taktik, Figurenwertigkeiten, eine gute Basis.
Zitat von Arnulf:
Das ist jetzt rein taktisches spielen und wird das schachprogramm nicht gut machen aber es ist eine grundfunktion auf die man zurückgreifen kann.
Wieso macht es sich in Schachprogrammen nicht gut, ein taktisches Spielen zu haben ? Würde mir dies schon gelingen wär' ich endlich froh. Es soll nicht unbedingt die weltbeste Schach-KI werden.
Zitat von Arnulf:
Auch sollte die wertigkeit variabel werden können - für späteren ausbau. - also sich der spielsituation anpassen können.
Das hatte ich auch vor. Hier sind wir wieder bei der lernenden KI.
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#76

Re: Ideen zur Schach KI

  Alt 26. Apr 2005, 12:26
Hi...

Result:=Google('Schach', 'Datenbank', 'Eröffnung');
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#77

Re: Ideen zur Schach KI

  Alt 26. Apr 2005, 12:55
Zum Thema lernende KI:

Obwohl dies beim Schachspiel Relativ leicht ist, ist es auch wieder nicht so leicht.

Um einen Schachcomputer zum lernen zu bewegen muss man eine Zug -> Ergebniss - Analyse einführen.
D.h. der SC muss nach einem oder mehreren Zügen eine Analyse durchführen was die Züge von einem selber, und die Züge vom Gegner gebracht haben, dabei muss der Zusammenhang zu den Vorhergehenden Zügen beachtet werden.

Obwohl dies schon Relativ schwer ist wenn man sich nicht auf eine Feste Anzahl an Zügen beschränkt( Was dann eine Lineare KI wäre ), ist es noch viel Schwerer dem SC beizubringen diese Züge im Richtigen Moment auszuführen, oder z.b. eine Falle des Gegners vorzeitig zu erkennen und darauf entsprechend Reagieren zu können.
Felix K.
Zitat:
Siehst du diesen Park da unten?
Jeden Tag lernen sich leute kennen und verlassen einander, und du hast dein ganzes Leben Zeit darin zu gehen!
  Mit Zitat antworten Zitat
Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#78

Re: Ideen zur Schach KI

  Alt 26. Apr 2005, 13:00
Zitat:
Wieso macht es sich in Schachprogrammen nicht gut, ein taktisches Spielen zu haben ? Würde mir dies schon gelingen wär' ich endlich froh. Es soll nicht unbedingt die weltbeste Schach-KI werden.
Es macht das programm deshalb nicht gut, weil er nur taktisch spielen würde und keine startegie hätte.

Es wäre vermutlich spielbar und für anfänger vielleicht sogar garnicht schlecht - aber man kann so ein programm doch leicht austriksen - vor allem wenn man die wertigkeiten ungefähr kennt.

Ich wüde mit ein paar Profis reden die immer noch schach spielen - ich hab vor 8 Jahren aufgehört.

Aber die wertigkeit kann ich so ungefähr hinbekommen.

1. springer läufer haben gleiche wertigkeit.
2. turm = springer + bauer
3. dame = turm + 2 Bauern (od. springer/läufer).

Das sind ungefähre verhäldnisse.
Ausserdem gibt es kombinationen die stark sind.
2 Türme sind normalerweise stärker als 1 Dame - (1 Dame + Bauer).
2 läufer sind gut weil man beide felder überwachen kann - aber die schwäche ist hald, daß sie sich nicht gegenseitig decken können - ich hab immer einen läufer und einen springer bevorzugt.
1 läufer und 1 springer sind recht gut in kombination!
2 Springer sind eher schwächer (ähnlich wie zwei läufer).

Das ist mal nur ein leitfaden - ich denke jeder spieler hat da so seine eigenen vorzüge aber die grundstruktur stimmt.

wenn man das mal rein tatkisch aufbauen will, kann man neben der datenbank auch mal die wergikeit für die eröffnungszüge und die jeweiligen positionen der figuren in einer tabelle haben.
Diese Wertigkeit könnte sich nach ein paar zügen (ende der eröffnung) ändern und eben das erste mal anpassen.

Man gibt hier alse den springern oder läufern hohe weritkeiten ausserhalb der grundlinie.
Das wäre mal ein schachprogramm dem man ein gewisses taktick spiel nicht absprechen kann - aber gut macht es das programm sicher nicht. Es fehlt einfach immer noch die taktik und das ziel - und auch das erkennen von abstrakten gefahren.

Das Programm würde nur versuchen sich theoretisch gut zu positionieren - was für die viele spieler vermutlich sogar reichen würde

Arnulf
  Mit Zitat antworten Zitat
Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#79

Re: Ideen zur Schach KI

  Alt 26. Apr 2005, 13:27
Das ganze system auf wertigkeittabellen aufzubauen ist meiner meinung nach ein ganz interessante methode.
Man kann das soweit treiben, daß man auch tabellen für gefahrensituationen hat.
Schafft der gegner es mit einem zu eine figur in gefahr zu bringen (hier muß man dann auf die tabellen der wertigkeiten der figuren zurückgreifen).
kann also ein bauer von einem springer bedroht werden, wird man nich so viel darauf setzen ausser der bauer hat in seiner position eine hohe wertigkeit.
Die wertigkeit des bauern kann sich auch herabsetzen wenn er gedeckt ist.

Das ist vor allem ein spielen mit tabellen.
Aber eine situationsanalyse ist auf der art durchaus möglich.
Sicher ein professionelles schachprogramm wird das nicht aber es könnte schon seinen reiz entwickeln.

so ist sowas zumindest rein mathematisch möglich zu berechenen.

Immer noch gibts keine plan hinter dem ganzen - Aber zumindestens erkennt das programm dann spielsituationen.

Wenn das programm aktuell keine gefahr entdeckt wird es hald einen zug machen das die eigene position verbessert.
Aber geplant angreifen tut das hald immer noch nicht und abstraktere situationen werden hier wohl auch in die hose gehen.

Aber immerhin man könnte spielen - vor allem wenn man viel herumbastelt mit den tabellen.

Arnulf
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#80

Re: Ideen zur Schach KI

  Alt 26. Apr 2005, 13:42
Zitat von Arnulf:
1. springer läufer haben gleiche wertigkeit.
2. turm = springer + bauer
3. dame = turm + 2 Bauern (od. springer/läufer).

Das sind ungefähre verhäldnisse.
Ausserdem gibt es kombinationen die stark sind.
2 Türme sind normalerweise stärker als 1 Dame - (1 Dame + Bauer).
2 läufer sind gut weil man beide felder überwachen kann - aber die schwäche ist hald, daß sie sich nicht gegenseitig decken können - ich hab immer einen läufer und einen springer bevorzugt.
1 läufer und 1 springer sind recht gut in kombination!
2 Springer sind eher schwächer (ähnlich wie zwei läufer).

Das ist mal nur ein leitfaden - ich denke jeder spieler hat da so seine eigenen vorzüge aber die grundstruktur stimmt.
Nicht so ganz...

Bauer -> 1 Punkt
Springer/Läufer -> 3 Punkte
Turm -> 5 Punkte
Dame -> 9 Punkte
(wurde das nicht schon erwähnt hier irgendwo)

Deine Regeln (oder Leitfaden) sind größtenteil Schlußfolgerungen daraus.

Aber ich denke dass dieses Punkte System nicht 1:1 funktionieren wird. Wenn kaum noch Figuren auf dem Brett sind sind Bauern sehr wichtig, weil eine Dame draus werden kann. Wenn alle Figuren auf Schwarzen Feldern eine wichtige Funktion haben ist ein weißer Läufer (also der auf einem weißen Feld steht) unnütz. Wenn noch viele Figuren auf dem Feld sind und man mit einem Läufer eine komplette (oder gar zwei) Diagonalen beherrscht ist dieser Gold wert. Wenn er aber noch auf der grundlinie steht, weil vergessen/unterdrückt zu entwickeln, ist er schwach und wertlos. Zwei Läufer sind stark. Aber nur wenn sie nebeneinander stehen und auch wirklich felder bedrohen und sich nicht hinter einer Reihe Bauern verstecken. Ein Springer allein ist nicht mehr Wert als als ein Läufer aber wenn er im nächsten drei Zügen die Dame durch eine Gabel bekommt ist er (fast) die wichtigste Figur auf dem Brett.

Wie du siehst, alles nicht so einfach. Und ich denke so eine variable Wertigkeitstabelle sollte schon eine Rolle spielen bei der KI. Quasi Taktik-Boni für die Figuren.
Code:
Figurwert=FigurGrundwert+TakikBonus+X
MfG

Tonic

[Edit]
Ausserdem sollte es mehrere Sekundärziele geben, die die KI verfolgt. Angenommen die KI rechnet 4 (oder 5, 6, mehr) Züge voraus. (Das mag nicht viel erscheinen, aber das ist wohl mehr als was der durchschnitts Hobby Schachspieler vermag und die Rechenzyklen würden sich in grenzen halten.) Dann sollte sie auf jeden fall schauen, ob nicht innerhalb dieser Züge schon ein Matt/optional ein Remis zu erzwingen ist. Dann sollte sie gezielt schauen, ob nicht eine Figur gewonnen/optional abgetauscht oder bedingt abgetauschtwerden kann - soll heissen wenn sie dadurch startegischen Vorteil hat oder Punkte gewinnt (Bauern mehr oder sowas) ohne selbst schlechter da zu stehen. Natürlich sollte auch die eine oder ander Taktik darauf zielen, dass die Dame gewonnen/abgetauscht/bedingt abgetauscht wird.

Was ich damit sagen will: Es reicht nicht nur einen Spielbaum ( x Züge lang) zu erzeugen, sondern diesen auch noch dahingehend auszuwerten was alles für möglichkeiten drin sind. Dazu kommt, dass die KI nicht nur offensiv spielen darf. Es nutzt nichts, wenn die KI mit 19 Punkten vorsprung verloren hat
[/Edit]
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 8 von 10   « Erste     678 910      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz