Vi городская конференция учащихся по научно-техническому творчеству Секция «Программирование»




Скачать 101.62 Kb.
Название Vi городская конференция учащихся по научно-техническому творчеству Секция «Программирование»
Дата публикации 22.09.2014
Размер 101.62 Kb.
Тип Реферат
literature-edu.ru > Лекции > Реферат


VI Городская конференция учащихся по научно-техническому творчеству

Секция «Программирование»

Система проведения соревнований по разработке ИИ
http://ai-war.ru

Автор:
Попов Александр,
ученик 10 класса,
МОУ ДОД ЦТТ «Интеграл»
Научный руководитель:
Цыганов Александр
ПДО информатики
МОУ ДОД ЦТТ «Интеграл»
Самара, 2011

Содержание

Введение 4

1 Постановка задачи 5

2 Разработка 7

Заключение 13

Список литературы 14


Введение


Теория искусственного интеллекта играет достаточно важную роль в современной вычислительной технике. Зародившись как дисциплина, ставившая своей задачей создание искусственного разума, впоследствии она начала заниматься более прикладными вопросами в самых различных областях человеческой деятельности. В настоящее время ИИ применяется для решения многих сложных задач. Банки используют системы искусственного интеллекта в страховой деятельности, при игре на бирже и управлении собственностью. Методы распознавания образов широко используют при оптическом и акустическом распознавании (в том числе текста и речи), медицинской диагностике, в системах ПВО для определения целей.

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

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

Благодаря этому возникла идея создания проекта: интернет ориентированной системы проведения соревнований по шашкам с использованием искусственного интеллекта. Она позволит любому человеку, имеющему доступ к интернету, состязаться с другими участниками в мастерстве разработки программ искусственного интеллекта или просто быть наблюдателем соревнований по игре в шашки.

На данный момент система запущена в тестовом режиме по адресу http://ai war.ru/.

1 Постановка задачи

1.1 Обзор предметной области


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

Существует множество сайтов и международных конкурсов, проводящих соревнования по олимпиадному программированию. Например, всемирный чемпионат, ежегодно проводимый компанией IBM, или онлайн-соревнования на специализированных порталах.

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

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

1.2 Особенности системы


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

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

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

2 Разработка

2.1 Архитектура системы


Система состоит из пяти основных частей: это сайт, база данных, приложение для проведения матчей, проигрыватель и программный интерфейс для искусственного интеллекта. На рисунке 1 представлена схема их взаимосвязи.



Рисунок 1 – архитектура системы

Вся информация об игроках и матчах хранится в базе данных. С ней взаимодействуют сайт и система проведения матчей, запускаемая серверными скриптами. При проведении матча используется программный интерфейс взаимодействия ИИ и симуляции. Результат матч сохраняется в базе, откуда он направляется проигрывателю.

2.2 База данных


В качестве СУБД используется наиболее популярная и распространенная система MySQL. Среди ее преимуществ можно отметить высокое быстродействие и наличие программного интерфейса для огромного количества языков.

Структура базы данных очень проста (см. рисунок 2), она состоит всего из двух сущностей: пользователей и матчей. В них хранятся все сведения, используемые при проведении соревнований.



Рисунок 2 – таблицы базы данных

2.3 Веб интерфейс


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



Рисунок 3 – веб-интерфейс

Сайт является основным связующим звеном для остальных частей проекта. В частности он запускает систему проведения матчей по запросу пользователя, он же позволяет отображать информацию из базы данных, и благодаря ему же пользователь может увидеть результат матча в проигрывателе.

Сайт создан на языке PHP и запускается на веб-сервере Apache. Этот выбор обусловлен тем, что данные средства являются одними из самых распространенных и удобных в интернете, а также наличием опыта разработки с использованием этих средств.

2.4 Программный интерфейс


Используемые языки для написания бота и набор функций, которые нужно реализовать

Для написания ИИ может быть использован какой-либо из .NET языков, например C# или Visual Basic .NET. На выбранном языке участнику необходимо создать класс, реализующий специальный интерфейс. Этот интерфейс выглядит так:

namespace AI_War.API

{

///

/// Every AI must implement this interface.

///


public interface IBot

{

///

/// All initialization takes place here.

///


///
You side.

/// See for more details.


void Initialize(int side);
///

/// Called each your turn.

///


///
Current state of game field.

/// See for more details


/// You move information.

/// See for more details.

Move MakeMove(Field field);

}

}
Интерфейс прост и состоит всего из двух функций: инициализации и совершения хода. При инициализации программа получает информацию о том, какими шашками ей предстоит играть: черными или белыми. Функция совершения хода получает текущее состояние игрового поля, на основе которого программе необходимо принять решение о своем следующем ходе и вернуть его в виде координат клеток, откуда и куда будет передвинута шашка.

Поле представляет собой класс, содержащий следующие методы:

///

/// Model for game field.

///


public class Field

