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