5
Elemzés haladóknak

1. Ply (az elemzés mélysége) 2. Filter (lépésszűrés) 3. Cubeful chequer evaluation (tétes bábujáték kiértékelés)

 

A GNU elemzési beállításai négy különböző beállítási panelen történnek. Beállítható a javaslat, a meccset követő elemzés, a GNU játékereje és a dobástesztek. A felsoroltakból három -a javaslat, az elemzés és GNU játéka- ugyanazon beállítási séma szerint valósul meg, míg a dobásteszt az elemzés egy alaposabb és időigényesebb technikáját jelenti, beállítása eltérő. A kétféle analízissel kapcsolatos beállítási lehetőségeket ezért külön tárgyaljuk, a dobásteszttel a következő fejezet foglalkozik.

Az elemzési beállításokkal részletesen meghatározható az a metódus, mellyel GNU kiválasztja a legjobbnak ítélt döntést. A korábbi, elemzéssel foglalkozó fejezet ismeretét feltételezve, most megvizsgáljuk az előre meghatározott beállítások mögött meghúzódó finombeállításokat.

A javaslat (evaluation), az elemzés (analysis) és a játékerő (player0) beállításai ugyanazon metódus szerint történnek: a játékerő beállítása a Settings menü Player almenüjéből érhető el az Advanced Settings gomb megnyomásával, míg az elemzés és a javaslat beállatásai a Settings menü Analysis almenüjében található.

1

Elemzés részletes beállítása (Advanced Settings): piros nyíl; Javaslat és Tutor beállítása: sárga nyíl. Ha a Same as analysis kockát bejelöljük (pirossal bekarikázva), akkor a javaslat beállításai meg fognak egyezni az analízisével, ekkor természetesen nem kell külön beállítani a javaslatot.

A részletes elemzések beállításainá mindhárom esetbenl az alábbi ablakot látjuk.

2

1. Ply (Plies) - vagyis az elemzés mélysége

A ply jelentése: kör, azaz a játékos egy köre, melyben dob és lép vagy duplázási döntést hoz. A ply nagyságával beállítható, hogy GNU milyen távolra nézzen elemzéskor.

A 0 ply jelentése, hogy GNU nem foglalkozik az ellenfél lehetséges válaszlépéseivel. Ilyenkor végigveszi az összes lehetséges szabályos lépést, majd valamennyi létrejött álláshoz egy becsült számot társít a győzelmi esélyre, a gammon és backgammon győzelemekre, illetve vereségekre vonatkozóan. Ezen számok alapján bírálja el a lépést: pénzjátékban a legmagasabb egyenlegű, meccsjátékban a legjobb meccs-győzelmi esélyű lépést választva ki.

1 ply elemzéssel a fenti folyamat nem ér véget. GNU a 0 ply-os lépések mindegyike esetében megvizsgálja az ellenfél valamennyi dobáskombinációját és valamennyi esetében a 0 ply-nál leírt eljárás szerint meghatározza a legjobb lépést. Ezen eredmények alapján megállapítja az átlagosan várható egyenlegváltozást és e szerint rangsorolja a játékos lépéseit.

2 ply-on hasonlóan folytatódik az eljárás. GNU itt az 1 ply-os elemzéskor keletkezett legjobb válaszlépésekre adott összes lehetséges viszontválaszt értékeli és állítja sorrendbe. Hasonlóan folytatódik az eljárás 3, 4, 5 stb. ply-on is. Vegyük figyelembe, hogy egy dobáskombinációra átlagosan 20 lépéslehetőség adódik, így 1ply-os elemzés mellett, mivel 21 dobáskombinációval válaszolhat az ellenfél, 21x20, vagyis 420 válaszdobást kell elemezni. Minden válaszdobás további 20 kielemzendő lépéslehetőséget jelent, vagy 1ply-os elemzés mellett 8420 állást kell kiértékelni. 2 ply-on ez a szám már 184.820, 3 ply-on pedig 3.721.220.

Ilyen mennyiségű számítás még egy korszerű számítógép használata esetén is élvezhetetlenné tenné a játékot 3 ply-on. Az, hogy egy gyors gépen a játék mégis gördülékenyen megy, az a lépésszűrőnek és egy lépésszám-visszanyeső (neural net pruning) alkalmazásnak köszönhető. Ezekre az opciókra azért van lehetőség, mert a lépések döntő többsége annyira rossz, hogy már 0 ply mélységen is megállípítható, hogy bizonyosan nem lesznek a legjobbak, így az ezekből számított további állások elemzése felesleges.

A lépésszám visszanyesés viszonylag új funkció, használata mindenképpen javasolt (pipa a Use neural net pruning melletti jelölőnégyzetbe). Működéséről itt csak annyit jegyzünk meg, hogy több, külön a visszanyesésre hangolt neurális háló segítségével távolítja el a rossznak ítélt lépéseket, ezáltal rövidítve meg az elemzés időtartamát.

2. Lépésszűrés

A lépésszűrő beállítása lehetővé teszi, hogy meghatározzuk, hány lépést elemezzen GNU egy adott mélységen. A beállítások 0 ply-on nem elérhetők, hiszen a program 0 ply-on minden esetben végignézi az összes lehetőséget. 1 ply-on és felette azonban lehetőség van arra, hogy beállítsuk, milyen mértékben vessünk el lépéseket. Természetesen minél több lépést veszünk ki az elemzésből, annál gyorsabb lesz a kiértékelés, ugyanakkor annál pontatlanabb is. A különböző előzetes beállításokhoz kapcsoltan a különböző mélységekhez a lépésszűrést is optimalizálták, de a kritériumok igény szerint tovább szigoríthatók (lazíthatók).

3

A lépésszűrő megismeréséhez vegyük például a grandmaster fokozat alapbeállításait. A grandmaster fokozat 3 ply mélységű elemzést tesz lehetővé, ilyen mélységű elemzésre azonban nem is mindig kerül sor. Ha mégis, akkor is csak az alacsonyabb szintű elemzések során legjobbnak bizonyult két lépés közötti elsőség dől el 3-as mélységben.

A 3-ply fülön vagyunk, mivel ez a grandmaster fokozathoz tartozó szelekciós beállítások helye. Láthatjuk, hogy a 3 alatti mélységek közül a 0 és a 2 van bekacsolva (pipa az Enable this level melletti jelölőnégyzeten). Ez azt jelenti, hogy ezeken a szinteken szűrő működik, vagyis itt néhányan a legjobb lépésre pályázó jelöltek közül fennakadnak a rostán. Az 1-ply kikapcsolt állapotban van, e szerint itt minden egyes lépés, amelyik továbbjutott a 0 ply-os elemzés után, az bizonyosan 2-es mélységű elemzésnek is alá lesz vetve.

A jelölőnégyzet alatti sorban (Always accept 0 moves) beállíthatjuk, hogy a legjobb hány lépést vigye automatikusan tovább a következő szintű elemzésre. A képen látható beállításban ez az érték 0, ami azt jelenti, hogy a továbbjutók kizárólag az eggyel alább lévő sorban látható kritériumok szerint kerülnek kiválasztásra.

Ebben a sorban (Add extra 8 moves withing 0.160) meghatározhatjuk, hogy legfeljebb hány lépés kerülhet tovább a következő szintre (a képen 8). A második szám (a képen 0.160) azt jelenti, hogy csak akkor kerül sor egy lépés további elemzésére, ha a legjobb lépéshez képest legfeljebb 0.160 egyenlegponttal rosszabb.

Ezek szerint, ha a második legjobb lépés a 0-ply elemzést követően 0.170 egyenlegponttal rosszabb az elsőnél, úgy nem kerül sor további elemzésre, hiszen mindössze egy jelölt jutna tovább. Ha azonban 10 jelölt is a szűrőhatáron belül van, a két legrosszabb közülük kiesik és a maradék 8-at GNU 2-es mélységig elemzi. Ezután, a képen lévő beállításokat véve alapul, a 2-es szintű elemzés alapján legjobbnak talált két jelöltet veti alá további analízisnek 3 ply-on, igaz, csak akkor, ha a két lépés közötti egyenlegkülönbség nem nagyobb 0,04 egyenlegpontnál. Ellenkező esetben a döntés 2 ply-on megtörténik.

3. Tétes bábujáték kiértékelése

A Cubeful chequer evaluation melletti jelölőnégyzetet bejelölve az elemzések során GNU figyelembe veszi a potenciális kockadöntési helyzeteket is. Így különböző kockabirtoklási helyzetek (és különböző meccsállások) esetén amúgy egyező pozícióban tett azonos lépéseket igen különböző módon bírál el.

4

A fenti pénzjátékban Fekete meglehetősen rosszat dobott, mindössze két lépés közül választhat. Az óvatos játékot választja és a B/23 8/2-t lépi. Mit mond erre GNU világklasszis fokozaton, tétes kiértékelés mellett?

1. Cubeful 2-ply bar/23 13/7 Eq.: -0,539
39,2 8,6 0,2 - 60,8 26,7 0,7

2. Cubeful 2-ply bar/23 8/2 Eq.: -0,738 ( -0,199)
37,2 8,5 0,3 - 62,8 31,9 0,8

Azt látjuk, hogy a választott lépés óriási hiba, a két lépés közötti egyenlegkülönbség 0,199. Mielőtt rácsodálkoznánk arra, hogy miképpen okozhat 2%-nyi győzelem elvesztegetése ilyen mértékű egyenlegkülönbséget, változtassunk annyiban a helyzeten, hogy Feketének adjuk a kockabirtoklást. Ekkor GNU (világklasszis szinten, tétes kiértékelés mellett) a következőt mondja.

1. Cubeful 2-ply bar/23 13/7 Eq.: -0,271
39,2 8,6 0,2 - 60,8 27,0 0,7

2. Cubeful 2-ply bar/23 8/2 Eq.: -0,372 ( -0,102)
37,2 8,5 0,3 - 62,8 32,4 0,8

Súlyos hiba, de az egyenlegkülönbség csak fele az előzőnek, holott a győzelmi arány lényegében nem változott.

A magyarázat abban áll, hogy ha a kocka középen van, GNU mindkét lépés után duplázni fog, a duplát pedig, megítélése szerint, el kell fogadni. A második esetben GNU-nak nincs hozzáférése a kockához, így az elkövetett hiba nem szorzódik fel a tétnövekedéssel.

A fentiek rávilágítanak a backgammon és a duplázó kockal mellett játszott bábujáték egyik igen fontos aspektusára, éppen ezért a tétes kiértékelés használatát (különösen GNU ellen) mindenképpen javasoljuk. Ugyanakkor nyilvánvaló, hogy az ilyen kiértékelés igen zavaró és megtévesztő lehet, ha szeretnénk megtudni, hogy egy adott állás esetén milyen mértékű hibát jelent a lépésünk. Meccsjátékban még kaotikusabbá válik a helyzet.

Ha ugyanezen pozíciót kiértékeltetjük GNU-val egy 5 pontos meccs valamennyi meccsállásánál az alábbi, elsőre kissé meghökkentő eredményt kapjuk (Fekete pontszáma elöl, ha valamelyik játékosnak 4 pontja van, azt Crawford játéknak tekintjük).

meccsállás a hiba nagysága
0-0 __ .221
1-0 .270
2-0 .215
3-0 .079
4-0 .050
0-1 .270
1-1 .264
2-1 .000
3-1 .000
4-1 .097
0-2 .107
1-2 .117
2-2 .247
3-2 .000
4-2 .051
0-3 .106
1-3 .106
2-3 .121
3-3 .108
4-3 .145
0-4 .049
1-4 .058
2-4 .049
3-4 .062
4-4 .048

Ezeknek az eltéréseknek a következő az értelmük: .200 pontos egyenlegvesztés olyan meccsállásoknál jön létre, amikor GNU azt gondolja, hogy dupla-elfogadás a helyes döntés. A .000 jelentése, hogy dupla-passzt jósol a következőkben, így mindegy, hogy melyik lépés kerül lelépésre. A .100 körüli hibák azokat a meccshelyzeteket jellemzik, melyekben GNU nem gondolja, hogy duplázni kell. Ha pedig úgy gondolja, hogy még egy gammon-győzelemnek sem veheti hasznát, úgy 0.50 körül van a lépésből származó egyenlegveszteség.

A probléma tehát az, hogy amikor átfutod egy meccsedet a nagyobb hibák után kutatva, nem számolsz a kocka hibát felnagyító (vagy eltűntető) hatásával. Szerencsére az ilyen helyzetek azért nem túl gyakoriak, és kizárólag kockadöntés-közeli helyzetben jelentkeznek.