Schachcomputer.info Community

Schachcomputer.info Community (https://www.schachcomputer.info/forum/index.php)
-   Die ganze Welt der Schachcomputer / World of chess computers (https://www.schachcomputer.info/forum/forumdisplay.php?f=2)
-   -   Review: Der "richtige" Weg in der Schachprogrammierung ? (https://www.schachcomputer.info/forum/showthread.php?t=3523)

Paisano 16.05.2010 22:57

Der "richtige" Weg in der Schachprogrammierung ?
 
Hallo zusammen,

in der vergangenen Zeit wurde schon immer mal wieder hier und dort das Thema angerissen, die kürzlichen Meinungen dazu sind sicher endlich mal einen eigenen Thread wert.

Diskussionswürdige Fragen wären zum Beispiel:
  • Soll ein Programm möglichst stark spielen oder menschliche "Strategien" nachahmen ?
  • Sollte man mehr auf die Software eingehen ?
  • Wie ist "Schachwissen" zu bewerten ?
  • Was versteht man unter "Schachwissen" ?
  • Warum kann "Schachwissen" schlecht sein ?
  • Projekt Hydra - hat das noch etwas mit Computerschach zu tun ?
  • Muss ein Programmierer ein guter Schachspieler sein ?
  • Botwinniks "Pionier"
  • Welche Rolle spielte die Hardware in den Anfangszeiten des Computerschachs ?
  • Waren die Programmierer früher "besser" ?
  • Wie sind die bekannten Programmierer der Vergangenheit zu bewerten ? (Lang = clever ?, Morsch = primitiv ?, Schröder = effektiv ? usw.)
  • Können wir diese Fragen überhaupt objektiv beantworten oder haben wir die "Gute alte Schachcomputer"-Brille auf ?;)
Die vorstehenden Punkte hab ich einfach mal so, wie sie mir durch den Kopf gegangen sind, aufgeführt, gibt sicher noch einiges mehr, sie sollen nur den Bereich verdeutlichen, auf den sich der Titel des Threads bezieht.

Also, wer was zu sagen hat, raus damit;)

Grüße
Uwe

mclane 17.05.2010 09:23

AW: Der "richtige" Weg in der Schachprogrammierung ?
 
man muß sehen das früher vieles durch die schwache hardware bedingt war, den geringen speicherplatz den man hatte. heute ist das alles kein probem mehr. aber damals....
damals mußte man sehr platzsparend und effizient programmieren.

ich würde sagen die programme von heute (PC) unterscheiden sich nicht viel von den programmen damals. z.B. die enormen Rechentiefen die heute Fakt sind, entstehen durch extremes Pruning. Also dem gegenteil von Brute-Force, wie es im B+P oder MM2 realisiert wird.

Nimmt man die Geschichte der Schachcomputer, hat sich das vorwärtsabschneiden von Ästen/Zügen aufgrund von positionellen Kriterien also als sehr erfolgreich gezeigt, obwohl es DAMALS als die Anfänge waren auf den bescheidenen CPUs (Mark V, B-Strategie, 1 oder 2 mhz 6502)
noch sehr oft zu Fehlern kam.

Mark V, Mephisto III, und sicherlich lassen sich noch diverse Andere finden, sind also gute Beispiele für intelligente vorwärtsabschneidende Programme, wie wir sie heute auf den PCs auch noch haben.

Eine Zeit lang dominierten die Gewaltprogramme, als B+P, MM2 und im Umfeld Constellation und PSH- kursierten. PSH war ja der Versuch einem Gewaltprogramm mittels If-Klauses (Wenn dann Bedingungen) konkret Sachverstand einzuhauchen.

Jeder Programmierer hatte so seine speziellen methoden der Variantenexplosion im Suchbaum Herr zu werden.

Lang setzte auf Asymmetrie in der Zuggenerierung, auf einen STATISCHEN Abtauschbewerter. In Folge der Spielstil.

Schröder war dazu ganz was anderes.
Kittinger hat seine Gewaltprogramme immer wieder neu frisiert und auch zuletzt selektiver gemacht.
Und Frans Morsch kam mit seinen Null-Move Programmen bei denen es IM SUCHBAUM keine Stellungsbewertung gab. Es gab ein Preprocessing mit einer ausführlichen Bewertung und dann IM SUCHBAUM nur relative Bonus/Malus Bewertungen. Das hatte den Effekt das mit zunehmender Rechentiefe die Fehlerhäufigkeit bei Abschätzungen wuchs , weil die relativen Bewertungen sich ja immer mehr von der Wurzel entfernten.

Sicherlich wäre es anders gekommen wenn Thomas Nitsche und Elmar Henne weitergemacht hätten. Vielleicht in Eigenregie. Es wäre dann experiementierfreudiger geblieben.

Mythbuster 17.05.2010 11:11

AW: Der "richtige" Weg in der Schachprogrammierung ?
 
Zitieren:

Zitat von Paisano (Beitrag 30743)
in der vergangenen Zeit wurde schon immer mal wieder hier und dort das Thema angerissen, die kürzlichen Meinungen dazu sind sicher endlich mal einen eigenen Thread wert.

Stimmt! Ich beschäftige mich seit den 80er Jahren mit der Schachprogrammierung und habe mal ein Programm in QBasic geschrieben. Seit einigen Jahren arbeite ich an "Bender", einem intelligenten Schachprogramm, welches einige Höhen und mehr Tiefen hat ... einige User aus dem Forum kennen das Programm schon von Partien "Chessguru - Bender" auf Chessgate ... wo das Programm mir schmerzlich demonstrierte, wo noch Lücken in den Bewertungsfunktionen sind. Es kommt derzeit auf ca. 2.000 Elo Punkte auf einem Notebook mit 1,3 GHz ULV CPU. Schachprogrammierung ist aus meiner Sicht ein durchaus spannendes Thema.


Zitieren:

Zitat von Paisano
Diskussionswürdige Fragen wären zum Beispiel:

Viele unterschiedliche Fragen, die teilweise einzeln schon seitenlange Antworten verdienen. Dann will ich wenigstens kurze Antworten versuchen.



Zitieren:

Zitat von Paisano
Soll ein Programm möglichst stark spielen oder menschliche "Strategien" nachahmen ?

Das hängt davon ab, zu welchem Zweck Du das Programm entwickelst und für welche Zielgruppe. Aus meiner Sicht ist eindeutig die "menschliche" Strategie zu bevorzugen. Aus dem einfachen Grund, da ich Programme zu Spielen nutze und nicht zum Selbstzweck wie es zum Beispiel im Nachbarforum zu beobachten ist. Tausende Partien im Sekundenblitz absolvieren zu lassen, um dann zu sehen, welches Programm vermutlich ein paar Elo Punkte besser "spielt" ... nein, das hat nichts mehr mit "Schach" zu tun ... aus meiner Sicht. Natürlich, es ist gut, eine Starke Analyse Engine zu haben ... aber dazu reichen meines Erachtens selbst Programme von vor einigen Jahren völlig aus.

Wenn man selbst gegen Programme spielen will, ist eine gewisse Nachvollziehbarkeit ein sehr wichtiger Punkt. Genau hier unterscheiden sich aus meiner Sicht "wissensbasierende" Programme von den üblichen Programme. Aber darauf werde ich weiter unten mit einem Beispiel eingehen.



Zitieren:

Zitat von Paisano
Sollte man mehr auf die Software eingehen ?

Wie meinst Du das?



Zitieren:

Zitat von Paisano
Wie ist "Schachwissen" zu bewerten ?

Was verstehst Du unter "zu bewerten"? Wie das Schachwissen in die Bewertung einfließt oder eher allgemein, welche Bedeutung Schachwissen für das Programm hat?

Ich denke, jeder Programmierer muss sich am Anfang die Frage stellen, welchen Weg er gehen will. Möglichst viel Wissen oder schnelle Bewertung mit extremen Rechentiefen ... jedes dieser Systeme hat Vor- und Nachteile.

Die Vorteile von viel Wissen:
- "Intelligentes" Spielverhalten.
- Interessanterer Spielstil.

Nachteile von viel Wissen:
- Langsamer
- Weniger Zugewinn an Spielstärke durch schnellere Hardware.
- Vermutlich immer modernen "schnellen Brütern" von der Spielstärke unterlegen.


Die Vorteile von wenig Wissen:
- schnelle Baumsuche mit extremen Rechentiefen.
- Programm profitiert dauerhaft von schnellerer Hardware.

Nachteile:
- Stil oftmals langweiliger und aus menschlicher Sicht unlogisch.



Zitieren:

Zitat von Paisano
Was versteht man unter "Schachwissen" ?

Schachwissen wird oft mit Bewertungsfunktionen verwechselt. Die Bewertungsfunktion setzt sich zusammen aus: Figurenwerte, Dynamik der Figuren (Anzahl der Zugmöglichkeiten etc.), Zentrumskontrolle, Königssicherheit etc. pp.
Das reine Schachwissen hingegen ist Theorie, die unabhängig einer speziellen Stellung greift.

Beispiele:
- Quadratregel
- Falsches Läufer Spiel

An dieser Stelle möchte ich ein Beispiel dafür geben, warum aus meiner Sicht Programme mit viel Wissen zu bevorzugen sind und warum sie menschlicher und interessanter spielen. Ich nehme dazu ein einfaches Endspiel: KLS - K

Wenn Du das theoretische Wissen hast, wie Du mit Läufer und Springer matt setzen kannst, wirst Du es instinktiv tun, ohne lange über jeden Zug nachdenken zu müssen. In der Regel wirst Du dies dann immer nach dem gleichen Schema tun, welches auch umstehende Zuschauer erkennen und verstehen! Das ist Wissen und menschlich!

Viele unserer alten Brettcomputer beherrschen dieses Endspiel problemlos: Der uralte Mephisto II von 1981, der Super Conny von 1984 und natürlich alle Lang Programme. Wie gesagt, selbst der Mephisto II "weiß", wie es geht und wird den Gegner matt setzen. Die Art und Weise, wie er es tut, wirst Du selbst problemlos verstehen und nachvollziehen, wenn Du selbst dieses Endspiel rudimentär beherrscht.

Viele der modernen Programme haben selbst dieses Wissen nicht mehr! Zum Beispiel kann Rybka 3 nicht mit Läufer und Springer das Spiel gewinnen, ohne entweder auf eine Datenbank zuzugreifen oder das Matt zu errechnen! Diue Züge einfach aus der Endspieldatenbank abzurufen, hat rein gar nichts mehr mit Intelligenz oder Spiel zu tun. Da die Hardware heute 1.000.000fach schneller ist, als die eines Mephisto II, lassen sich solche Positionen natürlich "errechnen", die benötigte Rechentiefe erreicht Rybka relativ schnell.

Jetzt könnte man sagen, es ist doch völlig egal, wie das Programm zum Ziel (Matt) gelangt, das Ergebnis zählt. Doch genau das sehe ich anders. Einerseits ist es für mich wesentlich beeindruckender, wenn das Programm aufgrund von Wissen zum Ziel gelangt und nicht einfach stupide rechnet bzw. in einer Datenbank abruft.

Ein anderer Punkt ist wesentlich entscheidender: Die Züge aus einer Datenbank oder auch nach der Suche (schnell aber dumm) sind oftmals effizienter, aber aus menschlicher Sicht nicht mehr nachvollziehbar. Sprich, es ist möglich, daß die Datenbank ein Matt in 14 ausgibt, welches zwar der schnellste Weg zum Ziel ist, aber aus menschlicher Sicht nicht nachvollziehbar! Ein Turnierspieler würde vielleicht 22 Züge brauchen ... die aber kann der Amateur dann auch nachvollziehen.

Bein Endspiel KLS - K mag das nicht soooo offensichtlich sein, aber wer mal KD - KT testet, merkt sehr schnell, wo die Unterschiede der unterschiedlichen Ansätze sind.



Zitieren:

Zitat von Paisano
Warum kann "Schachwissen" schlecht sein ?

Siehe oben: Schachwissen belegt Rechenleistung und verlangsamt das Programm.

Mittlerweile gilt es als unbestritten, dass Programme, die über viel Wissen verfügen, weniger von schnellerer Hardware profitieren als "dumme" Programme, die sich möglichst schnell so tief wie möglich in den Suchbaum eingraben ...

Das Ergebnis dessen ist bekannt: Es gibt Programme, die zwar im von Version zu Version dümmer werden, aber dennoch stärker spielen: Rybka 2 kannte zum Beispiel noch das "Falsche Läufer Spiel" ... Rybka 3 nicht mehr ...

Die Begründung: Es gibt nur selten Situationen, wo dieses Wissen greift und den "Sieg" bringt ... aber in jeder Partie verlangsamt das Wissen die Suche. Unterm Strich überwiegen somit die Vorteile den wenigen Punktverlusten, die eingefahren werden, weil das Programm einfach nicht weit genug rechnen kann, um zu sehen, daß es sich in die "falsche Läufer Falle" verstrickt hat ...



Zitieren:

Zitat von Paisano
Projekt Hydra - hat das noch etwas mit Computerschach zu tun ?

Kein Ahnung, ich habe mich nur wenig damit befasst.



Zitieren:

Zitat von Paisano
Muss ein Programmierer ein guter Schachspieler sein ?

Nein, absolut nicht. Richard Lang ist nur ein sehr mäßiger Spieler, der grade mal die Regeln beherrscht. Sicherlich kann es nicht Schaden, selbst gut spielen zu können und sicherlich sollte man starke Spieler im Team haben, um das Ergebnis testen zu können ... aber für die Programmierung ist das nicht nötig.



Zitieren:

Zitat von Paisano
Botwinniks "Pionier"

Aus meiner Sicht eine interessante Theorie, die man mal mit moderner Hardware umsetzen sollte .... allerdings halte ich viele Dinge für zu abstrakt, um tatsächlich umgesetzt zu werden ...



Zitieren:

Zitat von Paisano
Welche Rolle spielte die Hardware in den Anfangszeiten des Computerschachs ?

Ich denke schon. Da die Hardware im Vergleich zu heute sehr begrenzt war, mussten die Resourssen optimal ausgenutzt werden. Da die Hardware zu langsam war, um mit stupider Suche echte Fortschritte zu machen, mussten die Programmierer andere Wege suchen, um echte Fortschritte zu erzielen. Das Ergebnis waren selektive Suchverfahren und Programme mit viel Schachwissen.



Zitieren:

Zitat von Paisano
Waren die Programmierer früher "besser" ?

Ein deutliches "Ja!". Wenn man mal darüber nachdenkt, was ein Richard Lang (und andere Programmierer jener Zeit) aus 32, 64 oder 128 KB und 512 KiloByte RAM geholt hat! Das ist schon sehr beeindruckend, wenn man sich dagegen heutige Programme und Engines anschaut.



Zitieren:

Zitat von Paisano
Wie sind die bekannten Programmierer der Vergangenheit zu bewerten ? (Lang = clever ?, Morsch = primitiv ?, Schröder = effektiv ? usw.)

- Lang: Sehr viel Schachwissen, sehr selektive Programme.

- Morsch: Erster "moderner" Programmierer, ab ca. Magellan: Weniger Wissen, dafür schnelle, effiziente Suche mit großen Tiefen.

- Schröder: Ebenfalls viel Wissen, weniger selektiv, weniger Endspielwissen.

- de Koning: Ebenfalls sehr viel Wissen, allerdings weniger Endspielwissen als Langprogramme.



Zitieren:

Zitat von Paisano
Können wir diese Fragen überhaupt objektiv beantworten oder haben wir die "Gute alte Schachcomputer"-Brille auf ?;)

