Többet ésszel, mint ... sakkprogrammal?!

– avagy lássuk tisztán a “gépsakktársak” erényeit és korlátait

Gyakran kérdezik tôlem, mint sakk(ozó)-számítástechnikus szakértôtôl, hogy mi az igazság a “verhetetlen számítógépekkel” kapcsolatban. Sokszor azzal a hátsó gondolattal, hogy ez a leegyszerűsítô megfogalmazás üzleti propagandát is takar.

Elég arra visszaemlékezni, hogy a Deep Blue – Kaszparov mérkôzés eredménye növelte a technikai hátteret biztosító IBM cég részvényeinek árfolyamát, és a kibicként mindenrôl véleményt alkotó világsajtó szenzáció-töltetű szalagcímekben véste be az emberiség kollektív tudatába: “IMMÁR A SAKKOT IS FELFALTA KORUNK MINDENHATÓ TECHNIKÁJA!" Hasonló vélekedések jelentek meg a hazai sajtóban a közelmúltban lezajlott Polgár Judit - Fritz 5.32 párosmérkôzéssel kapcsolatban.

Kaszparov – a szakértôk egyértelmű megállapítása szerint – valódi játéktudása alatt játszott, különösen a 6. játszmában már a megnyitásban komoly hátrányba került. Bizonyos célszerűség volt abban, hogy Kaszparov a zárt és kevésbé kezdeményezô megnyitásokat eröltette, ahol a számítógép hosszútávú stratégiák értékelésére kényszerülhet. Ezek gyakran csak nagy mélységű konkrét számításokkal igazolhatóak, ami még a Deep Blue képességeit is meghaladhatja.

Polgár Judit a saját éles stílusával próbálkozott, de a 30-30 perces játékidô kevésnek bizonyult a bonyodalmak pontos kiszámolásához. Való igaz, hogy az emberi játékerô a gondolkodási idô csökkenésével erôsebben romlik, mint a programoké.
A rapid játszmákban kevésbé lehet a hibátlan játékvezetést számonkérni, Portisch Lajos szavaival: “ ... a rapid-formában megtett játszmák inkább zsibvásárba valók és nem kiállítóterembe.” Ha pedig a program megtalálja a technikai értelemben vett nyerô folyatást, a kűzdelem reménytelenné válik.

Szerintem a kb. 1-1 órás idôbeosztás (különösen az idôzavart csökkentô Fischer-féle sakkóra lépésenkénti plusz idejével) a minimum, ahol a precíz játékvezetés már érvényesíthetô. Leginkább levelezési játszmákban és elemzésekben jön el az “igazság pillanata”. Úgy gondolom, hogy az objektivitás miatt ezen a szinten érdemes igazából a sakkprogramokat tanulmányozni és felhasználni.

A konkrét példa (Fritz-Polgár,J 8. játszma) vizsgálata elôtt néhány elôzetes megjegyzés a személyi számítógépeken futó sakkprogramokkal kapcsolatban:

1. A mai legjobb sakkprogramok (pl. Fritz, Rebel, Hiarcs, Nimzo, Genius, Junior, Mchess, Shredder, stb.) között emberi szempontból minimális játékerô (elemzôerô) különbség van. Talán az egyik program gyorsabban veszi észre a fonalas változatokat, a másik jobban bonyolít le végjátékre, stb. Minél erôsebb számítógépet használunk, annál kisebb ez az eltérés.
A sakkprogramok jelenlegi játékereje kb. 80%-ban a számítógépek teljesítmény növekedésének köszönhetô (kb. 2 évente duplázódik a teljesítmény), 20%-ban a programok kifinomultságának. Ezért ajánlott a számítógép jelentôsebb fejlesztése (processzor, alaplap, memória) egy újabb programváltozat megvásárlása elôtt.

