일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 머신러닝
- 오픈소스해커톤
- 코딩테스트
- SW중심대학
- BOAZ
- Backend.AI
- API
- Qwik Start
- 구글스타트업캠퍼스
- Speech
- Conference
- aws
- Tensorflow 2.0
- SageMaker
- kakao
- gcp
- 뉴비톤
- rl
- 스터디 잼
- entity
- 해커톤
- ainize
- Open Hack
- Ground Truth
- CSIP
- seq2seq
- re:Invent
- GDG Campus
- OPENHACK
- Community Day
Archives
- Today
- Total
pizzaplanet
Adversarial Search 본문
게임을 예로 들어서 보자면 지금까지 포스팅은 플레이어가 1명이었을 때였다.
이제는 플레이어가 2명이고 서로 적대적인 관계일때의 Search에 대하여 알아보자.
Adversarial Search
적대적인 관계가 존재할 때 적대적 관계의 행동을 미리 고려하여 결정을 내리는 Search이다. 팩맨을 예로 들면 팩맨이 food만 먹는게 아니라 Ghost의 행동도 고려해야하는 것. Ghost가 똑똑하게 나를 향해 올수도, 멍청하게 혼자 이리저리 움직이기만 할 수도 있으나 어쨋든 Ghost의 Action을 고려하여 팩맨의 Action을 취해야 한다. 간단하게 Zero-Sum Game이라 생각하면 된다.
Minmax Values
간단하게, 나는 Max 값을 취하고 상대는 내 입장에서의 Min 값을 취한다. 상대가 내 입장에서의 Min 값을 취하는 것이 상대에겐 Max값을 취하는 것이니. Root가 현재 State인데 어느 Action을 취해야 하는지 Minmax를 이용해 결정한다.
Blue는 Max, Red는 Min 값을 취한다.
left Red = min[-8, -5] = -8
right Red = min[-10, +8] = -10
두 Red의 값이 정해졌고 Root State에서 이 두 Red의 값 중에서 Max 값을 취한다.
Root state = max[left Red, right Red] = max[-8, -10] = -8
그럼 팩맨은 left로 가는 액션을 취하게 되는 것.
Minmax Implementation(Dispatch)
Minmax Efficiency
How efficient is minmax?
- Just like (exhaustive) DFS
- Time:
- Space:
'Univ. > Artificial intelligence lecture' 카테고리의 다른 글
Local Search (0) | 2018.05.08 |
---|---|
제약 충족 문제 Constraint Satisfaction Problems(CSP) (0) | 2018.05.06 |
에이스타탐색 A* Search (0) | 2018.05.04 |
탐욕 탐색 Greedy Search (0) | 2018.05.04 |
휴리스틱(Heuristics)에 대하여 (0) | 2018.05.04 |
Comments