Задания выполнены с применением значений для варианта №11(2)
\section{Введение}
Целью работы является изучение подходов к проектированию мультиагентных систем и построению искусственного интеллекта, а также их реализация. Доработка алгоритма поведения игрока и компьютеров в игре Pacman реализуется на языке Python второй версии в среде разработки JetBrains PyCharm Community Edition.
\section{Улучшение агента ReflexAgent}
Комментарий к фукнции \code{evaluationFunction(self, currentGameState, action)} содержал следующие указания:
\begin{verbatim}
Реализуйте здесь лучшую оценочную функцию
Оценочная функция берет текущее и предполагаемое следующее состояние GameStates
(pacman.py) и возвращает число (чем больше число, тем лучше).
Код ниже содержит полезную информацию о состоянии, такую как оставшуюся еду
(newFood) и позицию пакмена после движения (newPos).
newScaredTimes содержит число шагов, в течении которых каждый призрак останется
напуганным, поскольку пакмен съел гранулу силы.
Выведите эти переменные, чтобы посмотреть, что в них находится, и затем
комбинируйте их для создания великолепной оценочной функции.
Улучшенный код рефлексивного агента представлен в листинге \hyperref[lst:betterReflex]{\ref{lst:betterReflex}}. Результаты выполнения тестов, запушенных командой \code{python autograder.py -q -q1 -no-graphics} представлен в выводе \hyperref[fig:result1]{\ref{fig:result1}}.
В рамках персонального задания было необходимо улучшить алгоритм альфа-бета отсечения (вариант 11(2)). Улучшенный код алгоритма представлен в листинге \hyperref[lst:alphaBeta]{\ref{lst:alphaBeta}}. Результаты выполнения тестов алгоритма, запушенных командой \code{python autograder.py -q -q2 -no-graphics} представлен в выводе \hyperref[fig:result2]{\ref{fig:result2}}.
В рамках выполнения задания были применены алгоритмы, позволяющие построить искусственный интеллект способный победить в аркадной игре Pacman.
Оценочная функция позволяет достаточно быстро и точно, в выбранной метрике, указать оценку вероятности победы конкретного игрока для конкретного расположения фигур, не опираясь на то, каким образом игроки к этому состоянию пришли. Алгоритм альфа-бета отсечения является модификацией алгоритма минимакса, однако, в отличие от него, анализ некоторых ходов может быть не выполнен, то есть, прекратиться досрочно.
Агенты позволяют использовать существующее программное обеспечение, в контексте выполнения работы им являлась игра Pacman, для достижения своих целей -- победы. Алгоритмы их работы являются эвристическими и не гарантируют победу, а лишь позволяют с заданной быстротой и точностью достичь поставленной цели -- анализ текущей ситуации и выбор лучшего выхода из неё.