Jest to prosty przypadek problemu wielorękiego bandyty . Jak zauważyłeś, chcesz zrównoważyć informacje, które gromadzisz, próbując nieznanej monety, gdy uważasz, że w krótkim okresie jest ona nieoptymalna, z wykorzystaniem posiadanej wiedzy.
W klasycznym problemie wielorękiego bandyty nie ma pewności co do prawdopodobieństwa dla obu monet. Jednak tutaj otrzymujesz informację, że znasz wartość monety A, więc po odwróceniu A nie otrzymasz żadnych informacji. W rzeczywistości równie dobrze możesz zignorować stochastyczną naturę A i założyć, że dostajesz płaską za wybór A. Oznacza to, że jeśli kiedykolwiek jest słuszne rzucić monetą A, to powinieneś ciągle przewracać A. po prostu chcę znaleźć optymalną regułę zatrzymania, kiedy należy zrezygnować z B. To zależy od wcześniejszego rozkładu parametru dla B i liczby prób. Przy większej liczbie prób odkrywanie ma większą wartość, więc testowałbyś B więcej.1/2
Ogólnie rzecz biorąc, myślę, że nie można uciec od problemu z dynamicznym programowaniem, chociaż mogą istnieć specjalne przypadki, w których można znaleźć i sprawdzić optymalną strategię w prostszy sposób.
Z mundurem przełożonym, tutaj powinieneś przestać:
(0 heads,3 tails),(1 head,5 tails),(2 heads,6 tails),(3,7),(4,8),...(31,35),(32,35),(33,36),(34,37),...(41,44),(42,44),...(46,48),(47,48),(48,49),(49,50) .
W ramach tej strategii spodziewasz się zebrać głów.61.3299
Użyłem następującego kodu Mathematica do obliczenia akcji:
Clear[Equity];
Equity[n_, heads_, tails_] := Equity[n, heads, tails] =
If[n == 0, heads,
Max[1/2 + Equity[n - 1, heads, tails],
(heads + 1)/(heads + tails + 2) Equity[n - 1, heads + 1, tails] +
(tails + 1)/(heads + tails + 2) Equity[n - 1, heads, tails + 1]
]
]
Dla porównania, heurystyka próbkowania Thompsona (którą Cam Davidson Pilon uznał za optymalną) daje średnio 60,2907 głów, niższą o 1,03915. Problem z próbkowaniem Thompsona polega na tym, że czasami pobiera próbki B, gdy masz wystarczającą ilość informacji, aby wiedzieć, że nie jest to dobry zakład, i często marnuje szanse na wcześniejsze pobranie próbki B, gdy informacja jest najbardziej warta. W tego rodzaju problemach prawie nigdy nie jesteś obojętny między opcjami i istnieje czysta optymalna strategia.
tp[heads_, tails_] := tp[heads, tails] =
Integrate[x^heads (1 - x)^tails / Beta[heads + 1, tails + 1], {x, 0, 1/2}]
Clear[Thompson];
Thompson[flipsLeft_, heads_, tails_] := Thompson[flipsLeft, heads, tails] =
If[flipsLeft == 0, heads,
Module[{p = tp[heads, tails]},
p (1/2 + Thompson[flipsLeft-1,heads,tails]) +
(1-p)((heads+1)/(heads+tails+2)Thompson[flipsLeft-1,heads+1,tails] +
((tails+1)/(heads+tails+2)) Thompson[flipsLeft-1,heads,tails+1])]]