Valutazione della forza dei motori


Questa pagina ha una gerarchia - Pagina madre:Programmazione

Home Forum Programmazione Valutazione della forza dei motori

Questo argomento contiene 28 risposte, ha 3 partecipanti, ed è stato aggiornato da mauro.riccardi mauro.riccardi 5 anni, 6 mesi fa.

Stai vedendo 15 articoli - dal 1 a 15 (di 29 totali)
  • Autore
    Articoli
  • #2251
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Io la butto lì, magari è una stupidaggine o una cosa già vista, ma magari può esserci utile…

    Premessa: tempo fa leggevo spesso Torre e cavallo, lì trovavo qualche pagina di test gestita da un GM (credo Zenon Franco, ma posso sbagliarmi).
    Dal risultato di questi test si evinceva, molto spannometricamente secondo me, la forza scacchistica del giocatore. Chiaro che tanti più test si facevano e tanto più precisa è la valutazione finale.

    Considerazione: Attualmente non abbiamo un tester specifico per i nostri motori italiani. Per tester intendo una persona che sui occupa di effetuare tornei ben gestiti tra chess engines (magari anche mettendo on line le partite) evincendo conseguentemente l’elo in base ai risultati.
    Altra considerazione: la pagina (invariata dalla sua creazione) http://www.g-sei.org/?page_id=316 è tra le più visitate.

    Obiettivo: Tenere aggiornata la pagina della classifica con informazioni legate ad una stima della forza di ciascun motore ‘g6’ (magari anche in termini di elo).

    La ‘pietra’ 🙂 : e se riuscissimo a creare un programmino che:
    1 legge un file e valorizza i suoi array
    2 chiede dove si trova e apre un motore
    3 gli passa il fen (usando un setboard per intenderci):
    4 gli specifica il tempo di elaborazione per il motore
    5 gli richiede una mossa
    6 Accumula i bonus ottenuti in base alla risposta data
    7 vai a 3 finchè non arriva all’ [End]
    8 Calcola l’elo per il motore
    9 Chiude il motore

    Esempio file da leggere:
    # Commento sul fen che segue
    r2r4/2q1bp1k/1nb1p1pp/p1ppP3/P1P2P2/1P3BPP/1N2QB2/2RR2K1 b – –
    30000 d5d4(5) d5c4(1) d8d7(1)



    [End]

    Chiaro che ho sintetizzato molto i 6 punti; bisognerebbe fare la differenza tra uci e winboard, valorizzare correttamente il file di lettura (fen e bonus) ecc…
    In passato avevamo il gelo, ma secondo me standardizzando un programmino tutto diventa più facile.
    Che ne pensate?

    Bye!
    LL

    LL

    #2259

    Ma arena non lo fa gia’ questo lavoro?
    Solo che invece del fen richiede l’epd, che avendo i commenti e le opzioni custom puo’ codificare pure le soluzioni dei problemi.
    E dovrebbe funzionare in maniera nativa con le strategic test suite

    https://sites.google.com/site/strategictestsuite/

    (O forse c’e’ un programma a parte per le statistiche, ma la parte di intrallazzo con i motori la fa tutta arena).

    bye^2, mr

    #2260
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Arena ti dice a fronte delle risposte date agli epd se un motore ci azzecca o no, ma non ti valuta la forza della mossa.
    Quello che volevo fare io è qualcosa di più accurato, ossia attribuire un bonus alla risposta data dal chess engine e alla fine ragionare un po’ sui risultati tirando fuori la forza del motore.

    Bye!
    LL

    LL

    #2261
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Si Zenon, non mi sbagliavo, cercando su google si può trovare qualcosa come… http://www.messaggeroscacchi.it/articoli/atemossa.html

    Dove il gm attribuisce dei punti diversi in base alla forza della mossa scelta (e non sempre è l’unica).
    Secondo me la valutazione della forza scacchistica attraverso questo tipo di test è più precisa che attraverso l’epd classico gestito da Arena (a partità di numero di test).

    Bye!
    LL

    LL

    #2262

    Capisco, ma le informazioni sulla “forza della mossa” dove le troviamo?
    In realta’ in passato avevo vagheggiato di fare una valutazione statistica che attribuisse un Elo alle *cappelle* 🙂
    Solo che non sono riuscito a trovare un metodo convincente per stimarla…
    Una possibilita’ sarebbe fare come sul sito http://chess.emrald.net/index.php, laddove i quiz tattici hanno un Elo, cosi’ come i giocatori: un quiz risolto da molti giocatori perdera’ Elo (anche in funzione del tempo di soluzione medio), uno risolto da pochi ne guadagnera’, e i giocatori di conseguenza, in funzione dei test che riescono a risolvere o che falliscono.

    Per applicare il discorso alla modalita’ test di Arena, per le STS (strategic test suites) ci sono comunque delle statistiche: la mossa e’ forte se la trovano solo i motori piu’ forti, e’ debole se la trova perfino Chexa 🙂
    Insomma, fare una specie di Elo (o Glicko) sia per le posizioni (e le relative mosse, visto che spesso ci sono piu’ mosse buone), e usare come punto di partenza per il rating delle posizioni i risultati dei motori piu’ forti in circolazione.

    Non so se mi sono spiegato bene.

    bye^2, mr

    #2263
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Sìsì ti sei spiegato, ho dato un’occhiata al link e sono rimasto sorpreso, non credevo esistesse qualcosa del genere (ed è pure interessante!)
    Quanto alla selezione dei test e la valutazione io pensavo di usare la metrica di Zenon, ma certo se si trovasse il modo di identificare massivamente le posizioni e i ‘pesi’ delle risposte saremmo a cavallo.

    Ci ragiono un po’ meglio per capire che ‘pezza’ mettere alla ‘lacuna’ di http://www.g-sei.org/?page_id=316 e vediamo.

    Grazie! Bye!
    LL

    LL

    #2264

    Una cosa carina che si potrebbe fare sarebbe quella di mettere un bot su FICS che controlla il rating dei motori che giocano li’. NON e’ la stessa cosa che dicevi tu, ovviamente, ma le cose non si escludono a vicenda.
    Per quanto riguarda invece il discorso del rating delle mosse, mi sembra di capire che vuoi prendere i test di T&C e portarli in un file epd, e poi fare il test.
    A parte questioni di copyright (sono pur sempre le valutazioni di uno scacchista professionista), lo vedo poco scalabile come approccio: se vuoi fare una statistica ti servono molti test (e intendo proprio _molti_).

    Si potrebbe provare questa cosa: da ogni posizione (poi vediamo come sceglierla) calcoliamo tutti i figli, e facciamo partire un motore molto forte (tipo houdini) su ognuno di essi (come la modalita’ multiPV, ma sperabilmente meglio).
    Quindi otteniamo una valutazione di tutte le mosse: se ce ne sono 2 o 3 nettamente migliori delle altre (con un margine da decidere poi) segnamo quella posizione e registriamo le relative mosse con i relativi punteggi.
    Con questo metodo si ottiene una forte dipendenza dal motore di riferimento, quindi dal punto di vista “teorico” non e’ una granche’, ma per i nostri scopi potrebbe essere sufficiente, no?

    Tra l’altro ha anche un paio di punti di contatto con la richiesta di Paolo (pgn4web) riguardo al suo bot, magari ne esce fuori qualcosa di riciclabile.
    Io avevo fatto un tester per motori xboard, ma non conoscendo il protocollo UCI non so come estenderlo a quel caso.

    bye^2, mr

    #2268
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Il bot su fics io lo metterei tra le cose da fare; tracciare l’elo di ciascun motore g6 su fics è un supporto alla classifica; un’informazione in più. Se riuscissimo anche ad automatizzare il porting di queste informazioni sul sito non sarebbe male.

    Sul rating delle mosse il discorso è più complesso, anche se chiedessi i diritti di utilizzo, ci sarebbe tutto un lavoro ‘manuale’ da fare e non so se il gioco vale la candela.
    Sul numero di test invece non mi trovi d’accordo; per me qualche centinaio di test dovrebbero bastare per fare una buona valutazione. In qualunque caso considerando il tempo per sentire Zenon e implementare le valutazioni, come dicevo prima, mi sono un po’ smontato.

    Secondo me dovremmo puntare in primis a implementare robe automatizzabili (o che automatizzano), già ognuno di noi ha un motore da gestire, se poi ci mettiamo a star dietro a tutto ci esauriamo (sembra il classico discorso di un esaurito 🙂 ). Per cui direi di puntare al bot; magari di oggi creo la pagina del progetto e vediamo cosa ne esce.

    Una domanda: che tester avevi fatto x i motori winboard?

    Bye!
    LL

    LL

    #2269

    Beh, ma scusa, per te alcune centinaia di test non sono “tanti”? 🙂
    Sul fatto della automatizzazione mi trovi d’accordo, e suggerivo proprio un modo per farla, usando un motore “terzo” di forza comprovata.

    Il tester che avevo fatto in effetti ero piuttosto rudimentale.
    Praticamente serviva a fare test a tempo fissato (non mi ricordo se avevo implementato anche a profondita’ fissata) su una suite di posizioni, prese da un epd, nel quale fossero anche inserite (nei commenti) le mosse corrette (in alcuni test ti danno le mosse da “evitare”).
    Il formato epd permette non solo di registrarere la best move, ma anche la mossa da evitare (cioe’ che il motore deve trovare una mossa che non sia quella, una cosa un po’ esotica), e si puo’ estendere (vedi STS) per codificare anche piu’ mosse con vari punteggi. Avevo implementato il tutto (non mi ricordo se avevo implementato i punteggi, pero’), e funzionava abbastanza bene, ho fatto parecchi test con Chexa in passato, mandavo il tutto overnight: piuttosto comodo.

    Pero’ non l’ho mai testato con altri motori (per mancanza di tempo e necessita’), e non ho mai fatto la versione UCI (per mia ignoranza).

    bye^2, mr

    #2270
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Attualmente io ho invece x Neurone ho un tester implementato ‘dentro’ Neurone stesso. Il comando bestmove va a leggere un file ‘Neurone.bestmove’ e verifica se la risposta è come quella descritta nel file. Memorizza tutto e alla fine ti dà i risultati. L’avevo fatto tempo fa, però con l’obiettivo di testare le funzionalità del programma su determinate posizioni e non per ratificarne l’elo. Con le opportune modifiche potrei arrivare a misurarne l’elo, ma volevo fare una cosa per tutti, e non specifica per Neurone.

    Di soluzioni ‘per tutti’ ce ne sono… valutiamo.

    Bye!
    LL

    LL

    #2271

    Guarda, ho riletto la roba su STS, e c’e’ anche un tool per fare una stima dell’elo basata sul risultato delle STS, e sul confronto con tutti gli altri motori in circolazione (STS_Elo, di Mattias Gemuh).
    Se vedi gli epd delle posizioni, sono indicate per ogni posizione piu’ mosse possibili, con relativo punteggio (nei campi c0, c1, … alla fine di ogni riga).
    Io farei almeno una prova preliminare con quelli. Tra l’altro si basano tutti sui log di Arena, quindi va bene sia per i motori xboard che per quelli UCI.

    bye^2, mr

    #2272

    ciao,
    interessante l’idea di testare i motori su un set di posizioni. mi stava frullando in testa un idea un po’ diversa: selezionare 5-6 motori conosciuti e stabili di forza di gioco diversa (che ne so, da mizar a houdini) e far giocare ad ogni motore da testare un po’ di partite contro di essi. in questo modo si dovrebbe riuscire a stabilire la forza di gioco con più precisione.
    &d0

    #2273
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Ma non sono un po’ pochini 5/6 motori? Il rischio è che se ci si parte da una posizione iniziale sempre identica e si fanno tante partite si corre il rischio di ottenere qualche partita uguale (vedasi uragano ProChess), soprattutto in caso di mancanza di libri di apertura.

    I fattori variabili mi sembrerebbero appunto questi 3: numero motori, posizioni di partenza e scelta tra le varianti dei libri di apertura.
    Considerato che non tutti hanno libri e non tutti accettano l’impostazione della posizione… mi sa che abbiamo poche alternative facendo dei gauntlet.
    Pensandoci bene potremmo però selezionare un buon libro condiviso con una giusta scelta delle varianti (di libri ce ne sono tanti e potremmo anche farcene uno ad hoc)… vediamo cos’altro bolle in pentola e poi scegliamo 🙂

    Bye!
    LL

    LL

    #2274

    Quali sono i motori che non supportano il setboard, o l’edit?
    (O l’equivalente UCI)?
    Perche’ secondo me il modo migliore per testare la forza di gioco di un motore e’ quello di fare i “Nunn matches”, tornei con posizioni iniziali prese da opportuno fen.
    Ne ho fatti spesso in passato, sia xboard che arena supportano molto bene tutti i possibili schemi che possiamo usare.
    (Poi adesso xboard ha anche un tournament manager incorporato che e’ abbastanza ben funzionante).

    Usare un unico libro la vedo problematica, perche’ a parte che li’ il motore deve supportare bene diverse cose del protocollo (e allora perche’ non supporta setboard che e’ una banalita’?), inoltre anche se la linea la sceglie la GUI c’e’ comunque una casualita’ che aumenta il rumore, IMHO.

    Inoltre partire da posizioni fisse aiuta anche a capire quali varianti il tuo motore trova piu’ congeniali.

    Effettivamente come metodo di misurazione dell’Elo e’ molto piu’ preciso rispetto al metodo delle posizioni, pero’ c’e’ da dire che una scelta di posizioni “a tema” puo’ dare un’idea migliore al programmatore di quali reparti vadano migliorati nel suo motore.

    bye^2, mr

    #2275
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Alla prima domanda ti risponderò questo we.
    Sono d’accordissimo con te per i Nunn match, sono quelli che utilizzo per testare il mio motore in test contro le vecchie versioni del mio stesso motore.
    Non ho capito bene perchè la vedi problematica l’utilizzo di un book ben settato. Nei casi in cui un motore non ce l’ha, è tutto di guadagnato, o mi è sfuggito qualcosa?
    Per il resto sono d’accordo con te, difatti prima o poi mi faccio un libro specifico x le caratteristiche di neurone che lo aiuterà non poco (addirittura penso di parametrizzare la scelta del libro da usare in base alla tipologia di avversario; umano scarso/umano forte/computer tattico/computer completo)

    Bye!
    LL

    LL

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