Fabio Gobbato

Risposte al Forum Create

Stai vedendo 15 articoli - dal 1 a 15 (di 75 totali)
  • Autore
    Articoli
  • in risposta a: Shield chess engine #11773

    Il programma era pensato per funzionare con il pgn generato da cutechess-cli. I dati sulle aperture e sul numero di mosse vengono calcolati considerando i tag del pgn, se qualche tag non fosse presente ovviamente il programma non riesce a caricare i dati. Per quanto riguarda i dati su quante patte per ripetizione, matto, aggiudicazione ecc. ogni programma che genera i pgn usa dei commenti differenti al termine della serie di mosse, quindi eventualmente dovresti adattare il programma per ricercare il relativo commento. Ripeto, era pensato esclusivamente per ricavare dei dati a partire dal pgn generato da cutechess-cli.

    in risposta a: Shield chess engine #11757

    Ho usato un programma che ho fatto io, si basa sui tag inseriti nel pgn, è pensato per il pgn generato da cutechess-cli, se vi serve ve lo posso passare.

    in risposta a: Shield chess engine #11755

    Ecco alcune statistiche ricavate dal test di shield 2.0, con * sono segnati i valori sotto la media, essendo il numero di partite ridotto alcuni valori non sono troppo indicativi.

    
    Partite 100 Punteggio: 0.575000 Elo: 52.5 Errore 59.2
    
    Mosse <= 40 Partite:     2 Elo: 190.8 Errore 340.5   
    Mosse <= 60 Partite:    21 Elo: 311.3 Errore 95.7   
    Mosse <= 80 Partite:    32 Elo: 32.7 Errore 115.9  *
    Mosse <=100 Partite:    24 Elo: -43.7 Errore 125.1  *
    Mosse <=120 Partite:     8 Elo: -88.7 Errore 249.2  *
    Mosse <=140 Partite:     4 Elo: -0.0 Errore 0.0  *
    Mosse <=160 Partite:     5 Elo: -0.0 Errore 0.0  *
    Mosse > 160 Partite:     4 Elo: 88.7 Errore 170.2   
    
    ECO: A08 Partite:     1 Elo: -inf Errore -nan  *
    ECO: A11 Partite:     1 Elo: -0.0 Errore -nan  *
    ECO: A12 Partite:     1 Elo: inf Errore -nan   
    ECO: A28 Partite:     2 Elo: -190.8 Errore 340.5  *
    ECO: A29 Partite:     5 Elo: 147.2 Errore 272.4   
    ECO: A30 Partite:     1 Elo: inf Errore -nan   
    ECO: A52 Partite:     1 Elo: inf Errore -nan   
    ECO: A54 Partite:     1 Elo: inf Errore -nan   
    ECO: A57 Partite:     1 Elo: inf Errore -nan   
    ECO: B01 Partite:     1 Elo: inf Errore -nan   
    ECO: B10 Partite:     1 Elo: -0.0 Errore -nan  *
    ECO: B12 Partite:     2 Elo: -0.0 Errore 681.0  *
    ECO: B15 Partite:     2 Elo: -0.0 Errore 681.0  *
    ECO: B22 Partite:     1 Elo: -inf Errore -nan  *
    ECO: B33 Partite:     1 Elo: -inf Errore -nan  *
    ECO: B38 Partite:     2 Elo: -inf Errore 0.0  *
    ECO: B44 Partite:     1 Elo: inf Errore -nan   
    ECO: B49 Partite:     3 Elo: -0.0 Errore 393.2  *
    ECO: B51 Partite:     1 Elo: -0.0 Errore -nan  *
    ECO: B56 Partite:     2 Elo: 190.8 Errore 340.5   
    ECO: B66 Partite:     1 Elo: inf Errore -nan   
    ECO: B81 Partite:     1 Elo: inf Errore -nan   
    ECO: B90 Partite:     2 Elo: -inf Errore 0.0  *
    ECO: B92 Partite:     2 Elo: -inf Errore 0.0  *
    ECO: B97 Partite:     1 Elo: inf Errore -nan   
    ECO: C00 Partite:     1 Elo: inf Errore -nan   
    ECO: C01 Partite:     1 Elo: -inf Errore -nan  *
    ECO: C07 Partite:     1 Elo: inf Errore -nan   
    ECO: C08 Partite:     2 Elo: 190.8 Errore 340.5   
    ECO: C10 Partite:     1 Elo: -inf Errore -nan  *
    ECO: C11 Partite:     2 Elo: 190.8 Errore 340.5   
    ECO: C42 Partite:     3 Elo: -0.0 Errore 393.2  *
    ECO: C48 Partite:     1 Elo: inf Errore -nan   
    ECO: C58 Partite:     1 Elo: -inf Errore -nan  *
    ECO: C66 Partite:     1 Elo: inf Errore -nan   
    ECO: C67 Partite:     1 Elo: -inf Errore -nan  *
    ECO: C92 Partite:     1 Elo: inf Errore -nan   
    ECO: C93 Partite:     2 Elo: -0.0 Errore 681.0  *
    ECO: C95 Partite:     1 Elo: -inf Errore -nan  *
    ECO: C96 Partite:     1 Elo: -inf Errore -nan  *
    ECO: C97 Partite:     1 Elo: -inf Errore -nan  *
    ECO: C99 Partite:     1 Elo: inf Errore -nan   
    ECO: D05 Partite:     1 Elo: inf Errore -nan   
    ECO: D11 Partite:     2 Elo: -0.0 Errore 681.0  *
    ECO: D12 Partite:     1 Elo: inf Errore -nan   
    ECO: D18 Partite:     1 Elo: -inf Errore -nan  *
    ECO: D35 Partite:     1 Elo: -0.0 Errore -nan  *
    ECO: D36 Partite:     1 Elo: -0.0 Errore -nan  *
    ECO: D37 Partite:     1 Elo: -inf Errore -nan  *
    ECO: D40 Partite:     1 Elo: inf Errore -nan   
    ECO: D43 Partite:     2 Elo: inf Errore 0.0   
    ECO: D45 Partite:     2 Elo: -190.8 Errore 340.5  *
    ECO: D46 Partite:     2 Elo: -190.8 Errore 340.5  *
    ECO: D48 Partite:     3 Elo: 279.6 Errore 227.0   
    ECO: D55 Partite:     1 Elo: inf Errore -nan   
    ECO: D58 Partite:     1 Elo: -0.0 Errore -nan  *
    ECO: D90 Partite:     1 Elo: -0.0 Errore -nan  *
    ECO: D94 Partite:     1 Elo: -0.0 Errore -nan  *
    ECO: E01 Partite:     1 Elo: inf Errore -nan   
    ECO: E07 Partite:     1 Elo: inf Errore -nan   
    ECO: E11 Partite:     1 Elo: -0.0 Errore -nan  *
    ECO: E13 Partite:     1 Elo: inf Errore -nan   
    ECO: E14 Partite:     3 Elo: inf Errore 0.0   
    ECO: E15 Partite:     3 Elo: -120.4 Errore 454.0  *
    ECO: E18 Partite:     1 Elo: -inf Errore -nan  *
    ECO: E24 Partite:     1 Elo: -0.0 Errore -nan  *
    ECO: E32 Partite:     1 Elo: -0.0 Errore -nan  *
    ECO: E43 Partite:     1 Elo: inf Errore -nan   
    ECO: E57 Partite:     1 Elo: inf Errore -nan   
    ECO: E61 Partite:     1 Elo: inf Errore -nan   
    ECO: E84 Partite:     1 Elo: -0.0 Errore -nan  *
    ECO: E92 Partite:     1 Elo: -0.0 Errore -nan  *
    
    ECO: A Partite:    14 Elo: 129.8 Errore 153.2   
    ECO: B Partite:    24 Elo: -29.0 Errore 129.1  *
    ECO: C Partite:    22 Elo: 15.8 Errore 137.9  *
    ECO: D Partite:    22 Elo: 63.9 Errore 115.4   
    ECO: E Partite:    18 Elo: 142.6 Errore 124.8   
    
    in risposta a: Una mano #11304

    Con i video non ho esperienza, html e javascript dovrei rispolverarli visto che è una vita che non li uso, con l’inglese si può fare. Compatibilmente con gli impegni quotidiani dovrei riuscire a dare una mano.

    in risposta a: IGT: organizziamo la cena #11248

    Ci sono anch’io!

    in risposta a: Ricerca o valutazione: questo è il dilemma! #11097

    Il fatto è che alcune cose in ricerca funzionano perchè c’è una valutazione di un certo tipo e viceversa. Non le puoi slegare. Fino alla versione 0.2 di pedone ho usato solo l’alphabeta senza nessuna riduzione, ho provato diverse volte la PVS e le riduzioni ma non mi hanno mai funzionato fin tanto che non ho implementato qualche conoscenza sulla struttura pedonale e sulla sicurezza del re. Da lì in avanti la PVS mi ha dato dei benefici come pure le riduzioni.

    Non l’ho mai provato ma secondo logica se per esempio prendessi stockfish e tenessi in valutazione solo il materiale senza nessun’altra conoscenza troveresti che tutte le cose che ha in ricerca non funzionerebbero, ed anzi sarebbe più debole di un motore con una ricerca più semplice perchè tutto quel pruning e tutte quelle riduzioni sarebbero controproducenti visto che la ricerca non sarebbe indirizzata da una buona valutazione.

    in risposta a: Codice C/C++ e istruzioni macchina #10982

    Scusa, bswap32 è così:

    
    uint32_t bswap32(uint32_t x)
    {
       return x>>24 | x>>8 & 0xff00 | x<<8 & 0xff0000 | x<<24;
    }
    
    in risposta a: Codice C/C++ e istruzioni macchina #10981

    Chiedo scusa, mi sono spiegato probabilmente male io. Ti riporto un sesempio:

    
    #include <stdint.h>
    
    uint32_t bswap32(uint32_t x)
    {
       return x>>24 | x>>8 & 0xff00 | x<<8 & 0xff00 | x<<24;
    }
    
    uint64_t bswap64(uint64_t x)
    {
       return (uint64_t)bswap32(x)<<32 | bswap32(x>>32);
    }
    
    uint64_t ror(uint64_t x,uint64_t n)
    {
       return x>>n | x<<(64-n);
    }
    

    Sono tutte funzioni che scritte in C sono diverse istruzioni ma che il compilatore riesce a tradurre nelle rispettive istruzioni macchina.
    Io nel mio engine richiamavo l’istruzione assembly per le rotazioni, ora che so che il compilatore riesce a ricoscere quel tipo di istruzioni posso scrivere codice più portabile.
    Mi sembrava incredibile che il compilatore fosse così intelligente da comprendere quelle funzioni, tutto qua.

    in risposta a: Richiesta Epd o Fen #10925

    Ti allego tutte le collezioni di epd che ho raccolto in questi anni, includono le sts e posizioni varie di mediogioco e finale che mi ha passato Dann Corbit. C’è molta varietà, nel file ogni fen è contenuta una sola volta (nelle sts alcune posizioni sono doppie) dovresti riuscire a trovare le posizioni che ti interessano.

    Ciao

    in risposta a: Gestione delle spese #10666

    A mio modesto parere bisognerebbe rimborsare delle spese chi organizza gli igt, se non sbaglio a Como avevi fatto un viaggio per ricercare un albergo sul quale farci alloggiare, secondo me il costo di quel viaggio sarebbe stato opportuno dividerlo tra i partecipanti. Io vedo l’igt come una cosa semplice, le coppe sono una spesa inutile che ricade sempre su chi organizza, alla fine è un momento di incontro.

    Altro aspetto sono tutte le altre attività g-sei che vanno dall’igwt, test e gestione del sito. Richiedono tutte delle spese. Con tutte quelle sessioni di test alla lunga un pc dura poco, e fin’ora te ne sei sempre preso carico te.
    Bisognerebbe trovare il sistema affinchè si possa contribuire volontariamente in una qualche maniera.

    in risposta a: Velocità generazine nodi #10653

    La parte di generazione delle mosse è generalmente più lenta dell’esecuzione delle stesse. In ricerca in genere si generano le mosse e poi ne analizzi solo alcune per arrivare al taglio quindi hai molte chiamate al generatore e meno alla funzione che esegue e rispristina le mosse. Eliminando i tagli il generatore viene chiamato poche volte mentre le più veloci funzioni di esecuzione e ripristino sono chiamate più volte.

    Quello che si usa fare è di creare 2 generatori: uno per le catture/promozioni e uno per le mosse quiete.
    In questa maniera allegerisci la generazione e migliori l’ordinamento visto che le mosse che causano tagli in ricerca sono perlopiù catture.

    Questo è un caso semplice ma per ottimizzare al meglio il codice un profiler può tornarti utile.

    Ciao

    in risposta a: Mi presento #10645

    Per evitare di utilizzare l’engine da console, può esserti utile implementare un protocollo di comunicazione per utilizzarlo con una GUI.

    Qui trovi il protocollo UCI (a mio avviso più semplice da implementare, ma con altre limitazioni) http://wbec-ridderkerk.nl/html/UCIProtocol.html

    Qui il protocollo winboard (più completo ma anche più complesso) http://home.hccnet.nl/h.g.muller/engine-intf.html

    in risposta a: Libri scacchi #10607

    Grazie dell’aiuto! Vedrò di trovarli.

    in risposta a: Tuning #10360

    Io avevo provato così, forse si può provare anche con molte meno posizioni alla fine ottieni sempre un tuning approssimato, diverso da quello che potresti ottenere manualmente.
    Il TD Learning l’ho provato con alcuni successi ma da un pò di tempo a questa parte l’ho abbandonato perchè non sono riuscito a ricavarci più nulla. Uno delle problematiche che ho riscontrato è che la differenza tra valutazione e ricerca può essere in alcuni casi notevole, e per ridurre l’errore, l’algoritmo di ottimizzazione tende a portarti il valore dei bonus vicino allo 0. Se i bonus sono molto bassi ovviamente la differenza tra valutazione e ricerca sarà minima.

    Il valore medio che ottieni dipende dalla profondità della ricerca. Per ricerche di 2 ply la differenza media mi pare si aggirasse sui 20-30cp.

    A suo tempo con il metodo Texel avevo dato in mano all’algoritmo di ottimizzazione tutti i bonus della valutazione, ed ho dovuto impiegare molto tempo per riportarli a dei valori decenti. Ti conviene prendere una decina di bonus alla volta, tararli e lanciare un test e ripetere toccando un pò per volta tutti i bonus.

    in risposta a: Test syzygy probe #10322

    Le posizioni potrebbero essere le stesse perchè estratte da partite di CCRL CEGT ma alcuni valori sono diversi perchè qualche mese fa è stato corretto un bug sul probe.

Stai vedendo 15 articoli - dal 1 a 15 (di 75 totali)
© 2017 G 6 Tutti i diritti riservati - Buon divertimento!

By continuing to use the site, you agree to the use of cookies. more information

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi