Tamás

Go

©   Tamás   |   game howto

Ez amolyan kedvcsináló-ismeret(t)erjesztő bejegyzés lesz. Van ez a go nevű, kínai eredetű táblás játék (egyéb ismert nevei: 碁, 圍棋, esetleg 바둑), amire iszonyat módon rákattantam pár hónapja, és azóta is majdnem minden este játszom két-három partit a számítógép ellen, igaz, egyelőre csak 13x13-as táblán (mert ott hamarabb vége van egy menetnek). Gondoltam, írok róla egy kicsit, hátha másnak is megjön a kedve hozzá.


Maga a játék olyan tökegyszerű, hogy eleinte nem is értettem, miért tartják olyannyira összetettnek - sokkal összetettebbnek, mint a sakk. A játék bonyolultságáról azonban sokat elárul, hogy míg a Deep Fritz nevű sakkprogram vígan verte 4-2-re Vlagyimir Kramnyikot, addig ma a világ legjobb go-programjai is csak egy erős közepes amatőr szintet képesek elérni - és mindezt a bonyolultságot néhány igen egyszerű szabály segítségével produkálja, ellentétben a sakk komplikált szabályrendszerével.

A játék egy 19x19-es táblán játszódik (de kezdők gyakran játszanak 13x13-as vagy 9x9-es táblán, ezt eleinte könnyebb átlátni). Két játékos van, az egyik fekete köveket pakol a táblára, a másik fehéreket, értelemszerűen felváltva. (Különlegesség, hogy a köveket a rácsvonalak metszéspontjaiba rakják, nem pedig magukba a négyzetekbe). Az egymás mellé pakolt kövek kőcsoportokat alkotnak, itt a szomszédság négy irányba értelmezett, tehát az átlós érintkezés nem számít érintkezésnek, csak a vízszintes és a függőleges irányok. Minden kőcsoportnak annyi élete van, ahány üres rácsponttal szomszédos. Ha az egyik játékosnak sikerül a saját köveivel körbekeríteni a másik játékos egy kövét vagy kőcsoportját úgy, hogy annak nem marad élete, akkor a körbekerített köveket le kell venni a tábláról (és a végelszámolásban az elfogó játékos számára kövenként 1 pontot érnek). Ennyi az egész, leszámítva még néhány mellékes szabályt (pl hogy nem lehet öngyilkos lépést tenni, tehát olyat, amelynél a lehelyezett kő egy saját kőcsoport életeinek számát nullára csökkenti - kivéve, ha egy ellenséges csoportot is megöl, ekkor ugyanis az ellenfél alakzatát kell levenni a tábláról). A játékosok lépés helyett passzolhatnak is, a játék pedig akkor ér véget, ha mindkét játékos passzol. A játékosok pontszáma az elfogott kövek számának és a körbekerített rácspontok számának összegéből adódik, ehhez a fehér játékos még általában kap 5,5 pontot, egyrészt azért, hogy a döntetlent kizárják, másrészt azért, mert ez ellensúlyozza azt az előnyt, amit a fekete játékos kap azáltal, hogy kezdhet. A körbekerített területeket illetően a játékosoknak általában meg kell egyezniük, hogy mit tekintenek annak és mit nem. A szabályok szerint az tekinthető lekerített területnek, amelynek a belsejében az ellenfél nem tud úgy játszani, hogy a köveit ne tudják leszedni, de a gyakorlott játékosok egy táblaállásról többnyire ránézésre megmondják, hogy mi tekinthető lekerített területnek és melyek azok a helyek, ahol az ellenfél meg tudna élni. Ha mégis vita lenne, a konfliktust roppant egyszerű feloldani: egyszerűen tovább kell játszani a játékot, amíg a vitatott terület állapota egyértelműen el nem dől.

