Problemy z najniższym spośród równych kontraktów minimaksowych w MiniMaxDOS ============================================================================ *Uwaga: poniższe problemy dotyczą komponentu BigDeal o nazwie MiniMaxDOS, piszącego bezpośrednio do PBN dane analizy w widne w formatach JFR. Implementacja minimaksa w samym BigDeal, używana do wyświetlania/drukowania danych analizy z tabelami rozkładów, jest niezależna od poniższych.* MiniMaxDOS zazwyczaj przyjmuje, że ze wszystkich równie opłacalnych kontraktów, minimaksem jest najniższy. Zasada ta przestaje jednak działać, jeśli liczba lew do wzięcia różni się między rozgrywką z obu rąk tej samej strony. Poniżej znajdują się przykłady z zestawu testowego. Przykład 1 ----------
W/nikt ♠ K7
♥ AK87
♦ A87
♣ AJ52
♠ 9843
♥ 53
♦ QT4
♣ Q983
♠ AJ5
♥ QT9
♦ 9532
♣ T76
♠ QT62
♥ J642
♦ KJ6
♣ K4
NT
N1010111010
S1110111010
W23233
E23233
N realizuje 4NT, S realizuje 5NT. E i W nie mają opłacalnej obrony dla 3NT z ręki N/S. `MiniMaxDOS` ustala `4NT S, +460` jako minimaks, zamiast `3NT N/S, +460`. Przykład 2 ----------
N/EW ♠ Q52
♥ KQ974
♦ AQ
♣ AKT
♠ T73
♥ 32
♦ JT5
♣ Q8764
♠ AKJ94
♥ AT6
♦ K8642
♣ ==
♠ 86
♥ J85
♦ 973
♣ J9532
NT
N83947
S33837
W410496
E410496
E/W ugrywają 4 pik. 4 NT i 5 kier są bez 2 z ręki N, lecz nie z ręki S. `MiniMaxDOS` ustala `5Hx N, -300` jako minimaks, zamiast `4NTx N, -300`. Przykład 3 ----------
W/EW ♠ Q
♥ KT97
♦ J953
♣ 9754
♠ 94
♥ AQ642
♦ Q72
♣ T83
♠ AKJT3
♥ J3
♦ T64
♣ AQ2
♠ 87652
♥ 85
♦ AK8
♣ KJ6
NT
N44567
S44576
W88756
E98766
E ugrywa 3NT. N ma opłacalną obronę w 4 trefl (ale nie 4 karo), a S ma opłacalną obronę w 4 karo (ale nie 4 trefl), obie bez trzech. `MiniMaxDOS` ustala `4Dx S, -500` jako minimaks, zamiast `4Cx S, -500`. Przykład 4 ----------
W/nikt ♠ J5
♥ T872
♦ KT76
♣ K32
♠ KT93
♥ K54
♦ A
♣ AT986
♠ Q87642
♥ 9
♦ 84
♣ Q754
♠ A
♥ AQJ63
♦ QJ9532
♣ J
NT
N631093
S6310103
W6103310
E6103310
E/W ugrywają 4 pik. Zarówno N, jak i S mogą bronić 5 kierami, bez jednej, lecz S może bronić również 5 karami, bez jednej. `MiniMaxDOS` ustala `5Hx S, -100` jako minimaks, zamiast `5Dx S, -100`. Przykład 5 ----------
E/EW ♠ 9865
♥ Q98
♦ AJT4
♣ 84
♠ KQ732
♥ AJ2
♦ K53
♣ AK
♠ J4
♥ KT76
♦ Q98
♣ J762
♠ AT
♥ 543
♦ 762
♣ QT953
NT
N33335
S33335
W10101098
E991088
W ugrywa 4NT, E ugrywa 3NT. N/S nie mają opłacalnej obrony na poziomie 4. `MiniMaxDOS` ustala `4NT W, -630` jako minimaks, zamiast `3NT W, -630`. Podsumowanie ------------ Przykład 5 jest wytłumaczalny. Wyszczególnianie 4NT jako minimaksa może być użyteczne do podkreślenia różnicy liczby lew branych z obu rąk. Niestety, nie tłumaczy to Przykładu 1, gdzie raportowany jest konktrakt o jeden poziom niższy od najwyższego wychodzącego, a kontrakt o dwa poziomy niższy - już nie. Zachowanie to jest niespójne z Przykładem 4, gdzie kontrakt, dla którego zachodzą różnice liczby lew nie jest wyszczególniony jako minimaks, a Przykłady 2-3 pokazują, jak problematyczne może być takie podejście, gdy więcej niż jeden kontrakt (z punktu widzenia poziomu i miana) różni się liczbą lew z obu rąk. Wskazuje to w związku z tym nie na zgrabną funkcjonalność, lecz na niewielkie odstępstwa od przyjętych konwencji. Double Dummy Solver rozwiązuje Przykłady 1 i 5 poprawnie (spójnie), a Przykłady 2-4 go nie dotyczą, z racji przyjmowania najwyższej opłacalnej obrony jako minimaks. Dane PBN dla przykładów ----------------------- ``` [Board "Example 1"] [Dealer "W"] [Vulnerable "None"] [Deal "N:K7.AK87.A87.AJ52 AJ5.QT9.9532.T76 QT62.J642.KJ6.K4 9843.53.QT4.Q983"] [Board "Example 2"] [Dealer "N"] [Vulnerable "EW"] [Deal "N:Q52.KQ974.AQ.AKT AKJ94.AT6.K8642. 86.J85.973.J9532 T73.32.JT5.Q8764"] [Board "Example 3"] [Dealer "W"] [Vulnerable "EW"] [Deal "N:Q.KT97.J953.9754 AKJT3.J3.T64.AQ2 87652.85.AK8.KJ6 94.AQ642.Q72.T83"] [Board "Example 4"] [Dealer "W"] [Vulnerable "None"] [Deal "N:J5.T872.KT76.K32 Q87642.9.84.Q754 A.AQJ63.QJ9532.J KT93.K54.A.AT986"] [Board "Example 5"] [Dealer "E"] [Vulnerable "EW"] [Deal "N:9865.Q98.AJT4.84 J4.KT76.Q98.J762 AT.543.762.QT953 KQ732.AJ2.K53.AK"] ```