540 likes | 756 Views
Sztuczna inteligencja w Go. Magda Kusiak Karol Walędzik. Zasady Go. Plansza – krata o wymiarach 19 na 19, 13 na 13 lub 9 na 9 Gracze stawiają na przemian białe i czarne kamienie na przecięciach linii na planszy Celem jest zdobycie jak największego terytorium. Zasady Go – c.d.
E N D
Sztuczna inteligencja w Go Magda Kusiak Karol Walędzik
Zasady Go • Plansza – krata o wymiarach 19 na 19, 13 na 13 lub 9 na 9 • Gracze stawiają na przemian białe i czarne kamienie na przecięciach linii na planszy • Celem jest zdobycie jak największego terytorium Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Zasady Go – c.d. Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Grupy martwe i żywe • Grupa jest martwa, jeżeli niezależnie od postępowania gracza zostanie zbita • Na końcu gry martwe grupy są usuwane z planszy • Nie zawsze warto zbijać martwe grupy w trakcie gry • W niektórych wersjach zasad pola, na których stoją kamienie gracza, nie są wliczane do sumy jego punktów – dlatego nie warto stawiać dodatkowych kamieni, żeby usunąć martwą grupę przeciwnika Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Przed rozpoczęciem gry - handicap • Handicap – rozmieszczenie przez jednego z graczy kilku (od 2 do 9) kamieni na planszy przed rozpoczęciem gry • Cel – wyrównanie szans, jeśli któryś z graczy jest dużo słabszy • W niektórych wersjach zasad kamienie można rozmieścić dowolnie • Zwykle umieszcza się je w wyznaczonych punktach na planszy Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Początek gry (fuseki) Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Joseki • Standardowe sekwencje ruchów • Rozgrywane zwykle w rogach planszy na początku gry • Bazy joseki są wykorzystywane przez programy grające Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Grupy wiecznie żywe • Jeśli grupa zawiera dwa oka (zamknięte puste obszary), nigdy nie będzie zbita Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Pół-oka • Pół-oko - obszar, który może stać się okiem lub nie zależnie od tego, który gracz wykona pierwszy ruch Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Fałszywe oka • Fałszywe oko – obszar pozornie otoczony przez jedną (koncepcyjnie) grupę, który nie będzie okiem Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Ko - przykład Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Ko – c.d. • Nieskończona sekwencja bić w pojedynczym ko jest niedozwolona • Jeśli czarny zagra w ko, biały musi w następnym ruchu zagrać w innym miejscu, najlepiej atakując i wymuszając obronę (ko threat) • Ko zaburza lokalność gry • Czarny może odpowiedzieć na ruch białego lub zignorować go (tenuki) i zakończyć ko Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Powtórzenia pozycji • Jeśli pojawi się potrójne ko, gra może się toczyć w nieskończoność • Zależnie od zasad • Niedozwolone jest dopuszczenie do powtórzenia pozycji • Niedozwolone jest dopuszczenie do powtórzenia sytuacji (ta sama pozycja i ruch gracza tego samego koloru) • Powtórzenie pozycji oznacza remis • Cykle dłuższe niż 2 są dozwolone Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Samobójstwa • Ruch prowadzący do usunięcia z planszy własnych kamieni – zwykle niedozwolony Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Samobójstwa – c.d. • W niektórych wersjach reguł samobójstwa są dozwolone, a wtedy mogą być opłacalnymi ruchami, np.: Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Schi-cho (drabiny) • Powstają proste wzory geometryczne, bardzo łatwe do zauważenia i przewidzenia dla ludzi • Stanowią duży problem dla programów grających Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Semeai • Sytuacja, w której każda z dwóch grup musi zniszczyć drugą, żeby przeżyć: Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Seki • Dwie żywe grupy mają wspólne liberties, których żadna z nich nie może wypełnić, bo oznaczałoby to jej śmierć – nierozstrzygalne semeai • Według reguł japońskich, jeśli grupy tworzą seki, to otoczone przez nie terytorium nie jest wliczane do wyników obu graczy • W innych wersjach reguł terytorium otoczone przez grupy będące w seki jest wliczane do wyniku Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Seki - przykład Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Jak oceniać sytuację? • Należy zidentyfikować grupy, które w razie potrzeby można łatwo połączyć (łańcuchy) • Dwa podejścia do oszacowania wyniku • Obliczenie wielkości terytorium otoczonego przez każdego gracza po połączeniu grup. Pozostałą część planszy uznajemy za terytorium neutralne Uwzględnienie wpływów (moyo) graczy, czyli terytorium, które prawdopodobnie zajmą Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Końcówka gry • Zasadniczo terytorium jest już podzielone • Jeśli pola zajęte przez kamienie danego gracza są doliczane do sumy jego punktów, gracze starają się zająć pola neutralne (dame) • Gra kończy się, kiedy obaj gracze kolejno pasują Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Koniec gry • W niektórych wersjach reguł gracze muszą uzgodnić, które grupy są martwe, a które żywe • Jeśli nie mogą się zgodzić, gra jest wznawiana do czasu wyjaśnienia sytuacji • Przed obliczeniem wyniku martwe grupy są usuwane z planszy • Czasem przed liczeniem punktów gracze przesuwają kamienie na planszy tak, żeby powstały ładniejsze (i łatwiejsze do obliczania) wzory Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Klasyfikacja graczy • Od pierwszego do dziewiątego dan • Tytuł dziesiątego dan można zdobyć w zawodach • Osobna klasyfikacja dla amatorów i profesjonalistów • Początkujący są klasyfikowani od trzydziestego do pierwszego kyu • Numer kyu oznacza liczbę kamieni handicapu potrzebną do rozegrania wyrównanej gry z amatorem mającym pierwsze dan Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Klasyfikacja programów grających • Programy grają w specyficzny sposób i nie są w stanie zmieniać taktyki • Po kilku grach stają się przewidywalne dla człowieka, dlatego trudno ocenić poziom programu na podstawie większej liczby gier • Zazwyczaj próbuje się ocenić program na podstawie kilku pierwszych gier z graczem, który nigdy wcześniej z nim nie grał Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Przykładowy program: GNU GO • Program typu open-source • Aktualnie wersja 3.6 • Oceniany na 9 kyu • www.gnugo.org Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU Go – wybór ruchu • Analiza pozycji • Identyfikacja worms • Analiza taktyczna • Funkcja wpływu • Identyfikacja dragons • Analiza dragons • Funkcja wpływu • Detekcja punktów cięcia Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU Go – wybór ruchu c.d. • Generowanie ruchów (z uzasadnieniami) • Obrona/atak worms • Obrona/atak zagrożonych dragons • Semeai • Ruchy rozcinające • Fuseki • Kształty Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU Go – wybór ruchu c.d. • Generowanie ruchów (z uzasadnieniami) • Ataki kombinowane • Dobicie martwego powiększanego dragon (tylko przy przewadze) • Kształty końca gry • Ponowne rozważenie semeai • Wypełnienie liberty Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU Go – wybór ruchu c.d. • Ocena ruchów • Przegląd uzasadnień • Ocena zysków terytorialnych • Inne heurystyki (efekty strategiczne, łączenie grup etc.) • Wybór najlepszego ruchu Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Worms i Dragons • Worm – grupa kamieni w ścisłym sensie • Dragon (łańcuch) – zbiór worms (grup), które według programu albo wszystkie zginą albo wszystkie przeżyją, więc powinny być traktowane jako całość Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Worms i Dragons c.d. • Identyfikacja Dragons: • Łączenie wszystkich worm otaczających zwarty obszar (eyespace) • Łączenie ‘nierozrywalnych’ worms – współdzialących 2 liberties lub jedną, której przeciwnik nie może zająć nie tracąc kamienia • Wykorzystanie bazy wzorców połączeń i cięć Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Eyespace Wzorzec połączenia Punkt cięcia Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU GoOka, pół-oka i fałszywe oka • GNU Go korzysta z pewnych koncepcji kombinatorycznej teorii gier • Efektem jest możliwość uznania rozgrywki na każdej przestrzeni eyespace za lokalną grę, której wynikiem jest liczba ok Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU GoOka, pół-oka i fałszywe oka c.d. • Reprezentacja: |- X - X X - - X O X O |X - - - - - X X O O O |O X X X X - - X O O O |O O O O X - O X O O O |! . . . O O O O X X O |X O O X X X . ! X O O |X O O O O O O O X X O |- X X O - O X O - - X |X - - X - X X X X X X |O X X O X - X O O X O |. X . X X . . X O X O |X . . . . . X X O O O |O X X X X . . X O O O |O O O O X . O X O O O |. . . . O O O O X X O |X O O X X X . . X O O |X O O O O O O O X X O |. X X O . O X O . . X |X . . X . X X X X X X |O X X O X . X O O X O !... XXX.! !...XXX.! Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU GoOka, pół-oka i fałszywe oka c.d. • Można dowieść, że pół-oka są izomorficzne z (!.) a fałszywe oka z (!) • Analiza w całości na podstawie bazy wzorców uzupełnionej o wykrywanie pewnej liczby szczególnych sytuacji – jeśli żaden wzorzec nie zostanie dopasowany to przypisywany jest wynik {2|2} • Pojawienie się ko wymaga rozbudowania analizy Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Eyespace Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU GoOka, pół-oka i fałszywe oka c.d. • Główny problem tego uproszczonego podejścia: • Wymóg ściśle określonej wielkości eyespace • Rozwiązanie: • Wprowadzenie wstępnej fazy analizy doprowadzającej do stabilnej pozycji • Analiza drzewa gry z wykorzystaniem wzorców Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU Go - wzorce • Uniwersalne wzorce wykorzystywane są jako sugestie ruchów/identyfikacja kluczowych punktów w różnych modułach, m.in..: • OWL (Optics with Limit Negotiation) do doprowadzenia do sytuacji ze stabilnymi eyespaces • Generowaniu ataków kombinowanych • Analizie semeai • Propozycje poddawane zwykle dalszej analizie, rzadko akceptowane bezkrytycznie Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU Go – wzorce c.d. • Przykład wzorca: ?X?.? O.*oo O.... o.... ----- :8,ed,NULL Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU Go – wzorce c.d. • Atrybuty wzorca: • Dozwolone modyfikacje (osie symetrii) • Dodatkowe ograniczenia • Atrybuty akcji • Funkcja pomocnicza (opcjonalnie) Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU Go – wzorce c.d. • Typowe ograniczenia: • Zniesienie lub wzmocnienie wymogu dotyczącego bezpieczeństwa ruchu • Wymogi dotycząca statusu dragons we wzorcu • Typowe atrybuty akcji to motywy: • Fuseki • Joseki wraz z oznaczeniem ‘pilności’ • Obrona/atak • Zwiększenie wpływów/terytorium Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU Go – wzorce c.d. • Wykorzystanie wzorców w OWL: • W celu znalezienie pozycji stabilnej przeprowadzana jest analiza drzewa gry z wykorzystaniem jedynie ruchów sugerowanych przez wzorce i kluczowych ruchów analizy ok • Oddzielna baza wzorców koryguje błędy popełniane przy analizie topologicznej eyespaces (bo nie uwzględnia ona np. liczby liberties zangażowanych grup) Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU Go – funkcja wpływu • Każdy żywy worm/dragon emituje z pewną siłą wpływ na sąsiednie pola • Wpływ maleje wykładniczo z odległością • Wpływ nie przenika przez żywe kamienie i nieprzerywalne połączenia • Wzorce uzupełniają plansze o wirtualne źródła wpływu w miejscach potencjalnych ataków (puste obszary, punkty cięć) o kolorze zależnym od koloru, który ma wykonać ruch Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU GoFunkcja wpływu c.d. • Wartości funkcji wpływu wyznaczają dla danego gracza 3 obszary: • Territory • Moyo – terytorium i obszary, które stosunkowo łatwo zamienić w terytorium • Area – całość terenów, na których kolor ma większe wpływy niż przeciwnik Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU GoFunkcja wpływu - szczegóły • Pozycjom na planszy przypisywana jest ‘przepuszczalności’ • Domyślnie jest to 1 dla pustych grup, 0 dla żywych kamieni • Wartości te są modyfikowane przez wzorce • W przypadku emisji po przekątnej przepuszczalność przemnażana jest dodatkowo przez maksimum z przepuszczalności pozycji pomiędzy którymi przebiega przekątna Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU GoFunkcja wpływu - szczegóły • Przeliczenie wartości wpływu na szacunek prawdopodobieństwa zdobycia danego terenu: • Pierwsze przybliżenie: • Seria filtrów i poprawek – m.in. obcięcie do minimalnej wartości wszystkich sąsiadów Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go
GNU GoFunkcja wpływu c.d. • Wynik działania funkcji wpływu jest poddawany ocenie i modyfikowany przez moduł detekcji możliwych punktów ataku na terytorium • Szczególne wykorzystania funkcji wpływu: • Wyznaczanie ścieżek ucieczki dla potencjalnie zagrożonych dragons • Ocena zysków terytorialnych z ruchu: • Ocena jest różnica wartości uzyskanych dla pozycji przed wykonaniem ruchu i po • W obu przypadkach obliczenia z założeniem kolejki przeciwnika Magdalena Kusiak, Karol Walędzik - Sztuczna inteligencja w Go