Warum nicht? Ich denke schon, daß Spieler, ab einer gewissen eigenen Spielstärke durchaus in der Lage sind, ein Urteil abzugeben. Das kann ich auch relativ leicht belegen:

Es wäre einfach (und günstiger) ein Netbook mit DGT Brett zu nehmen ... dann hat ma auch das Brettgefühl und etliche Programme zur Auswahl. Nun könnte man natürlich sagen, das zählt nicht, weil die Programme viel zu stark sind ... aber auch hier möchte ich widersprechen: Etliche moderne Programme lassen sich auf das Niveau eines Vancouver, einer V11 oder eines R30 drosseln .... trotzdem kenne ich kein Programm, welches mir auch nur ansatzweise den gleichen Spaß beim Spiel bietet, wie diese "alten Recken" ...

Nun ja, jedenfalls nutze ich zum eigenen Spiel auf dem Revelation zu 95% die Emulationen ...

Uff, war jetzt doch etwas mehr Text als beabsichtigt ...

Grüße,
Sascha

Paisano 17.05.2010 20:25

AW: Der "richtige" Weg in der Schachprogrammierung ?
 
Zitieren:

Zitat von mclane (Beitrag 30745)
ich würde sagen die programme von heute (PC) unterscheiden sich nicht viel von den programmen damals. z.B. die enormen Rechentiefen die heute Fakt sind, entstehen durch extremes Pruning. Also dem gegenteil von Brute-Force, wie es im B+P oder MM2 realisiert wird.

