acum în șah

Analiza motorului Exemplu

Una dintre etapele că șahul revoluționat în ultimii 20 de ani este apariția celor cunoscute sub numele de „motoare” sau module de analiză. Astăzi, practic, toți revizuirii jucătorilor plecarea lor cu „prietenul inuman”, căutând greșelile care au fost făcute în joc. Aceasta este astfel încât evaluarea unui modul este luată, în prezent, ca fiind cea mai apropiată de „adevărul” pe care o cunoaștem; de fapt, nu este ciudat să ascultați fani și profesioniști, să facem comentarii de tipul: „Aici Am un avantaj 0.20 „.

Cu toate acestea, mă găsesc în mod constant că acest instrument este rău sau foarte rău, folosit de majoritatea jucătorilor; Și acest lucru implică faptul că munca făcută în fața calculatorului poate fi folosită pentru puțin sau mai degrabă nimic. Am văzut constant că nici analizele nu au valoare (deoarece conțin erori în vrac, așa cum vă voi învăța), nici concluziile care sunt luate de la acestea servesc la îmbunătățirea jocului nostru și, ceea ce este mai rău, că modulul ne dăunecă calea Gândirea la bord, pierzând, de exemplu, toate noțiunile strategice. Prin urmare, scriu această serie de articole despre motoarele de analiză cu unele idei și sfaturi care ne pot ajuta să ne îmbunătățim.

fundamentale

Sunt unul dintre acei oameni care, pentru a folosi ceva bine, trebuie să înțeleg ce este. De aceea, în primul rând, voi explica, într-o schematică și telegrafică, ceea ce un motor este în interior pentru a ne oferi acele variante și evaluări. În primul rând, trebuie să înțelegem că o analiză a modulului constă, în principiu, în Două subprograme (tehnic am vorbi despre subrutine, dar termenul subprogram cred că este mai bine înțeles). Primul dintre ele calculează toate piesele juridice din poziția curentă. Al doilea, ia fiecare poziție și o evaluează printr-o funcție de evaluare. Aceasta convertește poziția de deasupra plăcii într-un număr care va fi evaluarea. În cele din urmă, programul comandă toate evaluările de la cea mai mare la minor și ne oferă cel mai bun loc situat pe lista respectivă, care va fi piesa pe care o propune computerul.

în jargon, fiecare poziție se numește nod și Prin urmare, dacă vă uitați la informațiile pe care modulul le oferă în timpul calculului său, puteți vedea în KN (kilograme noduri, adică 1000 de noduri), deoarece multe poziții evaluează computerul pe secundă. Puteți face o idee despre cât de repede este computerul dvs. (tehnic, procesorul dvs., care este cel care calculează).

Funcția de evaluare este una dintre „formulele magice” ale fiecărui motor și este Ceea ce caracterizează, în esență, fiecare modul. Deci, atunci când alegeți un motor, cumpărați în principal funcția de evaluare. În mod normal, constă într-un calcul al materialului de pe tablă, dau un număr mobilității sau amenințărilor și chiar și mulți dintre ei Includeți modelele pentru a evalua numeric. De exemplu, albastru adânc a adăugat un „plus” numeric în cazul în care un pion de turn a sosit în a șasea lângă germenul rival (pionul în H6 cu regele negru enocuzat în G8); o Modulul Crafty are un model care să recunoască un episcop închis în H2 când adversarul joacă G3 (ca în faimosul joc Spassky-Fischer). Prin urmare, lucrul cu module diferite îmi oferă diferite piese pentru aceeași poziție, deoarece fiecare evaluează în felul său.

Numerele care atribuie funcția de evaluare sunt complet arbitrare, deoarece singurul lucru care contează este Nodul are cea mai mare evaluare. Cu toate acestea, programatorii au schimbat amploarea acestor numere, astfel încât acestea să aibă o anumită relație cu ceea ce înțelege oamenii (pionul = 1 punct). Dar ochiul, fiecare funcție de evaluare este diferită și nu putem compara numerele unuia și alt mod. Aceasta este una dintre primele greșeli pe care le-am detectat între jucători și că trebuie să evităm. Nici nu putem lua evaluarea Ca un număr absolut, „având 0,25” nu înseamnă nimic, mai degrabă decât, prin mobilitatea pieselor, este probabil ca poziția noastră să fie mai confortabilă; Dar aceasta nu este informația pe care un jucător de turneu are nevoie: dacă are un avantaj, după cum funcționează, dacă este suficient să câștigi, ce tip de poziție vă așteaptă, etc.

