Deep Finesse nieomylny, ale nie do końca

Deep Finesse, program Williama Baileya, dokonujący szybkiej analizy rozgrywki w otwarte karty, stał się dla wielu brydżystów wyrocznią w (czasami niebanalnych) sporach na temat, czy dany kontrakt idzie. Wszyscy też przyzwyczailiśmy się do wyliczanych za jego pomocą i drukowanych wraz z rozkładami tabelek z możliwą do wzięcia ilością lew.

Podstawę działania Deep Finesse’a i innych współczesnych programów dokonujących analizy gry w otwarte karty (jak np. DDS, bridgify, Bridge Studio, czy Bridge Calculator - ten ostatni jest mojego autorstwa) stanowi algorytm minimaksowy. W skrócie: działanie algorytmu Min-Max polega tu na przeanalizowaniu wszystkich możliwych przebiegów gry i wybraniu, dla każdej sytuacji, zagrania maksymalizującego (jeśli w danej sytuacji decyzja należy do rozgrywającego) lub minimalizującego (jeśli decyzje ma podjąć któryś z obrońców) ilość lew wziętych przez zapowiadającego. Oczywiście, przeliczenie w ten sposób (ogromnej liczby) wszystkich możliwych do osiągnięcia w danym rozdaniu sytuacji i zagrań nie jest możliwe w rozsądnym czasie. Dlatego w programach stosowane są różne rozwiązania usprawniające (przyspieszające) Min-Max (niewpływających jednak na wynik obliczeń). Dzięki nim zdecydowana większość układów nie jest nigdy analizowana. Są to zarówno algorytmy dość ogólne (np. alpha-beta, MTD, partition search, tablica transpozycji), jak i (często autorskie) rozwiązania dedykowane dla brydża (np. wśród zagrań kartami z sekwensu wystarczy sprawdzić tylko jedno, gdyż inne są mu równoważne).

Duża ilość usprawnień znacznie przyspiesza obliczenia, ale także komplikuje kod źródłowy programu. Zwiększa szansę wystąpienia w nim pomyłek, a co za tym idzie złych wyników podawanych przez program. Niekiedy błędy ujawniają się na tyle rzadko, że potrzeba wielu lat by je odkryć. Jeden, po prawie 10 latach od wydania ostatniej wersji programu, został znaleziony w samym Deep Finessie w trakcie czwartych Otwartych Mistrzostw Europy w San Remo w 2009 roku. Szczegóły znajdują się w artykule Davida Sterna opublikowanym w biuletynie mistrzostw (nr. 4, str. 12). Z wyjaśnień autora Deep Finesse’a (biuletyn, nr. 5, str. 15) wynika, iż błąd znajdował się w algorytmie analizującym rozgrywkę pojedynczego koloru i mógł się ujawnić tylko w grach atutowych przy specyficznym układzie atutów i niektórych kolorów bocznych, np.:

       A 5 3 2
Q 7 4          9 6
      K J 10 8

Jeśli atuty leżały jak na diagramie, program omyłkowo zakładał, że możliwe jest całkowite odatutowanie przeciwników kończące się utrzymaniem w stole (asem). Umożliwiło by to ściągnięcie fort w kolorze bocznym, w którym np. wszyscy poza dziadkiem mogą mieć renons. Lewy przeciwnik może jednak zniwelować taką możliwość nadbijając damą przy pierwszej nadarzającej się okazji. Wymusi tym samym zakończenie całkowitego odatutowania w ręku i odegranie wspomnianych fort nie będzie możliwe bez innego dojścia do stołu.

William Bailey zapowiedział rychłe poprawienie swojego programu.

Źródła: biuletyny czwartych Otwartych Mistrzostw Europy w San Remo (2009), nr. 4 (str. 12) i 5 (str. 15)