Pondering


Questa pagina ha una gerarchia - Pagina madre:Programmazione

Home Forum Programmazione Pondering

Questo argomento contiene 4 risposte, ha 3 partecipanti, ed è stato aggiornato da  marco belli 1 mese, 3 settimane fa.

Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)
  • Autore
    Articoli
  • #11347

    Ciao a tutti.

    Ieri ho implementato il pondering del tipo :

    pv[] = think()
    Esegui la mia mossa pv[0]
    ponder = 1
    esegui la mossa che presumibilmente farà l’avversario pv[1]
    lancia di nuovo il think() finchè non c’e’ un input dalla Gui
    togli la mossa presunta dell’avversario
    ponder = 0
    esegui la mossa effettiva dell’avversario

    In teoria il motore dovrebbe essere più veloce, ma In pratica non ho visto miglioramenti apparenti.
    Le hash si pienano di spazzattura se non azzecco la mossa.
    Ho raddoppiato le Hash senza grandi miglioramenti .
    Ho pensansato di fare 2 hash separate. Una riservata al pondering e l’altra alla ricerca vera.

    E’ tutto regolare o sbaglio qualcosa , oppure l’incremento di Elo con il pondering e’ normalmente piccolo e serve quanche centiania di partite per verificarlo ?

    Marco

    #11348
    Andrea
    Andrea
    Membro

    Ciao Marco,

    Quando c’è un ponderhit, cioè l’avversario ha giocato la mossa che Soldat si aspettava, non devi ritirare la mossa dell’avversario ma semplicemente controllare il tempo, perché potrebbe esserne trascorso più di quello allocato per quella mossa e allora Soldat potrebbe muovere immediatamente, e continuare a farlo pensare.

    Controlla di far partire il tempo di Soldat quando inizia il pondering e non quando riceve la mossa dell’avversario altrimenti, ovviamente, in caso di ponderhit non hai alcun beneficio.

    Se invece l’avversario gioca una mossa diversa, devi ritirare la mossa ipotizzata, eseguire quella effettivamente giocata, far ripartire il tempo di Soldat e farlo pensare.

    Il vantaggio del pondering è tutto nel risparmio di tempo: pensi durante il tempo dell’avversario e puoi quindi muovere prima, a parità di tempo allocato.

    Di solito, quando si sa che il pondering è attivo, si alloca un po’ più di tempo per ogni mossa rispetto a quello che si allocherebbe senza pondering, grazie al risparmio di tempo che ci si aspetta per alcune mosse.

    #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.

    #11350

    Grazie a tutti , mi avete convinto.
    Mi converto anche io al protocollo UCI.

    #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 🙂

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