Adâncime, Ply și Calculul Brut

Programatorii sunt întrebați aceeași întrebare că jucătorii ne fac noi, când se opresc pentru a calcula și a evalua pur și simplu poziția? La fel cum se întâmplă cu noi, răspunsul nu este ușor. Prin urmare, calculatorul se calculează în „nivelurile de adâncime”; deoarece lăsăm timp pentru a calcula o poziție, acesta vine în continuare în calculul său.

Nivelurile de adâncime sunt măsurate în „strat”, ceea ce este în șah ne considerăm „Joacă Jay” (care joacă alb sau negru); Asta este, dacă am o poziție (nod) și printr-o mișcare albă, ajung la o altă poziție (nod), ambele poziții sunt de 1 strat. Prin urmare, o adâncime de 2 straturi implică faptul că computerul a calculat toate pozițiile posibile care apar după un alb și o redare.

Computerul progresează în această profunzime. În primul rând, generează toate posibilele avansuri legale și, prin urmare, generează toate nodurile posibile pe care le putem ajunge din poziția curentă. Apoi evaluează toate acele noduri și le ordonă mai bine la o evaluare mai slabă. Odată ce toate acestea se fac, calculatorul a terminat calculul la adâncime 1. Apoi, luați toate pozițiile generate de un strat și calculați toate posibilele avansuri legale, generând toate nodurile posibile pe care le vom ajunge după 2 straturi și evaluarea; Deci, vom ajunge la adâncimea 2; și așa mai departe.

la acest proces pe care l-am descris se numește calculul brut.

Calculul selectiv

Calculul brut este corect corect, ceea ce se întâmplă că computerul nostru este forțat să calculeze toate pozițiile posibile care apar din fiecare piesă, astfel încât acesta va pierde adesea timpul în poziții absolut pierdute (cu doamnă și două turnuri mai mici, de exemplu).

o idee la Îmbunătățirea performanței motoarelor este de a utiliza ceea ce a fost numit calculul selectiv. În aceasta, calculatorul calculează toate posibilele posibile și le evaluează; Dar selectează doar câteva, cele mai bune, pentru a efectua următorul nivel de adâncime. Să spunem, de exemplu, că „nivelul selectivelor” este de trei; atunci calculatorul ia cele trei poziții care au condus la cele trei cele mai bune evaluări și generează toate piesele posibile din cele trei poziții (noduri). Acum, evaluează piesele și returnările pentru a alege primele trei pentru a calcula toate pozițiile următorului nivel de adâncime și așa mai departe.

Calculul selectiv este mult mai rapid decât calculul brut. În plus, se bazează pe modul în care oamenii calculează când Ei aleg joacă candidatul. Cu toate acestea, riscă să fie variante interesante în cerneală. Dacă un joc livrează doamna să-i dea Matei cinci mișcări mai târziu, cu greu puteți fi între cele trei cele mai bune la nivelul adâncimii. Computerul ar trebui să ajungă la un nivel de adâncime 9 (brut) pentru a vedea partenerul.

Cum ajustați numărul de piese pe care le dorim în cele mai selective?, cele mai multe computere au una Parametrul care este „numărul de linii de calcul”. Ei bine, de fiecare dată când ați pus 1, 3 sau 10, ajustați numărul de piese candidate care utilizează computerul în selective

Calculul brut / selectiv

pentru a profita de Cel mai bun dintre cele două lumi, programatorii au optat pentru un calcul mixt, care combină brut și selectiv. Computerul calculează mai întâi rar la un nivel de adâncime și înainte de a trece la următorul, acesta efectuează un calcul selectiv la o adâncime mai mare. Adică calculatorul calculează brutal la adâncime 20 și apoi ia primele trei și continuă să se adună până la 33 de tehnica de calcul selectivă; Apoi, calculul brut la o adâncime 21 și se întoarce pentru a face selectivele; Și așa mai departe.

Pentru aceasta, atunci când vă uitați la informațiile despre modul în adâncimea secțiunii, veți vedea o fracțiune 20/33, ceea ce înseamnă o adâncime de nivel 20 în calculul brut, nivelul 33 în selectiv.

Unele motoare de analiză încredeți puțin în selectiv (de exemplu, stocul de stoc), în timp ce alții cred că este cel mai important (Houdini). În momentul în care vă voi spune că este foarte important ca, în fiecare calcul pe care îl faceți, aveți aceste numere prezente, pentru că ne vom spune cât de mult a adâncit computerul și cât de asigurare putem fi de rezultat Acest lucru ne oferă.