Ich weiss nicht recht, für mich ist dafür in erster Linie die verfügbare schnelle Hardware und reichlich Speicher verantwortlich, allein extremes Pruning ging ja schon mit dem Mephisto III schief
und dessen Programmierer haben sicher eine Menge Zeit investiert, ihrem Programm das Unterscheiden zwischen guten und schlechten Varianten "beizubringen", mit Sicherheit mehr, als es die
heutigen Programmierer tun. Und das Erkennen, wo man Abschneiden kann und wo nicht, ist ja eines der elementarsten Probleme in der Schachprogrammierung...
Zitieren:

Zitat von mclane (Beitrag 30745)
Nimmt man die Geschichte der Schachcomputer, hat sich das vorwärtsabschneiden von Ästen/Zügen aufgrund von positionellen Kriterien also als sehr erfolgreich gezeigt, obwohl es DAMALS als die Anfänge waren auf den bescheidenen CPUs (Mark V, B-Strategie, 1 oder 2 mhz 6502)
noch sehr oft zu Fehlern kam.

ja, daß mit Brute Force langfristig nicht weiter zu kommen war, haben damals sehr viele Programmierer frühzeitig erkannt.

Paisano 17.05.2010 22:38

AW: Der "richtige" Weg in der Schachprogrammierung ?
 
Hallo Sascha,
danke für Deine ausführlichen und interessanten Ausführungen.

Zitieren:

Zitat von Mythbuster (Beitrag 30747)
Viele unterschiedliche Fragen, die teilweise einzeln schon seitenlange Antworten verdienen. Dann will ich wenigstens kurze Antworten versuchen.

Ja, wie gesagt waren die aufgeführten Punkte quasi als als Anregungen und Denkanstösse gedacht:), da kann man sicher auf das eine oder andere Thema ausführlicher eingehen.
Zitieren:

Zitat von Mythbuster (Beitrag 30747)
Sollte man mehr auf die Software eingehen ?
Wie meinst Du das?

Hintergrund dieser Frage war, ob man beim Versuch, ein Schachprogramm zu verbessern (=höhere Spielstärke) mehr auf neue Programmiertechniken oder mehr auf Hardware-Optimierung gehen sollte.
Sicher eine schwierige Frage, auf die vermutlich nur Programmierer von starken Engines eine Antwort geben können. In Anbetracht der Tatsache, dass auch zukünftig immer schnellere Hardware verfügbar
sein wird, vermute ich, dass es mehr in diese Richtung gehen wird, die Frage, inwieweit man heutige Schachprogramme durch neue Programmiertechniken verbessern kann, kann ich nicht beurteilen:o
Zitieren:

Zitat von Mythbuster (Beitrag 30747)
Wie ist "Schachwissen" zu bewerten ?
Was verstehst Du unter "zu bewerten"? Wie das Schachwissen in die Bewertung einfließt oder eher allgemein, welche Bedeutung Schachwissen für das Programm hat?

Ja, hab ich zu vage formuliert, lässt sich am Besten an diesem Beispiel verdeutlichen: Kürzlich hat Manfred in diesem Thread https://www.schachcomputer.info/foru...ead.php?t=3522 festgestellt,
daß der TC2100 nicht "weiß", daß er mit dem Läufer allein nicht mattsetzen kann, die Partie ist aber faktisch Remis. Spielt es jetzt eine Rolle, ob das Programm nun Remis anzeigt oder +3,50 ??

Wie anfangs schon erwähnt gibt es sicher noch viele Punkte, auf die man näher eingehen kann, aber dafür braucht's mehr Zeit:)

Gruß
Uwe

Mythbuster 17.05.2010 22:48

AW: Der "richtige" Weg in der Schachprogrammierung ?
 
Zitieren:

Zitat von Paisano (Beitrag 30768)
Kürzlich hat Manfred in diesem Thread https://www.schachcomputer.info/foru...ead.php?t=3522 festgestellt,
daß der TC2100 nicht "weiß", daß er mit dem Läufer allein nicht mattsetzen kann, die Partie ist aber faktisch Remis. Spielt es jetzt eine Rolle, ob das Programm nun Remis anzeigt oder +3,50 ??

Kurze Antwort: Ja! Die Begründung ist einfach. Wenn ein Computer weiß, mit welchem Material er mattsetzen kann oder im Gegenteil ein Remis noch erkämpfen kann, spielt dies eine wichtige Rolle in der Berechnung.

Hierzu ein Beispiel mit mehr Deutlichkeit. Ein Matt mit zwei Springern ist nicht möglich. Jetzt gibt es durchaus Situationen, in denen man so manchen Computer dazu bewegen kann, daß er im weiteren Verlauf "mit zwei Springern dasteht" ... statt zum Beispiel mit einem Springer und einem Bauern ... und schon stellt dieses "Nichtwissen" einen deutlichen Nachteil dar.

