Transcript lec04

Modified from the slides
by SciTech Media
탐색
(Lecture Note #4)
인공지능
이복주
단국대학교 컴퓨터공학과
1
Outline
탐색
 문제 해결
 상태 공간
 탐색 기법
 휴리스틱 기법

–
–
–
–
Hill Climbing
Best-First Search
Beam Search
A* Search
게임 트리 기법
 알파베타 탐색 문제
 제약 조건 만족 문제

2
Slide made by Bogju Lee
게임 트리 탐색
 컴퓨터
게임의 역사
– 19세기: Charles Babbage, 해석 기계에서 서양장기 프로
그래밍 구상
– 1950년대: Shannon, Turing, 서양장기의 컴퓨터적 알고
리즘 구체적으로 생각
– 1960년대: Samuel, 프로그램 실제 작성
 게임을
위한 탐색
– 지금까지의 탐색과 다른 점: 다수(2인)가 상호 배타적인 환
경에서 승리하기 위한 경로를 탐색
• 각자의 이익이 상대에게는 손해
– 같은 점: 자신의 이익을 극대화 시키기 위한 결정
– 앞을 내다봄으로써 현재 상태의 선택을 결정한다
– 대부분의 게임에서 완벽한 평가함수의 정의가 불가능  휴
리스틱한 기준에 의한 추정치 만을 제공
3
Slide made by Bogju Lee
게임 트리 탐색

말패 (last-one-loses) 게임
– 임의의 수의 칩에서 시작, 1~3개의 칩을 들어냄, 마지막 칩을 들
어낸 사람이 지는 게임
– 4 개의 칩인 경우 탐색 트리: 그림 2.13
– Note: state, operator 표현
– 실제 문제에서 전체 트리를 완성한 후 선택하는 것은 불가능
Slide made by Bogju Lee
4
게임 트리 탐색
 예제
2.6: 말패 게임을 위한 평가함수
– 4k+1개의 칩이 남아 있게 하면 이김
1 {N  n  (4k  1)}  0를만족하는 k가 존재
f 
otherwise
0
– n=1,2,3
– 평가함수를 사용한 말패 게임 (그림 2.14)
5
Slide made by Bogju Lee
게임 트리 탐색

평가 함수
– 말패 게임은 특수한 경우
– 대부분의 다른 문제에서 완벽한 평가 함수 정의 힘듬

평가 함수 1 에서 –1 인 경우
–
–
–
–
–
1: A가 이기는 것 의미
-1: B가 이기는 것 의미
0: 백중 (tie)
A는 자녀 노드 중 평가 함수 큰 것 선택 (그림 2.15)
B는 자녀 노드 중 평가 함수 작은 것 선택
A
[c1]
[c2]
[c3]
f=0.8
f=0.3
f=-0.2
6
Slide made by Bogju Lee
게임 트리 탐색

두 단계 앞까지 고려한 경우 (그림 2.16)
A
최소화자(B)
단계
[c1]
[c2]
[c3]
f=0.8
f=0.3
f=-0.2
[c11]
[c12]
[c13]
[c21]
[c22]
[c31]
[c32]
f=0.9
f=0.1
f=-0.6
f=0.1
f=-0.7
f=-0.1
f=-0.3
– 한 단계만 고려한다면 A는 c1 (0.8) 선택
– 두 단계까지 고려한다면 A가 c1을 선택한 경우 B는 c13 (-0.6) 선
택
– A가 c3를 선택한다면 B는 c32 (-0.3) 선택
– A는 c1, c3 중 어떤 노드를 선택해야 하나?
7
Slide made by Bogju Lee
최소 최대 (minimax) 탐색법
 최소최대(minimax)
탐색법
– 최소화자 (minimizer)와 최대화자 (maximizer)로 구성되
어 있다고 가정하고 탐색해 나가는 전략
– 몇 수 앞을 내다보느냐가 탐색의 양에 영향
• 서양 장기: 각 노드 당 평균 자녀 수 35개, 한 게임 50 수  35100 경
우의 수
– 최소최대법을 사용하면 탐색의 영역을 축소 가능
• 어떤 노드가 그 함수 값을 구하거나 확장하지 않아도 판단을 내리는데
지장이 없는 경우에 이 노드를 고려 대상에서 제외
 - pruning (알파-베타 가지치기)
8
Slide made by Bogju Lee
알파 베타 탐색 문제

알파베타 가지치기 (그림 2.17)
– 최대화 노드에서 가능한 최소의 값 (알파 )과 최소화의 노드에서
가능한 최대의 값 (베타 )를 사용한 게임 탐색법
– 기본적으로 DFS로 탐색 진행
– 어떤 최소화 노드의 베타값 (=-0.1)이 자신보다 상위 (선조노드)
에 있는 어떤 최대화 노드의 알파값 (=0.2) 보다 작거나 같을 때,
이 최소화 노드는 가지치기 된다 (최소화 노드의 자식들이 cut됨).
[c0]
=0.2
[c1]
[c2]
f=0.2
f= -0.1
[c11]
[c12]
[c21]
f=0.2
f=0.7
f= -0.1
[c22]
[c23]
C21의 평가값 -0.1이 C2에 올려지면
나머지 노드들(C22, C23)을
더 이상 탐색할 필요가 없음
9
Slide made by Bogju Lee
알파 베타 탐색 문제
다음 법칙을 이용하여 아래의 알파-베타 탐색 트리를 완성하라
가지치기가 일어나는 법칙:
1. 어떤 최소화노드의 베타값(예 =-3)이 자신보다 상위(선조노드)에 있는 어떤 최대화 노드의 알파값(=0 )보다 작거
나 같을 때, 이 최소화 노드는 가지치기 된다.
2. 어떤 최대화노드의 알파값이 자신보다 상위(선조노드)에 있는 어떤 최소화 노드의 베타값보다 크거나 같을 때, 이 최
대화 노드는 가지치기 된다.
3. 최상위의 최대화노드의 알파값은 최종적으로 올려진 값(backed-up value)로 주어진다.
최대화노드
최소화노드
=0
=0
=0
=-3
0
5 -3
3
3
-3
0
2
-2
3
5
2
5 -5 3 0
1
5
1 -3
0
10
Slide made by Bogju Lee
제약 조건 만족 문제 (Constraint
Satisfaction Problem)

n개의 변수로 구성된 CSP 정의
– 유한하고 이산적인 영역들인 D1, D2, …,Dn으로부터 값을 취하
고 그 값들 간에는 제약조건 pk(xk1,xk2,…xkl)이 존재하는 문제
– 모든 제약 조건을 만족하도록 변수들에 적당한 값 지정
– 일종의 NP-complete 문제
11
Slide made by Bogju Lee
제약 조건 만족 문제 (Constraint
Satisfaction Problem)
 8-Queen
문제 (그림 2.18)
– 여왕은 하나의 행이나 열에 놓이고 서로 대각선에 놓여도 안
됨
– xi: i 번째 행의 여왕이 놓일 수 있는 열 위치, x1, x2, …, x8
– 여왕 xi, xj의 위치사이의 제약조건
xi  x j  | i  j || xi  x j |
– i, j 의 열이 같으면 않 되고 행의 차이와 열의 차이가 같으면 않
됨
x2 = 7
12
Slide made by Bogju Lee
제약 조건 만족 문제(Constraint Satisfaction
Problem)

다른 CSP 문제
– Graph Coloring 문제: 이웃 노드는 반드시 다른 색깔을 갖도록 색
칠

제약 조건 그래프: 그림 2.19
– x1 = {0, 1}, x2 = {0, 1}, x3 = {1}
– 제약 조건: x1  x2, x1  x3
– x3 = 1, x1 = 0, x2 = 1
13
Slide made by Bogju Lee
제약 조건 만족 문제(Constraint Satisfaction
Problem)

탐색기법의 활용
– 공장자동화, 로보트의 경로계획
• NASA의 GPSS (ground processing scheduling system): 주어진
인원과 장비로 우주왕복선의 보수를 마치도록 적절한 일정을 탐색함
– 비행기 좌석예약 시스템: 승객의 요구 최대 수용, 항공사의
이익 극대화
– 게임
• chess - Deep Blue
• 바둑 - 아직 수준이 요원
– 경제학적 응용: 다자가 공동의 공간에서 자신의 이익을 달성
하려는 경제적 문제
– 실제 게임의 경우 탐색의 양이 폭증  지식 활용에 대한 연
구가 많이 요구됨
14
Slide made by Bogju Lee
Summary
게임
 최소
 알파
 제약

트리
최대 탐색
베타 탐색 문제
조건 만족 문제
15
Slide made by Bogju Lee