Как создать разумный ИИ?

11

Я создаю логическую игру, основанную на игре Fox and Hounds. Игрок играет на лисе, а ИИ - на гончих. (насколько я вижу) Мне удалось сделать ИИ идеальным, поэтому он никогда не проигрывает. Оставить это как таковое не будет очень весело для игроков-людей.

Теперь я должен заглушить ИИ, чтобы человек мог победить, но я не уверен, как. Текущая логика ИИ основана на сопоставлении с образцом - если я введу случайные ходы, которые заставят доску выйти из пространства образца, ИИ, скорее всего, будет играть глупо до конца игры.

Какие-нибудь идеи, как замять ИИ таким образом, чтобы не перейти от «гениальности» к «совершенно глупости» за один ход?

Милан Бабушков
источник
Таким образом, вы нашли и реализовали оптимальную, всегда выигрышную стратегию. Почему бы не перейти к немного более сложным играм сейчас? Или как насчет задачи: реализовать стратегию, которая всегда проигрывает , независимо от того, что делает другой игрок. Смотрите также: Проигрышные шахматы / антихессы
Мартин Сойка
Может быть, вы захотите взглянуть на мой ответ на этот другой вопрос: gamedev.stackexchange.com/questions/12858/…
Tyn
Лис и гончие не такие сложные, как шахматы. Один неверный ход, и ИИ точно проигрывает. Очень легко заставить ИИ выглядеть глупым. Тот факт, что я решил это, используя ручку и бумагу и часы стратегического мышления, не означает, что мои игроки будут делать то же самое.
Милан Бабушков

Ответы:

7

Многие реализации могут привести к случайному взвешенному шансу для ходов - скажем, к шансу сделать оптимальный ход и к шансов сделать неоптимальный ход. Определение того, насколько неоптимальным является движение, может быть очень сложной задачей, но также приведет ваш ИИ к принятию гораздо более разумных, на первый взгляд, решений.

Важное примечание: независимо от уровня сложности, было бы неплохо, чтобы ИИ упустил шанс немедленно выиграть игру. Если есть возможность сделать ход, который бы закончил игру на этом ходу, его всегда следует брать. Если нет, это абсолютно разрушит впечатление игрока о том, как действует ИИ.

Билл
источник
Благодарю. Я решил позволить этому играть умно для всех простых образцов. Есть два сложных паттерна, где путь игрока к свободе не так легко увидеть, поэтому я создал дополнительные паттерны, которые заставляют ИИ проигрывать, играя ходами, которые будут напоминать начинающему игроку-человеку в такой позиции. В начале игры я случайным образом переключаю выигрышную комбинацию, теряя одну для таких позиций.
Милан Бабушков
10

Поскольку это кажется «решенной» игрой, единственный ответ - компьютер должен делать преднамеренно плохие ходы.

Быстрое решение может состоять в том, чтобы рассчитать лучший ход, а затем рассчитать еще один законный ход, который может быть не очень хорошим. Рейтинг сложности ИИ будет измеряться в процентах вероятности того, что он выберет другой не очень хороший ход, а не совершенный ход.

  • Сложно - 90% хороших ходов
  • Тяжело - 70% хороших ходов
  • Нормальный - 50% хороших ходов
  • Простой - 20% хороших ходов
  • Был брошен как ребенок - <5% хороших ходов
  • Hotdog - Все Случайные
Адриан Сили
источник
10
Вероятно, это хорошая идея, но в конечном итоге вы получите умственно отсталого ИИ, если он намеренно делает неправильные шаги. Вдобавок к макушке головы я сначала делал проход для «законных» ходов, затем применял веса к каждому ходу и упорядочивал их по весу, причем самый высокий вес - лучший ход. Затем вы можете заставить RNG сходиться к лучшим движениям в зависимости от сложности.
Джонатан Коннелл
4
Я согласен с @Jonathan Connell. Подумайте: прятаться за ящиками, прятаться за взрывоопасными бочками, прятаться между ящиками и активной гранатой. ИИ должен оценить, насколько плох этот ход, а лучший ИИ делает лучшие ходы чаще. ИИ не будет великим или тяжелым, если в 70% случаев он стреляет в вас и в 30% случаев он взрывается. Это будет просто весело.
doppelgreener
2
@Adrian Seeley Ваш последний комментарий действительно касается самой большой проблемы; для меня человек, играющий против ИИ, всегда инстинктивно находит причины своего выбора, даже если они теоретически абсолютно случайны. Например, в настольной игре этому можно противостоять, ограничивая количество итераций в предсказании ходов, так что, может быть, это может быть хорошим решением в разрешимой игре?
Джонатан Коннелл
2
Я согласен с обоими Джонатанами, но я даю этот ответ +1 для «Был брошен как ребенок» и «Хотдог»
thedaian
2
@Jonathan Connell: Вы должны опубликовать свое предложение / решения в качестве ответа. Это заслуживает некоторых голосов.
bummzack