ИНС для игры в аэрохоккей

Материал из Department of Theoretical and Applied Mechanics
Версия от 18:40, 22 мая 2014; 91.215.121.251 (обсуждение)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Аэрохоккей

Постановка задачи[править]

Программно реализовать аэрохоккей с возможностью игры против компьютера.

Основные возможности программы[править]

Для создания игрового искусственного интеллекта был реализован многослойный перцептрон Румельхарта. Для него можно:

  • задавать произвольное количество входных и выходных векторов произвольной размерности (реализовано с использованием шаблонов)
  • выбирать функцию активации нейронов
  • задавать произвольное количество скрытых слоев и нейронов в них
  • задавать параметры обучения нейронной сети
  • сохранять перцептрон в файл
  • загружать перцептрон из файла

Внутреннее устройство программы[править]

Для разработки пользовательского интерфейса использовались средства Qt, для графики – OpenGl + freeglut.
Основные классы программы:

  • класс основного окна MainWindow (наследует от QMainWindow)
  • класс newgame для взаимодействия с пользователем при настройке параметров новой игры (наследует от QmainWindow)
  • класс Game (наследует от QGLWidget) — хранит все параметры игры, осуществляет пересчет координат, используется для визуализации
  • класс Player — хранит всю информацию об игроке
  • класс Ball — содержит всю информацию о шайбе

Реализация нейросети:

  • класс Neuron — хранит веса связей, рассчитывает выход нейрона
  • класс Layer — слой нейросети, хранит набор нейронов
  • класс Perceptron — хранит набор слоев, здесь реализованы все функции для считывания из файлов, обучения нейросети, сохранения результата в файл
  • еще несколько классов для передачи информации нейросети