Viteza CPU și tabelul Hash

În cele din urmă, vom comenta pe două aspecte „fizice” ale computerului nostru: viteza CPU și tabelul Hash. Computerul Are un procesor, care este cel care calculează (adică cel care efectuează operațiuni pe „numerele” care intră și oferă câteva numere în producția sa). Această viteză este, acum, faimosul GHz care apare. De exemplu, un Pentium 4 până la 3 GHz înseamnă că computerul are o „viteză” de 3GHz. Dacă aveți un computer mai rapid, în funcția de calcul a nodurilor și evaluării, computerul dvs. va face mai repede și, prin urmare, veți ajunge mai repede Mai multe niveluri de adâncime în mai puțin timp.

Vreau să subliniez că, în nici un fel, un procesor mai bun (mai rapid) implică faptul că computerul dvs. va găsi mai bine piese.Orice computer vechi, dacă vă dăm suficient timp, veți găsi aceeași piesă pentru același nivel de adâncime, pe cel mai rapid computer din lume (cu același motor de analiză).

Toate aceste calcule și evaluări Acest lucru face ca computerul să le stocheze în memorie, deoarece la nivelul următor al adâncimii, în loc să porniți de la 0 calcule, computerul utilizează ceea ce se calculează la nivelul anterior pentru a adăuga „o mai mare joc” (este mult mai rapid, evident). Problema este că computerul are trei nivele de memorie (în termeni de bază): cache, memorie RAM și hard disk. Cache-ul este cel care este „mai aproape” al procesorului, este de obicei mic și servește astfel încât să plece computerul Au stocat rezultate intermediare în timp ce calculele fac. Este cel mai rapid acces. RAM este un pas intermediar, este un acces destul de rapid și este locul în care majoritatea programelor rulează pe computerul nostru. Unitatea hard disk este, cu multă diferență, cu atât mai lent, dar unde păstrăm lucrurile permanent.

În timpul calculului pozițiilor de șah, calculatorul generează o cantitate intimă de informații (noduri, evaluări) Trebuie să fii depozitat undeva. Cache-ul este plin foarte repede, astfel încât următoarea memorie care trebuie utilizată este RAM, care are o capacitate finită și că, pe măsură ce mergem înainte, este de asemenea umplut. În cele din urmă avem hard disk-ul, care este foarte lent pentru obiectivele noastre.

Tabelul Hash este un tabel care funcționează ca un indice al memoriei pe care îl folosim și care organizează toate calculele pe care le-am făcut deja , cum ar fi dacă computerul dorește să găsească unde este evaluarea unei poziții, primul lucru pe care îl cereți este la tabela hash dacă îl aveți în index; Și dacă nu, îl calculează din nou.

Majoritatea motoarelor ne permit să mărim (dați mărimea) acestui tabel hash; Adică ne permite să spunem cât de mare este notebook-ul pe care motorul nostru de șah îl poate folosi pentru a vă salva pozițiile și evaluările. Dacă acest notebook este foarte mare, computerul va petrece o mulțime de timp care rulează indexul în căutarea dacă aveți poziția pe care doriți să o calculați acum. Dacă este foarte mic, calculatorul va trebui să calculeze în mod constant pozițiile care ar fi putut fi deja calculate în trecut. Prin urmare, nu este la fel de simplă ca cea mai mare valoare posibilă a tabelului hash.

regula generală spune că, dacă procesorul nostru este foarte rapid, mai bine decât memoria nu este foarte mare (deoarece costă mai puțin Calculați că vă uitați în memorie), în timp ce dacă este lent, trebuie să o facem dimpotrivă. Unele motoare au publicat Cúl este valoarea optimă de memorie cu care trebuie să funcționeze. Experiența mea este că este mai bine să ajustați „cu mâna” aceste valori pentru a optimiza performanța.

Există mulți alți factori pe care trebuie să ne ajustăm atunci când vom lucra la șah cu un computer: utilizați Compilatorii corespunzători, aleg modalitatea corectă de a compila motorul etc. Un motor bine optimizat poate presupune o îmbunătățire de 40% în ceea ce privește viteza de procesare (kilonodos pe secundă).

în următorul articol; o dată Avem elementele de bază și înțelegem practic cum funcționează, vom vorbi despre cum să ne îmbunătățim munca cu un computer.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *