Life/death analysis in Go (Analyzátor života skupiny v Go)
Life/death analysis in Go (Analyzátor života skupiny v Go)
bakalářská práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/6494Identifikátory
SIS: 43084
Kolekce
- Kvalifikační práce [11244]
Autor
Vedoucí práce
Oponent práce
Hric, Jan
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Obecná informatika
Katedra / ústav / klinika
Katedra teoretické informatiky a matematické logiky
Datum obhajoby
26. 6. 2006
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
V této práci jsem se zaměřil na studium problematiky řešení úloh "života a smrti" v Go, jež je jednou ze základních dovedností které by měl program hrající Go zvládnout. Jako součást práce vznikl program TGA, řešící tyto úlohy. Program je postaven na základních algoritmech prohledávání stavového prostoru z teorie her (např. alfa beta prořezávání, transpoziční tabulky) v kombinaci s metodami využívajícími znalosti hry Go (heuristiky a ořezávací metody). Pro účely programu jsem mimo jiné vytvořil "blokové orientovanou" prezentaci pozice, implementoval jsem zjednodušenou statickou analýzu života a smrti skupiny a navrhl jsem sadu heuristik, které nejen významně zrychlují výpočet programu ale také umožňují řešit obtížné úlohy typu "under the stones". Program je určen k řešení převážně uzavřených úloh a umí si poradit s různými specialitami problematiky života a smrti v Go (např. různe druhy ko, seki, "bent four in the corner"). Co se výkonnosti týče, sílu programu v řešení specifikovaných Go úloh odhaduji na 1 dan, což je srovnatelné s velmi pokročilým lidským hráčem.
In this thesis I focused myself on problematics of solving life and death problems in the game of Go, which is one of fundamental skills of a Go playing program. Together with thesis, life and death solving program TGA was created. Program is built upon basic space search algorithms from the game theory (e.g. alpha beta pruning, transposition tables) in combination with methods using knowledges about the game of Go (heuristics and pruning methods). For program purposes I created "block oriented" position representation, I implemented simpliffied static analysis of life and death of the group and I proposed a set of heuristic. These heuristics not only speed up search signifficantly, moreover they make it possible to solve di±cult problems of "under the stones" type. Program is designed to solve mostly enclosed problems and it is capable to treat di®erent life and death solving pecularities (e.g. different types of ko, seki, "bent four in the corner"). As for performance, I estimate program's strength in solving speciffied Go problems to be 1 dan. This is comparable with a strong human player.