UC Berkeley CS188 Intro to AI/[Pacman Project 1] Search

[Search_4] A* search (1)

컴공돌이​ 2022. 5. 22. 12:05

※ 이 글은 "UC Berkeley CS188 Intro to AI"의 "Project 1: Search"를 해결하는 과정을 정리한 글입니다.

 

A* search

search.py 파일 안에 있는 비어있는 aStarSearch 함수에 A* 탐색 알고리즘을 구현하십시오. A* 탐색 알고리즘은 휴리스틱 함수를 인수로 갖고 있습니다. 휴리스틱은 2가지 인수(탐색 문제에서의 state와 자기 자신에 관한 정보)를 갖고 있습니다. search.py 파일 안에 있는 nullHeuristic 휴리스틱 함수는 간단하게 구현한 예제입니다.

구현이 완료된 A* 탐색 알고리즘은 Manhattan Distance 휴리스틱을 사용하여 미로에서 길을 찾을 수도 있습니다.(searchAgents.py 에 이미 manhattanHeuristic이 구현되어 있습니다.) 

- python pacman.py -l bigMaze -z .5 -p SearchAgent -a fn=astar, heuristic=manhattanHeuristic

 

python pacman.py -l bigMaze -z .5 -p SearchAgent -a fn=astar,heuristic=manhattanHeuristic 실행 시 시작되는 게임 화면
python pacman.py -l bigMaze -z .5 -p SearchAgent -a fn=astar,heuristic=manhattanHeuristic 실행 시 출력 화면

 

A* 탐색 알고리즘이 균일 비용 탐색(Uniform Cost Search, UCS) 보다 빠르게 최적의 답을 찾는 것을 확인할 수 있습니다. 다른 다양한 탐색 알고리즘들이 openMaze에서는 어떻게 동작할지 궁금하지는 않으신가요?

반응형