Hlavní navigace

Šachové programy: Co od nich čekat?

Pavel Houser

Možná jste nedávno zaregistrovali zprávu, podle které šachový program Deep Fritz remizoval s velmistrem Kramnikem (mohli bychom napsat mistrem světa, ovšem s těmito tituly je to komplikovanější kvůli rozkolu v mezinárodním šachovém hnutí; buď jak buď, Kramnik patří mezi nejlepší šachisty současnosti). Co tato informace vypovídá o cestě počítačů směrem k umělé inteligenci?

Kupodivu ani moc ne. Vývoj šachových programů totiž ukázal dvě velmi překvapující věci:

  • způsob, jakým myslí profesionální šachisté, je velmi obtížné algoritmizovat.
  • síle šachových programů to však příliš nevadí, počítače dokáží hrát šachy velmi dobře i bez toho, aby hře jakkoliv rozuměly.

Co se týče dalšího textu, abych kritikům dopředu vyrazil z rukou část argumentů, opět předesílám, že článek není napsán profesionálním programátorem :-).

Otázka, nakolik je samotné lidské myšlení algoritmizovatelné, je velmi složitá. O opaku je přesvědčen např. Hawkingův spolupracovník Roger Penrose (o jeho přístupu více viz Penrosova kniha Mikrosvět, makrosvět a lidská mysl či Úvod do kognitivní vědy od Paula Thagarda). Protože Penrose sám současně ale pokládá lidský mozek za něco na způsob počítače kvantového, pravděpodobně míní onen nealgoritmický charakter lidského myšlení pouze ve vztahu k počítačům klasickým.
Leč dost filozofie. Ať už lidské myšlení je, či není algoritmizovatelné, šachy by takové být měly. Proč se tedy počítačům nepodařilo uspět na poli šachů a simulovat lidské myšlení? Možnou odpověď představuje způsob, kterým přemýšlejí šachisté blížící se profesionální úrovni.
V rozporu s obecným přesvědčením toho totiž silnější šachisté příliš mnoho nepočítají. Mají spíše před očima určité strategické schéma spojené s ideálním postavením figur vlastních i figur soupeře. Rozhodování pak probíhá nejspíše stylem „měl bych postavit jezdce před izolovaného pěšce, ale nebude mi pak chybět při obraně královského křídla“? Propočty mohou být pouze dvoutahové, mohou být i nulové. Výjimečně samozřejmě následuje propočet do značné hloubky, nejsou však stejně počítány zdaleka všechny možnosti, ale pouze ty „logické“.
Nikomu se zatím nepodařilo počítače tento způsob chápání královské hry naučit. Ještě větším překvapením však může být fakt, že i přesto je doslova na dosah chvíle, kdy budou počítače silnější než ti nejlepší lidští velmistři.
Postačí výkonný hardware. Počítat daleko dopředu se nakonec ukazuje v šachách užitečnější, než se snažit informace nějak „komprimovat“, tedy stanovovat obecnější pravidla na základě porozumění.
Ani současné počítače samozřejmě nejsou schopny projít všechny varianty až do konce partie, nicméně těch cca 16 půltahů obvykle plně postačí. Následuje seřazení konečných pozic podle jejich příznivosti a program si pak v grafu vybere cestu, která povede k nejlepší pozici i při nejlepších odpovědích soupeře. (Počítač tedy neklade léčky, nekalkuluje s tím, že soupeř něco přehlédne apod. Jeho hra zcela postrádá psychologickou dimenzi.)
Jediným sofistikovanějším algoritmem je způsob, jakým počítač pozice hodnotí a pak řadí podle výhodnosti. Zde se samozřejmě vychází z hodnoty jednotlivých figurek, ale posuzuje se také mobilita figur či třeba také postavení králů. Počítače si jsou zčásti vědomy síly věže na sedmé řadě či dvojice střelců. Ohodnocovací funkce je jedinou částí celého procesu, kdy se odehrává něco připomínajícího myšlení lidského šachisty – ovšem i tak jen velmi vzdáleně.
Pro úplnost snad zbývá dodat, že šachový počítač disponuje databází zahájení a koncovek. Stále více pozic hraje prostě podle těchto databází; třebaže šachová hra jako celek se tímto způsobem zdaleka nevyčerpá, oproti lidskému šachistovi zde má program další značnou výhodu.
Samozřejmě i ono prohledávání, prosévání možných pozic, lze zkoušet udělat efektivněji. Počítač třeba může testovat nižší hloubku tahů a ušetřený čas věnovat průzkumu těch nejnadějnějších pozic do větší hloubky – namísto propočtu všech variant 16 tahů si třeba po osmi tazích vybere pět nadějných možností a ty propočítá na tahů 20. S tím, jak má ale program k dispozici stále výkonnější hardware, jsou tyto úsporné kroky již téměř zbytečné.
Skutečně to stačí? Stačí na velmistra dokonce obyčejné PC s Athlonem? V podstatě ano. Samozřejmě existují speciální pozice, které zkomprimovat jdou a lidský šachista, jakmile odhalí princip, je v nich lepší než stroj. Důležité ovšem je, že se často jedná o situace sestavené uměle, tedy nevyskytující se v reálných partiích. Příkladem jsou takové hračky jako třeba úloha „mat 256. tahem“. Tady si budeme muset na zdokonalení hardwaru ještě počkat :-). Člověk naopak zjistí, že určitý motiv se v pozici bude např. stále opakovat, a úlohu vyřeší.

Zajímavé je, že úspěchy šachových programů poněkud boří koncepci klasického Turingova testu „chytré je to, co se chytře chová“. Šachový program hraje velmi „chytře“, ale bez špetky porozumění. Není si ani v nejmenším vědom toho, co dělá. Takže je nakonec možné, že dokážeme zkonstruovat „inteligentní“ umělé systémy, aniž tím však získáme jakoukoliv odpověď na problém inteligence lidské.
Další hrou, kterou by programy mohly zkusit pokořit, je Go. Oproti šachům se možná jedná o hru „čistší“. Zatímco v šachách existuje obrovské množství možností a často vyhraje prostě ten, kdo nic nepřehlédne, v Go by snad mohlo hrát větší roli porozumění pozici, speciálně pak rozpoznávání geometrických tvarů/obrazců. Ale myslím, že nikdo by si na to stejně nevsadil. I v Go budou zřejmě brzy triumfovat programy využívající pouhé hrubé síly. I zde vyhraje ne ten, kdo pozici rozumí, ale ten, kdo nepřehlíží banality, kdo se v průběhu partie neunaví… Zřejmě. Nebo máte jiný názor?

Další informace:
Algoritmy Minimax a Alphabeta pro šachové programy
Cover story v Computerworldu číslo 41/2002 – k dostání právě na stáncích, část textu je k dispozici on-line v článku Kramnik versus Deep Fritz

Našli jste v článku chybu?