I miei errori


Questa pagina ha una gerarchia - Pagina madre:Programmazione

Home Forum Programmazione I miei errori

Questo argomento contiene 35 risposte, ha 8 partecipanti, ed è stato aggiornato da Lissandrello Luca Lissandrello Luca 1 anno, 2 mesi fa.

Stai vedendo 6 articoli - dal 31 a 36 (di 36 totali)
  • Autore
    Articoli
  • #8056
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Bellino come bug 🙂
    penso anche difficile da intercettare, a meno di avere un lampo di genio che ti dica: ‘e se fosse…?’

    Io ce ne ho un’altro carino dell’altra settimana, spero di non aver cancellato i sorci sbagliati per riproporlo nella sua ‘bellezza’, mo lo cerco.

    Bye!

    LL

    #8057
    stegemma
    stegemma
    Moderatore

    Sì, a volte invece sono più semplici da trovare ma richiedono una pazienza certosina. In questa semplice posizione, stamattina sbagliava il perft 8, mentre lo faceva giusto fino al 7:

    [FEN]k1K5/p7/8/8/8/8/8/8 w[/FEN]

    Qui sono stato fortunato fortunato, perché confrontando il divide con Sharper (ottimo programma, per verificare il perft) ho potuto ridurre l’errore mossa dopo mossa, fino ad arrivare a:

    [FEN]8/pK6/8/k7/8/8/8/8 b[/FEN]

    e qui il nero gioca la stupenda a7Y5!!!

    Non l’ho ancora corretto ma così è facile, perché ti trovi in una posizione con 4 mosse legali. I bachi difficili sono quelli dell’altro esempio, dove il baco scompare se riduci la profondità muovendo.

    #8058

    marco belli
    Membro

    se non ricordo male Sharper è velocissimo e implementa il comando “divide”, ma mi pare che quando debuggavo il mio move generator sono arrivato ad una posizione in cui i risultati di sharper e vajolet non erano uguali, e alla fine vajolet aveva ragione. quando hai dubbi usa il perft di stockfish come riprova.

    #8365
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Questa è bella: guardate l’ultima mossa di neuro su fics 😀

    E’ successo perchè dopo la cattura en passant è convinto che nella casa c3 non ci sia il pedone nero, ma un suo bianco!
    Di conseguenza, dopo c4 e la ‘cattura’ dxc (ep) lui è nella possibilità di… cxb!! (cattura il cavallo nero).
    Neuro mi sorprende sempre 😀

    In pratica nella funzione per il calcolo dell’en passant ho attribuito la casa di destinazione al bianco (non ho invertito i colori).
    Adesso è ok.

    Ovviamente neuro ha poi perso la partita.

    Alla prossima castroneria!

    LL

    #8395
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Ultimamente ho corretto un paio di bachi (cosa buona e giusta) e ho subito fatto dei test contro altre versioni del motore (altra cosa buona e giusta).
    Stranamente sembra che ci sia stata una regressione (brutta cosa).
    Controllo e ricontrollo, ma non riesco a trovare nulla di sbagliato nelle correzioni. Faccio dei test più numerosi e niente, sempre la stessa regressione rispetto alla versione appena precedente alle modifiche (-35 elo circa).
    In genere queste cose succedono se si perde in velocità di elaborazione e se la ricorrenza dell’errore è ininfluente. Ma non è nemmeno questo il caso.

    Vago quasi per caso nella cartella dei books e… tadaaaannn! Trovato l’arcano! L’ultima versione corretta di Neurone giocava con un libro vecchio, rispetto alle altre che avevano il libro aggiornato!
    Allineato il libro per tutti adesso l’ultima versione è sopra le altre di 3-4 punti elo circa.

    Un consiglio: non fate i miei errori; verificate sempre il libro usato per il test!

    Bye!

    LL

    #10357
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Ci ho messo due mesiiiii! Me ne sono uscito solo adesso! 😀

    Mi spiego:
    Al recente igt ho dovuto disattivare il ponder a Neurone perchè se usato in contesti multicore ogni tanto tirava fuori una mossa a depth 1 anzicchè procedere verso depth più consoni.

    Che cos’era?
    Dovete sapere che ogni processo eredita dal processo padre una serie di informazioni e tra questi anche il parametro ini_ponder ossia il parametro che uso per capire se neuro deve usare il ponder o no.
    Io ponsavo che all’attivazione di ogni singolo processo tale parametro fosse sempre 0 invece no! In pratica i processi andavano in ponder anche dopo la ‘consegna’ della bestmove al processo padre! Conseguenze: casini su ht e dati sporchi un po’ dappertutto.

    Bug fissato, detto così sembra semplice, ma vi assicuro che trovare cause di questo tipo quando si lavora sui processi non è mica semplice. Ho dovuto fare tutti i giri all’inverso prima di capire che il problema stava a monte.

    Bye!

    LL

Stai vedendo 6 articoli - dal 31 a 36 (di 36 totali)

Devi essere loggato per rispondere a questa discussione.

© 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