Введение
1.1. Глоссарий
ИИ – искусственный интеллект.
Программа ИИ – программный продукт, имитирующий искусственный интеллект.
Игрок – автор программы ИИ.
Программа ИИ – программный продукт, имитирующий искусственный интеллект. Данный программный продукт строго определённым интерфейсом.
Соревнование ИИ – последовательность игр с участием некоторого множества программ ИИ, в процессе которой выясняется преимущество одной программы ИИ перед другой.
Арбитр – программный продукт, способный провести соревнование ИИ.
Пошаговая игра – игра, в которой участники ходят по очереди.
Карта игры – набор установленных параметров игры.
Матч игры – игра одного или более программ ИИ на одной карте.
Результаты матча – некоторая числовая характеристика, отражающая деятельность программ ИИ во время матча.
Группа матчей – несколько матчей результаты которых корректно сравнивать.
1.2. Описание предметной области
Каждый год в рамках Весеннего турнира юных программистов проводится конкурс «Игровой искусственный интеллект».
Участникам конкурса предлагается реализовать программу, имитирующую игровой искусственный интеллект, для игры в определённую пошаговую игру. Программа участника конкурса определяет следующий шаг, исходя из текущего состояния игры.
Во время конкурса программы ИИ играют друг с другом. Программа, которая набрала большее число очков, считается лучшей.
Каждый год для проведения этого конкурса организаторами составляются новые правила игры и публикуются на сайте ИМиКН (см.[15]). Программы предоставляются жюри в виде исполняемых файлов. Во время официальной части конкурса все желающие могут наблюдать за ходом соревнования.
В настоящее время для проведения соревнований используется управляющая система, способная организовать и отобразить в реальном времени игру пары игроков. Для поведения соревнования приходится запускать эту систему множество раз для игры каждой пары участников. Если программ ИИ n штук, и правила игры предполагают матчи между двумя программами ИИ, то необходимо провести встреч. Настройка управляющей системы перед каждым раундом соревнований проводится вручную, что с учетом увеличения участников является трудоёмкой задачей.
Задачу сокращения времени проведения конкурса можно решить за счет автоматизации процесса проведения соревнования.
1.3. Неформальная постановка задачи
В рамках данной курсовой работы должен быть разработан программный продукт, предоставляющий ряд функций по автоматизации проведения конкурса
Для организаторов конкурса:
o Генерация турнирной таблицы.
o Автоматическое проведение соревнований программ ИИ по турнирной таблице.
o Удобный ввод данных об участниках, турнирах, программах ИИ.
Для участников конкурса:
o Регистрация в системе.
o Проведение соревнований своей программы ИИ и программ ИИ других участников.
o Обеспечение возможности наблюдения за ходом соревнований.
o Просмотр итогов конкурса.
Необходимо выполнение следующих условий:
• Система для организации онлайн соревнований программ ИИ должна быть реализована как клиент-серверное приложение.
• Администрирование и доступ к данным должен быть доступен по сети.
• Система должна быть гибкой: переход к новой игре должен быть максимально простым.
• Для примера, система должна позволять проводить соревнования программ ИИ по правилам игры Весеннего турнира академии юных программистов 2007 года.
• Система должна быть хорошо документирована.
1.4. Обзор существующих методов решения
В настоящий момент существует множество систем автоматического проведения соревнований ИИ в сети.
1.4.1. Java AI Programming Contest
Система, расположенная по адресу: http://ece.fsa.ucl.ac.be/adagneli/aicontest/, предназначена для проведения онлайн соревнований программ ИИ в симуляторе гонок. Цель ИИ провести болид между всеми маячками, учитывая инерцию, возможность столкновения и т.п.
Программа просмотра реализована как Java-applet. Данная система является закрытой и поддерживает только программы ИИ написанные на языке Java.
1.4.2. Learning Machine Challenge
Официальный сайт системы www.a-i.com. Система для проведения соревнований chat-bot’ов.
Исходный код системы тестирования является открытым, но представляет собой аналог управляющей системы, существующей в ИМиКН на данный момент.
1.4.3. JRobots
Система, расположенная по адресу http://jrobots.sourceforge.net/, по принципу работы аналогична системе Java AI Programmig contest, но в данной системе программы ИИ управляют действиями боевых роботов.
1.4.4. Arimaa-challenge
Система, расположенная по адресу http://www.arimaa.com, предназначена для проведения онлайн соревнований программ ИИ в игре Arimaa – аналог шахмат. Данный сайт предоставляет возможности просмотра записи ходов в наглядной программе просмотра.
Программа просмотра реализована как Java-applet. Данная система является закрытой.
1.4.5. Real-Time Battle
|