Schachcomputer.info Community

Zurück   Schachcomputer.info Community > Bereich Schachcomputer: > Die ganze Welt der Schachcomputer


Antwort
 
Themen-Optionen Ansicht

  #1  
Alt 05.02.2018, 18:58
rhglomb rhglomb ist offline
Novag Savant
 
Registriert seit: 28.11.2008
Ort: Bayern, Schwaben
Beiträge: 27
Abgegebene Danke: 15
Erhielt 6 Danke für 4 Beiträge
Member Photo Albums
Activity Longevity
4/20 14/20
Today Beiträge
1/3 sssssss27
Basisfragen zu Schachcomputer-Programmen

Hallo Zusammen,

je mehr ich mich wieder mit Schach und den alten Schachcomputern beschäftige, um so mehr Fragen stellen sich mir.
Besonders stelle ich fest, dass mir viele Grundlagen fehlen auf die ich trotz intensiver Recherche im Netz und auf allen möglichen Foren keine mir verständlichen Antworten gefunden habe.
Insbesondere würde ich gerne die grundsätzlichen Konzepte von Schachprogrammen verstehen, insbesondere der Programme die auf Schachcomputern mit begrenztem Speicher und Prozessoren laufen.

Es würde mich wahnsinnig freuen, wenn ihr mir ein wenig helfen könntet da ein wenig Durchblick zu bekommen.

Daher habe ich mal ein paar Themen zusammengeschrieben bei denen ich nicht sicher bin, ob ich mit meinen Erklärungen/Verständnis richtig liege:

  1. Bewertung eines Zuges bzw. einer Stellung.

    Welche Faktoren werden bei einer Bewertung eigentlich einbezogen , bzw. ist das evtl. je nach Engine/Programmierer/Hersteller vollkommen unterschiedlich ?
    Ist das eine reine Bewertung der Figuren auf dem Brett (also ein Bauer mehr ,etc) , oder fließt da auch eine Bewertung der Stellung mit ein (Doppelbauern, ungedeckte Figuren, einfach gedeckte Figuren, etc. ) ?

    Ich vermute mal, dass es das Zweite ist.

    Aber gibt es dann evtl. noch ältere Engines, die tatsächlich nur die Wertigkeit der Figuren kalkulieren ?
    (Ich frag deshalb, da die Bewertung meines Excalibur Grandmasters (Score Taste) , immer nur volle Zehner-Scores anzeigt)

  2. Brut-Force

    Beim "Brut-Force" Ansatz werden doch der Reihe nach alle möglichen Züge aus der Basisstellung betrachtet und jeweils die sich daraus ergebende Stellung bewertet.
    Dann werden von jeder dieser Stellung wiederum alle möglichen Züge betrachtet und wiederum die jeweiligen Zielstellungen bewertet.
    Ist das so ?

    Wenn das so wäre, müssten doch alle Schachprogramme bei Brut-Force Einstellung und vorgegebener Suchtiefe, alle das gleiche Ergebnis berechnen.
    Unterschiede ergeben sich nur daher, weil eben die Stellungsbewertungen der Programme unterschiedliche Faktoren einbeziehen bzw. diese unterschiedlich bewerten.
    Denke ich da richtig ?

  3. Selektive Berechnung

    Eigentlich wie Brut-Force, aber es wird nicht jeder mögliche Zug (Ast im Baum) weiter betrachtet.
    Es gibt Kriterien, z.B. eine extrem schlechte Stellungsbewertung nach einem Zug, wo das Programm sagt: "Aus der Stellung wird eh nichts mehr werden, also schließe ich die bei meinen weiteren Betrachtungen aus.".
    Das birgt das Risiko, dass man Zugfolgen, z.B. eigene Figurenopfer , nicht weiter Betrachtet, auch wenn diese dann in alles späteren Untervarianten evtl. zu sehr guten Stellungsbewertungen führen würden.
    Gleichzeitig kann man aber einige Varianten viel weiter durchrechnen und damit weiter in die Zukunft schauen und dortige Risiken oder Chancen erkennen.

    Kann man das so sagen ?

  4. Schachcomputer schlagen (also nicht physisch .... ;-)

    Brut-Force kann man als Mensch eigentlich nur deshalb schlagen, weil man weiter/tiefer Vorhersagen kann als der Computer, bzw. weil man bessere Faktoren zur Bewertung einer Stellung hat als der Computer. (Erfahrung, Wissen, etc.)

    Bei der Selektiven Berechnung kann man zusätzlich evtl. noch z.B. durch Figurenopfer Stellungen herbeiführen auf die der Computer sich stürzt und daher andere Varianten zu früh ausschließt und nicht weiter durchrechnet.
    Oder er übersieht Zugvarianten da sie über eine gewisse Tiefe so schlecht zu sein scheinen, dass er nicht annimmt, dass die ein Mensch spielen würde.

    Beim Brut Force Ansatz würde er diese Fehler zwar nicht machen, aber dafür würde er vielversprechende Varianten gar nicht weit genug analysieren können, weil ihm die Zeit bzw. der Speicher ausgeht.

    Kann man das so sagen ?!?

  5. Pondern

    Pondern bedeutet, dass der Computer während der Spielzeit des Gegners auch Berechnungen durchführt ?!?!?
    Ist das so, oder ist das zu einfach formuliert ?


  6. Pondern und Level bei Schachcomputern.

    Spontan hab ich gedacht: Wenn der Computer ja die ganze Zeit rechnet, während ich nachdenke, dann sind die Level bei denen ich die Rechenzeiten vorgebe, ja sinnlos.

    Es sei denn, der Rechner stellt sicher, dass er seine eingestellte Bedenkzeit in keinem Fall überschreitet, auch nicht wenn ich viel länger für meinen Zug brauche, als er als Bedenkzeit hat.

    Und nur wenn er sich nach meinem Zug aber dazu entschließen sollte, doch noch mal neu zu rechnen, da ich etwas völlig anderes gezogen habe als er erwatet hat, dann müsste er alle Erkentnisse die er während meiner Bedenkzeit gewonnen hat (berechnet hat), vergessen.

    Liege ich da richtig ? Machen das die Programme so ?


    Wie funktioniert das dann aber bei Turnier-Stufen mit max.Zeit für eine vorgegebene Anzahl von Zügen ?
    Dann müsste er ja ggf. seine Uhr , obwohl er nach meinem Zug sofort antwortet, um die Zeitdauer nach vorne stellen, die er während meiner Bedenkzeit aktiv an seinem Zug gerechnet hat ?!?!?
    Macht er das ?
    Oder ist das Konzept dahinter zu sagen: Der Mensch darf ja auch während der Computer-Rechenzeit nachdenken, also darf in Turnier-Stufen der Computer das auch .... ?


  7. Welche Schachomputer "Pondern" eigentlich ?

    Ist das eher die Ausnahme, oder können das fast alle Schachcomputer ?

