Forum pubblico/privato: Pubblico
Permessi di scrittura: Utenti registrati
Giorno: 18/10/2014, 18:02:26
DeepFish MZ
Stockfish è per molti versi un motore eccezionale ma, per raggiungere le sue incredibili profondità di analisi, oltre a una drastica potatura, fa un massiccio uso della tecnica della "null move".

È però risaputo che questo algoritmo cozza pesantemente contro tutte quelle posizioni in cui la soluzione si basa sullo sfruttamento dello zugzwang. dho.gifdho.gifdho.gif

È stato più volte richiesto a Marco Costalba di aggiungere al motore un comando che consenta di bypassare la null move per poter analizzare al meglio questo tipo di posizioni, ma ha sempre risposto picche, visto che la sua filosofia va nella direzione opposta, e cioè eliminare tutti quei comandi che, regolati da utenti inesperti, potrebbero indebolire la forza del motore.

Per fortuna, però, un altro Marco, il nostro Amos, ha pensato bene di aggiungere ai parametri di regolazione questo utilissimo comando, insieme ad alcune altre modifiche.

Ne è così venuto fuori

DeepFish MZ

Precisiamo subito che eliminando la null move non si ottengono miracoli generalizzati: nella maggior parte delle situazioni tattiche non cambia quasi nulla e nei tatticismi più estremi o nei finali, in genere, il motore tende a giocare più debolmente a causa della ridotta profondità che riesce a raggiungere.

Ci sono nondimeno posizioni, come dicevamo basate sullo sfruttamento dello zugzwang, dove la differenza è davvero abissale.

In questo semplicissimo studio, ad esempio

abcdefgh
8
8
7
7
6
6
5
5
4
4
3
3
2
2
1
1
abcdefgh
Fen: k1b5/1p1p3p/1p1Pp3/pP2Pp2/P4P2/pK3P2/P4P2/8 w - - 0 1


le versioni "ortodosse" di SF non si staccano dalla valutazione di perfetta parità, pur raggiungendo profondità di 100 e più semimosse.

Deep Fish invece vede molto rapidamente la vittoria del Bianco e dopo un po' fornisce anche un'indicazione di matto in 42.

In quest'altra ammucchiata generale

abcdefgh
8
8
7
7
6
6
5
5
4
4
3
3
2
2
1
1
abcdefgh
Fen: 8/8/8/2p5/1pp5/brpp4/1pprp2P/qnkbK3 w - - 0 1


DF trova istantaneamente il matto in 15 mentre la posizione è sempre stata insolubile per SF (e tanti altri buoni motori).

Anche la Asauskas - Malisauskas

abcdefgh
8
8
7
7
6
6
5
5
4
4
3
3
2
2
1
1
abcdefgh
Fen: r2q1r2/1b2bpkp/p3p1p1/2ppP1P1/7R/1PN1BQR1/1PP2P1P/4K3 w - - 0 1


viene risolta in pochissimi secondi da DF, mentre è praticamente irrisolvibile per le ultime versioni di SF...

ciao.gifciao.gif
"TB or not TB..."
Giorno: 11/08/2020, 11:59:11
Link sponsorizzati
Giorno: 18/10/2014, 19:04:01
Ma forse il risultato più spettacolare di questa nuova versione si ha nel noto finale fra Henneberger e Nimzowitsh, una manovra così bella da sembrare uno studio artistico anziché un semplice finale di partita:

abcdefgh
8
8
7
7
6
6
5
5
4
4
3
3
2
2
1
1
abcdefgh
Fen: 8/8/2k1pn2/5p2/p1pP1Pp1/2P1K1P1/P7/4B3 b - - 0 1


Dopo qualche decina di secondi DeepFish inizia a snocciolare tutta la manovra vincente del grande Nimzo, dalla sottile triangolazione del Re Nero alla travolgente galoppata del Cavallo in b1.

Nulla del genere viene invece fatto da SF che, anche dopo lunghissima riflessione, nella variante principale indica di voler spingere quasi subito il pedone in a3, gettando via le possiilità di vittoria...

ciao.gifciao.gif
"TB or not TB..."
Giorno: 19/10/2014, 23:03:26
È possibile compilare questo motore con gcc per Linux a 64 bit?
Giorno: 20/10/2014, 20:42:06
Mi risulta che siano disponibili solo versioni per Windows a 32 e a 64 bit. senzasperanza.gif

Proviamo comunque a girare direttamente ad Amos (se in questi giorni ci sta seguendo sulle pagine del Forum) la richiesta di Sandritus, e chissà...biggrin.gif

ciao.gifciao.gif
"TB or not TB..."
Giorno: 21/11/2014, 16:05:56
Mi dispiace ma Linux non lo conosco
https://github.com/Zerbinati/S_XPrO-NN
Giorno: 22/11/2014, 00:44:38
L'ho confrontato in una veloce 5 minuti con l'ultimissima versione di Stock e ha giocato brillantemente mettendo in seria difficoltà il motorono e portandolo alla patta per triplice ripetizione di mosse.

Io ho giocato con la 64AVX.SSE4.2, che differenza vi è con la GEN, la SSE e la quarta ?
Giorno: 27/11/2014, 17:50:59
AVX
Gen= hardware generico
SSE4.2
sono semplicemente i set di istruzione supportati dalle CPU's
DeepFish comunque e notevolmente più debole delle normali versioni, specialmente a tempi brevi.
E stato compilato per l'analisi e non per il gioco
https://github.com/Zerbinati/S_XPrO-NN
Giorno: 30/11/2014, 09:42:02
Amos, mi chiedevo se fosse peraltro possibile, a gentile richiesta, il rilascio di un un deepfish mz2 con margini di futilità e delta pruning alzati ulteriormente, in modo da arrivare ad un qualcosa che se non è proprio un motore brute force poco ci manca.
Giorno: 04/12/2014, 09:39:31
Ciao
il NullMove e disabilitato
e il Futility pruning e a 0
di più non si può :)
https://github.com/Zerbinati/S_XPrO-NN
Giorno: 04/12/2014, 17:09:59
Allora mi confermi che in pratica è un brute force o quasi?!