{

///

/// Field width.

///


public int Width;
///

/// Field height.

///


public int Height;
///

/// Whose turn it is.

///


public int Side;
///

/// Creates new field with initial checkers placement.

///


public Field();
///

/// Creates new field as a copy of other one.

///


///
Field to copy.


public Field(Field other);
///

/// Returns cell value.

///


///
Cell column.


///
Cell row.


/// Cell value.

public int GetCell(int column, int row);
///

/// Sets cell value.

///


///
Cell column.


///
Cell row.


///
Cell value.


public void SetCell(int column, int row, int value);
///

/// Applies move to a field.

///


///
Move to apply.


public void ApplyMove(Move move);
///

/// Returns list of permissible moves.

///


/// List of permissible moves.

public IEnumerable GetPermissibleMoves();

}

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

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

2.5 Система проведения матчей


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

Работа системы состоит из нескольких этапов:

  • получение идентификатора матча;

  • извлечение сведений о соперниках;

  • выбор компилятора для программного кода соперников;

  • компиляция исходного кода;

  • запуск потока для симуляции матча;

  • поочередный опрос соперников и проверка их ходов;

  • запись результата соревнования в базу данных.

Оппоненты выполняют свои ходы поочередно в специальном тестирующем потоке. С помощью события синхронизации контролируется время выполнения этих ходов. Если оно превышает одну секунду, то участник дисквалифицируется. Каждый ход проверяется на соответствие правилам. Также контролируется возникновение ошибок времени выполнения в коде искусственного интеллекта с помощью механизма исключительных ситуаций. Любые нежелательные действия кода ограничиваются с помощью политик безопасности доменов .NET. Это означает, что ИИ не будет иметь никакого доступа к внешней среде. Ему разрешено лишь выполнять свой алгоритм.

2.6 Проигрыватель


Проигрыватель представляет собой приложение, разработанное с помощью технологии Silverlight. Это позволяет размещать его прямо внутри браузера на странице сайта. На рисунке 4 приведен внешний вид проигрывателя.



Рисунок 4 - проигрыватель

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

При этом анимируется движение шашек, их уничтожение и преобразование в дамки.

Заключение


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

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

Список литературы


  1. Алекс Дж. Шампандар. «Искусственный интеллект в компьютерных играх». – Вильямс, 2007.

  2. Ф. А. Новиков. «Дискретная математика для программистов». – СПб.: Питер, 2005.

  3. Э. Троелсен. «C# и платформа .NET». – СПб.: Питер Пресс, 2007

  4. Мэтью Мак-Дональд. «Silverlight 3 с примерами на C# для профессионалов». – Вильямс, 2010.

  5. Н. Вирт. «Алгоритмы и структуры данных». – СПб.: Невский Диалект, 2008.




Добавить документ в свой блог или на сайт

Похожие:

Vi городская конференция учащихся по научно-техническому творчеству Секция «Программирование» icon Научно-практическая конференция молодых исследователей «шаг в будущее»...

Vi городская конференция учащихся по научно-техническому творчеству Секция «Программирование» icon I городская научно-практическая конференция «К вершинам науки»
Муниципальное общеобразовательное учреждение средняя общеобразовательная школа №200 города Белогорска Амурской области
Vi городская конференция учащихся по научно-техническому творчеству Секция «Программирование» icon 4. Сроки проведения. Городская конференция ноу проводится в 3 этапа:...
Совершенствование условий поддержки и развития интеллектуально и творчески одаренных детей посредством научно-исследовательской деятельности....
Vi городская конференция учащихся по научно-техническому творчеству Секция «Программирование» icon Секция литературы V научно-практическая конференция школьников «Шаг...
Узнав из изучаемых в школе произведений XIX века о дуэлях, о трагическом конце их участников, о бессмысленной смерти талантливых,...
Vi городская конференция учащихся по научно-техническому творчеству Секция «Программирование» icon Х научно-творческая конференция учащихся Творческий потенциал
Борисов О. В., Беляков В. И., Фомина Е. М., Хлебодарова А. Ф., Глухова Е. В., Чернова Н. А
Vi городская конференция учащихся по научно-техническому творчеству Секция «Программирование» icon Ростовской области
В целях повышения уровня технологической культуры и качества технологической подготовки, выявления и развития у обучающихся интереса...
Vi городская конференция учащихся по научно-техническому творчеству Секция «Программирование» icon I. Общие положения Научно-практическая конференция "Ломоносовские...
С 2010 года конференция получила республиканский статус и проводится при поддержке Республиканского центра внешкольной работы Республики...
Vi городская конференция учащихся по научно-техническому творчеству Секция «Программирование» icon Xix всероссийская молодежная научная конференция Актуальные проблемы
Структурно-функциональная организация и антропогенная трансформация экосистем (Секция 3)
Vi городская конференция учащихся по научно-техническому творчеству Секция «Программирование» icon Конференция проводится с целью обобщения и распространения опыта...
Всероссийской заочной научно-практической конференции «фгос – реалии нового времени», которая состоится 16 июня 2014 г
Vi городская конференция учащихся по научно-техническому творчеству Секция «Программирование» icon Научно-исследовательская работа «Этнопедагогические и этнокультурные функции национальной школы»
Всероссийская научно-практическая конференция «Этнокультурное образование: история, современность, перспективы развития»
Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции