Галерея

gw_the_kiss Дамба Трех Ущелий Великая библиотека civ5_pedia03

Анализ разработки ИИ AtG (часть III) — фронтовой и тактический ИИ

At the GatesСегодня мы заканчиваем нашу серию публикаций перевода статьи об основах разработки искусственного интеллекта (ИИ) в стратегии Джона Шейфера At The Gates. В первой части мы рассказали об общих очертаниях ИИ, основной стратегии и целевом ИИ. Во второй части был рассмотрен экономический и дипломатический ИИ. Для тех, кто ещё не читал этих материалов, рекомендуем начать своё знакомство с этой серией публикаций именно с них. Сегодня же мы поговорим о фронтовом и тактическом ИИ. Эта часть показалась мне наиболее интересной и, одновременно, сложной для понимания. Чтобы все детали сложились в целостную картинку, некоторые пункты пришлось вдумчиво прочитать несколько раз.

* * *

Фронтовой ИИ

Сводка

ФИИ распределяет Юниты и гарантирует, что они используются наилучшим способом.

Самой важной задачей ФИИ является исполнение прихотей ЦИИ. Он может захотеть, чтобы мы захватили Враждебную крепость, или организовали вторжение, или увеличили запасы Железа. И ФИИ должен выяснить, что для этого требуется и привести все детали в движение. С этого момента за дело берётся ТИИ и направляет конкретные шаги.

Как часть этой задачи, ФИИ организует Юниты во «Фронты», которые представляют собой группы, разделяющие одну цель. Силы вторжения должны организоваться на тайле X и начать наступление с тайла Y. Отечество делится на Зоны A, B и C, и каждая из них требует уникального уровня защиты, основываясь на угрозах и содержании самой зоны. Нам необходимо, по меньшей мере, Z, чтобы безопасно сопроводить Рабочего к вон тем Лошадям.

Детали

ФИИ создаёт один Фронт для:

1. Каждого Вторжения или Миссии, которых требует ЦИИ.

2. Каждой Зоны, которую игроку интересно защитить.

Фронт перестаёт существовать, когда ЦИИ отменяет все связанные с ним Цели, или когда ФИИ принимает решение покинуть Зону (при обороне). Защитные Фронты пересоздаются каждый ход, так как они не отслеживают постоянных данных.

Фронты, которые не являются Защитными, классифицируются или как Миссия, если у них есть конкретная цель (вроде захвата Враждебной крепости), или как Вторжение, если цели менее определены (разбей гуннов). Вместе две эти категории объединены в «В/М», так как они схожи между собой и отличаются от Защитных Фронтов.

Всем Фронтам присваивается Приоритет, который определяет распределение Юнитов. Для «В/М» Приоритет идентичен связанным с ними Целям. Приоритет Защитного Фронта основывается на общих связанных с обороной Целях ЦИИ («Обороняй отечество любой ценой!») и Ценностью конкретной Зоны (основывается на находящихся в Зоне активах, её стратегической полезности и т.д.).

Исполнение

ФИИ присваивает каждому «В/М» Клетку Сбора, на которой будут собираться Юниты, и Целевую Клетку, к которой мы направимся после того, как Фронт будет собран.

ЦИИ может давать Фронту Приказы, которые придают вес действиям Юнитов. Если Фронт, по существу, представляет собой просто корзину с объединёнными общей целью Юнитами, то Приказы определяют то, как будет достигаться эта цель. Приказы определяют низкоуровневое поведение, вроде безрассудства, осмотрительности и предотвращают разграбление определённых Улучшений.

Фронт может быть Отозван, если ЦИИ примет решение отказаться от Цели или отдать Зону. В этом случае выбирается Целевая Зона Отхода, и Юниты данного Фронта направляются к ней. Юниты могут быть извлечены из Отозванного Фронта другим Фронтом, если его оценка достаточно высока. Так как Защитные Фронты пересоздаются каждый ход, когда один из них помечается Отозванным, он создаёт новый «В/М», целью которого является достижение Цели Отхода.

Распределение юнитов

Принимая решение относительно того, сколько Юнитов и какого типа дать Фронту, ФИИ подсчитывает силу и состав вражеских сил, с которыми, вероятно, предстоит встретиться. Создаётся список минимальных значений в каждой области (против Пехоты, против Кавалерии, против Морских юнитов и т.д.).

  • Чтобы определить, какой Юнит куда отправится, каждая пара Юнит/Фронт оценивается, с учётом нужд Фронта, Приоритета Фронта, дистанции, общей доступности или нехватки Юнитов и т.д. После составления большого списка мы связываем между собой пару Юнит/Фронт с наибольшей оценкой, и затем переходим к следующей позиции в списке до тех пор, пока все Юниты не будут назначены.
  • Каждый раз, когда Юнит добавляется к Фронту, оценка всех оставшихся Юнитов в связке с этим Фронтом считается заново. Оценка незначительно снижается после каждого добавления Юнита, что позволяет Фронтам с небольшими Приоритетами получать Юниты – в противном случае, большие ребята просто не стали бы с ними делиться.
  • Как только Фронт приближается к минимальному удовлетворяющему его нужды значению, штраф за добавление к нему Юнитов снижается, а потом отменяется.
  • Если развернуться особенно негде, а Фронт имеет очень высокие требования (относительно других Фронтов в этой области), то его
    Приоритет снижается. В целом, мы предпочитаем немного полностью укомплектованных Фронтов, вместо нескольких неукомплектованных.

На основании того, насколько хорошо или плохо удовлетворены требования Фронта, ФИИ затем отправляет Запросы к ЭИИ на тренировку новых Юнитов.

