marco belli

Risposte al Forum Create

Stai vedendo 15 articoli - dal 1 a 15 (di 131 totali)
  • Autore
    Articoli
  • in risposta a: Perft #12173

    marco belli
    Membro

    Nel repository di Vajolet3 è presente il file con i test funzionali del movegenerator. Questo è il link del file che contiene le 6838 posizioni perft prese a caso da partite giocate da Vajolet.

    https://github.com/elcabesa/vajolet3/blob/master/test/perft.txt
    il file contiene righe come la seguente nella quale trovate in sequenza, separati da virgole, fen e risultati dei perft da 1 a 6.
    rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -,20,400,8902,197281,4865609,119060324
    Allego al seguente messaggio 3 file, quello con tutte le posizioni e 2 file che sono l’input e l’output di confronto che usavo in passato prima di implementare gli unit test

    i file li potete usare così se avete un engine uci compliant che accetta il comando perft e lo gestisce in maniera bloccante:
    Vajolet < perft-random.txt >perft-randomResult.txt

    in risposta a: Perft #12172

    marco belli
    Membro

    Stasera guardo come fare a portarvi il file

    in risposta a: Perft #12165

    marco belli
    Membro

    Mi senti pronto per una bella sfida? Ho un file con 6838 fen con i risultati perft da 1 a 6 verificati con stockfish. Per verificarsi tutti ci vuole circa un giorno su vajolet. Accetti la sfida?

    in risposta a: Perft #12162

    marco belli
    Membro

    su gcc per usare le intrinsic del popcnt devi usare l’opzione -mpopcnt, queste sono le mie opzioni per una cmpilaion non bmi: “-O3 -msse4.2 -mpopcnt”

    in risposta a: Perft #12160

    marco belli
    Membro

    dipenderà da che istruzioni usi e da che ottimizzazioni hai attive 🙂 Usi qualche intrinseca particolare su winsdows come popcnt oppure la funczione per trovare l’indice del bit meno significatico di una bitmap?

    in risposta a: Usare GIT #12158

    marco belli
    Membro

    PS: questo mi fa pensare che potrie sostituire la mia clsString con std::string, creando un branch dedicato in GIT. Siccome la uso come il pane… mi conviene lavorare sul branch in un altro PC o “swappare” da questo al master e viceversa?

    quello di cui parli comunque è prbablmente un feature branch nel workflow git-flow

    in risposta a: Usare GIT #12157

    marco belli
    Membro

    puoi fare quel che vuoi, swappare da un branch all’altro è velocissimo. Puoi pure avere i 2 branch in 2 cartelle diverse sullo stesso pc, non ti servono 12 PC per lavorare su 12 feature 🙂

    fai git clone e poi git checkout in una cartella
    ripeti sulla seconda cartella git clone e poi git checkout su un altro branch 🙂

    oppure fai tutto da una sola cartella swappando in continuo, tutto dipende da te, dal numero di switch che vuoi fare e da tante altre considerazioni
    ciao buonanotte

    in risposta a: Usare GIT #12154

    marco belli
    Membro

    cosa intendi per bc++, Borland?

    io recentemente sto usando con molta felicità il c++ versione 11 e successive e le standard library per tutto quello che è liste, iteratori, vettori, array ricerca. mi sto trovando molto bene anche se alcune cose non sono ottimali. Dove lavoro io molte persone usano le librerie QT che sono un po più snelle e che implementano tante belle cose per gli sviluppatori, ma io non le conosco abbastanza e hanno pure una licenza costosa.

    p.s. oggi ho fatto un po di test della metodologia Gitflow, devo assolutamente provarla seriamente sui rami di Vajolet che ad oggi sono uno schifo

    in risposta a: Usare GIT #12152

    marco belli
    Membro

    interessnte i workflow git-flow…lo devo studiare.. e sopratutto metterlo im pratica 🙂 i miei repository sono uno schifo in genere

    in risposta a: Usare GIT #12151

    marco belli
    Membro

    l’uso di più rami a ma fa comodo quando voglio svilupare o provare qualcosa di nuovo. supponi di voler aggiungere a millesimo una nuova feature ( che richiede qualche mese di lavoro ) come per esempio la gestione di nuove regole derivanti da una nuova legge. puoi fare un branch dal ramo MASTER e lavorare in questo nuovo ramo che chiamerai BRANCH_NUOVA_LEGGE_2018.
    Se nel frattempo ti viene richiesta una modifica/bugfix da un cliente, puoi fare il fix sul ramo master ( che non è stato toccato dalla modifiche della nuova feature ) e rilasciarlo. quando hai finito il lavoro sul ramo nuova legge 2018 puoi mergiarlo sul master. in questo modo hai soddisfatto il cliente (bugfix) e sei riuscito a sviluppare la nuova feature in nu modo semplice. una volta che ci prendi la mano ti aiuta molto senza dover avere mille copie del codice sparse su 100 dischi

    in risposta a: Usare GIT #12150

    marco belli
    Membro

    uno spunto di riflessione per te stefano, anche se molto avanzato, quindi per adesso prendilo con le molle 🙂

    svn gestisce gli externals e anche in git hanno agigunto una feature simile i submodules. A cosa servono i submodules? per inserire nel progetto un altro repository esterno.
    Faccio un esempio pratico, mi sembra di aver capito che tu hai delle tue librerie standard che usi un po in tutti i progetti e poi vari progetti. potresti fare un repository per le librerie e poi per ogni progetto un repository con il codice del solo progetto e che ha come submodule la libreria. in questo modo puoi condividere il codice della libreria con tutti i progetti, senza dover fare copia oncolla dei progetti i odover patchare un bug in tutti i progetti. c’è un po da lavorare e sbattersi… ma può essere interessante

    in risposta a: Perft #12125

    marco belli
    Membro

    Il generatore di vajolet genera mosse legali e il perft è ottimizzato in modo che a depth 1 ritorna il numero di mosse legali. In questo modo fa un perft 6 in 2-3 secondi. perft 7 in circa 90.
    Detto ciò dipende a cosa ti serve il perft, per me è principalmente un modo con divide di fare debug del generatore di mosse, move selector e make/unmake move.
    Non limitarti a fare il perft della pos iniziale. Trovi sul wiki un sacco di posizioni.

    in risposta a: Sistema Esperto #12015

    marco belli
    Membro

    il problema, secondo il mio punto di vista, è il seguente : i motori non hanno idea del concetto di forchette, attacchi doppi, attacchi di scoperta, ma da questo punto di vista usano un algoritmo di ricerca che alla fine gli fa trovare le mosse migliori. I motori conoscono inoltre concetti posizionali semplici, che applicati pedissequamente ad ogni posizione che trovano li rendono forti nella valutazione delle posizioni come per esempio il concetto di pedone doppiato, pedone isolato, spazio, avamposti, finali con alfieri di colore diverso, etc etc …

    usando queste informazioni su milioni di posizioni che trova nell’albero di ricerca alla fine riesce a dirti quella che secondo lui è una mossa forte e poi ti propone una possibile continuazione. Continuazione che difficilmente verrà seguita completamente anche dal motore se gli fai giocare una partita, probabilmente dopo 2-3 mosse la continuazione non verrà seguita dal motore ma seguiraà una continuazione leggermente diversa. In pratica il motore è una scatola nera che dice quella che è la sua valutazione della posizione e la miglior mossa, ma non è assulutamente in grado di spiegarti il motivo. Non è capace di spiegarti il motivo in termini di Doppi, di motivi strategici, o di altro perché semplicmente non usa questa metodologia.
    Andrebbe fatto un lavoro immenso per poter far spiegare al motore i concetti che un umano o un istruttore ti possono spiegare. Chessbase offre qualcosa del genere e un programmatore, di cui non ricordo il nome, ha fatto un programma che analizza le partite e fa un analisi usabile da giocatori, ma non credo che possa essere al livello che tu ti aspetti.

    infine uno dei problemi principali è che l’obiettivo dei motori è quello di giocare forte e non quello di spiegare come mai una mossa è forte oppure quali sono le minacce o le prospettive di una posizione, il finale verso il quale stiamo andando etc

    in risposta a: Pondering #11352

    marco belli
    Membro

    la mia non era un istigazione a farti passare al protocollo UCI, era solo un analisi di quello che è il pondering secondo lo standard UCI 🙂

    in risposta a: Pondering #11349

    marco belli
    Membro

    Che protocollo usi, uci o x board?
    In uci la procedura è semplice, quando finisci la ricerca comunichi la bestmove e la ponder.
    A quel punto ti viene inviata una nuova posizione con le 2 mosse (best e ponder giocate) è ti viene detto go ponder. Fai la ricerca su quella posizione, ma non puoi ritornare la bestmove, un po come quando sei in ricerca infinita.
    Quando l’avversario ha finito la sua ricerca, ci sono 2 possibilità.
    La prima è che non avevi indovinato la mossa, allora ti viene comandato uno stop, ti viene inviata la nuova Pos e ti viene dato il comando GO.
    La seconda è che avevi indovinato il ponder, ti inviano ponder hit e da questo momento puoi continuare la ricerca in atto ritornando la best move quando vuoi..

    In pratica il ponder ti dà più tempo per pensare. È come pensare il doppio se indovini la mossa. Potrebbe valere qualcosa come 30 punti elo.

Stai vedendo 15 articoli - dal 1 a 15 (di 131 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