Newsgroup: it.hobby.scacchi
Titolo: Migliore versione di Crafty?

Tra le molteplici versioni, quale mi consigliate di scaricare?
Qual è la più stabile e forte?
Io ho scaricato la 18.12, ma non riesco a creare il book.
Grazie

 wrote in message
news:0ela4u8gn03jpfr7k...@4ax.com...

Ciao,
ho fatto qualche torneo con Shredder 6 con alcuni motori tra cui
Crafty 18.11 e 18.12 . 
La versione 18.11 e' sempre stata superiore alla 12.
Pero' mi pare sia uscita la 13 ... 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 wrote in 
news:0ela4u8gn03jpfr7k...@4ax.com
:

Opening Book Setup and Usage 
­­­­­­­­­­­­­­­­­­­­­­­­­­­­ 
Crafty uses twopre­compiled opening books, called "book.bin" and 
"books.bin". 
The file book.bin is usually build from a large text file containing PGN 
games, often taken from collections 
of GM games. Building book.bin is a simple exercise and requires nothing 
other than the rawinput file you 
are going to use. Generally this will be either medium.zip or the set of 
four files large[1­4].zip, all of which 
are stored on the ftp machine 
ftp.cis.uab.edu/pub/hyatt/
. 
To create the file book.bin, you need a PGN game collection that is a 
*real* PGN­compliant file. 
 
Supposing this file is called "large.pgn" you would use the following 
command: 
book create large.pgn <m> [n] [wpct] 
The only thing you have tosupply is <m>, a number indicating 
howmanymovesfrom each game are to be 
stored in the book.bin database. Itypically use 60, which stores the first 
60 movesfrom each game. 
Increasing this number slightly increases the probability that Crafty will 
stay in book longer,but it also 
increases the probability that it will followagame too far,sothat it begins 
to reach positions where the 
move actually played might not be the best move,letting it fall into a bad 
hole. Increasing this also 
increases the size of the database as well. 
Youcan decrease the size of the book, and also reduce the number of ugly 
movesbyspecifying <n>, which 
says that unless a move isplayed in at least N games, the move isdiscarded. 
This will substantially 
decrease the size of the book.bin file, and also eliminate single game 
movesthat often have significant 
errors or blunders. 
Youcan increase the quality of book lines by specifying <wpct> which is the 
"winning percentage". This is 
specified as a percentage of lost games, and is used to discard movesthat 
led to mostly losses. Asafe value 
is 50, which says that if a particular opening move didn'twin at least 50% 
as manygames as it lost, the 
move isculled. A value of 100 would mean that movesare culled if 
theyproduced more losses than wins, 
and is really a strict criterion. 
After creating book.bin, you need to create books.bin. This is a small 
version of book.bin, which is 
intended to give you more control overthe moves/openings Crafty will 
play.This is usually built from the 
file start.pgn on the ftp machine, but you can modify this file to suit 
your taste easily.Tobuild books.bin, 
you use the following command: 
books create start.pgn 60 
Again, 60 is what I use, but none of my start.pgn lines go anywhere near 
that manymoves. The main point 
here is that in start.pgn, you can append a "!" to anymove you want, and 
when it is Crafty'sturn to move 
for that color,itwill play from the set of moveswith "!" if there are any, 
i gnoring the rest of the book 
moves. If you only want it to play 1. e4 as white, you would just enter the 
short game: 
[Crafty only plays 1. e4] 1. e4! 
and you are finished!. Youcan enter as manyasyou want. If on the other hand 
there is a move you don't 
want Crafty to play,then followthat move with a "?" and it will neverplay 
it. Movesinbooks.bin that are 
not flagged with ! or ? don'thave anyinfluence on Crafty'schoice at all. 
Here'show the files are used. When searching a position, Crafty first 
enumerates the set of movesitcan 
find in the opening database. It then does the same for the books.bin 
database, and performs a "merge" 
operation to combine the ? and ! flags... The purpose of the books.bin file 
is to give you a small database 
that you can easily modify,rebuild, and repeat this process overand over. 
Since it takes a fraction of a sec­ 
ond to completely rebuild this file, it is very easy to modify this to 
control what Crafty will play,without 
having to rebuild the large database. 
One important characteristic of the PGN input is the Result tag must be 
specified in most of the lines, 
because Crafty counts wins, losses and draws for each book move and uses 
these counts with some of the 
book selection options givenbelow. 
Howthe flags are used. 
 
The ! and ? flags should only appear in the small books.bin file, although 
there is no reason whytheycan 
not appear in the large file as well. Forthis discussion, it doesn'tmatter 
since Crafty takes the movesfrom 
both files and "merges" the flags/etc into one entry for each move. 
Quite simply,ifany book legalbook move has a ! flag, then Crafty will only 
play movesfrom the set of 
moveswhich all have the ! flag. If a move has a ? flag, then that move 
isimmediately removedfrom the set 
of possible book moves. If the only legalbook move has a ? flag, it will 
not be played as a book move and 
Crafty will simply pretend that it found no book movesand will execute a 
normal tree search. Pretty sim­ 
ple. 
Howtocontrol the frequencyofopening move selection. 
Anew feature in version 15.15 and beyond allows you to append a PGN comment 
to anymove inatextfile 
used to create books.bin, of the form {play nn%}. This will force the move 
itfollows to be played that per­ 
centage of the time, regardless of the normal book­ordering values based on 
frequencyand so forth. 
Note that {play 0%} will not prevent a move from being played at all, as 
this will look just likeamove with 
no percent specified. To avoid playing a move,use the ? flag. 
Howdoes Crafty choose book moves? 
Crafty'sbook selection algorithm depends on twouser­defined values that can 
be set at anytime during a 
game: 
book random <n> 
book width <w> 
The selection algorithm first finds the set of legalbook movesasabove.This 
set will either be all ! moves, 
or will have no!movesinit. This set is then sorted based on the setting of 
book random. Here'sthe 
options: 
book random 0. This is a special case for book selection. Crafty simply 
takes the set of book moves, and 
searches only these movesusing a normal alpha/beta search, but with a 
shorter than usual time limit. It 
then plays the move that produces the best search value. This has one 
serious disadvantage in that there is 
no randomness to this at all. It will always play the same move inthe same 
position, unless the evaluation 
is modified, or the time per move isdifferent enough to let the search find 
a different move from the book 
move set. 
book random 1. This enables a random form of book move selection, but you 
have a lot of control over 
howmovesare randomly chosen. The movesare ordered, based on 4 parameters: 
frequencyofplay, 
win/lose ratio, static evaluation and learned results. Normally these are 
factored into the value used to sort 
the moves, based on default settings that you can modify by using the 
command "bookw option N" 
"option" should be "freq", "ratio", "eval" and "learn". Nshould be a number 
between 0 and 1. 
Ti ho incollato il contenuto del manuale sulla creazione del book. Cmq ti 
consiglio di scaricarlo in modo da poter settare crafty come meglio 
credi...i comandi sono davvero tanti.
CiccioSPICE

 
 18.11   minor bug in EvaluateDevelopment() found by Bruce Moreland.  the  
*
*           pawn ram code is now disabled when playing a computer, although   
*
*           the normal 'blocked pawn' code is always active.  bug in the 
code *
*           that penalizes a rook with no horizontal mobility was fixed.  
if  *
*           the first rook scored had horizontal mobility, the second rook    
*
*           appeared to have this mobility as well, which was wrong.  pawn    
*
*           hash statistics were wrong on longer searches due to an int       
*
*           overflow on a multiply and divide calculation.  this has been     
*
*           re-ordered to avoid the overflow.  for unknown reasons, epd       
*
*           support was disabled.  it is now enabled as it should be.  some   
*
*           strange adjustements to root_alpha/root_beta were removed from    
*
*           searchr.c.  they were probably left-over from some sort of 
test.  *
*                                                                             
*
*   18.12   bug in EvaluateDraws() fixed to not call KBB vs KN a draw if 
the  *
*           correct tablebase is not available.  bishop pair scores now 
vary  *
*           depending on how many pawns are left on the board.  a pair is 
not *
*           worth a lot if there are 7-8 pawns left as most diagonals will 
be *
*           blocked by pawns.  Test() modified so that it will now run 
using  *
*           an EPD test suite with am/bm and id tags.  the old testfile 
for-  *
*           mat will continue to work for a while, but Test() now notices 
the *
*           EPD format and processes it correctly.  a new way of handling 
the *
*           search extensions is in place.  with the old approach, one ply    
*
*           could not extend more than one full ply.  with the new 
approach,  *
*           borrowed from Deep Blue, two consecutive plies can not extend     
*
*           more than two plies total.  It averages out to be the same, of    
*
*           course, but the effect is a bit different.  Now it is possible    
*
*           for a check and recapture to be applied at the same ply, where    
*
*           they could not before (since a check was already a full one-ply   
*
*           extension).  whether this is better or not is not clear yet, 
but  *
*           it is worth careful analysis.  EvaluateDraws() has been 
replaced  *
*           by EvaluateWinner().  This function returns an indicator that     
*
*           specifices whether white, black, both or neither can win in the   
*
*           present position.                                                 
*
Questo che ti ho incollato è una parte dei commenti al main del file 
sorgente di crafty. Come vedi le modofiche tra le due versioni riguardano 
la funzione Test() ed una correzione ad un bug che chiamava una patta 
inesistente. La funzione di valutazione è rimasta la stessa e quindi il 
risultato non può che essere stato casuale. Purtroppo, per stabilire se un 
motore è realmente più forte di un altro, bisogna farli giocare centinaia 
di partite ed analizzare le statistiche. Se su 20 partite (per esempio) 
crafty 18.11 batte crafty 18.12 16 volte, ti assicuro che non significa 
nulla. Se facessi giocare altre 20 partite con grossa probabilità il 
risultato si invertirebbe. 
CiccioSPICE