Das wären mal so meine ersten Fragen.
Daraus ergeben sich bestimmt noch viele Weitere.

Ich sag schon mal vielen Danke, für Eure Kommentare/Antworten/Ergänzungen.
Ralf

Geändert von rhglomb (05.02.2018 um 19:02 Uhr) Grund: Rechtschreibfehler
Mit Zitat antworten
  #2  
Alt 05.02.2018, 20:36
Benutzerbild von Egbert
Egbert Egbert ist gerade online
Lebende Foren Legende
 
Registriert seit: 20.12.2009
Ort: Dreieich
Alter: 54
Land:
Beiträge: 2.950
Abgegebene Danke: 3.115
Erhielt 2.757 Danke für 1.263 Beiträge
Activity Longevity
8/20 13/20
Today Beiträge
2/3 sssss2950
AW: Basisfragen zu Schachcomputer-Programmen

Hallo Ralf,

aus Zeitgründen kann ich Dir aktuell leider nur die Fragen 5,6 und 7 beantworten.

Zu 5)

Genau so ist es. Pondern kann man auch alternativ als "Permanent Brain" bezeichnen.

Zu 6)

Level und Pondern musst Du auseinander halten. Wenn Du beispielsweise gegen einen Schachcomputer eine Partie Blitz spielst… und Dir für einen Zug z.B. 2 Minuten Zeit gönnst, dann pondert das Gerät die komplette Zeit während Du an Deinem Zug rechnest. Wenn Du dann aber einen anderen Zug spielst, als den vom Schachcomputer erwarteten, beginnt dessen Suche bei 0.

Angenommen Du hast ein Turnierspiel 40 Züge in 120 Minuten, dann gilt für beide Seiten, es müssen 40 Züge in 2 Stunden bis zur ersten Zeitkontrolle gespielt werden. Dabei ist es völlig unerheblich wer wie viel in des Gegners Bedenkzeit pondern konnte.

Zu 7)

Soweit ich mich erinnern kann, war der Chafitz Boris/Sargon 2.5 Ende 1980 der erste Schachcomputer, welcher über Permanent Brain (Pondern) verfügte. Eigentlich haben alle besseren Schachcomputer, bzw. Schachprogramme dieses Feature.

Ich hoffe dass ich Deinen Wissen-Durst bei diesen 3 Fragen stillen konnte.


Gruß
Egbert
Mit Zitat antworten
Folgender Benutzer sagt Danke zu Egbert für den nützlichen Beitrag:
rhglomb (06.02.2018)
  #3  
Alt 06.02.2018, 01:08
Hartmut Hartmut ist offline
Schachcomputer Koryphäe
 
Registriert seit: 01.04.2010
Ort: Nürnberg
Alter: 54
Land:
Beiträge: 1.001
Abgegebene Danke: 651
Erhielt 554 Danke für 298 Beiträge
Activity Longevity
6/20 12/20
Today Beiträge
1/3 sssss1001
AW: Basisfragen zu Schachcomputer-Programmen

Hallo Ralf

zu 1

Die erste Bewertung sind natürlich die Figurenwertigkeiten. Aber auch andere Kriterien finden natürlich Eingang in die Bewertung. Was man wie sinnvoll implementieren kann hängt nicht zuletzt von der Geschwindigkeit der verwendeten Hardware ab. Je mehr Kriterien ich zur Bewertung heranziehe, desto langsamer wird das Programm in die Tiefe kommen. Deswegen waren die Kriterien bei den frühen Schachcomputern auch nicht so ausgefeilt wie heute. Kriterien wie Doppelbauer, offene Linien, Beweglichkeit der Figuren sind in moderneren Programmen natürlich integriert. Bei den alten Programmen aus den 70er und frühen 80er Jahren war das allerdings nicht so selbstverständlich

zu 2

Den Brute Force Ansatz hast Du recht gut erkannt. Und natürlich hast Du recht. Würden allein die Figurenwertigkeiten zählen dann kämen wohl alle Brute Force Programme zu demselben Ergebnis. Aber so ist es nun mal nicht. Jedes Programm hat seine eigene Bewertungsfunktion in denen gewisse Kriterien bewertet werden. Ansonsten wüsste ein BruteForce Programm auch nicht warum es wenig Sinn macht mit 1. a4 zu eröffnen...

zu 3

Auch das Prinzip der selektiven Rechnung hast Du im Grunde gut verstanden. Das Haupproblem bei selektiven Programmen ist es, Kriterien zu finden, die eine Beschneidung des Suchbaums rechtfertigen.

zu 4:

Tja, warum kann man als Mensch einen Schachcomputer schlagen. Rechnet man tiefer? Kann ich in meinen Partien gegen die Dinger jetzt nicht sagen. Im Endspiel vielleicht. In komplizierten Stellungen eher nicht. Hier zählt eher die Erfahrung. Die meisten alten Schachcomputer (und auch viele neue Programme) kommen einfach mit bestimmten Stellungstypen nicht zurecht. Viele hier im Forum haben Wettkämpfe gegen ihre Bretties gespielt. In meinem CB-Emu-Turnier spiele ich auch gegen die Bretties mit. Am Besten ist es du schaust Dir diese Partien an. Dann erkennst Du meist recht schnell, warum ein Mensch (zumindest gegen unsere alten Bretties) gute Ergebnisse erzielen kann. Wir erkennen einfach bestimmte Stellungstypen die für uns gut sind, während der Computer einfach eben erstmal nichts kann sondern "nur" rechnet. Für ihn ist jede Stellung ein neues Problem, während wir planen. Ein Computer betrachtet jede gegebene Stellung als neues Problem, während ich in einer Partie einen strategischen Plan habe. Ich sehe eine Stellung und denke mit z.B. "OK, wenn jetzt Figur A nicht da wäre dann wäre es möglich in 4 Zügen Figure B zu erobern". Was ist also meine Planung? Ich überlege mir, wie ich die störende Figur A loswerde. Ein Computer untersucht eine Stellung jedoch komplett anders. Eben weil er eine langfristige Planung nicht kennt. Rechne ich deswegen tiefer? Nein. Ich rechne einfach anders. Der Computer rechnet nur aus einer gegebenen Stellung heraus. Ich hingegen überlege auch mal über eine rein hypothetische Stelllung (Beispiel oben... was wäre wenn Figur A nicht da wäre) und bastle mir aus dieser Hypothese heraus einen Plan.

In anderen Fällen ist es einfach auch Erfahrung und manchmal tatsächlich tieferes Rechnen. Unsere alten Schachcomputer hatten noch keine Tablebases und auch nicht so viele Techniken zur Reduzierung des Suchbaumes. Kam z.B. ein Avantgarde V6 im Mittelspiel auf 8 Halbzüge so kommt er im Endspiel vielleicht auf 12. Für einen Menschen ist es aber schwerer in komplizierter Stellung 8 Halbzüge zu rechnen als im Endspiel auf 12 Halbzüge. Ganz im Gegenteil kann man bei übersichtlicher Brettstellung einen Compi hier leicht überholen, während man im komplizierten Mittelspiel eher was verbockt (siehe CB-Emu-Turnier meine Partie gegen den Berlin London. Im Mittelspiel zwar vieles probiert aber wenig erreicht, und dann vereinfacht der London auf einmal in ein verlorenes Bauernendspiel weil er die Konsequenzen nicht erkennt, die man als Mensch sofort sieht).

