Newsgroup: it.hobby.scacchi
Titolo: Shredderbase

Vedi 
http://www.chessbase.com/newsdetail.asp?newsid=3314
Praticamente sono riusciti, se ho ben capito, a ridurre di quasi due ordini
di grandezza le tablebase di Nalimov...
I 7,5 Gb dei finali fino a 5 pezzi diventano 157 Mb alla massima
compressione e 441 Mb nella versione più veloce e possono anche essere
caricati in RAM!
Luigi Caselli

Luigi Caselli ha scritto:

Molto interessante, specialmente se diventa uno standard, nel senso che
tutti gli engines possono accedere a questi finali e non solo shredder.
Carlo

 Luigi Caselli
Le shredderbases non sono le tablebases compresse, bensi le bitbases
compresse. La differenza è che nelle tablebases di Nalimov è salvata la
distanza al matto e questo comporta ovviamente che per ogni posizione
devono essere utilizzati più bit (mi pare se ne usino 8, quindi un byte)
mentre nelle bitbases è scritto solo che una posizione è
vinta/persa/patta, nient'altro, e necessitano quindi di soli 2 bit. Ecco
perchè le bitbases occupano così poco spazio. 
Se da una parte le bitbases ti dicono che la posizione è vinta, dall'altra
non ti dicono come fare a vincerla (cosa che invece fanno le tablebases di
Nalimov: basta scegliere mosse che portino a posizioni per le quali la
distanza al matto è via via inferiore). Quindi bisogna utilizzare degli
accorgimenti nella funzione di ricerca per accertarsi che il programma
stia facendo dei progressi verso la vittoria e non stia cincischiando tra
posizioni vinte e basta. Per esempio non si interrogano le bitbases se non
nella seconda metà della ricerca in modo da assicurarsi che il programma
faccia progressi nella prima metà "pensando" da solo. 
Sono comunque molto efficienti. Ne ho avuto prova a Torino, quando, nella
partita contro Shredder, l'autore mi disse: "La partita è vinta per
Shredder. Non ha trovato ancora come ma è vinta." :))
---
UAF
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 distanza al matto è via via inferiore).
Non mi è chiara una cosa, probabilmente le cose non sono così semplici 
perchè altrimenti si farebbe certamente così, ma...
Per far sì che le bitbases ti dicano anche come fare a vincere la partita 
(in modo analogo alle tablebases), non basterebbe marcare come vincente la 
mossa (o "una delle", in caso di pari distanza dal matto)? che vince nel 
numero minore di mosse?
E questo non costerebbe nemmeno un bit... visto che i due bit (4 valori 
potenziali) già usati per codificare vinta/persa/patta possono essere usati 
per codificare vinta/persa/patta/mossadagiocare.
Cosa mi sfugge?

 Cosa mi sfugge?
La struttura di questi insiemi di dati?
Alex

ArtAttack ha scritto:



Codificare una mossa significa codificare la casa di partenza e la casa di
arrivo. Poichè ci sono 64 case avresti bisogno di 6 bit, 12 in totale. A
questo punto conviene utilizzare la distanza dal matto, che sono solo 8
bit.


 La struttura di questi insiemi di dati?
In effetti sě, non ci avevo capito una mazza :) 

 Cosa mi sfugge?
Ti sfugge che un bit puo' assumere solo due valori: 0 o 1
Quindi un insieme di due bit puo' assumere 4 valori:
00
01
10
11
ai quali possiamo attribuire per esempio il seguente significato:
10 vince bianco
01 vince nero
11 patta
resterebbe libero solo il valore 00
La mossadagiocare non ci sta.