Es gibt eine nette Teststellung dazu. In dieser Teststellung hat der Computer die Wahl, ob er beide Springer retten kann oder nur einen Turm ... viele Computer entscheiden sich für die beiden Springer, weil der Nominalwert der beiden Springer höher ist, als der des Turmes ... wenn der Computer hingegen über das Wissen verfügt, daß zwei Springer nicht reichen, trifft er sofort die richtige Entscheidung, auch wenn er "das Ende" nicht sehen bzw. errechnen kann.

Als Beispiel kann man hier die V2 nehmen, die sofort den Turm schlägt und 0.00 anzeigt.

Gruß,
Sascha

HPF 17.05.2010 23:16

AW: Der "richtige" Weg in der Schachprogrammierung ?
 
Zitieren:

Zitat von Paisano (Beitrag 30743)
Hallo zusammen,

in der vergangenen Zeit wurde schon immer mal wieder hier und dort das Thema angerissen, die kürzlichen Meinungen dazu sind sicher endlich mal einen eigenen Thread wert.

Diskussionswürdige Fragen wären zum Beispiel:
  • Soll ein Programm möglichst stark spielen oder menschliche "Strategien" nachahmen ?
  • Sollte man mehr auf die Software eingehen ?
  • Wie ist "Schachwissen" zu bewerten ?
  • Was versteht man unter "Schachwissen" ?
  • Warum kann "Schachwissen" schlecht sein ?
  • Projekt Hydra - hat das noch etwas mit Computerschach zu tun ?
  • Muss ein Programmierer ein guter Schachspieler sein ?
  • Botwinniks "Pionier"
  • Welche Rolle spielte die Hardware in den Anfangszeiten des Computerschachs ?
  • Waren die Programmierer früher "besser" ?
  • Wie sind die bekannten Programmierer der Vergangenheit zu bewerten ? (Lang = clever ?, Morsch = primitiv ?, Schröder = effektiv ? usw.)
  • Können wir diese Fragen überhaupt objektiv beantworten oder haben wir die "Gute alte Schachcomputer"-Brille auf ?;)
Die vorstehenden Punkte hab ich einfach mal so, wie sie mir durch den Kopf gegangen sind, aufgeführt, gibt sicher noch einiges mehr, sie sollen nur den Bereich verdeutlichen, auf den sich der Titel des Threads bezieht.

Also, wer was zu sagen hat, raus damit;)

Grüße
Uwe

Hallo Uwe,

langsam verstehe ich, warum Schachwissen nicht gefragt ist. Der Grund hierfür liegt nach meiner Auffassung im Bewertungs-Algorithmus. Der ist erforderlich, um Abschneidungen durchführen zu können, die notwendig ist, da ansonsten die Berechnung uferlos wird.
Schachwissen ist programmiertechnisch betrachtet schwierig durchzuführen. Man gibt einem Programmierer gewisse Regeln vor, nach der das Programm schreiben soll. Ich glaube mittlerweile, dass sehr gute Kenntnisse über das Schachspiel nur hinderlich sind. So sollen die 32 parallel geschalteteten Prozessoren beim Projekt Hydra ca. 200 Millionen Züge prüfen. Dies geht nur durch einen einfachen Algorithmus.

Die RWTH-Aachen hat dazu einen guten Artikel über den Bewertungsmodus geschrieben. Die Bewertung einer Stellung wird im Artikel exemplarisch durchgeführt.

Wie soll zum Beispiel das Endspiel LSK-K durchgeführt werden. Ein Matt sollte mit 50 Zügen erreicht werden. Ohne genauen Plan, ist es trotz sehr guter Hardware, kaum oder nicht erreichbar (unter einem vernünftigen Zeitlevel betrachtet). Betrachte nur mal die verschiedenen Regeln beim Freibauer. Der Turm soll voran gehen, der König hinter dem Bauer. Oder die Regel hinsichtlich zur Opposition der Könige. Wie verhält sich der gegnerisch König? Die Quadratregel usw. .
Früher gab es keine so starke Hardware wie jetzt. Sie war nicht entwickelt und teuer. Starke Prozessoren waren zu teuer, was gleichfalls auch für Speicher gilt. Dies gilt auch für den den 3 Grundbaustein beim Computerschach, der für die Steuerung der Suche und der Zugauswahl notwendig ist.

Man darf nicht vergessen, dass Schachcomputer Spielzeug waren und sind. Eine Randgruppe von Techniker und Programmierer wollten Beispiele für KI aufzeigen. Aus dieser Idee entstanden Schachcomputer als Beispiel und als Massenware. Hier sollte auch nicht vergessen werden, dass nur 3% von Schachspieler in der Welt einen Elowert von über 2000 besitzen. Einfache und preiswerte Schachcomputer reichen dafür allemal.


Paul

SörenH 17.05.2010 23:29

AW: Der "richtige" Weg in der Schachprogrammierung ?
 
Hallo,

ein Aspekt, den ich speziell bei der Programmierung von Brettcomputern bemerkenswert finde ist, dass man (vor allem damals) nicht die komfortablen Möglichkeiten des Debugging und Testen hatte, wie heutzutage am PC. Jetzt kann man mittlerweile bequem das Verhalten von "Embedded Hardware" auf dem PC simulieren. Früher gab es das nicht (oder nur eingeschränkt). Deshalb stelle ich mir die Fehlersuche sehr mühsam vor. Geschweige denn, dass man verschiedene Konzepte mal schnell testen konnte. Tja, die gute alte Zeit, da hat man noch viel mit Papier und Bleistift entwickelt. ;)

Noch ein anderer Punkt, es wurde häufig darauf hingewiesen, dass die Schachprogramme von der Hardware-Entwicklung profitiert haben und man auch weniger Schachwissen in die Programme steckte. Das stimmt zum Teil. Es ist auch ein bisschen schade, weil bis heute die richtigen Werkzeuge fehlen, einen verbalen Plan "Gehe mit Deinem König ins Zentrum und halte mit dem Springer den Freibauern auf" erstmal zu entwickeln und dann in eine Bewertungsfunktion oder Algorithmus umzusetzen. Ich denke aber, dass die Fortschritte nicht nur von der Hardware kommen, sondern dass der Programmierung in erster Linie sein Programm ständig effizienter machen muss. Ich habe letztens die Dos-Programme Fritz, Fritz2 und Fritz3 auf einer alten Maschine mit Mattaufgaben getestet. Das war unglaublich, eigentlich ist die Matt-Suche recht trivial, es gibt eine sehr einfache Bewertungsfunktion (Matt oder nicht Matt). Und trotzdem haben sie für komplizierte Mattaufgaben unterschiedliche Zeiten gebraucht. Das ging von Fritz 3 zu Fritz 1 fast schon ins Zehnfache der Zeit auf derselben Hardware. Das allein zeigt, dass permanente Optimierung durchaus was bringen.

Gruss
Sören

spacious_mind 18.05.2010 02:09

Re: Der "richtige" Weg in der Schachprogrammierung ?
 
Ich bin kein Techniker und ich habe es auch schwer mit das Deutsch daher werde ich nichts ueber das Technische wieso und was Schreiben.

Ich hatte mal in ein Englisches Forum diese gleiche Fragen gestellet die ich jetzt hier mal versuche auf Deutsch zu schreiben. Die reaktion war interessant und es gab auch ein paar aufregungen :)

