Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пояснительная записка на диплом (от Коробкова).doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
839 Кб
Скачать
☆

Использованные классы.

Наименование класса

Назначение класса

App

Унаследован от класса Midlet. В нём создаются экземпляры имеющихся классов, а также находится точка входа в программу. Класс отвечает за запуск приложения и выход из него, а так же на всевозможные внешние реакции, например звонок.

Board

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

MyCanvas

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

Таблица 1. Используемые классы.

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

Заключение.

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

Для построения оценочной функции с использованием нейронных сетей, использовалось несколько подходов. Так, в одном из самых перспективных подходов для получения оценки вероятности выигрыша из данной позиции формировался некоторый набор позиций. И для каждой из этих позиций проводилось по N партий, между двумя равными сильными игроками. Причем, под числом побед белых над черными можно понимать оценку данной позиции. На сгенерированной таким образом выборке обучалась нейронная сеть и полученная сеть использовалась как оценочная функция. Можно повторять этот процесс итеративно для улучшения качества оценки.

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

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

  1. Ф. Уоссермен, Нейрокомпьютерная техника: Теория и практика 1992г

  2. Джонс М.Т. Программирование искусственного интеллекта в приложениях /М. Тим Джонс; Пер. с англ. – М.: ДМК Пресс 2004. – 312 с.: ил.

  3. Эккель Б. Философия Java: Библиотека программиста Питер, 2001г

  4. G.I. Belchansky, N.V. Korobkov, “Neural network application for analysis of satellite remote sensing data”, Research of the Earth form Space, 1998, N4, pp 111-120

  5. Imran Ghory, Reinforcement learning in board games. 2004.

  6. J.B.Pollack, A.D. Blair, Co-Evolution in the successful learning of backgammon strategy.

  7. W.Duch, R.Adamczak, Statistical methods for construction of neural networks.

  8. D.Stoutamire, Machine learning, game play, and Go.

  9. W.S.Sarle, Neural networks and statistical models, 1994.

  10. A.Shapiro, G.Fuchs, R.Levinson, Learning a game strategy using pattern-weights and self-play.

  11. J.Baxter, A.Tridgell, L.Weaver, KnightCap: a chess program that learns by combining TD with game-tree search.

  12. A.Junghanns, J.Shaeffer, Search versus knowledge in game-playing programs revisted.

  13. G.Tesauro. TD-Gammon, a self-teaching backgammon program. Neural Computaion, 6:215-219, 1994.

  14. J.Pollack & A.Blair “Co-Evolution in the successful learning of backgammon strategy.

  15. M. Buro “Efficient approximation of backgammon race equities”.

  16. Информационные ресурсы сети Интернет (http://www.bkgm.com, http://www.gnubg.org).