2. Az úgynevezett svéd sakkszámítógépes erôsorrend saját ÉLÔ-pont számítás alapján rangsorolja az egymás ellen (hagyományos [2óra/40 lépés] idôbeosztás szerint) zárt rendszerben játszó programokat. Ezek a pontszámok az emberi játékerô szemszögébôl legfeljebb tájékoztató jellegűek, az elôzô pontban említett különbségek mindenesetre jól láthatóak.
A lista jelentôségét csökkentheti, hogy a programok fejlesztôi a riválisok gyenge pontjait veszik célba, elsôsorban a megnyitási repertoár javításával. Ez teljesen érthetô, hiszen tesztelési célra a konkurrens programok állnak korlátlanul rendelkezésre, a nagymesterek elleni teszt (fôleg, ha nem rapid) jóval ritkább esemény.
Emellett standard tesztállások megoldásának idejével is minôsítenek programokat, de értelemszerűen ezt is döntô módon befolyásolja a hardver gyorsasága. (Egy biztos: azonos tesztállással és programmal ragyogóan lehet különféle számítógépek teljesítményét összehasonlítani!)
Ezért is fordult elô, hogy egy megnyitási tár nélküli (az Angol megnyitás 6. lépésébôl induló) számítógépes sakkversenyen (Welser Computerschach-Turniere ‘98) azonos feltételek mellett futó programok között a svéd lista szerinti sorrend teljesen felborult. Pl. a Fritz 5 a középmezônyben végzett, több esetben a régebbi változat megelôzte az újat (Genius 3 az 5-öt, Hiarcs 4 a 6-ot). Vajon egy-egy új programváltozat jobban játszik, vagy csak több szolgáltatással rendelkezik?
Döntô áttörést a programok intelligenciájában még nem sikerült elérni. Pl. a Deep Blue rendszer koncepciója is elsôsorban a gyorsításra alapul, ez a Scientific American (Tudomány) c. folyóirat pár évvel ezelôtti cikkébôl is kiderül, amely szerint a jelenlegi Deep Blue elôdjéhez képest tervezett ezerszeres sebességnövekedése kb. 2900-as ÉLÔ-pontszámnak felelne meg az akkori jóslások szerint (legalábbis a mellékelt grafikonból ez derül ki). Noha a programot végjáték adatbankkal és nagymesteri repertoárral is megerôsítették, és néha emberi nézôpontból megdöbbentôen jól játszott, az említett optimista elvárást még közel sem sikerült teljesítenie, a szakértôk által becsült játékereje kb. 2650-2700 ÉLÔ pont). A Deep Blue (és általában a sakkprogramok) valódi játékerejének megbecslését az is nehezíti, hogy az említett tényezôknek megfelelôen bizonyos részfeladatokat talán tényleg a legmagasabb szinvonalon oldanak meg, de a “sebezhetôségek" esetében akár többszáz ÉLÔ-vel is csökkenhet a játékerô.
A gépi partnerek tanuló képessége egyenlôre nagyon korlátozott: képesek megjegyezni sikertelenül alkalmazott változatokat, de a konkrét hibákat és azok okait nem tudják önállóan megtalálni. Ebben összehasonlíthatatlanul gyengébbek egy emberi játékosnál.

3. A Windows és hasonló, több programot egyszerre futtató (multitasking) rendszereknél csökken a teljesítmény, ha egyszerre több program fut. Pl. egy 200 MHz-es processzor erején egyidôben osztozó két sakkprogram kb. 98-98 MHz-nyi teljesítményt “birtokol”. Ezért inkább érdemes egyszerre csak egy “erôs”, mintsem 2-3 “gyengébb” programot futtatni.

4. A gyengébb hardver is hozza ugyanazt az eredményt, mint az erôsebb, csak hosszabb idô alatt. Pl. ha egy 450 MHz-es AMD K6 (az elôzetes hírek szerint ez lesz a svéd lista leggyorsabb “szabványos” processzora) a kulcslépést 1 perc alatt találja meg, egy 200 MHz-es Pentium MMX (a jelenlegi svéd lista kategóriái szerint a vizsgált leggyorsabb processzor) kb. 2,5 perc alatt (vagyis a sebességgel fordított arányban).

5. A gyorsító memória (hash table) optimális beállítása is nagymértékben növeli a számítási teljesítményt.

A programmal való elemeztetéskor legfontosabb a nyers erôvel (brute force), lépés-válogatás nélkül elért maximális számítási mélység, amelyet féllépésben (ply, a lépéspár fele) számolnak. Pl. ha egy program kijelzi, hogy “9/21”, ez azt jelenti, hogy 9 féllépésig “mindent” megnéz, 21 féllépésig pedig a kényszerítô és egyéb speciális szempontok szerint (erôsen) válogatott néhány lépéssorozatot is, hogy “nyugodt”, kölcsönös ütésektôl mentes állást értékeljen. Ez egyben azt a gondolkodási idô függvényében táguló “horizontot” is jelenti, amelynél tovább a program nem képes számolni.

