Nach meiner Erfahrung gelten folgende Aussagen für alle Engines. Bitte Hinweis, wenn ich da falsch liege:
1.)
Beim Rechnen mit nur einem Thread und gleichen Rahmenbedingungen kommen die Engines gut reproduzierbar mit dem selben Zug.
Das ist wohl der, den sie einfach als besten errechnet haben.
2.)
Beim Rechnen mit mehr als einem Thread ist dies nicht so gegeben:
Es können leicht unterschiedliche Bewertungen der Züge herauskommen, so dass dann auch eben mal ein anderer tatsächlich ausgeführt werden kann.
Warum das so ist? Weiß ich nicht wirklich.
Die Laufzeit der einzelnen Teilproblemlösungen mag unterschiedlich sein, weil mal Infos für beta-Cuts rechtzeitig zur Verfügung stehen und mal nicht. Das hat dann Folgen für die gesamte Parallelverarbeitung. Das führt eventuell zu unterschiedlich langen Zeiten für bestimmte Rechentiefen, und bei gegebener Zeit eben auch zu unterschiedlichen Ergebnissen.
Aber ob dies als Erklärung ausreicht? Vermutlich nicht.
Ggf. gibt es noch wirksamere Gründe (Hat jemand eine bessere Erklärung?)
3.)
Je nach der Größe des MV-Wertes können die Züge leicht unterschiedlich bewertet werden.
Das kann sie ggf. auf die Reihenfolge der Züge auswirken, ein anderer Zug wird gewählt.
Neben den nicht-Spekulativen Cuts gibt es eben auch spekulative, durch die drastische Beschleunigungen kommen, durch die aber auch Fehlermöglichkeiten auftreten.
"Meistens superschnell und -tief, selten mal ein (kleinerer) Fehler --> Spielstärkesteigerung"Ja, an dieser Stelle ist ein kleines Lotterie-Moment eingebaut, allerdings eines, welches die Engine im Durchschnitt deutlich stärker spielen lässt.
Warum sich das ggf. erst bei MV>=2 und mind. 2 Threads auswirken sollte, weiß ich nicht. Tus aber vielleicht.
Ergo:
Die Engine macht immer den Zug, den sie für den Besten hält!
Da sich aber die Bewertungen der Züge je nach Rahmenbedingung leicht ändern können, kann auch mal ein eben noch geringfügig schlechter bewerteter Zug auf Platz 1 kommen und gezogen werden.
Benno
(der auch gern Konkreteres erfahren würde über die Gründe für dieses wankelmütige Verhalten der Engines bei Threads>1 und verschiedene MV)