※ 이 글은 "UC Berkeley CS188 Intro to AI"의 "Project 2: Multi-Agent Search"을 해결하는 과정을 정리한 글입니다.
※ UC Berkeley CS188 Intro to AI 페이지 링크 : http://ai.berkeley.edu/multiagent.html
Introduction
이번 프로젝트에서 유령이 포함된 Classic 한 버전의 팩맨 게임에서의 Agent를 설계해야 합니다. 그 과정에서 minimax 탐색 알고리즘과 expectimax 탐색 알고리즘을 모두 구현하게 될 것이고 평가 함수를 새롭게 만들어 볼 것입니다.
코드의 기본적인 구성은 이전 프로젝트와 크게 다르지는 않지만 프로젝트 1에서 받은 파일에 작업을 하는 것보다는 새롭게 파일들을 다운로드한 후 시작하기를 추천합니다.
프로젝트 1에서처럼, 이번 과제 이서도 답을 채점하기 위한 autograder가 포함되어 있습니다. autograder는 아래와 같은 명령어를 통해 실행됩니다.
- python autograder.py
아래의 명령어의 형태를 사용하면 q2와 같은 하나의 특정한 문제에 대해서도 작동이 가능합니다.
- python autograder.py -q q2
아래의 양식에 해당하는 명령어를 통해서 좀 더 세부적인 테스트를 실행해 볼 수도 있습니다.
- python autograder.py -t test_cases/q2/0-small-tree
기본적으로 autograder는 -t 옵션을 사용하기 때문에 게임 화면이 자동적으로 표시하지만 -q 옵션을 사용하면 화면을 표시하지 않을 수도 있습니다. --graphics 문자를 사용하면 화면을 강제로 보이게 할 수 있고, --no-graphics 문자를 사용하면 화면을 강제로 보이지 않게 할 수도 있습니다.
autograder를 사용하기 위한 추가적인 정보를 위해서 프로젝트 0에 있는 autograder 튜토리얼을 살펴보십시오.
과제와 관련된 모든 코드와 실행을 도와주는 파일들은 zip archive에서 다운로드할 수 있습니다.
과제를 해결하기 위해서 읽고 이해해야 할 파일들은 아래와 같습니다.
- multiAgents.py : 모든 multi-agent가 정의되어 있는 파일
- pacman.py : 팩맨 게임을 실행시키는 메인 파일로 팩맨의 게임 상태 타입을 설명해주는 파일
- game.py : 팩맨 월드가 어떻게 동작하는지 숨겨진 로직이 들어있는 파일로 Agent의 상태, Agent방향, 그리고 격자등 몇몇의 지원 요소들의 타입을 설명해주는 파일
- util.py : 탐색 알고리즘을 구현할 때 유용한 데이터 구조가 정의되어 있는 파일
Welcome to Multi-Agent Pacman
먼저 Classic 한 버전의 팩맨 게임을 실행해 보십시오.
- python pacman.py
이제 multiAgents.py 에서 제공하는 ReflexAgent를 실행해보십시오.
- python pacman.py -p ReflexAgent
아래와 같은 단순한 게임에서도 좋지 않은 성능을 보이는 것을 기억해야 할 것입니다.
- python pacman.py -p ReflexAgent -l testClassic
이제 코드를 점검하고 어떻게 동작하는지를 이해해야 할 것입니다.
'UC Berkeley CS188 Intro to AI > [Pacman Project 2] Multi-Agent Search' 카테고리의 다른 글
[Multi-Agent Search_3] Alpha-Beta Pruning (1) (0) | 2022.06.11 |
---|---|
[Multi-Agent Search_2] Minimax (2) (0) | 2022.06.10 |
[Multi-Agent Search_2] Minimax (1) (0) | 2022.06.09 |
[Multi-Agent Search_1] Reflex Agent (2) (0) | 2022.06.06 |
[Multi-Agent Search_1] Reflex Agent (1) (0) | 2022.06.05 |