ora in scacchi

Analisi motore motore
Analisi Esempio del motore

Una delle pietre miliari che gli scacchi rivoluzionati negli ultimi 20 anni sono la comparsa di quelli noti come “motori” o moduli di analisi. Oggi nel giorno, praticamente tutti i giocatori revisione La loro partenza con il “amico disumano”, cercando gli errori che sono stati fatti nel gioco. Tale è così, che la valutazione di un modulo è presa, attualmente, come la più vicina a “la verità” che conosciamo; infatti, non è strano ascoltare i fan e i professionisti, fare commenti del tipo: “Qui Ho 0.20 vantaggio “.

Tuttavia, mi ritrovo costantemente che questo strumento è cattivo o pessimo, usato dalla maggior parte dei giocatori; E questo comporta che il lavoro svolto davanti al computer può essere utilizzato per poco o meglio nulla. Vedo costantemente che né le analisi eseguite hanno valore (perché contengono errori di massa, come ti insegnerò), né le conclusioni che sono prese da loro servono a migliorare il nostro gioco e, cosa è peggio, che il modulo danneggia il nostro modo di Pensando a bordo, perdendo ad esempio tutte le nozioni strategiche. Pertanto, scrivo questa serie di articoli sui motori di analisi con alcune idee e consigli che possono aiutarci a migliorare.

Fondamenti

Sono una di quelle persone che, per usare C’è qualcosa, ho bisogno di capire cosa sia. Ecco perché, in primo luogo, spiegherò, in uno schematico e telegrafo, ciò che un motore è dentro per offrirci quelle varianti e valutazioni.

Prima, dobbiamo capire che un’analisi del modulo consiste, in pratica, in Due sottoprogrammi (tecnicamente parliamo di subroutine, ma il termine sub-programma penso che sia meglio compreso). Il primo di loro calcola tutti i giochi legali dalla posizione corrente. Il secondo, prende ogni posizione e lo valuta attraverso una funzione di valutazione. Questo converte la posizione sopra la scheda in un numero che sarà la valutazione. Infine, il programma ordina tutte le valutazioni del più alto al minore e ci dà il posto migliore situato in quell’elenco, che sarà il gioco che il computer propone.

Nel gergo, ogni posizione è chiamata nodo, e Pertanto, se si guarda le informazioni che il modulo offre durante il suo calcolo, è possibile vedere in KN (nodi kilo, cioè 1000 nodi) come molte posizioni valutano il tuo computer al secondo. Puoi fare un’idea di quanto velocemente il tuo computer sia (tecnicamente il tuo processore, che è quello che calcola).

La funzione di valutazione è una delle “formule magiche” di ciascun motore ed è Cosa caratterizza, essenzialmente, ogni modulo. Quindi, quando si sceglie un motore, in pratica acquistiamo quella funzione di valutazione. Normalmente consiste in un calcolo del materiale sul tabellone, dare un numero a mobilità o minacce, e anche molti di loro includere i modelli per valutare numericamente. Ad esempio, Blue Deep ha aggiunto un numerico “Plus” nel caso in cui una torre pestata sia arrivata in sesto vicino al germoglio rivale (pedone in H6 con il re nero enocused in G8); o Il modulo crafty ha un modello per riconoscere un vescovo racchiuso in H2 quando l’avversario gioca G3 (come nel famoso gioco Spassky-Fischer). Pertanto, lavorare con diversi moduli mi offre giochi diversi per la stessa posizione, perché ognuno valuta a modo suo.

I numeri che assegnano la funzione di valutazione sono totalmente arbitrari, perché l’unica cosa che conta è cosa Il nodo ha la massima valutazione. Tuttavia, i programmatori hanno cambiato la scala di quei numeri in modo che abbiano una certa relazione con ciò che gli umani comprendono (pegno = 1 punto). Ma gli occhi, ogni funzione di valutazione è diversa e non possiamo confrontare “capelli” i numeri di uno e un altro modulo. Questo è uno dei primi errori che ho rilevato tra i giocatori, e che dobbiamo evitare. Né possiamo prendere la valutazione Come numero assoluto, “avendo 0,25” non significa nulla, piuttosto che, dalla mobilità dei pezzi, è probabile che la nostra posizione sia più confortevole; Ma questa non è l’informazione che ha bisogno di un giocatore del torneo: se ha un vantaggio, come funziona, se è sufficiente per vincere, che tipo di posizione ti aspetta, ecc.

