Як створити розумний ШІ?


11

Я створюю логічну гру, засновану на грі Fox and Hounds. Гравець грає в лисицю, а AI грає в гончаків. (наскільки я бачу) мені вдалося зробити AI ідеальним, тому він ніколи не програє. Залишити це як таке не було б дуже цікаво для гравців людини.

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

Будь-які ідеї, як притупити ШІ таким чином, що це не переходить від "генія" до "зовсім німого" за один хід?


Так ви знайшли та реалізували оптимальну, завжди виграшну стратегію. Чому б зараз не перейти на трохи складніші ігри? А як щодо виклику: реалізуйте стратегію, яка завжди програє , незалежно від того, що робить інший гравець. Дивіться також: Втрата шахів / антихес
Мартін Сойка

Можливо, ви хочете поглянути на мою відповідь на це інше питання: gamedev.stackexchange.com/questions/12858/…
Tyn

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

Відповіді:


7

Багато реалізацій можуть призвести до випадкового зваженого шансу на переміщення - скажімо, шансу зробити оптимальний крок і шансу зробити неоптимальний хід. Визначення того, наскільки неоптимальний хід - це може бути дуже хитрою проблемою, але також призведе ваш AI до прийняття набагато більш на перший погляд розумних рішень.

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


Дякую. Я вирішив дозволити йому грати розумно для всіх простих моделей. Є два складних шаблони, де шлях гравця до свободи не видно легко, тому я створив додаткові зразки, які змушують AI програти, граючи в рухи, які будуть нагадувати початківця людини в такому положенні. На початку гри я випадковим чином перемикаю виграшну схему, втрачаючи одну для таких позицій.
Мілан Бабушков

10

Оскільки це, здається, «вирішена» гра, єдина відповідь - комп’ютер повинен робити навмисно погані кроки.

Швидким рішенням може бути обчислення найкращого кроку, а також обчислення іншого законного кроку, який може бути не таким хорошим. Рейтинг складності ШІ вимірюється відсотковою ймовірністю, коли він вибере інший не дуже хороший хід, за ідеальний хід.

  • Важко - 90% хороших рухів
  • Важкий - 70% хороших рухів
  • Нормальний - 50% хороших рухів
  • Простий - 20% хороших рухів
  • Упав як дитина - <5% хороших рухів
  • Хотдог - всі випадкові

10
Це, мабуть, гарна ідея, але ви б закінчилися із затримкою ШІ, якщо вона навмисно робить неправильні рухи. Вгорі голови я спершу зробив пропуск для "законних" рухів, потім застосував би ваги до кожного ходу і впорядкував їх за вагою, найвищий вага - найкращий хід. Потім ви можете зробити зближення RNG до кращих рухів залежно від складності.
Джонатан Коннелл

4
Я згоден з @Jonathan Connell. Поміркуйте: ховатися за ящиками проти ховатися за вибуховими бочками проти ховатися серед ящиків та активної гранати. ШІ повинен оцінити, наскільки поганий хід, з кращим ІІ робити кращі рухи частіше. ШІ не буде великим чи важким, якщо 70% часу, коли він стріляє у вас, і 30% часу, коли він вибухає. Це буде просто весело.
doppelgreener

2
@Adrian Seeley Ваш останній коментар дійсно стосується найбільшої проблеми; для мене людина, що грає проти ШІ, завжди інстинктивно знайде обґрунтування своїх виборів, навіть якщо вони теоретично повністю випадкові. Наприклад, у настільній грі це можна протидіяти обмеженню кількості ітерацій у передбаченні кроків, тож, можливо, це може бути хорошим рішенням у вирішуваній грі?
Джонатан Коннелл

2
Я погоджуюся з обома Джонатанами, але я даю цю відповідь +1 за "Був скинутий як дитина" та "
Хотдог

2
@Jonathan Connell: Ви повинні опублікувати свою пропозицію / рішення як відповідь. Це заслуговувало б на деякі надбавки.
bummzack
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.