1

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

Agent A: 

Inputs: Position, Surrounding Tiles, Radio Message 

Actions: Move, Attack, Build, Mine Resources, Broadcast Radio 

Радиоприемник относится к целочисленным сигнал, который может передаваться другим агентам. Это упрощенная версия того, что единицы действительно могут сделать, но вопрос остается тем же.

Существует ключевое ограничение этой проблемы, и каждый оператор имеет ограниченное количество циклов для выполнения расчетов для определения своей стратегии. Я бы очень хотел попытаться реализовать какое-то машинное обучение в определении оптимизированной стратегии, но структура, подобная нейронной сети над входным пространством (которая может быть относительно высокомерной), приводит к слишком сложному вычислению. Другими словами, я не могу просто заставить каждого агента иметь собственную нейронную сеть, которая обучается через какой-то генетический алгоритм (матричное умножение слишком дорого - операция). Другие конкуренты разрабатывают свои агенты вручную и дают им простой набор условностей для определения действий (например, если враг близок, удаляйтесь от врага).

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

Извините, если этот вопрос кажется несколько неоднозначным или неясным; Я более чем готов указать дополнительные данные, если есть какие-то вопросы о том, что именно я имею в виду. Благодаря!

ответ

0

Это звучит для меня, как конкурс MIT BattleCode, это правильно? Я когда-то работал над агентом для издания 2014 года (хотя намного позже фактического времени соревнований, не участвовал или что-то в этом роде), и, по крайней мере, в этом году вычислительные ограничения действительно были очень ограниченными; поэтому ограничение того, что почти любой онлайновый алгоритм можно в принципе выбросить из окна сразу.

Теоретически вы можете изучить алгоритмы в любое время, такие как поиск по дереву Монте-Карло, которые теоретически могут быть остановлены в любое время и возвращать результат, где ожидается, что качество результата будет увеличиваться по мере увеличения времени обработки. Но в этом случае вам, вероятно, придется досрочно прекратить процесс, так как он также не даст значимого результата.

Если вы действительно хотите использовать подходы к компьютерному обучению, я бы, вероятно, рекомендовал использовать самые дешевые модели во время использования, что, я полагаю, будет Decision Trees или Rule-learning. Вам понадобится большой набор данных различных состояний игры и «правильные» движения, чтобы играть в этих ситуациях, чтобы тренировать такие системы. У вас есть доступ к такому набору данных или вы подумали о том, как его создать? (обратите внимание, что это также будет проблемой для нейронной сети).

+0

Это точно MIT BattleCode. Это очень интересные возможности, которые я, возможно, захочу изучить. Мой первоначальный план работы с нейронной сетью заключался в том, чтобы использовать форму обучения усилению итеративного воспроизведения ИИ против себя на моей собственной машине. Заглянув в деревья решений, я нашел один документ об использовании этого метода, но я не уверен, насколько он жизнеспособен в нашем приложении. Вот ссылка, если вам интересно: https://arxiv.org/pdf/1507.06923v1.pdf Независимо от того, этот ответ был действительно полезен в предоставлении мне потенциально жизнеспособных вариантов, спасибо! –

+0

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

+0

@AustinGarrett вы можете изменить правила BattleCode локально, чтобы дать себе гораздо больше времени на обработку? (очевидно, не во время реальной конкуренции, а, может быть, для тестирования?) Если это так, вы могли бы дать себе большое количество времени на вычисления, запустить игры с другим алгоритмом и создать базу данных, состоящую из состояний игры, которые были обнаружены и перемещены выбранными этот другой, более вычислительно дорогой алгоритм. Затем подготовьте дерево решений в автономном режиме на этих данных и затем используйте его в Интернете в играх с реальными ограничениями на вычисления –