Fabio Gobbato

Risposte al Forum Create

Stai vedendo 15 articoli - dal 1 a 15 (di 83 totali)
  • Autore
    Articoli
  • in risposta a: I miei errori #12140

    Manca anche il tratto nel calcolo della chiave.

    in risposta a: I miei errori #12138

    Per usare un puntatore in quel modo bisognerebbe definire i pezzi su di un array.

    in risposta a: Perft #12126

    Ricordo che anch’io all’inizio ho speso diverso tempo per cercare di ottimizzare i generatori e l’esecuzione delle mosse. Oggi però il mio engine impiega il 40% del tempo nella valutazione e il 15% nell’ordinamento delle mosse.
    Tutti i generatori impiegano circa il 5%, altro 5% speso nell’eseguire le mosse e sempre un 5% per verificare la legalità di una mossa. Il resto è diviso tra altre funzioni della ricerca e della quiescenza.
    Se anche avessi dei generatori ed un esecuzione delle mosse ancora più veloci non cambierebbe molto.

    in risposta a: Test syzygy probe #12098

    Ho aggiornato la unit test per le syzygy aggiungendo anche le mosse che il root_probe dovrebbe filtrare.
    Il formato del file csv è: fen,dtz,wdl,numero mosse,mossa1, mossa2,…
    Se il campo numero mosse fosse ad esempio 10 ci saranno 10 campi successivi contenenti la mosse in formato LAN.
    Mentre i valori dtz e wdl li avevo verificati anche con python chess le mosse filtrate non le ho confrontate con altri engine ma mi sono limitato a controllare la correttezza del codice.

    Ecco il link al file: https://drive.google.com/file/d/1Nud1CnuK9lHrvuPHW3PqkOYGt3oNkt53/view?usp=sharing

    in risposta a: Lista bugs di Arena #12063

    Altro problema di Arena che bisogna gestire se si vuole che l’engine funzioni anche sotto questa gui, è quello che (almeno con uci) l’interfaccia lancia l’engine in ponder anche su una posizione di scacco matto quindi con 0 mosse legali. Nel mio engine ho del codice specifico per verificare che la posizione ricevuta dalla gui abbia delle mosse legali, altrimenti invia alla gui “bestmove 0000”

    in risposta a: Ancora su queste statistiche… #12040

    Ok, penso di aver capito il perchè poi gestisci la cosa come è meglio per te.
    Nel caso di Pedone 1.6 le 6 partite entro le 30 mosse sono tutte terminate in patta per triplice ripetizione, quindi in quella fascia per un engine forte ricadono molte patte per ripetizione. La patta per un engine forte non è un buon risultato, quindi lo score che ottiene è più basso. Penso sia questo il motivo.

    in risposta a: Ancora su queste statistiche… #12038

    Effettivamente 30 mosse per gli engine più forti sono poche infatti la maggior parte delle partite sono più lunghe.
    In realtà però se vai a vedere lo score entro le 30 mosse, ossia (vittorie+patte/2)/totpartite senza andare a vedere l’elo dell’engine contro il quale si è scontrato si nota comunque che lo score sotto le 30 mosse è inferiore rispetto alle altre fasi.

    Ad esempio gli score di Pedone 1.6
    Mosse <= 30 Partite: 6 Score: 0.500
    Mosse <= 50 Partite: 13 Score: 0.654
    Mosse > 50 Partite: 141 Score: 0.681

    Le partite sono poche e questo è un dato di fatto, ma vedendo la stessa cosa per gli altri engine dello stesso livello sembra che engine più forti possano commettere maggiori errori (anche rispetto agli engine più deboli) nelle prime mosse mentre è più difficile che commettano errori nel tardo mediogioco o nel finale.

    in risposta a: IGT 2018 #11997

    Non credo di essere la persona più adatta per organizzare l’IGT ma se volete a Mestre c’è questa associazione http://www.mestrescacchi.it/ se lo ritenete opportuno posso provare a informarmi se sono disponibili. A Mestre c’è l’aereoporto Marco Polo ed è collegata anche dalla rete ferroviaria.

    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;
    }
    
Stai vedendo 15 articoli - dal 1 a 15 (di 83 totali)
© 2018 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