Próbuję zrozumieć, jak działa algorytm MCTS i jak zaimplementować go w grze karcianej, aby ulepszyć silnik AI.Monte Carlo z UCB zastosowane do złożonej gry karcianej
Przeczytałem stronę internetową mcts.ai/ oraz wiele artykułów na ten temat, w tym jedną, która pokazuje pewne wyniki dotyczące powodzenia stosowania Monte Carlo Search z UCB w AI dla gry w karty Magic, czyli mniej więcej co Muszę to zrobić, ale mam problem ze zrozumieniem niektórych punktów i jak je zastosować, aby rozwiązać to, czego potrzebuję. Nie mam zbyt dużego doświadczenia w matematyce, więc gubię się, gdy dokumenty tłumaczą to wszystko skomplikowanymi formułami.
To co ja wymyślił do tej pory:
Biorąc pod uwagę stan gry (ręka użytkownika w grze), określić, które są wszystkie możliwe odtworzeń prawne, które mogą być wykonane to bym utworzyć listę węzłów (jeden reprezentujący każde odtworzenie) jako właściwość w głównym węźle MCTSTree z wynikiem każdego z nich (wartość wyniku?)
Symulacja kompletnej (do końca) rozgrywki dla każdej z tych legalnych gier z losowy gracz i zapisuje wynik w każdym węźle, niezależnie od tego, czy gracz wygrał, czy przegrał, aby mieć pełny obraz.
Oto gdzie „myślę” Monte Carlo + UCB powinny być stosowane:
Wybierz bardziej obiecującą grę (węzeł) używając UCB rekurencyjnie aw przypadku jego liści, poszerzyć ten węzeł z wszystkie możliwe gry ze swojego gameState.
Symulacja n odtwarzań z wybranego węzła, aż do osiągnięcia określonego czasu.
- Na tym etapie mam pewne wątpliwości ... mówię, że próbuję losowego playoutu z podaniem listy możliwych rozgrywek ... co mam zrobić z tym pierwszym wynikiem, aby kontynuować symulację? Czy powinnam sprawić, aby drzewo rosło?
Jak mogę cofnąć poprawność wyników?
Następnie
Mając na uwadze, że jest to złożona gra karty i mam tak wiele możliwych ruchów ... Czy to ma dobrą wydajność, wystarczy, że tak wielu Childs w dowolnym węźle?
Jeśli każda symulacja jest oparta na gamestacie, a gra zmienia stan za każdym razem, gdy gracz stosuje ruch, to skąd mogę wiedzieć, czy drzewo jest naprawdę przydatne?
Byłbym wdzięczny za pomoc w tej sprawie.
Dziękuję bardzo!
Ten dokument ankietowy (od marca 2012 r.) Przedstawia podstawowe ramy MCTS, a następnie omawia wiele wariantów: http://www.doc.ic.ac.uk/~sgc/papers/browne_ieee12.pdf Zawiera szczegóły dotyczące obliczania UCB. – jspcal
Dzięki @ jspcal! – magnoz