Profondità, Ply e calcolo lordo

I programmatori sono invitati alla stessa domanda che i giocatori rendono noi stessi, quando si fermano per calcolare e semplicemente valutare la posizione? Proprio come ci succede, la risposta non è facile. Pertanto, il computer è calcolatore in “livelli di profondità”; poiché lasciamo il tempo per calcolare una posizione, sta arrivando ulteriormente nel suo calcolo.

I livelli di profondità sono misurati in “Ply”, che è ciò che negli scacchi consideriamo “mezzo gioco” (che gioca il bianco o il nero); Cioè, se ho una posizione (nodo) e attraverso una mossa bianca raggiungo un’altra posizione (nodo), entrambe le posizioni sono 1 strato di distanza. Pertanto, una profondità di 2 strati implica che il computer ha calcolato tutte le posizioni possibili che si verificano dopo una riproduzione bianca e uno.

Il computer sta progredendo in questa profondità. Prima di tutto, genera tutti i possibili progressi legali, e quindi genera tutti i nodi possibili che possiamo raggiungere dalla posizione corrente. Quindi valuta tutti quei nodi e ordina loro meglio la valutazione peggiori. Una volta terminato tutto ciò, il computer ha terminato il calcolo della profondità 1. Quindi, prendere tutte le posizioni generate a un strato e calcolare tutti i possibili progressi legali, generando tutti i nodi possibili che arriveremo dopo 2 strati e valutare; Quindi avremo raggiunto la profondità 2; e così via.

A questo processo che ho descritto è chiamato calcolo lordo.

Calcolo selettivo

Il calcolo lordo è formalmente corretto, cosa succede è che il nostro computer è costretto a calcolare tutte le posizioni possibili che sorgono da ogni gioco, quindi spedirà spesso il tempo in posizioni assolutamente perse (con la signora e due torri di meno, per esempio).

un’idea per Migliorare le prestazioni dei motori è utilizzare ciò che è stato chiamato il calcolo selettivo. In esso, il computer calcola tutte le possibili riproduzioni e li valuta; Ma seleziona solo alcuni, il meglio, per eseguire il prossimo livello di profondità. Diciamo ad esempio che il “livello di selettivo” è tre; quindi il computer assume le tre posizioni che hanno portato alle tre migliori valutazioni e genera tutte le possibili riproduzioni da quelle tre posizioni (nodi). Ora valuta le riproduzioni e i ritorni per scegliere i primi tre per calcolare tutte le posizioni del livello successivo di profondità, e così via.

Il calcolo selettivo è molto più veloce del calcolo lordo. Inoltre, si basa sul modo in cui gli umani calcolano quando scelgono i giochi candidati. Tuttavia, corre il rischio di essere interessanti varianti nel calamaio. Se una commedia consegna la signora a dare cinque mosse opache in seguito, puoi difficilmente essere tra i tre migliori del livello profondo .. Cosa c’è di più, Il computer dovrebbe raggiungere un livello di profondità 9 (lordo) per vedere il compagno.

Come regoli il numero di riproduzioni che desideri nel selettivo?, la maggior parte dei computer che ne hanno uno Parametro che è “numero di linee di calcolo”. Bene, ogni volta che metti 1, 3 o 10 stai regolando il numero di giochi candidati che utilizzano il computer nel computer selettivo.

calcolo lordo / selettivo

per sfruttare il vantaggio del Meglio dei due mondi, i programmatori hanno optato per un calcolo misto, che combina il greggio e il selettivo. Il computer calcola prima raramente a un livello di profondità, e prima di passare all’altro, esegue un calcolo selettivo ad una maggiore profondità. Cioè, il computer calcola la profondità della profondità del 20, e poi prende i primi tre e continua a approfondire fino a 33 con la tecnica di calcolo selettiva; Quindi fa il calcolo grossolano ad una profondità 21 e ritorna a fare il selettivo; E così via.

Per questo, quando si guarda le informazioni del modulo nella profondità della sezione che vedrete una frazione 20/33, il che significa profondità di livello 20 nel calcolo lordo, il livello 33 in selettivo.

Alcuni motori di analisi si fidano di poco nel selettivo (ad esempio scorta di pesce), mentre altri credono che sia il più importante (Houdini). Al momento ti dirò solo che è molto importante che, in ogni calcolo che fai, hai questi numeri presenti, perché ci diranno quanto il computer si è approfondito e il modo in cui l’assicurazione possiamo essere del risultato Ciò ci offre.

Velocità della CPU e tavola di hash

Infine, commenterà due aspetti “fisici” del nostro computer: la velocità della CPU e la tabella Hash. Il computer Ha un processore, che è quello che calcola (cioè, quello che esegue operazioni sui “numeri” che entrano e offre alcuni numeri nella sua output). Questa velocità è, ora, il famoso GHz che appaiono. Ad esempio, un Pentium da 4 a 3 GHz significa che il computer ha una “velocità” di 3 GHz. Se si dispone di un computer più rapido, nella funzione di calcolo dei nodi e della valutazione, il computer lo renderà più velocemente, e quindi, raggiungerai Più livelli di profondità in meno tempo.

Voglio sottolineare che, in nessun modo, un processore migliore (più veloce) implica che il tuo computer troverà giochi migliori.Qualsiasi vecchio computer, se ti diamo abbastanza tempo, troverai lo stesso gioco per lo stesso livello di profondità, che il computer più veloce del mondo (con lo stesso motore di analisi).

Tutti questi calcoli e valutazioni Ciò rende il computer che li memorizza in memoria, poiché al livello profondo successivo, invece di partire da 0 i calcoli, il computer utilizza ciò che viene calcolato al livello precedente per aggiungere “un altro gioco” (è molto più veloce, ovviamente). Il problema è che il computer ha tre livelli di memoria (in termini di base): cache, ram e disco rigido. La cache è quella che è “più vicina” del processore, di solito è piccola e serve in modo che il computer se ne vada Sono memorizzati risultati intermedi mentre i calcoli fanno. È l’accesso più veloce. RAM è un passo intermedio, è un accesso abbastanza veloce ed è dove la maggior parte dei programmi funziona sul nostro computer. Il disco rigido è, con molta differenza, il più lento, ma è dove manteniamo le cose in modo permanente.

Durante il calcolo delle posizioni degli scacchi, il computer genera una quantità intima di informazioni (nodi, valutazioni) Devi essere memorizzato da qualche parte. La cache è piena molto rapidamente, quindi la prossima memoria da utilizzare è la RAM, che ha una capacità finita e che, mentre andiamo avanti, è anche riempito. Finalmente abbiamo il disco rigido, che è molto lento per i nostri obiettivi.

La tabella Hash è una tabella che funziona come indice della memoria che utilizziamo e che organizza tutti i calcoli che abbiamo già fatto , di come se il computer vuole trovare dove è la valutazione di una posizione, la prima cosa che chiedi è alla tabella hash se ce l’hai nell’indice; E se no, calcola di nuovo.

La maggior parte dei motori ci consente di dimensionare (dimensione) a questa tabella hash; Cioè, ci consente di dire quanto è grande il notebook che il nostro motore di scacchi può utilizzare per salvare le posizioni e le valutazioni. Se questo notebook è molto grande, il computer spenderà molto tempo a gestire l’indice se si ha la posizione che desideri calcolare ora. Se è molto piccolo, il computer dovrà costante calcolare posizioni che potrebbero essere già state calcolate in passato. Pertanto, non è così semplice come dare il più grande valore possibile alla tabella di hash.

La regola generale dice che se il nostro processore è molto veloce, migliore della memoria non è molto grande (perché costa meno Calcola che guardi in memoria), mentre se è lento dobbiamo farlo al contrario. Alcuni motori hanno pubblicato cúl è il valore di memoria ottimale con cui devono funzionare. La mia esperienza è che è meglio regolare “a mano” questi valori per ottimizzare le prestazioni.

Ci sono molti altri fattori che dobbiamo adattarci quando andremo a lavorare scacchi con un computer: uso I compilatori appropriati, scegliere il modo giusto per compilare il motore, ecc. Un motore ben ottimizzato può supporre un miglioramento del 40% in termini di velocità di elaborazione (chilonodos al secondo).

nel seguente articolo; una volta Abbiamo le basi, e comprendiamo in base a come funziona, parleremo di come migliorare il nostro lavoro con un computer.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *