Thema: Frage: Saitek D++ - Bug?
Einzelnen Beitrag anzeigen
  #2  
Alt 15.12.2007, 01:52
Benutzerbild von hmchess
hmchess hmchess ist offline
Mephisto MM 4 Turbo Kit
 
Registriert seit: 24.09.2007
Ort: Dortmund
Alter: 57
Land:
Beiträge: 166
Abgegebene Danke: 40
Erhielt 49 Danke für 21 Beiträge
Aktivitäten Langlebigkeit
0/20 17/20
Heute Beiträge
0/3 ssssss166
Idee AW: Saitek D++ - Bug?

Hm, ok, nach etwas Nachdenken ein Versuch der Analyse und gleichzeitig Versuch einer kleinen Erklärung für alle, die vielleicht nicht ganz so tief drin stecken (werde versuchen, programmierspezifische Fachausdrücke zu vermeiden oder ggf. zu erklären):

"ply" = Halbzug, in obigem Fall aktuelle Rechentiefe

Fail-Low:

Ich gehe davon aus, daß auch Kaplan, wie zu der Zeit schon allgemein üblich, mit eingeschränkten Erwartungsfenstern (alpha..beta) gearbeitet hat. Heißt, nach Abschluß der Rechentiefe 3 ist das Programm nicht mit einer Erwartungshaltung von -Unendlich bis +Unendlich an die Rechentiefe 4 herangegangen, sondern mit einer Erwartungshaltung (einem alpha..beta "Fenster") um die -0.97 herum, die sich aus Tiefe 3 ergeben hatte. Die Suche mit Tiefe 4 hat dann ergeben, daß die Bewertung deutlich unter -0.97 liegen wird, konnte aber aufgrund des eingeschränkten Fensters keinen exakten Wert liefern => ein sogenannter Fail-Low. Daraufhin wird die Suche auf der gleichen Tiefe noch einmal mit vergrössertem Erwartungsfenster neu gestartet, um die exakte Bewertung zu ermitteln. Kostet natürlich viel Zeit, wenn so etwas passiert, aber im Allgemeinen (immer dann, wenn es keinen Fail-Low oder Fail-High gibt) bringt das eingeschränkte Erwartungsfenster einen ganz enormen Zeitgewinn.

So, was nun natürlich passiert sein könnte:

Hashtabellen wird Kaplan wohl noch nicht verwendet haben, aber sicherlich zumindest Killerzüge und History-Tabellen, die damals auch schon üblich waren, evtl. weitere Infos, die von ply zu ply weitergereicht und z.B. für die Zugsortierung verwendet werden.

Wenn das Programm nun wirklich einen Fail-Low hatte, eine neue Berechnung gestartet hat und diese dann mittendrin abgebrochen hat, dabei aber evtl. schon eine Bewertung von unter -5.00 ermittelt hatte, und Kaplan seine Tabellen nicht oder nicht alle zwischen den Zügen leert, dann kann es eben doch sein, daß im nächsten Zug schon auf Rechentiefe 1 der Fehler gefunden wird. (Falls nicht geleerte Hashtabellen im Spiel sind allerdings unter Umständen mit einer falschen Bewertung, die aber zumindest schon näher an der Wahrheit liegt)

Und daß er die schlechte Bewertung das letzte Mal, als er am Zug war, nicht schon direkt auf Tiefe 3 bemerkt hat, wird irgendeiner Form der Selektivität zu "verdanken" sein.

Ist trotzdem ein unschönes Phänomen.

Muss aber nicht, wie in meiner Überschrift ursprünglich geschrieben, ein wirklicher "Bug" sein.

Die Krux beim D++ ist, daß es nicht wirklich tief kommt in seinen Berechnungen, der 6 MHz Prozessor ist einfach zu langsam für dieses Programm. Bei 30 Min/Partie kommt er oft nur 3-4 Halbzüge tief. Das ist in verwickelten Positionen dann doch gelegentlich zu wenig, vor allem wenn der Gegner mit einer halbwegs stabilen Suche 5-6 Halbzüge tief kommt...

So, jetzt spiele ich noch das "Rückspiel" MMV - D++ und dann haue ich mich in's Bett

Viele Grüße,

Heiko
Mit Zitat antworten