Нейронні мережі проти генетичних алгоритмів у таких іграх, як Tic Tac Toe?


9

В даний час я роблю проект, який стосується створення AI для гри в гру Gomoku (Це як tic tac toe, але грається на дошці 15 * 15 і для перемоги потрібно 5 підряд). Я вже успішно реалізував ідеальний інтелектуальний інтелект AI, використовуючи навчання Q та маючи стани / дії ігор, збережені в таблиці, але для дошки 15 * 15 можливі стани гри стають занадто великими, і реалізуйте цей проект.

Моє запитання: чи слід використовувати нейронні мережі або генетичні алгоритми для цієї проблеми? А точніше, як я повинен це здійснити?


2
Ласкаво просимо до AI! Відмінне питання imho.
DukeZhou

Відповіді:


7

Для гомоку здається, що це надмірно використовувати нейронні мережі або генетичний алгоритм, оскільки обидва займають певний час і частіше, ніж ні, не йдіть так, як вам хочеться. Дерево ігор gomoku досить велике, але ви можете отримати гідний AI від мінімаксу, обрізки дерев ігор та хорошої евристичної функції (що включає підрахунок половини та повних 2s, 3s, 4s, ... тощо) на відміну від картографування з повного простору.

Якщо ви не знайомі з альфа-бета-обрізкою та minimax, див. Https://www.cs.cornell.edu/courses/cs312/2002sp/lectures/rec21.htm

Якщо ви дійсно хочете використовувати нейронні мережі або генетичні алгоритми, ви можете отримати досвід навчання. Що стосується нейронних мереж, один із способів зробити це:

  • Визначте евристичну функцію, яка отримує вхід стану дошки (послідовність 0,1,2 для порожнього, чорного, білого) та виводить значення "доброти" стану плати. Нейронна мережа - це наша евристична функція.
  • Припускаючи, що рухи в цій грі є оптимальними, усуньте різницю між найкращим кроком на даний момент (за вашими поточними параметрами) та тим, що ваш рух говорить, що найкращий. Ось як ми визначаємо нашу функцію помилок! Таким чином, ви мінімізуєте цю різницю, щоб те, що рухається вашою нейронною мережею, є найсильнішим - в ідеалі найкращим є те, що, як кажуть ваші ігрові дані, (оптимізація цієї функції помилок може бути здійснена за допомогою розмноження або генетичного алгоритму).
  • В ідеалі до цього моменту тепер ви можете використовувати вашу ("сильну") функцію оцінки нейронної мережі для оцінювання переміщення вашої ігрової ялинки замість твердо кодованої евристики.

Звичайно, це лише один спосіб, і вам потрібно спочатку знайти дані гри.

Побічна примітка, що застосовує генетичний алгоритм, може відбуватися кількома способами, наприклад, оптимізацією параметрів у нейронній мережі, як згадувалося вище, або пошуком дерева ігор, тому переконайтеся, що вам зрозуміло, як ви визначаєте для нього налаштування проблеми! Те саме стосується альтернативних способів застосування нейронної мережі.

Нарешті, корисно знати, що гомуку вирішено. Дивіться /programming/6952607/ai-strategy-for-gomoku-a-variation-of-tic-tac-toe про думки та ідеї інших.


2
Приємний момент про гомоку як розв’язану гру. Це полегшує перевірку сили AI (тобто, чи вирішує вона гра та виражає ідеальну гру, чи просто грає більш оптимально, ніж суперник, як у випадку з AlphaGo.)
DukeZhou
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.