210 likes | 471 Views
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 Licytacja Ocena liczby lew (DD problem) Rozgrywka Literatura. Przypomnienie. Brydż w informatyce
E N D
Teoretyczne i praktyczne aspekty realizacji komputerowego systemu do licytacji i rozgrywki brydzowej - czesc II SzymonPiądłowski
Agenda • Przypomnienie • Brydż w 3 częściach • 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łowskina Wydziale MiNI promotor prof. nzw. dr hab. Jacek Mańdziuk Historia
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) • 40punktó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 • 38odzywek 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 x1028 – rozdań kart • 5,55 x1044 – 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ć: • 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: • 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
Działający program Program w ramach pracy magisterskiej
Literatura [1]„GIB:ImperfectInformationin a ComputationalluChallengingGame” Mathew L. Ginsberg, Journal of AI Research 2001 [2] „ControlStrategiesin HTN Planning” - Dana S. Nau, Stephen J. J. Smith, KuthluhanErol, IAAI Conference 1998 [3] „HandEvaluationintheGame of Contract Bridge” Richard Cowan, Sydney 1986 [4] „ArtificiaNeural 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