Viele Informationen zur Schachprogrammierung findet man als Einsteiger zum Beispiel hier http://home.hccnet.nl/h.g.muller/max-src2.html. Das Programm Micro-Max ist speziell eben auf wenig Code ausgelegt und ist damit dem was die alten Bretties an Speicher hatten nicht unähnlich.

Will man tiefer einsteigen empfiehlt sich diese Seite: http://chessprogramming.wikispaces.com/

Um die englische Sprache kommt man in beiden Fällen nicht herum. Es gab mal ein deutsches Buch aus dem nicht mehr existierenden Data Becker Verlag

https://www.c64-wiki.de/wiki/Das_gro...uterschachbuch

Das findet man aber allenfalls noch gebraucht bei Ebay oder anderweitig im Netz. Der Code war auf das Basic des C-64 angepasst, lässt sich aber gut auf andere Basic-Varianten oder sogar in Pascal oder C umschreiben und ist gut dokumentiert. Da findest Du viele Basics für die Programmierung. Aber wenn Du tiefer einsteigen willst kommst Du um die englischen Seiten nicht herum
__________________
Mein Profil beim ICCF (International Correspondence Chess Federation)
https://www.iccf.com/player?id=89948&tab=3
Mit Zitat antworten
Folgender Benutzer sagt Danke zu Hartmut für den nützlichen Beitrag:
rhglomb (06.02.2018)
  #4  
Alt 06.02.2018, 11:15
Benutzerbild von Solwac
Solwac Solwac ist offline
Revelation
 
Registriert seit: 18.07.2010
Land:
Beiträge: 770
Abgegebene Danke: 163
Erhielt 327 Danke für 206 Beiträge
Activity Longevity
0/20 12/20
Today Beiträge
0/3 ssssss770
AW: Basisfragen zu Schachcomputer-Programmen

 Zitat von rhglomb Beitrag anzeigen
Bewertung eines Zuges bzw. einer Stellung.
Es wurde schon sehr früh erkannt, dass nur das Material zu wenig für gutes Schach ist (z.B. Untersuchungen mit Tech). Selbst die einfachsten Schachcomputer haben eine rudimentäre positionelle Bewertung, auch wenn die Ergebnisse bei geübteren Schachspielern öfters Lachanfälle verursacht haben.

