Einzelnen Beitrag anzeigen
  #9  
Alt 28.06.2015, 09:03
Benutzerbild von Solwac
Solwac Solwac ist offline
Revelation
 
Registriert seit: 18.07.2010
Land:
Beiträge: 782
Abgegebene Danke: 189
Erhielt 338 Danke für 216 Beiträge
Aktivitäten Langlebigkeit
0/20 14/20
Heute Beiträge
0/3 ssssss782
AW: Warum Fidelity scheiterte!

 Zitat von Theo Beitrag anzeigen
Für die Zugauswahl müssen Schachcomputer viele unterschiedliche Zugfolgen evaluieren, wobei am Ende jeder Zugfolge immer die Frage ist: "Zugfolge nach diesem Zug stoppen und die Stellungsbewertung merken ODER wenigstens noch einen Zug untersuchen?"
So rechnen aber nur die wenigsten Programme, von den Spracklens dürfte keines dabei sein.

Normalerweise wird bei einer Iteration eine feste Zahl von Zügen tief gerechnet, wobei Schachgebote und Schlagzüge teilweise nicht mitgerechnet werden (dies gilt zumindest für die Berechnung der Hauptvariante, für die restliche Suche verkompliziert sich diese Betrachtung durch Nullmove und weitere "Tricks"). Jede Iteration rechnet jetzt etwas tiefer und irgendwann wird es dann "gesehen". Die Behandlung von Schachgeboten und Schlagzügen ist einer der Knackpunkte für die Spielstärke.

 Zitat von Theo Beitrag anzeigen
Wenn die untersuchte Zugfolge zu einer "unruhigen" Stellung führt, müssen noch die taktischen Züge weiterverfolgt werden um eine aussagekräftige Bewertung zu bekommen, denn in einer Stellung, in der die Dame hängt die Bauernstruktur zu bewerten, macht oft keinen Sinn.
Damit beschreibst Du die Ruhesuche. Das erste Programm der Spracklens hat da noch drauf verzichtet und eine statische Analyse versucht. Hier gibt es ein paar Tricks um den Rechenaufwand zu reduzieren, die aber auch Risiken bergen. Ich kann mir schon vorstellen, dass hier Spielstärke im Vergleich zur Konkurrenz verloren wurde. Aber ich sehe das nicht als Fehler an, deshalb die Frage wo denn der "Bug" liegen soll.

 Zitat von Theo Beitrag anzeigen
Und hier vermute ich das Problem. Taktische Patzer entstehen dann, wenn Programme taktische Zugfolgen nicht tief genug verfolgen, also zum Beispiel die Erkennung für Springergabeln, Fesselungen, Unterverwandlungen aus irgendwelchen Gründen nicht funktioniert und ein Programm die Stellung fälschlicherweise als ruhig einstuft und falsch bewertet, während der Gegner viel weiter rechnet.
Klar, bei vergleichbarer Rechenleistung entscheidet der bessere Algorithmus darüber, welches Programm mehr sieht. Aber eine geringere Spielstärke als ein anderes Programm ist kein Zeichen für Fehler. Als Fehler würde ich es nur bezeichnen, wenn das Programm anders rechnet als vom Programmierer gedacht.

 Zitat von Theo Beitrag anzeigen
Da es im Schach sehr viele Spezialfälle gibt und Programmierer für auf Geschwindigkeit optimierten Code damals die Übersichtlichkeit des Programms opfern mussten, standen Programmfehler auf der Tagesordnung. Beizukommen wäre diesen eigentlich nur mit exzessiven Tests.
Nochmal, das sind nur sehr selten Fehler (im Sinne der Informatik). Manches wird aus pragmatischen Gründen nicht berechnet und nur abgeschätzt. Wenn diese Abschätzung gut ist, dann steigt durch die Beschleunigung des restlichen Programms insgesamt die Spielstärke. Ist die Abschätzung hingegen nicht gut, dann werden (zu) viele Partien z.B. durch Freibauern entschieden.

 Zitat von Theo Beitrag anzeigen
Hier wäre so ein Beispiel:
GK 2100 spielt 8...Se4

GK 2100 spielt hier 8. ... Se4x und rechnet mit 9. Dd5 Le6 10. De4x d5 und Rückgewinn der Figur, übersieht aber, dass Weiss auf d5 schlagen kann 11. Ld5x Ld5x 12. Dd5x Dd5x 13. Sc7+ mit Gabel.

Ich hatte die Stellung mit meinem Travel Champion 2100 nachgespielt und herausgefunden, dass die Gabel 13. Sc7+ von GK2100 zum Zeitpunkt von 8...Se4x nicht gesehen wurde! Er sieht es erst später und sieht sich dann im Nachteil!
Schönes Beispiel!

Die Morsch-Programme sind i.A. ja taktisch gut. Aber hier fehlt es an Tiefe, Sc7+ ist kein Schlagzug und daher schwer zu finden. Solche forcierten Linien wie in den Zügen 11 und 12 in der Variante führten zu den Singular Extensions bei Deep Thought.
Mit Zitat antworten