COME SI REALIZZA UN CHESS ENGINE?


Questa pagina ha una gerarchia - Pagina madre:Vecchi ma interessanti post su Yahoo gruppi

Home Forum Vecchi ma interessanti post su Yahoo gruppi COME SI REALIZZA UN CHESS ENGINE?

Questo argomento contiene 0 risposte, ha 1 partecipante, ed è stato aggiornato da  Administrator 4 anni, 5 mesi fa.

Stai vedendo 1 articolo (di 1 totali)
  • Autore
    Articoli
  • #5414

    Administrator
    Moderatore

    —– Original Message —–
    From: Andrea Gatti
    To: ‘g6′
    Sent: Friday, December 01, 2000 1:10 AM
    Subject: [g_6] Ci provo anche io

    > Ma la piu’ bella e’: cosa faccio. La mia sequenza sarebbe:
    >
    > (1) Disegno le bitboards
    > (2) Scrivo la routine che valuta la posizione
    > (3) Genero le mosse, e le ordino
    > (4) un po’ di alpha beta, minimax, picchio e pucchio, ciccio e ciccia..
    > (5) gioco la mossa
    >
    > Bene o male ci sono, o sono distante anni luce ?

    Sei vicinissimo.
    Ti dico quelle che per me sono le priorità… considera che io ho iniziato
    il mio engine Esc mi pare il 9 giugno e alla fine di giugno già faceva le
    prime partite legali, perché sostanzialmente ho detto: lo faccio giocare,
    solo dopo lo miglioro. La cosa importante è farlo giocare perché così puoi
    notare i progressi concretamente e soprattutto puoi usare winboard invece
    della console (mi pare che debba essere nativo win32 perché winboard lo
    vuole così, ma non ci metterei la mano sul fuoco).
    Poi all’inizio ti capiterà di migliorarlo in modo tale che ogni nuova
    versione distrugga quelle vecchie, mentre più vai avanti, più i progressi
    saranno lievi, ma la cosa è normale.

    La prima cosa che dovresti fare, dopo aver scelto le variabili globali che
    descrivono la scacchiera (array di int=celle o array di bitboards) è la
    generazione delle mosse (la cosa non è banale, ti richiederà un bel po’ di
    tempo). A quel punto, ti basta:

    1- fare un ciclo che ti scandisce tutto l’albero (minimax) fino a una
    profondità bassa (magari parametrica), e introdurre alpha e beta (se sai
    come funziona alpha-beta in 15/20 minuti fai tutto alla precisione,
    altrimenti se la copi ci metti pure di meno);

    2- creare una funzione di valutazione = valorepezzibianco-valorepezzinero
    (10 minuti a dire tanto);

    3- creare un ciclo che raccoglie i principali comandi di winboard e in
    particolare: riconosce le mosse nel formato e2e4 e chiama la funzione
    alpha-beta quando serve (3 ore);

    A questo punto l’engine funziona… è una pippa ma funziona.

    Poi avrai capito che dovrai fare subito dopo… la funzione alpha-beta ha
    bisogno di un “driver” che gli aumenti la profondità e mantenga i risultati
    in modo da farla “prunare” di più, e stiamo parlando di iterative deepening,
    corredato da funzione che interpreta i comandi “level”, “st”, “time” di
    winvboard e decide quanto tempo stanziare per ogni ricerca.
    La funzione di valutazione solo materiale? Scarsa, mettigli dei contributi
    posizionali, tipo centralizzazione.

    Solo in un secondo tempo dovrai: (consiglio in quest’ordine)
    1- inserire un piccolo book o generare le prime mosse random per
    diversificare le partite;
    2- risparmiare albero con hash table;
    3/4- ordinare le mosse con catture vincenti, history heuristic e killer
    moves;
    3/4- introdurre nella valutazione della posizione per sicurezza del re,
    struttura pedonale e cose simili;
    5- risparmiare albero con le null moves;
    6- raffinare la ricerca con le estensioni e quindi selettività.

    Vuoi sapere che farai ancora dopo?
    7- grosso book per guadagnare tempo e qualità della posizione.
    8- pondering (per sfruttare i tempi morti quando avrai l’account (C) su
    FICS!);
    9- tablebases dei finali;

    Probabilmente già avevi un’idea di quello che ti ho detto, ma spero che le
    mie indicazioni ti possano essere utili per velocizzare il processo di
    costruzione dell’engine.

    > PS Non ho ancora deciso il nome del motore, si accettano suggestions.

    hai detto “un po’ di alpha beta, minimax, picchio e pucchio, ciccio e
    ciccia”…
    Pucchio come lo vedi??

    ciao

    Le faq sono nel menu principale, sotto Documentazione! 😉

Stai vedendo 1 articolo (di 1 totali)

Devi essere loggato per rispondere a questa discussione.

© 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