Obecnie pracuję nad projektem, który polega na stworzeniu sztucznej inteligencji do gry Gomoku (to jak kółko i krzyżyk, ale grałem na planszy 15 * 15 i wymaga 5 z rzędu, aby wygrać). Udało mi się już zaimplementować idealną sztuczną inteligencję w kółko i krzyżyk, używając Q uczenia się i przechowując stany / działania gry w tabeli, ale dla planszy 15 * 15 możliwe stany gry stają się zbyt duże, aby wdrożyć ten projekt.
Moje pytanie brzmi: czy powinienem używać sieci neuronowych lub algorytmów genetycznych dla tego problemu? A dokładniej, jak mam to wdrożyć?
Odpowiedzi:
W przypadku gomoku używanie sieci neuronowych lub algorytmu genetycznego wydaje się nieco przesadą, ponieważ zajmuje to trochę czasu, a częściej nie, nie idź tak, jak chcesz. Drzewo gry gomoku jest dość duże, ale można uzyskać przyzwoitą sztuczną inteligencję z minimax, przycinania drzewa gry i dobrej funkcji heurystycznej (w tym liczenie pół i pełnych 2, 3, 4 itd.) W przeciwieństwie do mapowania na całej przestrzeni.
Jeśli nie jesteś zaznajomiony z przycinaniem wersji alfa beta i minimaksem, zobacz https://www.cs.cornell.edu/courses/cs312/2002sp/lectures/rec21.htm
Jeśli naprawdę chcesz korzystać z sieci neuronowych lub algorytmów genetycznych, możesz skorzystać z możliwości uczenia się. W odniesieniu do sieci neuronowych jednym ze sposobów jest:
Oczywiście jest to tylko jeden sposób i najpierw musisz znaleźć dane gry.
Uwaga dodatkowa: zastosowanie algorytmu genetycznego może odbywać się na kilka sposobów, takich jak optymalizacja parametrów w sieci neuronowej, jak wspomniano powyżej, lub wyszukiwanie drzewa gry, więc upewnij się, że rozumiesz, w jaki sposób definiujesz ustawienie problemu! To samo dotyczy alternatywnych sposobów zastosowania sieci neuronowej.
Na koniec warto wiedzieć, że gomuku zostało rozwiązane. Zobacz opinie i pomysły innych osób na /programming/6952607/ai-strategy-for-gomoku-a-variation-of-tic-tac-toe .
źródło