Особенные роли юнитов

Некоторые Защитные Фронты могут удовлетворять часть своих запросов Резервными «Юнитами». На самом деле, они не существуют, но у ЭИИ есть ряд ресурсов на стороне, которые он может достать в любой момент.

«В/М» отправляет Юниты в арьергард. ФИИ оценивает Активы, которые необходимо охранять, фланговые угрозы Фронту и т.д., и определяет, сколько для этого требуется Юнитов, и где их нужно разместить. «В/М» также оставляет в стороне Юниты для Разведки, которые развёртываются по краям, чтобы наблюдать за положением дел, и воссоединяются с основными силами, если происходит что-то важное.

Как только начальная разработка ФИИ начнёт функционировать корректно, будет добавлена логика, позволяющая «В/М», которые всё ещё продолжают накапливать силы, отдавать Юниты в аренду другим близлежащим Фронтам. Если мы готовим массивное вторжение, это позволяет нам временно воспользоваться Юнитами для того, чтобы захватить Враждебную крепость, сопроводить гражданских и т.д.

Факторы, которые необходимо учитывать

  • Цели, намеченные ЦИИ.
  • Размер каждой Зоны.
  • Угрозы каждой отдельной Зоне.
  • Текущие и будущие сезонные эффекты.
  • Доступность Юнитов разных Областей на общей площади.

Отношения с другими системами

  • ЦИИ: ФИИ получает указания от ЦИИ через Цели, которые также определяют, какие Приказы отдаются отдельным Фронтам. Со своей стороны ИБ ФИИ предоставляет ЦИИ информацию относительно нашей военной ситуации.
  • ЭИИ: ФИИ размещает Запросы к ЭИИ, когда ей нужны Юниты для разных задач.
  • ТИИ: ФИИ информирует ТИИ относительно общего подхода в каждой отдельной Зоне, благодаря чему тот знает, как выполнять разные действия.

Тактический ИИ (ТИИ)

Сводка

В этом месте отдельные Юниты получают все приказы.

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

Детали

Подход грубой силы дорог, но необходим. Невозможно «научить» ИИ, как действовать согласно безошибочному тактическому плану, так как при этом необходимо учитывать слишком много факторов.

Чтобы сократить растущие по экспоненте расчёты, будет сделана серия проверок, которая ограничит количество рассматриваемых действий и комбинаций. То есть, если рядом нет никакой угрозы, то просто выбираем кратчайший путь к месту нашего назначения. Ещё один способ, ускоряющий подсчёты, состоит в помещении Юнитов в «Группы Зависимости», которые отделяют зависимые и независимые юниты. Скаут, разведывающий остров, никак не связан с осадой Рима, так что он не должен принимать во внимание передвижения других.

Каждой комбинации действий присваивается две оценки: Безопасная и Рискованная. Приказы Фронта (основанные на Целях и личностных характеристиках лидера) определяют модификатор, применяемый к этим оценкам. Особенно консервативный лидер только при очень высокой Рискованной оценке пойдёт по этому пути.

Оценка каждого отдельного действия определяется исходя из большого количества правил, включая возможные результаты битвы, невидимые угрозы, расстояние до цели, защитные бонусы, снабжение и т.д. Подсчитанная оценка калибруется, используя наши определения Ценности Активов (Юнита, Улучшения, Города и т.д.). Если перемещение на тайл гарантирует в результате этого гибель Юнита, негативная оценка такого хода будет эквивалентна Ценности Юнита.

Каждый раз, когда производится атака, или появляется новый вражеский Юнит, комбинация действий Группы Зависимости пересчитывается. Это гарантирует, что ИИ всегда использует самую последнюю информацию, и не будет застигнут врасплох.

Факторы, которые необходимо учитывать

  • Позиция, количество и сила наших, дружественных и вражеских Юнитов.
  • Ситуация на карте:
    • Доступное снабжение.
    • Стоимость перемещения.
    • Защитный бонус.
  • Невидимая Угроза, присутствующая на каждом тайле:
    • Общая вероятность наличия поблизости враждебных Юнитов, основанная на близости к вражеским точкам сбора, силе этих врагов и т.д.
    • Память о том, где находились вражеские Юниты.
    • Что может или мог бы видеть оппонент.

Отношения с другими системами

  • ФИИ: ТИИ разговаривает только с ФИИ, от которого он получает приоритеты, учитываемые им при совершении конкретных ходов.

by Jon Shafer

русский перевод – GobblinS

CivGames.com

8 comments to Анализ разработки ИИ AtG (часть III) — фронтовой и тактический ИИ

  • 😀 Уже хочется на практике оценить все прелести этого ИИ.
    И конечно, спасибо за перевод.

  • Похоже помимо GobblinS только меня одного At the Gates интересует.

    • Просто статьи про ИИ достаточно специфические. Едва ли такие глубокие детали интересуют основную массу игроков. К тому же местных посетителей, полагаю, серьёзно отвлекает BNW 😉

      • Тоже так подумал. 😀
        Страсти по эддону улягутся, можно будет что-то другое публиковать. Из похода по кругобайкалке вернусь, опубликую новость об одной прикольной игрушке про колонистов.

        • Кроме вас, ATG еще меня интересует) Но последнее время не хватает… времени. Эту статью в оригинале так и не прочитал, буду осваивать в переводе. GobblinS, спасибо за перевод!

          Не сомневаюсь, что ATG будет вызывать все больше интереса по мере приближения срока выхода. Кстати, в сентябре Джон обещает доступ к альфа-версии…

Leave a Reply