Erre jellemzô példa a Kaszparov által a Deep Blue ellen nyert elsô játszma is, ahol a szuperszámítógépet taktikailag játszotta túl. Ez azért is lehetséges, mert minél közelebb van egy kritikus állás az áttekintett lépéssorozat végéhez, annál kevésbé képes az állást dinamikusan értékelni. Az alábbi elemzésbôl levont következtetések - kellô megfontolással - bármely sakkprogrammal, bármilyen gépen ellenôrizhetôek.

Fritz 5.32 – Polgár Judit 8. játszma

1.d4 Hf6 2.c4 g6 3.Hc3 Fg7 4.e4 d6 5.Hf3 0-0 6.Fe2 e5 7.0-0 Hc6 8.d5 He7 Sötéttel kiváló számítógép-ellenes megnyitási választás: a zárt gyalogcentrum mellett sötét a királyszárnyon támadhat. E támadás stratégiája olyan hosszú lépéssorozat, amelynek elemeit a program képtelen elôre látni. 9.b4 Kh8 10.c5 Hh5 11.cxd6 cxd6 12.Hg5? Világos vezérszárnyi elôrenyomulása után érthetetlenül gyenge lépés, hiszen tempóvesztéssel “húzza magára” a gyalogrohamot. 12...Hf4 13.Fxf4 exf4 14.Bc1 h6 15.Hf3 g5 16.Hb5 Hg6 17.a4? (17.Hd2, majd f3 biztosítás legalább gátolta volna az azonnali áttörést. Mivel konkrét hátrányos változatot nyilván nem látott, a Fritz folytatta a vezérszárnyi akciót) 17...g4 18.He1 f3! 19.gxf3

A partiban sötét nem látta a fonalat és veszített: 20.Hxf3 Fh3 (20...Fg4) 21.Be1 Hf4 22.Ff1 Fg4 23.Vd2 Fe5 24.Be3 Bg8 25.Kh1 Fxf3+ 26.Bxf3 Bg4 27.Bg3 Vh4 28.Hd4 Bag8 29.Hf5 Vg5 30.Bc7 Vh5 31.Bxb7 B4g5 32.Bxa7 Vf3+ 33.Fg2 Vh5 34.Bxg5 Vxg5 35.Hg3 h5 36.Bxf7 h4 37.Bf5 Vg6 38.Ff3 hxg3 39.fxg3 Bg7 40.Vc2 Bg8 41.Vc1 Hd3 42.Ve3 Bc8 43.Vxd3 Bc1+ 44.Fd1 Vg4 45.Bf8+ Kg7 46.Bf1 Vh3 47.Vf3 1-0

De térjünk vissza a 19. lépéshez. A következô elemzés nemcsak a program taktikai túljátszását mutatja be, hanem azt is érzékelteti, hogy a jól álló figurák stratégiai túlsúlya miatt a védekezés elkésett: 19...Fe5!

20.fxg4 Vh4 Közvetlen mattfenyegetés. 21.Hf3 Vh3! Vizsgáltassa meg ki-ki kedvenc sakkprogramjával, hogy e finom lépést mennyi idô alatt és hány féllépés végigszámolásával találja meg a gyalogot sakkra ütô, de helytelen Vg4+ helyett! 22.Hxe5 (22.Kh1 Hh4 23. Bg1 Hxf3 24. Bg2 Fxg4 -+) 22... Hh4 23.Ff3 Fxg4! 24. Hxg4 Hxf3+ 25. Kh1 Bg8 -+

A gyalogelôny visszaadása is kevés: 21.f4!? Hxf4 22.Vd2 Hxe2+ 23.Vxe2 Fxg4 24.Vf2 Vh3 25.Kh1 f5 26.Bc7 Bf6 -+.

Világos megpróbálhatja a vezér mattfenyegetését akadályozni 20.Hg2 gxf3 21.Fxf3 Hh4, de sötét túlereje miatt veszít pl.:

