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.