Endliche Anzahl an möglichen Schach-Partien?

tja peter, und da wären wir wieder bei der rekursiven zählmethode...

doch noch sind die rechner nicht so weit.
es bleibt also nichts anderes, als die gedankengänge eines schachspielers zu simulieren.
der ansatz wäre: bei welchem zug verliere ich die unwichtigste figur im verhältnis zu der geschlagenen. dazu müsste man natürlich jeder figur einen wert zuordnen und dann mal schauen...
 
ALso : Ich habe in der Uni mal einige Leute genervt mit dem Problem(2 Profs und einen Übngsleiter sowie einige Komillitonen) .... herausgekommen ist folgendes:

1. es gibt eine Regel, die besagt ,dass das Spiel zu enden hat ,wenn man keine Chance hat den anderen noch zu besiegen (Bsp. nur noch 2 Könige)
Bezieht man diese Regel mit ein, so wird wohl jeder einsehen, dass es dann zwar unglaublich viele , aber endlich viele verschiedene Partien (!!!!!!!!) gibt!

2. wenn man ( nach guter alter Kneipenregel) diese Regel kippt, und sich wenn dann die SPieler einigen müssen, wann ein spiel beendet ist ( mal abgesehen vom Schlagen des Königs) , dann gibt es unendlich viele verschiedene Spiele...

@ seth was du sagst ist richtig, aber die ANFANGSFRAGE war,wieviele verschiedene Partien es gibtm, und da ist das einzige was weiterhilft ein Algorithmus, weil er eine immer wiederkehrende Sache (Ziehen der Spieler) beschreibt.....

CU
WaTcHmE
 
@Watchme...
ja..stimmt..aber die Anfangsfrage kann man wohl verwerfen...
Denn wie viele Partien schafft den z.B. ein Mensch im Leben ??
hm..wenn er also ab dem 6. Lebensjahr..bis zu seinem 80. 10 Partien am Tag spielt ..:))

@Peter

vermutlich wird man nicht darum herum kommen eine gewisse Anzahl von
Spielvorlagen und eroeffnungen einzuspeisen...
...*wurgs*...:)

:wq!
 
tja peter, und da wären wir wieder bei der rekursiven zählmethode...

doch noch sind die rechner nicht so weit.

Ich denke, dass das geht.

Denn wie viele Partien schafft den z.B. ein Mensch im Leben ??

Ich verstehe den Zusammenhang nicht ganz, denn es geht ja nicht darum, dass der Mensch alle durschspielt bzw. kennt, sondern nur darum ein Programm zu entwickeln das nicht geschlagen werden kann.

vermutlich wird man nicht darum herum kommen eine gewisse Anzahl von

Ja klar, die Eröffnung kann man selbstverständlich vorbereiten. Beispielsweise die jeweils 5-10 ersten Züge jedes Spielers. Dadurch erspart man sich dann eine Menge Rechenleistung.

Es wäre auch möglich, das Spiel in 3 Phasen zu teilen: Eröffnung, Strategische Positionierung und Vernichtung des Gegners. :D Wodurch eigentlich auch Rechenleistung gespart werden sollte.
 
Dadurch wäre das Programm dann aber nicht mehr unfehlbar. ;)

Es ist übrigens kein kunststück mit der nötigen rechenleistung ein unfehlbares programm zu schreiben, viel interessanter ists aber ein prog zu kreiren, das den spieler analysiert und dann hereinlegt!
 
Dadurch wäre das Programm dann aber nicht mehr unfehlbar

Wieso? Die Ressourcen stehen ja einfach nur schon zur Verfügung und werden ganz einfach nicht jedes mal neu berechnet.

Es ist übrigens kein kunststück mit der nötigen rechenleistung ein unfehlbares programm zu schreiben

Anscheinend schon. Warum gibt es sonst noch keine solchen Programme? Verteilt man halt die Rechenleistung auf viele verschiedene PCs.

viel interessanter ists aber ein prog zu kreiren, das den spieler analysiert und dann hereinlegt!

Also ist es für dich uninteressant, das perfekte Schachprogramm zu programmieren, dass nicht geschlagen werden kann?
 
es wäre genauso interessant, wie ien xxo programm zu schreiben, dass nicht geschlagen werden kann...
es ist wie gesagt nur eine frage der rechenpower. ich glaube übrigens nicht, dass es die nötigen anlagen bereits gibt!

eine echte KI zu schreiben, die sich verhält wie ein mensch (bzw. so tut), das wäre interessant!
 
eben nicht!

kein menschlicher schachspieler ist auch nur annähernd in der lage, zwei züge komplett im voraus zu durchdenken! er hat eine gewisse erwrtungshaltung vom gegner und auch eigene erfahrungen, die er in seine entscheidung einfließen läßt!
der simple algorithmus, aus allen möglichen zügen den besten zu finden, passt wohl eher zu einem vulkanier als zu einem menschen!
 