In den 30/40 iger Jahren da hatte der Hollaender Adrian de Groot Turnier Schachspieler (Profies und Amateure) fuer 10 plus Jahre verfolgt in Ihre Turniere und sie danach Fragen gestellt ueber Ihre spiele.

Es kam raus das ein Schachspieler egal ob er Profi ist oder Amateur nur durchschnittlich 6 Tief rechnet. Der bessere spieler durch erfahrung und durch seiner Natur sieht aber die positionen besser und sieht die Zukunft besser. Er ist aber nicht klueger und er rechnet auch nicht tiefer.

Als das Bericht raus kam da wollten naturlich die Welt Ihn zeigen das er falsch ist mit sein Bericht und die Russen und Amerikaner haben dann aehnliche Tests gemacht und mit den gleichen ergebnissen. Daher wurde der Adrian de Groot nie wiedersprochen.

Jetzt kommt der David Levy an in den 70iger Jahren und meldet zu der Welt das kein Computer Ihn in 10 Jahren schlagen wird und macht eine Wette daraus. Was naturlich alle hersteller und progammierer herausfordert Ihn zu schlagen. Und so faengt dann das rennen an schneller und schneller zu werden und egal wie man gewinnt.

Jetz naturlich wollte der David Levy damit nur Schlagzeilen machen und ein bischen beruehmtheit bekommmen. Die folgen im Grunde genommen waren ja egal. Die Schlagzeile und Buecher zu verkaufen war das wichtigste :)

Und die Welt von Schachprogrammieren lauft fort in eine Richtung wo wir jetzt stehen. Computer gegen Menschen schach ist Tot. Fasst niemand spielt gegen die neuen programme ausser fuer Analyse und die Interesse ist am Sterben fuer die Masse.

Genau zu der Zeit als der David Levy die Welt aufgefordert hatte, wenn man da zurueckgehen koennte und der David Levy anstatt eine ausforderung gemacht haette zum Motto das "kein Schachcomputer der das Spiel wie ein Mensch spielt Ihn nicht schlagen kann" und dann das Werk von Adrian de Groot als basis genommen haette. Zum Beispiel zu sagen:

Der menschliche Computer darf nicht mehr als 6 Tief rechnen und darf selektiv nur zb 4 Stellungen bis auf 12-18 gehen (als Beispiel).

Dann wer weiss, vielleicht haetten wir heutzutage richtige interessante schachprogramme die noch gegen menschen spielen in turniere und weltmeisterschaften und in schachclubs und uns begeistern wuerden mit ihren schachlichen wissen und raffinierten klugheit :)

Ein anderer weg waere ja auch gewesen die obige aussage auf geschwingikeit um zu rechnen und zu sagen fuer veranstaltungen darf der computer nur maximal 50 MHz haben was dann vielleicht den gleichen Ziel erreicht :)

Die programmierer muessten sich dann doch mit das schachwissen beschaeftigen und vielleicht das programm lehrnfaehigkeiten beibringen usw. Da programmierer ueber die Jahren besser werden und der mensch auch, mit so einen Standart haette man heute 30 Jahre spaeter verdammt gute Computer gegen Menschen Turniere gehabt und Computer schach waere nicht am sterben sondern eine Weltweite begeistheit

Aber nein die ehrgeiz das Spiel mit aller gewalt zu erobern durch maximum geschwindigkeit kaempft fuer den Tot anstatt fuer das leben !

So dreht sich das leben :)

Viele gruesse

Nick

Mythbuster 18.05.2010 13:27

AW: Der "richtige" Weg in der Schachprogrammierung ?
 
Hallo Uwe,
hier noch einmal die Stellung, die ich gestern ansprach. Leider bin ich zu blöde, ein Brett in den Thread zu bekommen:

Weiß: Kg2
Schwarz: Ka1, Th1, Sh2, Sh3

Weiß am Zug!

Viele Programme ziehen hier vor, die beiden Springer zu schlagen ... um dann gegen König und Turm zu verlieren ... ein Gegenbeispiel ist hier die V2, die sofort den Turm schlägt und 0,00 anzeigt.


Zum Thema des "Falschen Läufers" hier eine bekannte Studie:

Weiß: Kg1, Tf2, Lf3, g2, h2
Schwarz: Kg5, Ta7, Lf5

Schwarz am Zug!

Auch wenn man es nicht glaubt: Diese Stellung ist ganz klar Remis! Hier zeigen sich die klaren Vorteile von Programmen, die das entsprechende Wissen haben.

Nur so am Rande: Im Gegensatz zu Rybka 3, beherrschen zum Beispiel die V2 und der Kultcomputer Mephisto III das "Falsche Läufer" Spiel ... nun frage ich mal provokant in die Runde: Welche Programme sind besser und interessanter?

Grüße,
Sascha

Sargon 18.05.2010 15:38

AW: Der "richtige" Weg in der Schachprogrammierung ?
 
Hallo Alle,

Es sein schwere fragen, was ,wie ,warum etc
Was wil ein programierer selbst von sein programm?
Nur Starkte, order etwas anders ein programieren sodas das programm besser spielt aber nicht starker

Durch neue versionen von alle programmierer denke sie was sie machen das beste ist fur sein programm,dann die grosse wo aus das programm kann sein
Schachwisse braucht raum,wann sie das nicht haben,dann muss mann etwas fallen lassen,aber wass?
Wie reagiert ein programm auf die mhz die ehr vorhanden hast?
Immer schneller wolte nicht sagen das es programm die beste zuge spielt!

Was breng mann in?,was sein die starke punkte das programm? was muss ich andern? wann ich ander, geht das nicht von die starke punkte ,die das programm jetz beherst?

So alles ist nicht so einfach,auch Rykba hast schachwissen,ehr rechnet nur nicht tief,das wolte sagen ,es ist nicht so wie es tiefste rechnet gewinnt
positionel ist Rykba sehr gut.stimmt das ehr immer noch problemen hast mit falsche laufers
Aber wie viel partien auf WM order etwas habben wir gesiehen wobei das passierte?
Erst was dar Schredder wobei, chessbase damals auch shredderbase gesagt werden,dann war dar Rykba 1,0 unt wie!
Mann kann einfach nicht 1-2-3 sagen ,das Rykba schlecht ist,das hast ehr siehen lassen uber die jahre, ehr gewinnt alles,das ist nicht nur gluck unt auch nicht allein dum tief rechnen ist mein meinung

Aber jeden soll hier ein idee order meinung uber mochen haben,kein problem
Das macht es spass finden ich
Ich hab auch nicht alle weisheit uber schachcomputers,unt wissen auch nicht alles,unt das wolte ich auch nicht;)

Dann ist es spass um von andern zu lesen was sie wissen, unt dan bleibt mann hungry unt interesante threads zu machen.

Mfg,Hans

Mythbuster 18.05.2010 15:47

AW: Der "richtige" Weg in der Schachprogrammierung ?
 
Hallo Hans,
ich will Rybka nicht schlechter machen, als es ist. Es ist derzeit vermutlich die Engine mit der höchsten Elo Zahl. Und das, obwohl oder sogar weil es weniger Wissen als andere Programme hat! Rybka 2 kannte das "Falsche Läufer Spiel" sogar noch ... und auch andere Grundlagen. Der Programmierer hat sehr viel Wissen mit Absicht entfernt, um die Engine schneller zu machen ... wie man sieht, überwiegen letztendlich die Vorteile!

