ИНС для игры в аэрохоккей
Материал из Department of Theoretical and Applied Mechanics
Постановка задачи
Программно реализовать аэрохоккей с возможностью игры против компьютера.
Основные возможности программы
Для создания игрового искусственного интеллекта был реализован многослойный перцептрон Румельхарта. Для него можно:
- задавать произвольное количество входных и выходных векторов произвольной размерности (реализовано с использованием шаблонов)
- выбирать функцию активации нейронов
- задавать произвольное количество скрытых слоев и нейронов в них
- задавать параметры обучения нейронной сети
- сохранять перцептрон в файл
- загружать перцептрон из файла
Внутреннее устройство программы
Для разработки пользовательского интерфейса использовались средства Qt, для графики – OpenGl + freeglut.
Основные классы программы:
- класс основного окна MainWindow (наследует от QMainWindow)
- класс newgame для взаимодействия с пользователем при настройке параметров новой игры (наследует от QmainWindow)
- класс Game (наследует от QGLWidget) — хранит все параметры игры, осуществляет пересчет координат, используется для визуализации
- класс Player — хранит всю информацию об игроке
- класс Ball — содержит всю информацию о шайбе
Реализация нейросети:
- класс Neuron — хранит веса связей, рассчитывает выход нейрона
- класс Layer — слой нейросети, хранит набор нейронов
- класс Perceptron — хранит набор слоев, здесь реализованы все функции для считывания из файлов, обучения нейросети, сохранения результата в файл
- еще несколько классов для передачи информации нейросети