Man könnte natürlich auch 2 Hauptfunktionen ausarbeiten, die sich gegenseitig ergänzen und versuchen zusammen den best möglichen Zug zu berechnen. So könnte man eine Funktion repräsentativ für die linke (die logische) Gehirnhälfte und die andere Funktion repräsentativ für die rechte (die kreative) Gehirnhälfte verwenden. Man könnte dadurch beispielsweise in der einen Funktion wie blueflash erwähnt hat Erwartungen und Erfahrungen einfließen lassen und der anderen bestimmte Aufgaben zum Berechnen geben. Ich müsste mich aber erstmal näher informieren, wie das bei uns "da oben" genau abläuft.
 
ich versuche zur zeit, einen ki algorithmus zu schreiben, der den computer befähigt, im xxo unschlagbar zu sein. wenn der fertig ist, werde ich ihn als denkansatz hier posten.
 
Bei XXO geht das aber nicht wirklich. Zumindest wenn wir das gleiche Spiel meinen mit den 3x3 großen Feld?!?! Der Großteil der Spiele geht dabei unentschieden aus. Es gibt nur sehr wenige Möglichkeiten das Spiel zu gewinnen. Aber vielleicht meinst du ja ganz ein anderes.
 
Ich würde lieber alle Züge berechnen die zum Gewinn führen berechnen lassen und die zu Verlieren führen löschen. Soviel zu einer "KI"
 
Klar, dass du die Züge berechnest. Nur weißt du ja vorher nicht, welche jetzt Siege werden und welche Niederlagen. Dass du dann im Endeffekt die Niederlagen "rauslöscht" ist ja logisch. Die Berechnung für den nächsten Zug wird daher also nicht schneller. Abgesehen davon, dass - wie schon weiter oben erwähnt - es keine KI ist. Ich denke wir sollten überhaupt vom Begriff KI in diesem Fall weggehen. Das hat ja im Grunde garnichts damit zu tun. Es geht einerseits darum ein System zu entwickeln das unschlagbar ist und andererseits ein System zu erschaffen, dass so vorgeht wie ein Mensch.
 
Das mit dem Mensch kannst du so ziemlich vergessen, weil Menschen auch spontane "verwirrungszüge" machen kann ... das wirst du einem PC niemals beibringen....schon garnicht mit diesen "kleinen" PC's .. da dauert jeder Zug dann mehr Als lange ... (ein Leben = eine Partie ??)

CU

WaTcHmE
 
Ich nehme mal an, dass keiner freiwillig gegen einen psychisch kranken Typen spielen möchte. :D Mir geht's persönlich auch nicht darum einen menschen-ähnlichen zu programmieren. Da dieses Thema durch die Diskussion mit blueflash aber aufkam, können wir das auch weiterhin besprechen.
 
ich habe an das 3x3 spiel gedacht.
mit unschlagbar meinte ich, ein system, dass nicht besiegt werden kann (selbst, wenn du perfekt spielst, wirst du höchstens ein unentschieden schaffen).

der code wäre dann eine grundlage, die man ausbauen könnte (4gewinnt, schach[?], usw.)
dabei bildet ein rekusiver mechanismus, der alle möglichen züge berechnet das herzstück (und genau darum ging es ja in diesem thread zuerst).
 
Ich bin ebenfalls gerade dabei ein solches (ähnliches) "Herzstück" für Schach zu programmieren.

Nur so nebenbei: Es war garnicht so "leicht" die ganzen einzelnen Züge der jeweiligen Figuren zu programmieren. Ich hab zwar Sachen wie die Bauernumwandlung und das Vertauschen von König/Turm "noch" nicht berücksichtigt, wenn es fertig ist, dürfte sich aber zumindest eine gute Hochrechnung machen lassen bezüglich der notwendigen Rechenleistung bzw. den notwendigen Festplattenspeicher, der benötigt wird um alle Schachpartien zu erstellen bzw. zu speichern.

Ach ja, was vielleicht noch recht interessant sein könnte: Ich hab den Code zwar noch nicht optimiert, er umfasst allerdings bis jetzt in der Programmiersprache C mehr als 1800 Zeilen Code. :))
 
Bezüglich dem 3x3 Spiel:

Ist die Annahme richtig, dass bei diesem Spiel die höchstmöglich verschiedene Anzahl an Spielsituation die Fakultät von 9 ist?

Erklärung:
Zu Beginn hast du 9 Felder zur auswahl um ein X zu setzen. Wenn das erste X feststeht, hat man für das O nur noch 8 Möglichkeiten. Für's nächste X dann nur noch 7 usw. Demnach müsste das Ergebnis, wenn ich richtig gerechnet habe - 362.880 sein (9*8*7*6*5*4*3*2*1). Beim XXO-Spiel müsste dann die Anzahl aller möglichen Spielsituationen gleich der Anzahl der Spielwege bis zum Ende sein. Es wäre interessant zu erfahren, wie die Prozentverteilung zwischen Sieg-Niederlage-Unentschieden ist.

Zusätzliche Anmerkung:
Wenn die Zahl 362.880 wirklich stimmt, dann ist sie sowieso nur "relativ", da man das Spielbrett ja in alle 4 Richtungen kippen kann.
 
Zurück
Oben