So paradox es sich anhört, scheint man tatsächlich aktuell vor der Wahl zu stehen: Möchte ich ein "intelligentes Programm mit viel Wissen (nach menschlichem Maßstab) oder möchte ich ein möglichst effizientes Werkzeug, welches die maximale Leistung aus der Optimierung der reinen Suche und Suchgeschwindigkeit erzielt ... auch auf Kosten von Attraktivität des Stils.

Gruß,
Sascha

User261 18.05.2010 18:54

AW: Der "richtige" Weg in der Schachprogrammierung ?
 
Zitieren:

Zitat von Mythbuster (Beitrag 30791)
Hallo Uwe,
hier noch einmal die Stellung, die ich gestern ansprach. Leider bin ich zu blöde, ein Brett in den Thread zu bekommen:

Weiß: Kg2
Schwarz: Ka1, Th1, Sh2, Sh3

Viele Programme ziehen hier vor, die beiden Springer zu schlagen ... um dann gegen König und Turm zu verlieren ... ein Gegenbeispiel ist hier die V2, die sofort den Turm schlägt und 0,00 anzeigt.


Zum Thema des "Falschen Läufers" hier eine bekannte Studie:

Weiß: Kg1, Tf2, Lf3, g2, h2
Schwarz: Kg5, Ta7, Lf5

Schwarz am Zug!

Auch wenn man es nicht glaubt: Diese Stellung ist ganz klar Remis! Hier zeigen sich die klaren Vorteile von Programmen, die das entsprechende Wissen haben.

Nur so am Rande: Im Gegensatz zu Rybka 3, beherrschen zum Beispiel die V2 und der Kultcomputer Mephisto III das "Falsche Läufer" Spiel ... nun frage ich mal provokant in die Runde: Welche Programme sind besser und interessanter?

Grüße,
Sascha

Hallo Sascha,

sehr schöne Stellungen um Wissen eines Programms zu testen.
Ich habe diese mal meiner Lieblingsengine Hiarcs 12 sowie Shredder12 vorgesetzt.
Man wird nicht enttäuscht, denn schon in dem 1. Variante findet diese die richtige Lösung.

Es sind also nicht alle modernen Programme dumm ;)

Gruß
Guido

spacious_mind 18.05.2010 19:11

Re: AW: Der "richtige" Weg in der Schachprogrammierung ?
 
Zitieren:

Zitat von Mythbuster (Beitrag 30793)
Hallo Hans,
ich will Rybka nicht schlechter machen, als es ist. Es ist derzeit vermutlich die Engine mit der höchsten Elo Zahl. Und das, obwohl oder sogar weil es weniger Wissen als andere Programme hat! Rybka 2 kannte das "Falsche Läufer Spiel" sogar noch ... und auch andere Grundlagen. Der Programmierer hat sehr viel Wissen mit Absicht entfernt, um die Engine schneller zu machen ... wie man sieht, überwiegen letztendlich die Vorteile!

So paradox es sich anhört, scheint man tatsächlich aktuell vor der Wahl zu stehen: Möchte ich ein "intelligentes Programm mit viel Wissen (nach menschlichem Maßstab) oder möchte ich ein möglichst effizientes Werkzeug, welches die maximale Leistung aus der Optimierung der reinen Suche und Suchgeschwindigkeit erzielt ... auch auf Kosten von Attraktivität des Stils.

Gruß,
Sascha

Zitieren:

Der menschliche Computer darf nicht mehr als 6 Tief rechnen und darf selektiv nur zb 4 Stellungen bis auf 12-18 gehen (als Beispiel).

Hallo Sascha,

In meiner Alternatieven Welt haette heute man den Rybka geflucht als ein schummler und be... sch...ummler... und wuerde nie mitspielen duerfen in Turniere. (Seine angegebenen 6 ply waeren ja naturlich 9 ply in der realitaet) :) (scherz)

gruss

Nick

SörenH 18.05.2010 19:12

AW: Der "richtige" Weg in der Schachprogrammierung ?
 
Zitieren:

Zitat von Mythbuster (Beitrag 30791)
Viele Programme ziehen hier vor, die beiden Springer zu schlagen ... um dann gegen König und Turm zu verlieren ... ein Gegenbeispiel ist hier die V2, die sofort den Turm schlägt und 0,00 anzeigt.

Das ist ein gutes Beispiel, es zeigt die Schwäche ältere Programme. Sie haben Remisendspiele rein nach der Summe der Materialwerte bewertet. Dabei lässt sich das ja leicht beheben, indem man spezielle Abfragen einfügt, die KL-K, KS-K und KSS-K mit 0,0 bewerten. Zumindest bei den ersten beiden Endspieltypen hat das z.B. Colossus Chess hingekriegt ;). Aber ganz so einfach ist es nicht, denn bei KSS-KB gibt es durchaus Gewinnchancen.

Paisano 18.05.2010 19:30

AW: Der "richtige" Weg in der Schachprogrammierung ?
 
Zitieren:

Zitat von Mythbuster (Beitrag 30791)
Hallo Uwe,
hier noch einmal die Stellung, die ich gestern ansprach.

Viele Programme ziehen hier vor, die beiden Springer zu schlagen ... um dann gegen König und Turm zu verlieren ... ein Gegenbeispiel ist hier die V2, die sofort den Turm schlägt und 0,00 anzeigt.

Ja, die Stellung ist mir wohlbekannt;), wir haben sie vor einiger Zeit schon mal in einem verwandten Thread https://www.schachcomputer.info/foru...Endspielwissen untersucht.
Wobei ich bei dieser Stellung vermute, daß hier eine fest programmierte "Regel" greift, was das vorhandene Material betrifft, also ähnlich einer Stellung KS - K oder KL - K,
bei der von vielen Computern sofort ungenügend Material reklamiert wird (hab ich eben mal mit dem Novag Primo ausprobiert), also vielleicht kein "reines" Schachwissen.

Ebenfalls aus genanntem Thread eine Stellung von Christian, die mir auch sehr gut gefällt.
Daß Weiss hier den Springer mit der Dame schlägt, wirkt irgendwie menschlich:top:

Zitieren:

Zitat von Mythbuster (Beitrag 30791)
Zum Thema des "Falschen Läufers" hier eine bekannte Studie:

Schwarz am Zug!

Auch wenn man es nicht glaubt: Diese Stellung ist ganz klar Remis! Hier zeigen sich die klaren Vorteile von Programmen, die das entsprechende Wissen haben.

Nur so am Rande: Im Gegensatz zu Rybka 3, beherrschen zum Beispiel die V2 und der Kultcomputer Mephisto III das "Falsche Läufer" Spiel ... nun frage ich mal provokant in die Runde: Welche Programme sind besser und interessanter?

Diese Stellung kenne ich jetzt nicht, sieht aber sehr interessant aus, lädt zum Testen ein:)

Gruß
Uwe

Mythbuster 18.05.2010 20:02

AW: Der "richtige" Weg in der Schachprogrammierung ?
 
Zitieren:

Zitat von Paisano (Beitrag 30801)

Diese Stellung kenne ich jetzt nicht, sieht aber sehr interessant aus, lädt zum Testen ein:)

Hihi, dabei ist diese Studie schon 300 Jahre alt. ;)

Gruß,
Sascha

Mr.Kite 19.05.2010 10:15