Egyébként elég magától értetődő oka van annak, hogy a sakkprogramokkal ellentétben a go-programok miért nem tudják legyőzni az emberi mestereket. A legtöbb sakkprogram (beleértve a Kaszparovot legyőző Deep Blue-t és a Kramnyikot legyőző Deep Fritz-et is) igazából nem gondolkodik, hanem kis túlzással egy egyszerű nyers erő (brute force) keresést hajt végre az aktuális táblaállástól előrefelé, kipróbálva az összes lehetséges értelmes lépést és ügyesen kizárva azokat az ágakat, ahol nagy valószínűséggel nem terem számukra babér. Ezt a sakknál azért lehet megcsinálni, mert egy átlagos sakkállásban körülbelül 20-féle szabályos lépés van, tehát egy lépés mélységig 20 állást kell kiértékelni, két lépés mélységig 20 * 20 = 400-at, három lépés mélységig 8 000-t, négy lépésig 160 000-t, és így tovább... A mai számítási kapacitások mellett nem kunszt megfelelő vágási stratégiákkal 13-15 szint mélységig előre keresni és a legoptimálisabbnak tűnő lépést kiválasztani. A go-ban ugyanakkor a tábla 19x19 = 361 mezőből áll, és (főleg a játék elején) ezeknek a lépéseknek kb a háromnegyede akár értelmes is lehet (de mindenképpen szabályos, tehát meg kell vizsgálni, hogy szükség esetén kizárhassuk!). Ez azt jelenti, hogy két lépéssel előre gondolkozáshoz már 72 900 táblaállást meg kell nézni, három lépéshez 19 683 000-t, és így tovább... a dolog hamar kezelhetetlenné válik, hacsak a nyers erő módszere mellett más módszereket be nem vetünk (amikről most nem fogok írni, mert ez nem Mesterséges intelligencia előadás).

Ha valaki ez alapján a rövid ismertető alapján kedvet kapott a játékhoz, a következő weboldalakon mélyedhet bele a játékba kicsit jobban:

  • Az interaktív út a go-hoz - egy angol nyelvű go-tanító weboldal magyar fordítása, kezdőknek szerintem kötelező darab, nagyon jól elmagyarázza a játék alapvető elemeit, és mivel maga a weboldal Java appletekkel tarkított, szinte minden technikát, lépést azonnal ki lehet próbálni.
  • Igowin - egy egyszerű windowsos program, amellyel 9x9-es táblán lehet go-t játszani. Mindemellett figyeli, hogy milyen szinten játszol, és igyekszik a játékot kiegyenlítetté tenni úgy, hogy kezdetben néhány előnykövet ad, amellyel könnyebben tudsz területet lekeríteni magadnak. (Ez egyébként általánosságban is bevett módja a játék kiegyenlítetté tételének, tehát ha egy netes go-szerveren emberi ellenfél ellen játszol, akkor is lehet előnykövekben egyezkedni, hogy a gyengébb játékosnak is legyen esélye nyerni az erősebb ellen).
  • Gowiki - magyar nyelvű go wiki oldal
  • Sensei's Library - angol nyelvű wiki a Gowiki stílusában, csak sokkal több anyaggal, amelyek nem csak a kezdők számára lehetnek hasznosak
  • Go Problems - itt a rejtvényújságok sakkfeladványaihoz hasonló stílusú feladványokat lehet találni minden szinthez. A legtöbb ilyen feladvány gyakran előforduló játékhelyzeteket, élet-halál problémákat tárgyal, de még akkor is érdekesek lehetnek, ha az ember nem játszik versenyszerűen.
  • És végül az Igazi: Kiseido Go Server - az egyik legnagyobb go szerver, ahol emberi játékosokkal mérhetjük össze az erőnket. A szerver saját ranking system-et is megvalósít, amely a go-játékosok között szokásos konvenciókat követi (a kezdő játékos 30 kyu-ról indul, és innen fejlődik fel fokozatosan 1 kyu-ig, utána átfordul 1 dan-ba és innen fejlődhet tovább a maximális 10 dan-ig). A szerver rögzíti az összes játékot, amelyet regisztrált játékos ellen játszol a szabványos 19x19-es táblán, és ezekből számolja ki a saját rangodat. A rangok publikusak és minden szobában láthatóak a szobában bent lévő játékosok nevei mellett, így mindenki megtalálhatja a neki megfelelő szintű ellenfelet. Van magyar szoba is

...és ha valaki ez alapján kedvet kapott a játékhoz és szívesen játszana ellenem, szóljon és összeszervezünk valamit a KGS-en (Kezdő vagyok én is, szóval nem kell félni).

RSS: hozzászólások ehhez a bejegyzéshez 14 hozzászólás

Szólj hozzá Te is!

Az ELTE Matekos teadélutánajira szoktam járni, és ott ülésezik rendszeresen a Duna Go Egyesület, ami asszem itthon az egyik legnagyobb. Vannak nagy profi tábláik, meg játékosok, meg tanítanak, meg minden. (Nekem is mutatta egy srác az alap dolgokat egyszer, de már fáradt voltam. Előtte néztem meg hogy rakja ki a Rubik-kockát 10 másodperc alat... )
Egyszer nézz már le, ha ráérsz! (Szorgalmi időszak, szerdánként, kb. 16-tól kifulladásig. Déli tömb aréna.)

