Hallo Ingo!
Weil das Thema MV- Modus schon lange ein besonderes Anliegen von mir ist, dazu noch etwas weiter ausholend:
Auch Shredder hat es bei mir nicht in 3 Stunden auf single core (der Reproduzierbarkeit halber) geschafft, auf 8 Varianten gleichzeitig rechnend, 1.Sa8 zur HV zu machen. Natürlich ist das mit dem schrittweise Reduzieren praktikabel, fair, wenn man die Lösung nicht kennt oder gar reproduzierbar in welcher Zeit von wievielen auf wieviele, ist es nicht, zu schnell auf zu wenige, lässt unterschätzte auch immer wieder herausfallen.
Ein irgendwie einstellbarer MV- Modus, möglichst auch zur automatischen Retroanalyse, warum nicht auch zum zur Partie ausspielen, wäre schon lang ein großer Wunsch von mir an GUIs. Auch Vasik Rajlich hat mir dazu einmal im Rybka- Forum geantwortet, dass es ein feature des GUI und nicht der engine wäre und dass auf diese Weise gespielte Partien "might be fun to watch".
Was da außer Monte Carlo (einem feature, dass ich, ohne es wirlich in praxi viel auspobiert zu haben, für ein eher sinnloses halte in den meisten Stellungen, die nicht ohnehin leichter anders lösbar sind) noch am ehesten dem nahe kommt, was ich mir wünschen würde, ist das der Stellungsanalyse von Fritz.
Hier habe ich z.B. Firbebird 1.2, der ebenso wie die meisten anderen im MV- Modus 10 und mehr Varianten braucht, um 1.Sa8 dabei zu haben, vielleicht 5 Minunten lang auf meinem low end Quad mit folgenden Variblen rechnen lassen:
16 HZ Suchtiefe +1 für jeden Wurzelzug, 16 Verzweigungen im ersten, 3 im 2., 2 im 3. und 1 im 4.HZ jeweils nur für die weiße Seite, 200 Hundertstelbauern pro Bewertungsfenster, Option schlechte Varianten Abschneiden angewählt, 10 HZ Länge pro Variante.
[Event "40'/40+20'/20+30'"]
[Site "Dort"]
[Date "2010.03.07"]
[Round "?"]
[White "Garcia"]
[Black "61"]
[Result "1-0"]
[Annotator "Martan,Peter"]
[SetUp "1"]
[FEN "1k6/bPN2pp1/Pp2p3/p1p5/2pn4/3P4/PPR5/1K6 w - - 0 1"]
[PlyCount "11"]
[TimeControl "40/2400:20/1200:1800"]
1. Na8 (1. Rf2 cxd3 2. Na8 (2. Ne8 g5 3. Kc1 (3. Nf6 Kc7 4. Kc1 b5 5. Ne4 f5 6.
Nxg5 $11 {[%eval 0,16]}) 3... Nf5 4. Nf6 Kc7 5. Rg2 b5 6. Rxg5 $16 {[%eval 89,
16]}) (2. Kc1 Kxc7 3. Rxf7+ Kc6 4. Rf8 Nb5 5. b8=Q Bxb8 6. Rxb8 $16 {[%eval
118,16]}) 2... Nf5 3. Kc1 (3. Rh2 Nh6 4. Rg2 Nf5 5. Rh2 Nh6 6. Rg2 $11 {[%eval
0,16]}) 3... g5 4. Rg2 f6 5. Kd2 c4 6. Rh2 $18 {[%eval 183,16]}) (1. Ne8 Nxc2
2. Kxc2 b5 3. dxc4 (3. Nd6 b4 4. Nxc4 a4 5. Kd2 Kc7 6. Ke3 $11 {[%eval -3,16]})
3... b4 4. Kd3 g5 5. Ke4 Bb6 6. Nd6 $14 {[%eval 51,16]}) (1. Nb5 cxd3 2. Rh2 (
2. Rf2 Nxb5 3. Rxf7 Nd4 4. Rf8+ Kc7 5. Rc8+ Kd7 6. Kc1 $11 {[%eval 0,16]}) (2.
Rd2 Nxb5 3. Rxd3 (3. Rh2 Nd6 4. Kc1 c4 5. Rh7 g5 6. Rg7 $19 {[%eval -326,16]})
3... Nd4 4. a4 Kc7 5. Rg3 g6 6. Rh3 $19 {[%eval -143,16]}) 2... Nxb5 3. Rh8+
Kc7 4. Rc8+ Kd7 5. b8=Q Bxb8 6. Rxb8 $16 {[%eval 122,16]}) (1. Rg2 Kxc7 2. dxc4
(2. Rxg7 cxd3 3. Rxf7+ (3. Kc1 b5 4. Rxf7+ Kb6 5. b8=R+ Bxb8 6. Rb7+ $19 {
[%eval -149,16]}) 3... Kc6 4. Kc1 Kb5 5. Rf8 Kxa6 6. b8=Q $17 {[%eval -136,16]}
) (2. Kc1 cxd3 3. Rxg7 (3. Kd2 g6 4. a4 c4 5. Kc3 Nb3 6. Rh2 $19 {[%eval -353,
16]}) 3... b5 4. Rxf7+ Kb6 5. b8=R+ Bxb8 6. Rb7+ $19 {[%eval -150,16]}) 2... g6
3. Rh2 (3. Rg3 b5 4. cxb5 Nxb5 5. Rh3 Nd4 6. Rh8 $17 {[%eval -90,16]}) 3... Nc6
4. Rh7 Nb8 5. Rxf7+ Kc6 6. Re7 $11 {[%eval -15,16]}) (1. Rh2 Kxc7 2. dxc4 (2.
Rh8 b5 3. dxc4 (3. Rc8+ Kb6 4. dxc4 Nc6 5. cxb5 Kxb5 6. Kc2 $17 {[%eval -124,
16]}) 3... bxc4 4. Rc8+ Kb6 5. b8=Q+ Bxb8 6. Rxb8+ $17 {[%eval -80,16]}) (2.
b8=B+ Bxb8 3. dxc4 (3. a7 Bxa7 4. dxc4 Bb8 5. Rh7 Nf5 6. Kc2 $19 {[%eval -426,
16]}) 3... b5 4. cxb5 Nxb5 5. Rh7 Kb6 6. Rxg7 $19 {[%eval -247,16]}) 2... Nc6
3. Rh7 (3. Rh8 Nb8 4. Rc8+ Kd7 5. Rg8 f5 6. Rxg7+ $17 {[%eval -109,16]}) 3...
Nb8 4. Rxg7 Nxa6 5. Rxf7+ Kc6 6. Kc2 $15 {[%eval -49,16]}) (1. Rd2 Kxc7 2. dxc4
(2. a4 g5 3. dxc4 (3. Rf2 f5 4. dxc4 f4 5. Kc1 f3 6. Kd2 $19 {[%eval -411,16]})
3... f5 4. Rh2 f4 5. Rh7+ Kc6 6. Rh8 $19 {[%eval -278,16]}) (2. Rf2 f5 3. dxc4
(3. Rg2 cxd3 4. Kc1 Kc6 5. Rxg7 Kb5 6. Kd2 $19 {[%eval -341,16]}) 3... g5 4.
Rg2 g4 5. a4 Nc6 6. b3 $19 {[%eval -298,16]}) 2... g5 3. Rg2 (3. Rh2 b5 4. cxb5
Nxb5 5. Rh8 g4 6. Rc8+ $17 {[%eval -87,16]}) 3... f6 4. Rh2 b5 5. cxb5 Nxb5 6.
Rh8 $17 {[%eval -80,16]}) (1. Rc1 Kxc7 2. dxc4 (2. Rf1 f5 3. Rg1 (3. dxc4 g5 4.
Kc1 g4 5. Kd2 g3 6. Ke3 $19 {[%eval -354,16]}) 3... cxd3 4. Rxg7+ Kc6 5. Kc1
Kb5 6. Kd2 $19 {[%eval -341,16]}) 2... b5 3. Rg1 (3. cxb5 Nxb5 4. Rh1 g5 5. Rh8
g4 6. Rc8+ $17 {[%eval -87,16]}) 3... g6 4. cxb5 Nxb5 5. Rh1 g5 6. Rh8 $17 {
[%eval -87,16]}) (1. Rc3 Kxc7 2. dxc4 g5 3. Rg3 (3. Rh3 b5 4. cxb5 Nxb5 5. Rh8
g4 6. Rc8+ $17 {[%eval -87,16]}) 3... f6 4. Rh3 b5 5. cxb5 Nxb5 6. Rh8 $17 {
[%eval -80,16]}) 1... Nxc2 2. Kxc2 g5 3. dxc4 f5 4. Kd3 f4 5. Ke4 f3 6. Kxf3
$18 {[%eval 624,16]} 1-0
Leider gehen die gewählten Optionen aus der Notation nirgends hervor, die Partiedaten sind reine Phantasie, nämlich aus den letzten Partieeinstellungen übernommen.
Ferner ist natürlich der Großteil der notierten Varianten unnötiger Schmarrn, aber unterbricht man die Sache an einer Stelle, wo man sich der beiden in Frage kommenden schon sicher ist, wird alles bis dahin Berechnete auch notiert, zum Schluss weglöschen, was man nicht braucht, ist auch kein Problem
Auch hat im Zug um Zug Fortschreiten der hochselektive Firebird offenbar viel bessere Chancen von den 16 zu untersuchenden Varianten in einer Tiefe von nur 17 HZ, wenn nochmal 10 dazukommen Schritt für Schritt, die beste herauszuschälen.
Kann sein, es war zweimal MP- Glück, ich musste das jetzt dann also nochmal auf single core wiederholen, aber ob mit ein- oder ausgeschaltetem Nullzug, was hier sonst absolut nicht egal ist, war praktisch irrelevant, außer dass Nullzug aus natürlich etwas länger brauchte.
Das Ergebnis auf single core mit sonst gleichen Einstellungen wie oben (hash auch wieder 1024, für single core sicher zuviel hier, vielleicht wäre auch bei 4 Kernen für die kurzen Rechnenzeiten zwischen den Zügen weniger besser gewesen?):
[Event "40'/40+20'/20+30'"]
[Site "Dort"]
[Date "2010.03.07"]
[Round "?"]
[White "Garcia"]
[Black "61"]
[Result "1-0"]
[Annotator "Martan,Peter"]
[SetUp "1"]
[FEN "1k6/bPN2pp1/Pp2p3/p1p5/2pn4/3P4/PPR5/1K6 w - - 0 1"]
[PlyCount "11"]
[TimeControl "40/2400:20/1200:1800"]
1. Rf2 (1. Ne8 Nxc2 2. Kxc2 cxd3+ 3. Kxd3 (3. Kd2 c4 4. Nd6 b5 5. a4 bxa4 6.
Nxc4 $19 {[%eval -182,16]}) 3... g5 4. Nf6 b5 5. a4 bxa4 6. Kc4 $17 {[%eval
-94,16]}) (1. Nb5 Nxb5 2. Rh2 (2. Rf2 Nc7 3. Rxf7 (3. dxc4 f5 4. Rg2 Nxa6 5.
Rxg7 Nc7 6. Kc2 $19 {[%eval -218,16]}) 3... Nxa6 4. dxc4 g5 5. Rg7 Nc7 6. Rxg5
$17 {[%eval -71,16]}) (2. dxc4 Nc7 3. Rd2 (3. Rg2 Nxa6 4. Rxg7 f5 5. Kc2 Nc7 6.
Rg8+ $19 {[%eval -210,16]}) 3... Nxa6 4. Rd8+ Kc7 5. Re8 Kd7 6. Rg8 $19 {
[%eval -199,16]}) 2... cxd3 3. Rh8+ (3. Rh3 Kc7 4. Rxd3 Nd4 5. Rh3 f5 6. Rh8
$19 {[%eval -200,16]}) 3... Kc7 4. Rc8+ Kd6 5. b8=Q+ Bxb8 6. Rxb8 $16 {[%eval
120,16]}) (1. Na8 Nxc2 2. Kxc2 cxd3+ 3. Kxd3 b5 4. a4 c4+ 5. Kc3 b4+ 6. Kxc4
$18 {[%eval 385,16]}) (1. Rg2 Kxc7 2. dxc4 (2. Rxg7 cxd3 3. Rxf7+ (3. Kc1 b5 4.
Rxf7+ Kb6 5. b8=R+ Bxb8 6. Rb7+ $17 {[%eval -134,16]}) 3... Kc6 4. Kc1 Kb5 5.
Rf8 Kxa6 6. b8=Q $17 {[%eval -122,16]}) (2. Kc1 cxd3 3. Rxg7 (3. Kd2 g6 4. a4
Nf3+ 5. Ke3 Ne5 6. Ke4 $19 {[%eval -341,16]}) 3... b5 4. Rxf7+ Kb6 5. b8=R+
Bxb8 6. Rb7+ $17 {[%eval -134,16]}) 2... g6 3. Rh2 (3. a4 Nc6 4. Rf2 Ne5 5. Kc2
g5 6. Kc3 $15 {[%eval -54,16]}) 3... b5 4. cxb5 Nxb5 5. Rh8 Nd4 6. Rc8+ $11 {
[%eval -12,16]}) (1. Rh2 Kxc7 2. dxc4 (2. Rh8 b5 3. dxc4 (3. Rc8+ Kb6 4. dxc4
Nc6 5. cxb5 Kxb5 6. b8=R+ $17 {[%eval -132,16]}) 3... bxc4 4. Rc8+ Kb6 5. b8=Q+
Bxb8 6. Rxb8+ $17 {[%eval -85,16]}) (2. b8=Q+ Bxb8 3. dxc4 (3. a7 Bxa7 4. dxc4
f5 5. Kc1 f4 6. Rh8 $19 {[%eval -420,16]}) 3... b5 4. cxb5 Nxb5 5. Rh7 Kb6 6.
Rxg7 $19 {[%eval -238,16]}) 2... Nc6 3. Rh7 (3. Rh8 Nb8 4. Rc8+ Kd7 5. Rg8 f5
6. Rxg7+ $17 {[%eval -98,16]}) 3... Nb4 4. Rxg7 Nxa6 5. Rxf7+ Kc6 6. Kc2 $15 {
[%eval -52,16]}) (1. Rc1 Kxc7 2. dxc4 (2. Rf1 f5 3. dxc4 (3. Rg1 cxd3 4. Rxg7+
Kc6 5. Kc1 Kb5 6. Kd2 $19 {[%eval -318,16]}) 3... g5 4. Kc1 g4 5. Kd2 g3 6. Ke3
$19 {[%eval -312,16]}) (2. Rg1 cxd3 3. Rxg7 (3. Rg2 g6 4. Kc1 b5 5. Rh2 Kb6 6.
Rh8 $19 {[%eval -459,16]}) 3... d2 4. Rxf7+ Kc6 5. Rf1 Kb5 6. Rd1 $19 {[%eval
-290,16]}) 2... Nc6 3. Rh1 (3. Rg1 g6 4. Rh1 f5 5. Rg1 Nb8 6. Rxg6 $17 {[%eval
-98,16]}) 3... Nb8 4. Rh7 f5 5. Rxg7+ Kd6 6. Rg8 $17 {[%eval -98,16]}) (1. Rc3
Kxc7 2. dxc4 (2. a4 f5 3. dxc4 (3. Rxc4 g5 4. Rc1 f4 5. Rg1 f3 6. Ka2 $19 {
[%eval -629,16]}) 3... f4 4. Rc1 g5 5. Rh1 f3 6. Kc1 $19 {[%eval -333,16]}) (2.
a3 cxd3 3. Rxd3 (3. b8=Q+ Bxb8 4. Rxd3 b5 5. Rg3 Nf5 6. Rh3 $19 {[%eval -498,
16]}) 3... b5 4. Rg3 g6 5. Rh3 Kb6 6. Rh8 $19 {[%eval -322,16]}) 2... Nc6 3.
Rg3 (3. Rh3 Nb8 4. Rh7 f5 5. Rxg7+ Kd6 6. Rg8 $17 {[%eval -98,16]}) 3... g6 4.
Rh3 f5 5. Rg3 Nb8 6. Rxg6 $17 {[%eval -98,16]}) (1. Rd2 Kxc7 2. dxc4 (2. a4 g5
3. dxc4 (3. Rh2 cxd3 4. Kc1 b5 5. axb5 Kb6 6. Rh8 $19 {[%eval -380,16]}) 3...
f5 4. Rg2 g4 5. b3 Nc6 6. Rh2 $19 {[%eval -315,16]}) (2. Rf2 f5 3. dxc4 (3. Rg2
cxd3 4. Rxg7+ Kc6 5. Kc1 Kb5 6. Kd2 $19 {[%eval -364,16]}) 3... g5 4. Rg2 g4 5.
a4 Nc6 6. Kc1 $19 {[%eval -287,16]}) 2... Nc6 3. Rh2 (3. Rg2 g6 4. Rf2 f5 5.
Rg2 Kd6 6. Rxg6 $17 {[%eval -98,16]}) 3... Nb8 4. Rh7 f5 5. Rxg7+ Kd6 6. Rg8
$17 {[%eval -98,16]}) (1. Rxc4 Kxc7 2. Rc1 (2. b4 axb4 3. Rc1 (3. Kb2 b5 4. Rc1
Kb6 5. Rg1 Nf5 6. Rc1 $19 {[%eval -542,16]}) 3... g5 4. Rh1 b5 5. Rh7 Kb6 6.
Rxf7 $19 {[%eval -324,16]}) (2. a4 f5 3. Rc1 (3. Ka2 f4 4. Rc1 f3 5. Rh1 b5 6.
axb5 $19 {[%eval -421,16]}) 3... f4 4. Rg1 f3 5. Rxg7+ Kc6 6. Rg1 $19 {[%eval
-365,16]}) 2... b5 3. Rg1 (3. Rh1 Kb6 4. Rh8 Nc6 5. Rc8 g5 6. Kc1 $19 {[%eval
-216,16]}) 3... g6 4. Rh1 Kb6 5. Rh7 Kxa6 6. Rxf7 $19 {[%eval -201,16]}) 1...
cxd3 2. Na8 (2. Ne8 g5 3. Kc1 (3. Nf6 b5 4. Kc1 Kc7 5. Rg2 c4 6. Rxg5 $11 {
[%eval 0,16]}) 3... Nf5 4. Rg2 c4 5. Rxg5 Ne7 6. Nd6 $18 {[%eval 435,16]}) (2.
Nb5 Nxb5 3. Rxf7 Nd4 4. Rf8+ Kc7 5. Rc8+ Kd6 6. Kc1 $11 {[%eval 0,16]}) 2...
Nf5 3. b3 (3. Kc1 g5 4. Rg2 f6 5. Kd2 c4 6. a4 $16 {[%eval 87,16]}) 3... c4 4.
bxc4 b5 5. Rh2 Nh6 6. cxb5 $18 {[%eval 688,16]} 1-0
Natürlich viel weniger schön, erfüllt aber auch dann seinen Zweck, wenn man gleich sieht, dass die 1. Variante mit der Nebenlösung 1.Tf2 nur deshalb am Ende so hoch bewertet wird, weil sich Schwarz (auf eine einzelne Verzweigung festgelegt, spart hier Zeit aber auch relevantes Ergebnis ein) auf 1... cxd3 einlässt, was Weiß noch einmal die Chance zu 2.Sa8 gibt, die der auch wahrnimmt und damit eigentlich eine Mischung aus Haupt- und Nebenlösung am Ende bewertet.
In der Reihenfolge der Notation kommen dann zwar noch 1.Se8 und 1.Sb5 vor 1.Sa8, bewertet sind die aber beide an ihren Enden viel schlechter als die Variante nach dem Lösungszug, der, wenn auch erst als dritte Nebenvariante notiert, folgendermaßen herauskopiert, durchaus Sinn macht, auch in der Bewertung:
[Event "40'/40+20'/20+30'"]
[Site "Dort"]
[Date "2010.03.07"]
[Round "?"]
[White "Garcia"]
[Black "61"]
[Result "1-0"]
[Annotator "Martan,Peter"]
[SetUp "1"]
[FEN "1k6/bPN2pp1/Pp2p3/p1p5/2pn4/3P4/PPR5/1K6 w - - 0 1"]
[PlyCount "11"]
[TimeControl "40/2400:20/1200:1800"]
1. Na8 Nxc2 2. Kxc2 cxd3+ 3. Kxd3 b5 4. a4 c4+ 5. Kc3 b4+ 6. Kxc4 $18 {[%eval
385,16]} 1-0
Dieses Ergebnis, auf single core wohl auch halbwegs reproduzierbar, hat ca. 10 Minuten gedauert, das muss halt natürlich erst wieder, wie ja letztlich alles, einfach geglaubt werden, ob das noch gespeichert wird oder nicht, ist mir aber eigentlich schon eher wurscht, man kann's ja, denk ich, wahrscheinlich auch relativ leicht selbst reproduzieren zum Nachprüfen.
Wäre das Ganze etwas einfacher einstellbar und für Retroanalyse (ist es insofern eh auch ein wenig, als bestehende Varianten eines Baumes ab der Startverzweigung bis zur eingegeben Suchtiefe mitberücksichtigt werden, wie mir scheint) automatisch und vielleicht auch noch als match- modus für engine- Partien verwendbar, das wäre doch was, hmh?
Jetzt könnte dann ein mit anderen Rechnern vernetztes GUI ja noch zum Schluss die Varianten den anderen engines der anderen Rechner mitteilen und schon hätten wir für Triple- und Multibrain wieder eine echte Cluster- Alternative, Ingo, was meinst du?