Ottima analisi, concordo pienamente!
Saluti cordiali da Greenu

Ho utilizzato su 
chess.net
 Crafty 17.10smp con un dual Celeron 533
overclocckato a 680 (raffreddato ad acqua) ed è stata la versione che mi ha
reso di+
Era arrivato a oltre 2700 in blitz e 2500 in standard......
Tale versione era stata prelevata dal sito di Dan Corbitt ed era stata
"elaborata" con ottimizzazioni varie in fase di complilazione.
Nel file crafty.rc c'erano i seguenti parametri
book on
ponder on
mt=2
log off
hash=48m
hashp=8m
tbpath=c:\scacchi\TB\
egtb
cache=32m
exit
Purtroppo quella versione non la trovo + ma dovrei averla in qualche email
spedita....
Spero che i parametri possano servire.....ciao

 CiccioSPICE
A questo punto credo in effetti sia un fato casuale.
Grazie
Ciao


 a mano che le macchine diventano piu' performanti.
La spiegazione te la da lo stesso NOME del programma. Il fatto che ci sia 
una numerazione nelle versioni ha un grande significato. Quando si è 
passati dalla versione 18.12 alla 18.13 il programmatore voleva dire che è 
cambiato, o aggiunto l'1% di linee di codice. Il sorgente di crafty è circa 
1.8Mb il che vuol dire che è stato modificato o aggiunto 18Kb di 
codice(!!!). Credi che debba passare da un athlon a 1.500Mhz ad uno a 1.900 
per non sentire questo abnorme appesantimento? Avresti avuto ragione se 
parlavi di Fritz che è passato dalla 6 alla 7. Ma in questo caso il 100% 
dei cambiamenti è la "summa" di vari fattori tra cui(secondo me la 
percentuale maggiore) la veste grafica. In questo caso la richiesta di 
risorse cambia notevolmente ed è ovvio che cambiando hardware senti 
fortemente gli incrementi di prestazione.
CiccioSPICE

secondi!!! E chi se ne frega se la partita dura, per esmpio, 45 minuti???
Non capisco bene quello che intendi 
ma come fai a dire che aggiungendo conoscenza si perde ben piu' che 
un milionesimo di secondo a partita.
anzi fare un compromesso tra conoscenza e velocita e' una delle cose
piu'  importanti programmando un motore scacchistico.
just my 2 euro.
glm

 
Non sto dicendo che sia errato fare il compromesso, anzi sono convinto del 
contrario, ovviamente; e cmq il termine "conoscenza" l'ho solo preso in 
prestito, non era mio :). Quello che volevo dire è che(nel caso in 
questione e cioè la correzione di una function che chiamava una patta 
inesistente) non modifica la funzione di valutazione e quindi i tempi di 
risposta. La pedita del milionesimo di secondo è relativa solo al caso in 
cui ci siano sulla scacchiera i du re, due alfieri ed un cavallo. Solamente 
in questo caso si esegue il salto alla procedura e solo in questo caso si 
potrebbe avere una perdita nei tempi di calcolo. Mi sembra poca cosa 
rispetto ai miliardi di casi in cui la funzione di analisi si comporta 
nello stesso modo rispetto alla versione precedente.
CiccioSPICE

 wrote in message
3c476b01...@powernews.iol.it...

Da un po' di tempo Hyatt sta rafforzando Crafty soprattutto dal punto di
vista dello scontro con gli umani. E' quindi plausibile che possa sembrare
indebolito se messo a confronto con altri motori che migliorano piů
velocemente nell'ambito stretto del computerchess. Considera inoltre che
l'aumentare delle prestazioni hardware in generale aumenta il livellamento
tra motori scacchistici (nel CCT4 che si sta svolgendo su ICC Crafty non č
neanche riuscito a battere il mio Esc, il che č tutto dire...), per cui un
motore che č da sempre considerato un vincente, ne subisce di piů le
conseguenze...
ciao
Claudio

neanche riuscito a battere il mio Esc, il che è tutto dire...), per cui un
Diavolo Claudio non svilire troppo Crafty e il tuo Esc .. non se lo
meritano.
1) non dare troppo peso a una partita.
2) quando un programma raggiunge la forza di Esc di adesso (diciamo
intorno 2200) la probabilita' che imbrocchi una partita senza troppi
errori aumentano... e una partita senza errori per male che ti vada e'
patta.
3) non si puo' generalizzare le prestazione prog./prog. a prog./Umano
4) complimenti per la prestigiosa patta.
ciao
glm