AW: Der "richtige" Weg in der Schachprogrammierung ?
 
Mein Schredder hat bei beiden Beispielen, innerhalb einer Sekunde Remis!
Bzw. in der Mitte Kc2!
Gruß
Karl-Heinz

Paisano 19.05.2010 19:50

AW: Re: Der "richtige" Weg in der Schachprogrammierung ?
 
Hallo Nick,
Zitieren:

Zitat von spacious_mind (Beitrag 30778)
Ich hatte mal in ein Englisches Forum diese gleiche Fragen gestellet die ich jetzt hier mal versuche auf Deutsch zu schreiben. Die reaktion war interessant und es gab auch ein paar aufregungen :)

In den 30/40 iger Jahren da hatte der Hollaender Adrian de Groot Turnier Schachspieler (Profies und Amateure) fuer 10 plus Jahre verfolgt in Ihre Turniere und sie danach Fragen gestellt ueber Ihre spiele.

Es kam raus das ein Schachspieler egal ob er Profi ist oder Amateur nur durchschnittlich 6 Tief rechnet. Der bessere spieler durch erfahrung und durch seiner Natur sieht aber die positionen besser und sieht die Zukunft besser. Er ist aber nicht klueger und er rechnet auch nicht tiefer.

ja, von dieser Untersuchung/Studie habe ich gehört, es hat mich auch überrascht, weil ich schon davon ausgegangen bin, daß ein Großmeister im Allgemeinen tiefer rechnet (in forcierten Varianten macht er das ja mit Sicherheit)
Zitieren:

Zitat von spacious_mind (Beitrag 30778)
Als das Bericht raus kam da wollten naturlich die Welt Ihn zeigen das er falsch ist mit sein Bericht und die Russen und Amerikaner haben dann aehnliche Tests gemacht und mit den gleichen ergebnissen. Daher wurde der Adrian de Groot nie wiedersprochen.

Ich meine, ein Großmeister hat mal auf die Frage, wie tief er seine Züge (Variante) vorausplane, geantwortet: Eine!..., aber die Richtige!!!;), aber sicher nicht ganz ernst gemeint.
Zitieren:

Zitat von spacious_mind (Beitrag 30778)
Jetzt kommt der David Levy an in den 70iger Jahren und meldet zu der Welt das kein Computer Ihn in 10 Jahren schlagen wird und macht eine Wette daraus. Was naturlich alle hersteller und progammierer herausfordert Ihn zu schlagen. Und so faengt dann das rennen an schneller und schneller zu werden und egal wie man gewinnt.

Jetz naturlich wollte der David Levy damit nur Schlagzeilen machen und ein bischen beruehmtheit bekommmen. Die folgen im Grunde genommen waren ja egal. Die Schlagzeile und Buecher zu verkaufen war das wichtigste :)

Mag sein, aber er hat auch viel getan für das Computerschach.
Zitieren:

Zitat von spacious_mind (Beitrag 30778)
Genau zu der Zeit als der David Levy die Welt aufgefordert hatte, wenn man da zurueckgehen koennte und der David Levy anstatt eine ausforderung gemacht haette zum Motto das "kein Schachcomputer der das Spiel wie ein Mensch spielt Ihn nicht schlagen kann" und dann das Werk von Adrian de Groot als basis genommen haette. Zum Beispiel zu sagen:

Der menschliche Computer darf nicht mehr als 6 Tief rechnen und darf selektiv nur zb 4 Stellungen bis auf 12-18 gehen (als Beispiel).

Da müsste man dem Computer aber noch einige Dinge "beibringen", damit er nicht absolut chancenlos ist.

*Eine riesige Datenbank = Gedächtnis beim menschlichen Spieler
*Lernfähigkeit = Fehler nicht wiederholen
*Stellungsmuster erkennen = ohne Berechnung bestimmte Stellungen beurteilen können

Ob das jemals möglich sein wird ?
Vielleicht kommt es ja irgendwann mal wieder zu einer Situation, wo schnellere Hardware nichts mehr bringt und die Programmierer sich wieder
mehr mit der Entwicklung von "intelligenterer" Software beschäftigen müssen, um Fortschritte zu machen ?
Zitieren:

Zitat von spacious_mind (Beitrag 30778)
Ein anderer weg waere ja auch gewesen die obige aussage auf geschwingikeit um zu rechnen und zu sagen fuer veranstaltungen darf der computer nur maximal 50 MHz haben was dann vielleicht den gleichen Ziel erreicht :)

Die programmierer muessten sich dann doch mit das schachwissen beschaeftigen und vielleicht das programm lehrnfaehigkeiten beibringen usw. Da programmierer ueber die Jahren besser werden und der mensch auch, mit so einen Standart haette man heute 30 Jahre spaeter verdammt gute Computer gegen Menschen Turniere gehabt und Computer schach waere nicht am sterben sondern eine Weltweite begeistheit

Ich verstehe, was Du meinst, Schachcomputer als Instrument, um den Reiz des Schachspiels langfristig für Menschen zu erhalten (und erhöhen),
ein schöner Gedanke, der aber (leider) durch finanzielle Interessen zunichte gemacht wird.
Zitieren:

Zitat von spacious_mind (Beitrag 30778)
So dreht sich das leben :)

...aber es wird sich immer weiter drehen:)

Grüße
Uwe

Supergrobi 19.05.2010 22:14

AW: Re: Der "richtige" Weg in der Schachprogrammierung ?
 
Hallo zusammen,

bevor ich damit anfange, meinen eigenen Senf zu dem Thema abzugeben, möchte ich gleich zu Beginn betonen, daß ich ein wirklich ein Fan der menschlich spielenden, selektiven, intelligenten Programme bin.

Allerdings frage ich mich auch des Öfteren, ob diese Vorliebe nicht reine Romantik ist. Wie toll wäre es, einen wirklich intelligenten Computer im Sinne von Künstlicher Intelligenz zu schaffen!

Andererseits ist das Schach eigentlich kein Problem, zu dessen Lösung man Intelligenz braucht. Theoretisch geht es ja nur um Variantenbäume. Wer die alle stumpfsinnig ohne Stellungsbewertung bis zum Matt durchrechnet, spielt perfekt. Die Endspieldatenbanken zeigen es - sie sind durch simples Ausprobieren aller Möglichkeiten entstanden. Es gibt für jede Stellung nur drei mögliche Bewertungen: Gewonnen, remis, verloren. So einfach ist das.

So etwas wie "Intelligenz" brauchen wir also nur deshalb, weil wir die Grundstellung (noch?) nicht bis zum Matt ausanalysieren können. Insofern stellt sie eigentlich nur einen Notbehelf dar, und eine erschöpfende Berechnung wäre mathematisch in jedem Fall vorzuziehen - bitte vergeßt nicht, daß es das Ziel des Spiels ist, mattzusetzen, ergo möglichst starke Züge zu machen - in keiner Schachregel steht etwas von Ästhetik oder so.

Wie gesagt, ist der Gedanke, unser menschliches Denken in der Maschine nachzuahmen, sehr reizvoll. Aber daß man für eine optimale Maschine die Methoden der Natur manchmal abwandeln muß, kann man z.B. in der Luftfahrt sehen: Ursprünglich vom Vogelflug inspiriert, haben sich doch völlig unterschiedliche Antriebssysteme als optimal (für eine Maschine) herausgestellt - jedenfalls habe ich noch kein Flugzeug gesehen, das mit den Flügeln schlägt. Vielleicht ist es im Computerschach ja genauso.

