Małgorzata Ruszkiewicz, 88479
Marcin Średnicki, 88484
Wrocław, 24 czerwca 2001
 
Licytacja brydżowa - sprawozdanie.
Pracownia ze Sztucznej Inteligencji
 
1. Definicja problemu.

Brydż jest grą niesłychanie logiczną. Zasady postępowania, wyciąganie wniosków czy to w licytacji czy też w rozgrywce można ująć w dość jasne, precyzyjne reguły. Tworzy to szerokie pole dla wszelkich prób komputerowych rozwiązań. Ilość tych reguł jest co prawda ogromna, ale to tym bardziej powinno zachęcać do stworzenia sztucznego, doskonałego pod każdym względem brydżysty. Stworzono już wiele implementacji - rozgrywane są nawet mistrzostwa świata programów komputerowych - z których niejedna jest w stanie konkurować z najlepszymi graczami. Gdyby brydż był oparty jedynie na prawdopodobieństwie, lub chociaż stopień tej zależności byłby większy, jak na przykład w grach hazardowych typu oczko, ludzie - brydżyści już w tej chwili nie byliby w stanie konkurować z maszynami. Na szczęście w tak wspaniałych grach, jak opartym na przebojowości, pewności siebie, znajomości psychologii i wreszcie na samym końcu na prawdopodobieństwie pokerze czy właśnie brydżu, komputer nie jest (i mamy nadzieję że jeszcze długo nie będzie) w stanie nawiązać równorzędnej walki z człowiekiem.

Naszym celem było ujęcie licytacji brydżowej w "apetyczne" dla maszyny reguły i napisanie poprawnie, zgodnie z zasadami licytującego programu komputerowego. Dla danych dotychczasowej licytacji oraz własnej ręki komputer miał wygenerować najlepszą, oczywiście według niego, odzywkę. Testować nasz program mieliśmy za pomocą testów licytacyjnych zamieszczanych w fachowej literaturze.

2. Sposoby rozwiązania a specyfika problemu.

Jak można podchodzić do problemu brydża, a w szczególności licytacji brydżowej? Dwie ważne metody sztucznej inteligencji, mianowicie algorytm minimax i algorytmy heurystyczne niestety nie znajdują tu zastosowania. Doskonały do np. szachów minimax potrzebuje pełnej informacji - w szachach wszystko jest odkryte. Spróbujmy jednak zagrać w wariant szachów w którym każdy może zasłonić jedną figurę przed przeciwnikiem, a już w wynikach zastosowania algorytmu minimax pojawi się prawdopodobieństwo. W brydżu nawet jeśli spróbowalibyśmy uzależnić wyniki od prawdopodobieństwa, to niekoniecznie otrzymany wynik będzie optymalny albo chociaż bliski optymalności. Z tej samej przyczyny do rozwiązania problemu licytacji nie można używać metod heurystycznych, widząc tylko swoje karty nie można bowiem odpowiedzieć na pytanie do jakiego kontraktu należy dojść, a nawet jeśli spróbujemy to określić to i tak nie musimy mieć racji. Najczęściej bowiem opłacalna jest wpadka bez trzech z kontrą przed partią kiedy przeciwnikom idzie popartyjna końcówka. Ale czy na pewno ta końcówka wychodzi? A może my wcale nie powinniśmy grać w obronie? A może przegramy bez czterech i w ogóle nie powinniśmy się odzywać? A może ...

Niestety nie znaleźliśmy odpowiedniej ilości informacji o istniejących rozwiązaniach. Autorzy komercyjnych programów grających w brydża nie publikują zastosowanych metod.

3. Nasze rozwiązanie.

Zdecydowaliśmy się spróbować napisać oparty na regułach system ekspercki wykorzystując język CLIPS. System powinien najpierw zanalizować dotychczasową licytację i na jej podstawie stworzyć przypuszczalny model rąk przeciwników, partnera a także swojej - odzywka bowiem jest uzależniona nie tylko od tego co wiem o pozostałych rękach, ale również od tego co partner (i przeciwnicy) wiedzą o mojej ręce.

Na tym etapie podstawowym problemem jest analiza dotychczasowej licytacji. Sposób działania takiego systemu najłatwiej można pokazać na przykładzie licytacji jednostronnej. Załóżmy więc, że mamy przeanalizowany początkowy fragment licytacji. Przeanalizowany, tzn. na podstawie wyciągniętych wniosków zbudowaliśmy sobie obraz ręki partnera i naszej (nie "patrząc" na razie w nasze karty). Przeszukując reguły rządzące licytacją jednostronną próbujemy znaleźć taką, która odpowiada następnej odzywce w kontekście dotychczas zanalizowanych. Znalezioną regułę wykorzystujemy do zmodyfikowania zapamiętanych wcześniej informacji o rękach.

Gdy przeanalizowaliśmy już całą licytację, należy dokonać operacji odwrotnej, tzn. (z pewnym przybliżeniem) wykorzystując zebrane dane dobrać odzywkę. Musimy jednak wziąć pod uwagę następujące rzeczy:

Odmienne prawa rządzić będą oczywiście licytacją dwustronną, która dodatkowo jest nieporównywalnie trudniejsza i w opisie i w interpretacji. Schemat jednak będzie podobny, z tym że dokonywać będziemy również opartych na prawdopodobieństwie wyborów typu "co jest bardziej opłacalne".

4. Podsumowanie.

Niestety nasz początkowy entuzjazm został szybko rozwiany. Choć schemat powyższy wydaje się przejrzysty, elegancka implementacja z wieloma niewątpliwymi poprawkami jest niesłychanie pracochłonna. Niewidoczny powyżej stopień skomplikowania jest w rzeczywistości ogromny. Zbagatelizowaliśmy niepowodzenie naszych poprzedników, ale później niestety doszliśmy do wniosku że napisanie "lepszego" systemu, takiego jak wyobrażaliśmy sobie na początku, jest ponad nasze możliwości czasowe i prawdopodobnie ponad możliwości dwójki projektantów - programistów w rozsądnym czasie.