Die Ausgabe von Bewertungen mit nur einer Stelle nach dem Komma (in Bauerneinheiten) kann zwei Ursachen haben: Das Programm rechnet nur grob (z.B. isolierter Bauer ist -0,1 wert) oder das Programm berechnet alle möglichen positionellen Elemente relativ fein aus und rundet dann zum Schluss (z.B. der Läufer kann 7 Felder erreichen und das ist je Feld 0,04 Bauerneinheiten wert, die 7 * 0,04 = 0,28 werden dann zu 0,3 gerundet. Beim MM II gab es offenbar Versionen mit und ohne diese Rundung. Gröbere Bewertungen sind für die Suche etwas effektiver, dafür gehen kleinere Vorteile für das Spiel manchmal verloren.

 Zitat von rhglomb Beitrag anzeigen
Brut-Force
Du bist schon auf der richtigen Spur! Die Programme unterscheiden sich aber durch die Faktoren für die Bewertung und auch Brute Force lässt sich leicht unterschiedlich implementieren, deshalb spielen solche Programme durchaus unterschiedlich. Aber wenn ein solches Programm ein Matt in drei vor der Nase hat, dann sollte es es immer bei sechs Halbzügen Suchtiefe finden (fünf Halbzüge für die Zugfolge und im sechsten Halbzug wird das Matt entdeckt). Werden Schachgebote für die Bewertung einer Variante nicht zugelassen, dann erkennt so ein Programm matt in drei nach 5 Halbzügen.

 Zitat von rhglomb Beitrag anzeigen
Selektive Berechnung
Ja, das ist das Grundprinzip. Es gibt zwei Varianten davon: Einmal ein selektiver Zuggenerator. Hier werden mit statischer Analyse Züge herausgefiltert und wenn ein Fehler passiert, dann wird der beste Zug in der Stellung nie gefunden. Wird hingegen dynamisch entschieden einen Zug nicht weiter zu suchen, dann kann diese Entscheidung bei immer tieferer Suche anders ausfallen und das obige Beispielmatt in drei wird mit zwei zusätzlichen Halbzügen trotz eines als schlecht erkannten Zuges in der Variante doch noch gefunden.

 Zitat von rhglomb Beitrag anzeigen
Schachcomputer schlagen
Du hast es schon ganz gut beschrieben. Es geht immer um die möglichen Hauptvarianten. Der Computer muss sie untersuchen (darf sie also nicht zu früh verwerfen) und dann "richtig" bewerten. Als Mensch kannst Du jetzt taktische Schläge finden, die für das Programm zu tief sind oder Fehler in der positionellen Bewertung ausnutzen. Auch wenn die Aufzählung der einzelnen Bewertungsfaktoren der Schachcomputer umfangreich erscheint, kein klassisches Programm hat wirklich viel Schachwissen. Manche wissen nur etwas weniger nicht als die Konkurrenz.

 Zitat von rhglomb Beitrag anzeigen
Pondern
Genau so.

 Zitat von rhglomb Beitrag anzeigen
Pondern und Level
Es gibt zwar auch ein paar andere Möglichkeiten des Ponderns, aber die meisten beginnen einfach zu rechnen wenn der Gegner am Zug ist und nehmen an, der zweite Zug der vorherigen Hauptvariante würde gespielt. Macht der Gegner tatsächlich diesen Zug, dann hat man die Bedenkzeit des Gegners gut genutzt. Macht der Gegner einen anderen Zug, dann wird die Suche abgebrochen und neu nach dem tatsächlichen Zug aufgenommen. Je nach Programm können (wenn vorhanden) die Hashtables Informationen dieser abgebrochenen Suche enthalten oder auch Killerzüge weiter verwendet werden. Aber die klassischen Brettcomputer haben bei einem unerwarteten Antwortzug einfach vergeblich gerechnet.

Wurde erfolgreich gepondert, so startet die eigene Uhr natürlich erst mit der Eingabe des gegnerischen Zugs. Aber intern weiß das Programm natürlich wie lange es bereits rechnet. Nehmen wir an, die Zeiteinteilung ist so programmiert, dass mit dem Stand der Uhren zu Beginn des Ponderns ein Suchfenster von 37 bis 77 Sekunden und einem Puffer von maximal 131 Sekunden festgelegt wurde.

Erfolgt jetzt der erwartete gegnerische Zug nach z.B. 30 Sekunden, so wird die Suche normalerweise nach weiteren 7 bis 47 Sekunden beendet und der bis dahin gefundene beste Zug gespielt. Der Puffer kann jetzt weitere 101 oder die ursprünglichen 131 Sekunden betragen, hier gibt es viele verschiedene Implementationen.

Hat der Antwortzug mehr als 77 Sekunden gebraucht und hat das Programm nichts kritisches entdeckt, dann wird der Antwortzug sofort ausgespielt. Dabei hat es aber die ganze Zeit gerechnet und im Extremfall das mehrfache der eingestellten Bedenkzeit für die ganze Partie genutzt! Es sollte dann aber auch ein Überschreiten der Bedenkzeit des Gegners reklamieren (bei gleichen Zeiten für beide und wenn der Level ein Überschreiten erlaubt, also z.B. nicht bei "durchschnittlich 30 Sekunden pro Zug").

Nehmen wir als letztes den Fall, der Antwortzug hätte 50 Sekunden gebraucht. Dann liegt das Programm im selbst berechneten Zeitfenster. Untersucht es den ersten Zug der aktuellen Iteration, dann meldet es "fertig" und spielt den bisher besten Zug aus. Dazu hat es keine Zeit auf der eigenen Uhr verbraucht und mit dem zweiten Zug der Hauptvariante wird wieder gepondert. Das kann einige Züge lang so gehen. Oder das Programm rechnet mitten in der Iteration herum, dann wird es diese Iteration beenden oder spätestens nach weiteren 27 Sekunden abbrechen (wenn nichts kritisches entdeckt wurde). Diese bis zu 27 Sekunden werden auf der eigenen Uhr addiert und wieder der zweite Zug der Hauptvariante gepondert...

Kritische Ereignisse sind unerwartet gute oder schlechte Bewertungen und werden je nach Programm unterschiedlich angegangen. Für die Idee des Ponderns kann man es aber beim Verständnis ignorieren. Als Programmierer darf man es natürlich nicht vergessen.

Mir ist noch nicht ganz klar ob Du das Zeitmanagement eines Schachprogramms verstehst. Bei Unsicherheit bitte einfach noch einmal nachfragen.

 Zitat von rhglomb Beitrag anzeigen
Welche Schachomputer "Pondern" eigentlich ?
Die Programmierung des Ponderns braucht etwas Platz. Deshalb können es die alten und kleinen Programme nicht. Auch verbraucht das Rechnen Strom, deshalb bieten es einige Reisegeräte nicht an. Aber ansonsten ist Pondern seit ca. 35 Jahren Standard für alle "nicht einfach" Programme.
Mit Zitat antworten
Folgender Benutzer sagt Danke zu Solwac für den nützlichen Beitrag:
rhglomb (06.02.2018)
  #5  
Alt 06.02.2018, 12:24
Hartmut Hartmut ist offline
Schachcomputer Koryphäe
 
Registriert seit: 01.04.2010
Ort: Nürnberg
Alter: 54
Land:
Beiträge: 1.001
Abgegebene Danke: 651
Erhielt 554 Danke für 298 Beiträge
Activity Longevity
6/20 12/20
Today Beiträge
1/3 sssss1001
AW: Basisfragen zu Schachcomputer-Programmen

 Zitat von Solwac Beitrag anzeigen
Die Programmierung des Ponderns braucht etwas Platz. Deshalb können es die alten und kleinen Programme nicht. Auch verbraucht das Rechnen Strom, deshalb bieten es einige Reisegeräte nicht an. Aber ansonsten ist Pondern seit ca. 35 Jahren Standard für alle "nicht einfach" Programme.
Ich glaube es wurde in einem anderen Thread schon mal festgestellt. Sargon 2,5 war wohl das erste Programm, das pondern konnte. Das war 1978 oder 1979. Die frühere auf C-64 oder Apple II verfügbare Version Sargon II konnte es noch nicht, war aber ansonsten vollkommen identisch (zumindest macht das Ding dieselben Züge)
__________________
Mein Profil beim ICCF (International Correspondence Chess Federation)
https://www.iccf.com/player?id=89948&tab=3
Mit Zitat antworten
  #6  
Alt 06.02.2018, 16:32
rhglomb rhglomb ist offline
Novag Savant
 
Registriert seit: 28.11.2008
Ort: Bayern, Schwaben
Beiträge: 27
Abgegebene Danke: 15
Erhielt 6 Danke für 4 Beiträge
Member Photo Albums
Activity Longevity
4/20 14/20
Today Beiträge
1/3 sssssss27
AW: Basisfragen zu Schachcomputer-Programmen

Also erst einmal vielen Dank an Euch alle für die ausführlichen Antworten.
Das war sehr hilfreich für mich.
Besonders die Links haben mir sehr geholfen.
(Irgendwie frage ich mich, wieso ich die nicht bei meinen Recherchen selber gefunden habe.)

Auch das Data-Becker Buch ist sehr sehr interessant.
Das kann ich direkt auf meinem C64 mal ausprobieren. Da muss ich nicht erst eine neue Programmiersprache lernen ;-)

 Zitat von Solwac Beitrag anzeigen
