- •Лабораторная работа №2 Неинформированный и информированный поиск (исследование пространства состояний).
- •Введение
- •1. Достижение фиксированной точки
- •1.1. Задание № 1: поиск в глубину (2 балла)
- •1.2. Задание № 2: поиск в ширину (2 балла)
- •1.3. Задание № 3: поиск по критерию стоимости (2 балла)
- •1.4. Задание № 4: алгоритм поиска а* (3 балла)
- •2. Проходя через все углы
- •2.1. Задание № 5: постановка задачи (2 балла)
- •2.2. Задание № 6: проходя через все углы – а* и эвристика (3 балла)
- •3. Поедая все гранулы
- •3.1. Задание № 7: поедая все гранулы – а* и эвристика (4 балла)
- •3.2. Задание № 8: субоптимальный поиск (2 балла)
- •4. Мини конкурс (до 2 дополнительных баллов)
- •5. Глоссарий
- •6. Требования к отчету
4. Мини конкурс (до 2 дополнительных баллов)
Реализуйте ApproximateSearchAgent в searchAgents.py, который находит кратчайший путь через поле bigSearch. Если ваш агент найдет решение стоимостью не более 290, то вы получите 1 дополнительный балл. Если стоимость не превышает 280, то вы получите 2 дополнительных балла.
python pacman.py -l bigSearch –p ApproximateSearchAgent -z .5 -q
Время исполнения будет засекаться при отключенной опции отрисовки –g, время исполнения не должно превышать 30 секунд на нашей оценочной машине.
Пожалуйста, опишите принцип работы вашего агента в комментариях! Ну и, конечно же, не пытайтесь жестко задать путь в коде.
5. Глоссарий
Ниже приводится глоссарий ключевых объектов из кодовой базы по задачам поиска:
SearchProblem (search.py)
SearchProblem – абстрактный объект описывающий пространство состояний, функцию приемника, цену и функцию проверки цели в постановке задачи. Любые взаимодействия с SearchProblem должны осуществляться только через методы определенные в верхней части search.py
PositionSearchProblem (searchAgents.py)
Специализированный наследник SearchProblem, с которым вы будете работать; соответствует поиску одной точки (гранулы) в лабиринте
CornersProblem (searchAgents.py)
Специализированный наследник SearchProblem, который вы определите; соответствует поиску пути через все 4 угла лабиринта.
FoodSearchProblem (searchAgents.py)
Специализированный наследник SearchProblem, с которым вы будете работать; соответствует поиску пути для поедания всех точек (гранул) в лабиринте.
Search Function
Функция поиска, получающая на входе постановку задачи SearchProblem, выполняет некоторый алгоритм и возвращает последовательность действий ведущих к цели. Примерами функции поиска являются функции depthFirstSearch и breadthFirstSearch, которые вы должны будете написать. Одна функция поиска уже написана за вас, это tinyMazeSearch – плохая функция поиска, работающая корректно только для лабиринта tinyMaze.
SearchAgent
SearchAgent – класс, реализующий агента и осуществляющий планирование пути через функцию поиска. Вначале SearchAgent использует функцию поиска для планирования последовательности действия по достижению цели, а затем исполняет данную последовательность пошагово.
6. Требования к отчету
Введение
Достижение фиксированной точки в лабиринте
Задание 1 – 4
Кратко опишите каждый из рассмотренных алгоритмов и приведите для них код с комментариями. Так же необходимо ответить на вопросы, которыми сопровождаются задания. Особое внимание уделите сравнению реализованных алгоритмов на задаче поиска кратчайшего пути до фиксированной точки.
Проходя через все углы
Задание 5 – 6
Опишите пространство состояний для задачи обхода всех углов лабиринта. Для разработанной эвристики приведите программный код с комментариями и кратко поясните принцип её работы. Зафиксируйте время выполнения кода и количество исследованных состояний. Предоставьте, как минимум, логическое обоснование того, что ваша эвристика допустима и монотонна.
Поедая все гранулы
Задание 7
Для разработанной эвристики приведите программный код с комментариями и кратко поясните принцип её работы. Зафиксируйте время выполнения кода и количество исследованных состояний. Предоставьте, как минимум, логическое обоснование того, что ваша эвристика допустима и монотонна.
Задание 8
Приведите программный код с комментариями функции findPathToClosestDot и кратко поясните принцип её работы. Зафиксируйте время выполнения кода и количество исследованных состояний. Не забудьте ответить на вопросы к заданию.
Мини конкурс
Задание 9
Для разработанного агента ApproximateSearchAgent приведите программный код с комментариями и кратко поясните принцип его работы. Зафиксируйте время выполнения кода и количество исследованных состояний.
Вывод
1 Агент – объект, взаимодействующий с миром.
