UC Berkeley CS188 Intro to AI/[Pacman Project 2] Multi-Agent Search

[Multi-Agent Search_0] Introduction & Welcome to Multi Agent Pacman

컴공돌이​ 2022. 6. 1. 12:54

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

 

※ UC Berkeley CS188 Intro to AI 페이지 링크 : http://ai.berkeley.edu/multiagent.html

multiagent.zip
0.14MB

 

Introduction

이번 프로젝트에서 유령이 포함된 Classic 한 버전의 팩맨 게임에서의 Agent를 설계해야 합니다. 그 과정에서 minimax 탐색 알고리즘과 expectimax 탐색 알고리즘을 모두 구현하게 될 것이고 평가 함수를 새롭게 만들어 볼 것입니다.

 

코드의 기본적인 구성은 이전 프로젝트와 크게 다르지는 않지만 프로젝트 1에서 받은 파일에 작업을 하는 것보다는 새롭게 파일들을 다운로드한 후 시작하기를 추천합니다.

 

프로젝트 1에서처럼, 이번 과제 이서도 답을 채점하기 위한 autograder가 포함되어 있습니다. autograder는 아래와 같은 명령어를 통해 실행됩니다.
- python autograder.py

 

python autograder.py 실행 시 출력 화면

 

아래의 명령어의 형태를 사용하면 q2와 같은 하나의 특정한 문제에 대해서도 작동이 가능합니다.

- python autograder.py -q q2

 

python autograder.py -q q2 실행 시 출력 화면

 

아래의 양식에 해당하는 명령어를 통해서 좀 더 세부적인 테스트를 실행해 볼 수도 있습니다.

- python autograder.py -t test_cases/q2/0-small-tree

 

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

 

python pacman.py 실행 시 시작되는 게임 화면

 

이제 multiAgents.py 에서 제공하는 ReflexAgent를 실행해보십시오.

- python pacman.py -p ReflexAgent

 

python pacman.py -p ReflexAgent 실행 시 시작되는 게임 화면

 

아래와 같은 단순한 게임에서도 좋지 않은 성능을 보이는 것을 기억해야 할 것입니다.

- python pacman.py -p ReflexAgent -l testClassic

 

python pacman.py -p ReflexAgent -l testClassic 실행 시 시작되는 게임 화면

 

이제 코드를 점검하고 어떻게 동작하는지를 이해해야 할 것입니다.

반응형