Mir ist noch nicht ganz klar ob Du das Zeitmanagement eines Schachprogramms verstehst. Bei Unsicherheit bitte einfach noch einmal nachfragen..
Ja, da habe ich wirklich noch Nachfragen.

Hier geht es um was ganz Grundsätzliches.

Ich habe immer gedacht, dass die Spielstufen (insbesondere die feste Bedenkzeit pro Zug und die durchschnittliche Bedenkzeit pro Zug) dazu da sind um die Spielstärke direkt steuern zu können, also insbesondere um einem schwächeren Spieler den Spass mit dem Schachcomputer nicht zu verderben, weil der Computer sonst einfach viel zu stark ist.

Also wenn ich bei 20 Sekunden Pro Zug immer verliere, dann stelle ich mal auf 1 Sekunde pro Zug ein , dann hab ich vielleicht eine Chance.

Wenn der Rechner aber in der Zeit wo ich nachdenke (manchmal 10 Minuten) die Zeit voll nutzt um selber zu rechnen, dann hab ich ja niemals eine Chance seine Spielstärke einzuschränken.
Das wäre ja voll frustrierend.

Bei den Turnierstufen, würde ich verstehen, wenn es anders wäre und man sagt: Diese Stufen spielen eh nur gut Schachspieler gegen den Computer und da gilt: Gleiches Recht für alle (Mensch darf Pondern, Computer auch).
Mit Zitat antworten
  #7  
Alt 06.02.2018, 17:01
borromeus borromeus ist offline
Mephisto MM 4 Turbo Kit
 
Registriert seit: 24.02.2017
Beiträge: 167
Abgegebene Danke: 175
Erhielt 144 Danke für 62 Beiträge
Activity Longevity
2/20 2/20
Today Beiträge
1/3 ssssss167
AW: Basisfragen zu Schachcomputer-Programmen