Insofern verdammt die schnellen dummen Programme bitte nicht zu sehr - sie gehen einfach den im Sinne der Problemlösung vielversprechendsten Weg. Rechentiefe bringt Spielstärke - die Endspieldatenbanken haben die größte Rechentiefe und spielen perfekt...

Viele Grüße,
Dirk

Hartmut 19.05.2010 22:42

AW: Re: Der "richtige" Weg in der Schachprogrammierung ?
 
Zitieren:

Zitat von Supergrobi (Beitrag 30823)
Insofern verdammt die schnellen dummen Programme bitte nicht zu sehr - sie gehen einfach den im Sinne der Problemlösung vielversprechendsten Weg. Rechentiefe bringt Spielstärke - die Endspieldatenbanken haben die größte Rechentiefe und spielen perfekt...

Das ist sicher richtig. Es sei aber erlaubt dann nach dem Sinn eines Schachprogramms zu fragen: Selbst der jetzige Weltmeister hat gegen das spielstärkste Programm auf einem entsprechend schnellen rechner heute kaum mehr eine Chance. Die Frage stellt sich also: "Was hat Programmierer A davon wenn sein Programm X nun stärker ist als das Programm Y von Pragrammierer B? Kommerziell gesehen ist es doch eher interessant einen gleichwertigen (aber deswegen nicht unbedingt spielschwachen) elektronischen Schachpartner für "the rest of us" zu finden an dem man im praktischen Spiel noch "wachsen" kann. Bei Fritz und Co sehe ich das aber schon lange nicht mehr... Allenfalls die Datenbankmöglichkeiten sind da für mich interessant. Die Schachengine ist da eher eine frustrierende Erfahrung, hat man doch definitiv nur noch durch künstliche Beschränkung der Spielstärke eine Chance...

HPF 19.05.2010 23:02

AW: Re: Der "richtige" Weg in der Schachprogrammierung ?
 
[QUOTE=Supergrobi;30823]Hallo zusammen,

bevor ich damit anfange, meinen eigenen Senf zu dem Thema abzugeben, möchte ich gleich zu Beginn betonen, daß ich ein wirklich ein Fan der menschlich spielenden, selektiven, intelligenten Programme bin.

Allerdings frage ich mich auch des Öfteren, ob diese Vorliebe nicht reine Romantik ist. Wie toll wäre es, einen wirklich intelligenten Computer im Sinne von Künstlicher Intelligenz zu schaffen!

Andererseits ist das Schach eigentlich kein Problem, zu dessen Lösung man Intelligenz braucht. Theoretisch geht es ja nur um Variantenbäume. Wer die alle stumpfsinnig ohne Stellungsbewertung bis zum Matt durchrechnet, spielt perfekt. Die Endspieldatenbanken zeigen es - sie sind durch simples Ausprobieren aller Möglichkeiten entstanden. Es gibt für jede Stellung nur drei mögliche Bewertungen: Gewonnen, remis, verloren. So einfach ist das.


So einfach ist das eben nicht. Die Varianten, die zu untersuchen sind, geben noch keine Auskunft über den Sieg oder Verlust. Die Bewertung ist das Problem. Die Bewertung einer Stellung wird mit einer Zahl beschrieben.
Leider gibt es keine allgemeine Formel um zu dieser Zahl zu kommen. Wird diese Zahl falsch bestimmt, gibt es vielleicht ein Remis, wenn behaupt.

Paul

Supergrobi 20.05.2010 12:56

AW: Re: Der "richtige" Weg in der Schachprogrammierung ?
 
Zitieren:

Zitat von HPF (Beitrag 30827)
So einfach ist das eben nicht. Die Varianten, die zu untersuchen sind, geben noch keine Auskunft über den Sieg oder Verlust. Die Bewertung ist das Problem. Die Bewertung einer Stellung wird mit einer Zahl beschrieben.
Leider gibt es keine allgemeine Formel um zu dieser Zahl zu kommen. Wird diese Zahl falsch bestimmt, gibt es vielleicht ein Remis, wenn behaupt.

Paul

Hallo Paul,

ich gehe davon aus, wie in einer Endspieldatenbank alls Varianten bis zum Ende zu rechnen. Der Ausgang einer Partie ist immer Sieg für Weiß, Sieg für Schwarz oder Remis. Dazwischen gibt es nichts. Insofern orientiert sich auch der absolute wert einer beliebigen Position an diesen drei Werten. Das Problem ist nur, daß wir in den meisten Positionen (noch?) nicht so weit rechnen können, dann müssen wir irgendwas bewerten, was nicht Matt oder remis ist. Aber das liegt eher an unseren begrenzten Möglichkeiten als am Charakter des Spiels.

Viele Grüße,
Dirk

Robert 20.05.2010 13:20

AW: Re: Der "richtige" Weg in der Schachprogrammierung ?
 
Hallo Hartmut,

Zitieren:

Zitat von Hartmut (Beitrag 30826)
Das ist sicher richtig. Es sei aber erlaubt dann nach dem Sinn eines Schachprogramms zu fragen: Selbst der jetzige Weltmeister hat gegen das spielstärkste Programm auf einem entsprechend schnellen rechner heute kaum mehr eine Chance. Die Frage stellt sich also: "Was hat Programmierer A davon wenn sein Programm X nun stärker ist als das Programm Y von Pragrammierer B?

Was hat Ferrari davon, wenn deren F1-Rennwagen 5 km/h schneller fährt als der von Mercedes?;) Alles eine Frage der Publicity! Und das ist ja noch ein recht abstraktes Beispiel, denn man kann bei Ferrari oder Mercedes ja keinen F1-Wagen kaufen (zumindest nicht als Normalsterblicher), wohingegen du dir problemlos die stärkste Schachengine zulegen kannst.

Und warum sollte man sich denn unbedingt eine schwächere Engine zulegen wollen?

Für mich sind die heutigen Engines sowieso nur noch Analyse-Instrumente; und dafür ist die Spielstärke nunmal entscheidend. Selbst auf einem relativ schwachbrüstigen Netbook sind moderne Engines gut geeignet, die Fehler unserer Schachcomputer (oder auch unsere eigenen) recht sicher aufzudecken.

Ich würde mal davon ausgehen, dass die wenigsten Engine-Anwender wirklich selber dagegen spielen, sondern ebenfalls hauptsächlich damit analysieren...


viele Grüße,
Robert

blaubaer 20.05.2010 14:26

AW: Re: Der "richtige" Weg in der Schachprogrammierung ?
 
Hallo,
Zitieren:

Zitat von Supergrobi (Beitrag 30834)
Das Problem ist nur, daß wir in den meisten Positionen (noch?) nicht so weit rechnen können, dann müssen wir irgendwas bewerten, was nicht Matt oder remis ist. Aber das liegt eher an unseren begrenzten Möglichkeiten als am Charakter des Spiels.

genau so einfach ist das! Fragt sich eigentlich nur noch, wann das sein wird...ich tippe mal einfach auf in maximal 20 Jahren - 20 Jahre deswegen, weil ich das dann vielleicht gerade noch erlebe (n möchte)! Für 99,- Euro auf einer Wahnsinnshardware bin ich dabei. :)

Gruß, Michael


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:56 Uhr.

Powered by vBulletin (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
©Schachcomputer.info