22.Hc7 Bg8 23.Kh1 Bxg2 24.Fxg2 Vg5 -+,
22.Hd4 Bg8 23.Vd2
(23.Kh1 Bxg2! 24. Fxg2 Vg5 ... Vf4 -+) 23... Vf6 -+,
22.Kh1 Vf6 -+,
22.Bxc8!? Bxc8 23.Fg4 Bg8 24.f4 Hxg2 25.Kxg2 Vh4 26.fxe5 Bxg4+ 27. Kh1 Bcg8 -+

Egy másik meddô próbálkozás: 20.Hd3 gxf3 21.Fxf3 Fxh2+! 22. Kxh2 Vh4+ 23. Kg1 Bg8 24. Fg2 Fh3 25. Hxd6 Hf4 -+

E példa felhívja a figyelmet arra is, hogy a számítógép a taktika területén sebezhetô. Elsô megközelítésre ez persze butaságnak tűnik, hiszen a programok legnagyobb erôssége a konkrét számítási képesség, ami nyílt, éles állásokban óriási erôvel jelentkezik. A taktika azonban nemcsak a konkrét számításokon alapuló áldozatokat jelenti, hanem a hosszabb távú, anyag-idô-tér-motívum tényezôk dinamikus összefüggéseire alapozott mérlegelést is (ld. intuitív áldozat), ami stratégiai megalapozást igényel. Más szóval a stratégiai hiba taktikai úton történô kihasználását és nem holmi “légbôl kapott”, múlt századi stílusú áldozatok halmazát.

A leggyorsabb, kereskedelmi forgalomban kapható számítógép és program is csak 10-12 féllépést képes válogatás nélkül (brute force) áttekinteni néhány perc alatt. A 19... Fe5-tôl induló változattömeg legjobb esetben is legalább 16-18 féllépés mélységű nyers számítást igényelne. Az “utolsó szalmaszál” 17. Hd2 (a4? helyett) ezek szerint 21-23-at, a konkrét számításokon alapuló teljes stratégia pedig legalább 30-at, ami még a Deep Blue-nak is túl sok. Tehát: még ha létezne is “zseniálisan védekezô” terv, akkor is csak puszta véletlen lehet, hogy a program rábukkanjon.
Persze nincs kizárva, hogy egy sakkprogram konkrét számítások nélkül is megtalálja a helyes tervet. Az efféle technikák megvalósítása viszont rendkívül nehéz, mert a jól megválasztott konkrét változatok bármikor befolyásolhatják a stratégiát.

Szerintem egy speciálisan felkészített (kb. 1 heti munkát igényelne), legalább nemzetközi mester szintű aktív játékos képes lenne bármilyen kereskedelemben kapható sakkprogramot legyôzni annak alapos kiismerése után. Természetesen a már említett, rapid tempónál lassúbb idôbeosztással, a játszmák közötti megfelelô pihenéssel, nyugodt (nem vásári) körülmények között. A jelek szerint a sakkprogramok “gazdái” nem szívesen támogatnának egy ilyen megmérettetést, mivel a gyorsabb játszmákban elért eddigi eredmények kockázat nélkül is kellô reklámot biztosítanak.

Sokatmondó tény, hogy az IBM elzárkózott a Kaszparov elleni visszavágó elôl, a tervet sikeresnek és befejezettnek nyilvánította. Talán nem szívesen kockáztatnak egy újabb mérkôzést, ahol a felkészültebb és tapasztaltabb Kaszparov (akárcsak 12 éve Karpov ellen) esetleg alapos revánsot vehet! Mivel az intelligencia a megváltozott körülményekhez való alkalmazkodási és tanulási képességet jelenti, ebben az értelemben a Deep Blue aligha tekinthetô intelligensnek - mégha a programozók és az ôket támogató nagymesterek javíthatnak is kissé a gépi játékerôn. Ha Kaszparov 100 játszmán keresztül „tesztelhetné" a Deep Blue-t (kellô pihenés, felkészülés mellett), az utolsó 10 játszmában valószínűleg jelentôs fölényben lenne!

A tanulság: bármilyen sakkprogrammal lehet és érdemes is elemeztetni, tanulni, de soha nem szabad kritika nélkül elhinni a gép által játszott-elemzett változatokat! Semmilyen számítógép nem helyettesítheti az önálló gondolatokat és a valódi sakktudást. Viszont jól kiegészítheti a gyengébb emberi számolókézséget, szembesíthet az elfogult értékelésekkel és pontosságra szoktat.