Zitieren:
Wenn der Rechner aber in der Zeit wo ich nachdenke (manchmal 10 Minuten) die Zeit voll nutzt um selber zu rechnen, dann hab ich ja niemals eine Chance seine Spielstärke einzuschränken.
Das wäre ja voll frustrierend.
Nun, so dramatisch ist das nicht, weil die Schachcomputer, die ich kenne von einem konkreten Antwortzug ausgehend weiterrechnen (pondern).

Machst Du nicht den Zug, den der Rechner erwartet, fängt er quasi bei Null zum Rechnen an.

Gruß
Karl
Mit Zitat antworten
  #8  
Alt 06.02.2018, 18:58
Hartmut Hartmut ist offline
Schachcomputer Koryphäe
 
Registriert seit: 01.04.2010
Ort: Nürnberg
Alter: 54
Land:
Beiträge: 1.001
Abgegebene Danke: 651
Erhielt 554 Danke für 298 Beiträge
Activity Longevity
6/20 12/20
Today Beiträge
1/3 sssss1001
AW: Basisfragen zu Schachcomputer-Programmen

 Zitat von rhglomb Beitrag anzeigen
Wenn der Rechner aber in der Zeit wo ich nachdenke (manchmal 10 Minuten) die Zeit voll nutzt um selber zu rechnen, dann hab ich ja niemals eine Chance seine Spielstärke einzuschränken.
Das wäre ja voll frustrierend.
Nun ja, aber so schlimm ist es erstmal nicht. Bei vielen Schachcomputern kann man z.B. das Permanent Brain ausstellen. Einige andere haben spezielle "Easy"-Stufen die den normalen Spielstufen entsprechen aber ohne PB arbeiten.

Willst Du selber ein Schachprogramm schreiben (was ich aufgrund deines Eingangsposts glaube) dann kannst Du ja eine Routine implementieren die das PB ein oder ausschaltet. Das Program in dem Data-Becker-Buch und das Programm Micro-Max arbeiten übrigens ohne PB. Ein anderes Beispiel für einen guten kommentierten Source-Code findet sich in dem Buch "Schach am PC". Ist auch nicht mehr erhältlich aber vielleicht wirst Du bei EBay, Amazon oder Abebooks bei den Gebrauchtbüchern fündig. Den kommentierten Source-Code und die Exe zu sowohl der Basic als auch der Delphi-Version findest Du hier: http://www.bauer-schweitzer.de/index...x_minimax.html. Eine C++-Version des Programms findet sich dort auch, weiss aber nicht ob der Sourcecode dabei ist.
__________________
Mein Profil beim ICCF (International Correspondence Chess Federation)
https://www.iccf.com/player?id=89948&tab=3
Mit Zitat antworten
  #9  
Alt 07.02.2018, 08:50
Benutzerbild von Solwac
Solwac Solwac ist offline
Revelation
 
Registriert seit: 18.07.2010
Land:
Beiträge: 770
Abgegebene Danke: 163
Erhielt 327 Danke für 206 Beiträge
Activity Longevity
0/20 12/20
Today Beiträge
0/3 ssssss770
AW: Basisfragen zu Schachcomputer-Programmen

 Zitat von rhglomb Beitrag anzeigen
Ich habe immer gedacht, dass die Spielstufen (insbesondere die feste Bedenkzeit pro Zug und die durchschnittliche Bedenkzeit pro Zug) dazu da sind um die Spielstärke direkt steuern zu können, also insbesondere um einem schwächeren Spieler den Spass mit dem Schachcomputer nicht zu verderben, weil der Computer sonst einfach viel zu stark ist.
Bei der festen Bedenkzeit pro Zug weiß ich gar nicht wie die verschiedenen Programmierer das mit dem Pondern gesehen haben. Es wäre konsequent, wenn zwar die Bedenkzeit des Gegners genutzt würde, aber trotzdem die Suche nur die eingestellte Zeit rechnet - egal wie lange der Gegner überlegt. Hier müssten sich die Leute melden, die mehrere Rechner testen können.

Die verschiedenen Stufen dienen nicht nur der Einstellung unterschiedlicher Spielstufen, gegen andere Menschen spielt man ja auch unterschiedlich schnelle Partien.

 Zitat von rhglomb Beitrag anzeigen
Also wenn ich bei 20 Sekunden Pro Zug immer verliere, dann stelle ich mal auf 1 Sekunde pro Zug ein , dann hab ich vielleicht eine Chance.
Ja, so würde ich es auch machen. Aber wenn Du die Spielstärke justieren möchtest, dann wäre der Verzicht aufs Pondern eine gute Option. Es wird dann halt immer etwas gerechnet, selbst bei einfachen Stellungen mit Bauer schlägt Dame.

 Zitat von rhglomb Beitrag anzeigen
