Sieci neuronowe a algorytmy genetyczne w grach takich jak Tic Tac Toe?


9

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ć?


2
Witamy w AI! Doskonałe pytanie imho.
DukeZhou

Odpowiedzi:


7

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:

  • Zdefiniuj funkcję heurystyczną, która odbiera dane wejściowe stanu tablicy (sekwencja 0,1,2 dla pustego, czarnego, białego) i wyświetla wartość „dobroci” stanu tablicy. Sieć neuronowa jest naszą funkcją heurystyczną.
  • Zakładając, że ruchy w tej grze są optymalne, wytrenuj różnicę między obecnie najlepszym ruchem (według aktualnych parametrów) a tym, który ruch mówi, że dane są najlepsze. W ten sposób definiujemy naszą funkcję błędu! W ten sposób minimalizujesz tę różnicę, tak aby ruch, który mówi twoja sieć neuronowa, był najsilniejszy, idealnie to, co mówią twoje dane gry, jest najsilniejsze (Optymalizację tej funkcji błędu można wykonać za pomocą propagacji wstecznej lub algorytmu genetycznego).
  • Idealnie, do tego momentu możesz teraz używać swojej („silnej”) funkcji oceny opartej na sieci neuronowej do ewaluacji ruchu drzewa gry zamiast heurystyki na stałe.

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 .


2
Fajna uwaga na temat gomoku jako rozwiązanej gry. Ułatwia to sprawdzenie siły sztucznej inteligencji (tzn. Czy rozwiązuje grę i wyraża idealną grę, czy też gra po prostu bardziej optymalnie niż przeciwnik, jak w przypadku AlphaGo.)
DukeZhou
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.