Ja, néztem egyszer egy ilyen nagy profi táblát, hogy mennyibe kerül, hát majdnem letettem a hajamat... Akkor döntöttem úgy, hogy majd egy régi ajtóból meg azokból a piros-kék korongokból (tudjátok, általános iskola alsó tagozat, az egyik felük piros, a másik felük kék, és ilyen dobókockának álcázott kis dobozban árulták) csinálok majd magamnak go-táblát

Sakkpárti vagyok, nem mintha a kettő együtt nem mehetne.

A sakk nekem valahogy soha nem feküdt, nem állt rá az agyam... pedig próbáltam A go-ban az fogott meg, hogy a trivialitásoktól eltekintve ténylegesen csak három szabály van (egy, ami megmondja, mikor összekötött egy alakzat; kettő, ami megmondja, hogy a teljesen körbevett alakzat levehető; három, ami megakadályozza a már előfordult táblaállások ismétlődését), és mégis sokkal bonyolultabb játék, mint a sakk, legalábbis programozási vagy mesterséges intelligenciai szempontból mindenképp. De ez már az én egyéni perverzióm

Programozz hex programot n*n-es táblára, meglátjuk a go marad-e a kedvenced
Egyébként nem rossz.

Tamás Tamás, valóban, abból a szempontból bonyolultabb, de erről ugye Romsy tudna inkább mesélni, a bonyolultságelméleti szakemberünk.


A hex PSPACE-teljes játék, míg a go, a sakk, a dáma EXPTIME-teljes - tehát _legalább_ olyan bonyolult, mint a hex. Valószínűleg bonyolultabb is. Hex-re 9x9-es táblaméretig van már determinisztikus nyerő stratégia, go-ra tudtommal 5x5-ig bírták eddig megcsinálni.

Hát igen, vannak ilyen bonyolultsági osztályok, de szerintem pl. jól dámázni lényegesebb könnyebb, mint jól hexelni, de ez szubjektív.
Tisztában vagyok, hogy vannak nyerő stratégiák bizonyos táblaméretekig, de én most n*n-ről beszélek (akár 20+). Go-ban csomó helyzet van, amikor szinte lényegtelen hova lépsz, hexben pedig csak ha már elvesztetted. Bár rég góztam, akkor is csak pár hónapot, de ott ezt tapasztaltam. Mondom szubjektív, meg lehet győzni.
Hosszútávon mondjuk szerintem is a gó az izgalmasabb, mert ott ritkábban vannak ugyanolyan állások, de ott meg annyi rögzített helyzet és részstratégia van, hogy azokat is meg lehet szokni. Ezért szoktam le a táblás játékokról, pedig olyan 3 évet reversi, renju, hexeltem. Mondjuk olyat is ismerek, aki 10 éve sem unja...

kiegészítés: tökéletesen játszani szerintem sem hexben, sem góban nem lehet, vagyis még nem tartunk ott.

A hexet még komolyabban nem próbáltam, csak érdeklődés szintjén, de simán el tudom képzelni, hogy emberi agy számára nehezebb, mint a dáma. Már csak a hexa mezők miatt is, nekem arra valahogy nem áll rá az agyam, a négyzetrácsra sokkal könnyebben. Aztán majd meglátjuk, mikor unom meg a go-t, de az tény, hogy több benne a sikerélményem, mint a sakkban... (Sakk ellen valószínűleg be vagyok oltva). Meg ami még nagyon bejött a go-ban, az az, hogy az se baj, ha erősebb ellenféllel hoz össze a sors, mert handicap kövekkel simán ki lehet egyenlíteni a különbséget.
Ami meg a tökéletes játékot illeti, ez teljesen igaz - elvileg amőbára is megvan már a nyerő stratégia, max harmincvalahány lépésváltás alatt a kezdő mindenképpen nyer, de nincs ember, aki ezt fejben tartja... Meg asszem dámában is van valami ilyesmi (mintha Chinookot sem verte volna meg még senki, ha ő kezdhetett).



Bocsánat, máshogy kellett volna fogalmaznom. Hexszel még nem játszottam.
Köszi a linket azért.

Ha valaki gép ellen akkar gyúrni egy kicsit nagyobb táblán (max. 19x19) mielött kimerészkedik mások közé:
gnuGo+glGo -> pandanet.co.jp/…/download.html
Hozzászólásod:


Nem vagy bejelentkezve, de...

A)
hozzászólhatsz regisztrálatlanul...

B)
ha regisztrálva vagy, bejelentkezhetsz...