Wenn der Rechner aber in der Zeit wo ich nachdenke (manchmal 10 Minuten) die Zeit voll nutzt um selber zu rechnen, dann hab ich ja niemals eine Chance seine Spielstärke einzuschränken.
Das wäre ja voll frustrierend.
Stell Dir vor, Du würdest gegen einen anderen Menschen spielen. Der hätte auch in Deiner Bedenkzeit die Gedanken beim Spiel und nutzt Deine 10 Minuten auch. Wenn Du ihm jetzt eine maximale Bedenkzeit von 20 Sekunden gibst, dann schränkt ihn das nur bei überraschenden Zügen von Dir ein. Gibst Du ihm jetzt noch weniger Zeit, dann wird die Qualität seiner Antworten noch stärker von Deinem Zeitverbrauch abhängen.

Beim Spielen zweier Gegner mit stark unterschiedlicher Bedenkzeit nivelliert Pondern bei gleichzeitig größerer Varianz der genutzten Rechenzeit.
Mit Zitat antworten
  #10  
Alt 07.02.2018, 09:15
Benutzerbild von Solwac
Solwac Solwac ist offline
Revelation
 
Registriert seit: 18.07.2010
Land:
Beiträge: 770
Abgegebene Danke: 163
Erhielt 327 Danke für 206 Beiträge
Activity Longevity
0/20 12/20
Today Beiträge
0/3 ssssss770
AW: Basisfragen zu Schachcomputer-Programmen

 Zitat von Hartmut Beitrag anzeigen
Willst Du selber ein Schachprogramm schreiben (was ich aufgrund deines Eingangsposts glaube) dann kannst Du ja eine Routine implementieren die das PB ein oder ausschaltet. Das Program in dem Data-Becker-Buch und das Programm Micro-Max arbeiten übrigens ohne PB. Ein anderes Beispiel für einen guten kommentierten Source-Code findet sich in dem Buch "Schach am PC". Ist auch nicht mehr erhältlich aber vielleicht wirst Du bei EBay, Amazon oder Abebooks bei den Gebrauchtbüchern fündig. Den kommentierten Source-Code und die Exe zu sowohl der Basic als auch der Delphi-Version findest Du hier: http://www.bauer-schweitzer.de/index...x_minimax.html. Eine C++-Version des Programms findet sich dort auch, weiss aber nicht ob der Sourcecode dabei ist.
Das Programm Demoschach (aus dem Data Becker Buch) ist etwas besser als Minimax (aus Schach am PC), ist aber nur mit Zeilenbasic geschrieben. Minimax gibt es im Original mit einem strukturiertem Basic und in C.

Demoschach hat aber einen großen Vorteil, es ist besser dokumentiert, die verwendeten Tricks werden Stück für Stück erläutert und insbesondere die Implementation der Suche ist mit den verwendeten Datenstrukturen gut für das erstmalige Verständnis. Dazu kann man schön den Weg durch den Suchbaum verfolgen (Achtung: Bei heutigen Rechengeschwindigkeiten kann man es nicht live sehen - es ist zu schnell). Aber abgesehen vom verwendeten BASIC gibt es auch Nachteile: Rekursion ohne lokale Variable ist einfach nicht schön, die Variablen haben nur zwei Buchstaben als Namenslänge, Weiß und Schwarz haben getrennte Suchroutinen und es gibt einige unschöne Designentscheidungen, z.B. die Verwendung eines 12*12 Felderbrettes und der "Trick" für die Bestimmung der Mobilität.

Minimax ist 10 Jahre jünger und man merkt den Fortschritt in der damaligen Rechnertechnik. Hat man Demoschach verstanden, dann bietet sich durch den Vergleich der beiden Programme der Blick auf die Unterschiede und Gemeinsamkeiten.
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

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 An.

Gehe zu

Ähnliche Themen
Thema Erstellt von Forum Antworten Letzter Beitrag
Anleitung: Multi-TASCing – TASC R30 mit 3 umschaltbaren Programmen Walter Technische Fragen und Probleme / Tuning 15 01.08.2013 04:09
Test: Bei welchen Programmen wirkt sich Tuning am effektivsten aus ? Paisano Technische Fragen und Probleme / Tuning 21 30.07.2011 19:23
Info: Kurts Schachcomputer + Schachcomputer.info Chessguru News und Infos zum Forum + Wiki 24 07.07.2009 21:46


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:16 Uhr.



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