Teoretyczne i praktyczne aspekty realizacji komputerowego systemu do licytacji i rozgrywki brydzowej - czesc II Szymon Piądłowski
Agenda Przypomnienie Brydż w 3 częściach Literatura Licytacja Ocena liczby lew (DD problem) Rozgrywka Literatura Plan prezentacji
Przypomnienie Brydż w informatyce 3 silne programy brydżowe (JackBridge, GIB, Bridge Baron 16) Stworzenie programu brydżowego – praca magisterska Szymon Piądłowski na Wydziale MiNI promotor prof. nzw. dr hab. Jacek Mańdziuk Historia
Założenia związane z punktacją Przyjęte założenia Założenia związane z punktacją 52 karty – cała talia 13 kart (2,3,…,10,J,Q,K,A) 4 kolory (Pik, Kier, Karo, Trefl) 40 punktów w talii : Walet (J)=1, Królowa (2) Q=2, Król (K)=3, As(A)=4, reszta 0 4 graczy – 2 pary po 2 graczy (NS i WE), każdy po 13 losowych kart 38 odzywek w licytacji Brydż podstawy
Przyjęte założenia Podział gry: Licytacja – uzgadnianie kontraktu (para z wyższym kontraktem wygrywa licytację) Rozgrywka + obrona – para, wygrana z licytacji próbuje obronić kontrakt, przeciwna próbuje przeszkodzić 3x35 + 1 – max liczba możliwych kontraktów do wylicytowania 5,36 x 1028 – rozdań kart 5,55 x 1044 – możliwości rozegrania kart (średnio 1024) ∞ – teoretycznych możliwych znaczeń odzywki licytacji ( w praktyce skończona) Brydż podstawy
Licytacja – znaczenie odzywki Algorytm określania znaczenia odzywki jeśli odzywka jest znana jako odpowiedz na wcześniejsze idź do 2, jeśli nie idź do 5 odczytaj ograniczenie związane z odzywką idź do 4 wyszukaj wszystkie znaczenia odzywki, które spełniają wcześniejsze ograniczenia jeśli nie możesz znaleźć znaczenia zapytaj partnera osoby licytującej (zapisz do danych) jeśli partner nie zna znaczenia pytaj osobę licytującą (zapis, ale nie uwzględniaj teraz) nałóż odgraniczenie na karty licytującego uwzględniając odzywkę zredukuj ograniczenia partnera do możliwych Algorytm minimalizuje liczbę ograniczeń tak, aby uwzględniane zostały te ograniczenia, które mają sens z punktu widzenia licytacyjnego. Algorytm działa jako monitor odzywek wspólny dla wszystkich graczy Licytacja
Licytacja – parametry ograniczeń Uwzględniane parametry ograniczeń: Liczba kart (>=)w treflu, karo, kier, piku Czy rozkład pozostałych (wszystkich) kart jest równomierny, tzn. 4414,4333,4432, (333,444,222,323,121,434,itd.) Liczba asów Liczba króli Liczba punków w granicach (z uwzględnienie więcej niż, mniej niż) czy otwarcie, czy zakończenie Potrzeba dodania: Czy odzywka forsująca Przedziały w liczbie kart (da to dodatkowo określenia, czy jest fit, transfery, może znacznie poprawić licytację) Licytacja
Licytacja – znaczenie odzywki Rezultaty: Znaczna redukcja ograniczeń (m na rundę) Mała liczba niejednoznaczności (mniej światów kart do sprawdzenia) Znacznie przyspieszyło działanie algorytmu (pamięciowo n-krotnie , czasowo trudno ocenić) Nauczanie nowych odzywek poprawia licytację Mało odzywek większe błędy przy ustalaniu kontraktu Wady: Ograniczony sposób komunikacji (można wprowadzać rozszerzenia) WAŻNE (n >> m) !!! Licytacja
Licytacja – ustalenie kart graczy Algorytm: Usuń zapamiętane rozkłady jeśli każdy już licytował idź dalej, jeśli nie wyjdź Utwórz listę ostatnich (po nałożeniu) ograniczeń dla każdego z graczy Weź po największym ograniczeniu (w sensie punktowym) dla każdego z graczy Rozdziel karty punktowe pomiędzy graczami tak, aby spełniały ograniczenia Rozdziel pozostałe karty pomiędzy graczami tak, aby spełniały ograniczeni Ponieważ staram się rozkładać karty w miarę równomiernie oznacza to najbardziej prawdopodobny rozkład Zapamiętaj rozkład kart Dla wszystkich kombinacji ograniczeń zmień ograniczenie dla jednego z graczy i wykonaj punkty 5 - 8 Licytacja
Licytacja – ustalenie kart graczy Wady przyjętego rozwiązania: Nie uwzględniam wszystkich światów (tylko te najbardziej prawdopodobne) Może dawać całkowicie błędne wyniki (w fazie testów) Zdarza się, że się pogubi i nie wybierze ograniczenia, które było zgłoszone Zaleta przyjętego rozwiązania: Szybkość Mała zajętość pamięciowa (max kilkaset światów) Licytacja
Licytacja – następna odzywka Algorytm: jeśli istnieje ostatnia odzywka partnera to idź do 2, jeśli nie idź do 4 wyznacz dopuszczalne odzywki ,które partner rozumie wybierz odzywki, które pokrywają się z ograniczeniami dotychczas zgłoszonymi, idź do 5 znajdź otwarcia, które są ograniczeniami naszej karty, idź do 6 wyznacz odzywki, które są ograniczeniami naszej karty jeśli jest po pierwszej rundzie wyznacz karty przeciwników, idź do 7, jeśli nie idź do 9 sprawdź maksymalną liczbę lew jaką ugramy dla wszystkich możliwych wariantów uwzględniając zgłoszone odzywki (max 20) wybierz odzywki, które są <= niż liczba lew możliwa do ugrania na danym atu, idź do 10 wybierz odzywki dopuszczalne z ograniczeń oraz większe, niż ostatnia odzywka jeśli mamy dopuszczalne odzywki wybierz tą najbliższą (szacowanie punktowe z ograniczeń) , idź do 12, jeśli nie idź do 11 ustaw PAS jako odzywkę wybraną zgłoś odzywkę Licytacja
Licytacja – następna odzywka Wyniki: Przy małej liczbie wprowadzonych znaczeń odzywek, szybko pasuje Jeśli są wprowadzone otwarcia do poziomu 4 (texas) wówczas szybko podbija w górę (licytuje otwarciami) – system zbliżony do naturalnego Przy wprowadzeniu pełnych sekwencji odgaduje co mówimy i licytuje poprawnie, istnieją sytuacje, w których się gubi i podbija stawkę Niestety nie udało mi się zmusić algorytmu do stworzenia generalizacji, opiera się raczej o kanony licytacyjne, nie szuka nowych rozwiązań Licytacja
Licytacja - podsumowanie Licytacja jest wieloznaczna 3 z 4 problemów trzeba rozwiązać Nie ma rozwiązań szybkich, są tylko pamięciochłonne Dobrze by było jakoś nauczać Licytacja
Licytacja – DD solver Sieć: Ustalenia parametrów do nauczania: 52x4-26x4-26-13-4 z czego warstwa 52x4 jest warstwą wejściową Dane do nauczania biblioteka GIB 717 102 rozdania z wyliczonymi optymalną liczbą lew (20 przypadków) Sieć Feed Forward Nauczanie Backpropagation z stępującym krokiem Ustalenia parametrów do nauczania: 25000 losowo wybranych próbek 85% nauczanych 5% weryfikacja Testowane kroki r0=(0.005,0.01,0.025, 0.05, 0.1, 0.25 oraz zstępujący ustalany zgodnie z wzorem r=r0/(r0+krok) ) Licytacja
Licytacja – DD solver Nauczanie finalne: Wyniki końcowe: 82% z wszystkich losowo wybranych próbek (nie powtarzalne) 5% weryfikacja (nie powtarzalne z wyższymi) Krok zstępujący zgodny z wcześniej podanym wzorem zaczynając od r0=0.1 Wyniki końcowe: błąd 45% błąd 15% różnica < +/-1 lewa 1-3% różnica < +/- 2 lewe Czas nauczania końcowego: 11 min na iterację 600 iteracji Licytacja
Licytacja – wyniki nauczania Wykres pokazuje zależność ilości poprawnych wyników od iteracji w procesie nauczania Licytacja
Licytacja – wyniki nauczania Wykres pokazuje zależność ilości poprawnych wyników od iteracji w procesie nauczania gdzie różnica liczby lew <= 1 Licytacja
Licytacja – wyniki nauczania Wykres pokazuje zależność ilości poprawnych wyników od iteracji w procesie nauczania gdzie różnica liczby lew <= 2 Licytacja
Licytacja – DD solver Nauczanie finalne: 82% z wszystkich losowo wybranych próbek (nie powtarzalne) 5% weryfikacja (nie powtarzalne z wyższymi) Wyniki końcowe dla nauczania trefli: błąd 45% (wyjątek „bez atu”) błąd 15% różnica < +/-1 lewa 1-3% różnica < +/- 2 lewe Wyjątek stanowi „bez atu”, prawdopodobnie inny parametry uczące Czas nauczania końcowego: 11 min na iterację 600 iteracji Licytacja
Program w ramach pracy magisterskiej Działający program Program w ramach pracy magisterskiej
Literatura wprowadzająca [1] „GIB:Imperfect Information in a Computationallu Challenging Game” Mathew L. Ginsberg, Journal of AI Research 2001 [2] „Control Strategies in HTN Planning” - Dana S. Nau, Stephen J. J. Smith, Kuthluhan Erol, IAAI Conference 1998 [3] „Hand Evaluation in the Game of Contract Bridge” Richard Cowan, Sydney 1986 [4] „Artificia Neural Networks for Solving Double Dummy Bridge Problems” Krzysztof Mossakowski, Jacek Mańdziuk, ICAISC 2004 [5] „Heurystyki w stochastyczno-statystycznym modelu gry w brydża” - Andrzej Matuszewski, IPIPAN 2007 (przed publikacją) Literatura wprowadzająca