Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
http://www.hanbit.co.kr
쉽게 배우는 알고리즘
12장. 상태공간 트리의 탐색
- 2 -
IT COOKBOOK
한빛아카데미㈜
12장. 상태공간 트리의 탐색
인공지능은 미국인들
특유의 천진난만함의 표현이다.
-에드거 다익스트라
- 3 -
IT COOKBOOK
한빛아카데미㈜
학습목표
• 상태공간 트리가 무엇인지 이해한다.
• 백트래킹 기법의 작동 원리를 이해한다.
• 한정분기의 작동 원리를 이해하고, 백트래킹에 비해 장점이 무엇인지 이해하도록 한다.
• A* 알고리즘의 작동 원리를 이해하고, 어떤문제들이 A* 알고리즘의 적용 대상인지 감지하도록 한다.
- 4 - 한빛아카데미㈜
IT COOKBOOK
State-Space Tree
• State-space tree (상태공간트리)
– 문제해결과정의중간상태를각각한노드로나타낸트리
• 이장에서배우는세가지상태공간탐색기법– Backtracking
– Branch-and-bound
– A* algorithm
- 5 - 한빛아카데미㈜
IT COOKBOOK
1
3
6
4
2
5
1
3
6
4
2
5
1
3
6
4
2
5
TSP 예제 해의 예 최적해
TSP의예
- 6 - 한빛아카데미㈜
IT COOKBOOK
0 10 10 30 25
10 0 14 21 10
10 18 0 7 9
8 11 7 0 3
14 10 10 3 0
1
2
3
4
5
1 2 3 4 5
1
3
4
2
5
10
10
25 14
1010
2111
30 8
3
3
9
10
7
7
14
18
10
10
TSP와Adjacency Matrix의예
- 7 - 한빛아카데미㈜
IT COOKBOOK
1
1-2-3
1-2-3-4 1-2-3-5
1-2-4
48 44
1-2-5
1-3
1-2-5-4
40
1-2-5-3
45
1-2-5-3-4-11-2-3-4-5-1 1-2-3-5-4-1 1-2-5-4-3-1
1-5-4-2 1-5-4-3
63 63
1-5-4-2-3-1 1-5-4-3-2-1
1-4 1-5
1
2
10 11
3 6
4 5 40 41
12 22 32
1-2-4-5
54
1-2-4-3
61
1-2-4-3-5-1 1-2-4-5-3-1
7 8
1-2
9
1-5-4
39
… … …
…
사전적탐색의 State-Space Tree
- 8 - 한빛아카데미㈜
IT COOKBOOK
Backtracking
• DFS 또는그와유사한스타일의탐색을총칭한다
• Go as deeply as possible, backtrack if impossible
– 가능한지점까지탐색하다가막히면되돌아간다
• 예
– Maze, 8-Queens problem, Map coloring, …
- 9 - 한빛아카데미㈜
IT COOKBOOK
S
T
2
3
1
4
5
6
S
1
2 3
4
5
T6
7
8
9987
maze
S
T
그래프로 모델링한 미로
Branching tree
Maze
- 10 - 한빛아카데미㈜
IT COOKBOOK
maze(v)
{
visited[v] ← YES;
if (v = T) then {print “성공!”; exit( );}
for each x ∈ L(v) ▷ L(v) : 정점 v의 인접 정점 집합
if (visited[x] = NO) then {
prev[x] ← v;
maze(x);
}
}
- 11 - 한빛아카데미㈜
IT COOKBOOK
Coloring Problem
• Graph에서
– 인접한 vertex는같은색을칠할수없다
– k개의색상을사용해서전체 graph를칠할수있는가?
- 12 - 한빛아카데미㈜
IT COOKBOOK
1
3
6
42
5
1
3
6
42
5
(a) 지도 (b) 구역간의 인접관계
(c) 연결관계를 정점과 간선으로 나타낸 것 (d) (c)와 동일한 그래프
Coloring Problem의예: Map Coloring
- 13 - 한빛아카데미㈜
IT COOKBOOK
kColoring(i , c) ▷ i: 정점, c: color
▷ 질문: 정점 i-1까지는 제대로 칠이 된 상태에서 정점 i를 색 c로 칠하려면 k개의 색으로 충분한가?
{
if (valid(i, c)) then {
color[i] ← c;
if (i = n) then {return TRUE;}
else {
result ← FALSE;
d ← 1; ▷ d: color
while (result = FALSE and d ≤ k) {
result ← kColoring(i+1, d); ▷ i+1: 다음정점
d++;
}
}
return result;
} else {return FALSE;}
}
- 14 - 한빛아카데미㈜
IT COOKBOOK
valid(i, c) ▷ i: 정점, c: color
▷ 질문: 정점 i-1까지는 제대로 칠이 된 상태에서 정점 i를 색 c로 칠하려면이들과 색이 겹치지 않는가?
{
for j ← 1 to i-1 {
▷ 정점 i와 j 사이에 간선이 있고, 두 정점이 같은 색이면 안된다
if ((i, j) ∈ E and color[j] = c) then return FALSE;
}
return TRUE;
}
- 15 - 한빛아카데미㈜
IT COOKBOOK
1, 1
3, 1 3, 2
2, 1
1
5
2, 23
4
4, 1 4, 276
5, 1
6, 1 6, 29
6, 310 11
8
2
State-Space Tree
1
3
6
42
5
- 16 - 한빛아카데미㈜
IT COOKBOOK
Branch-and-Bound
• 분기branch와한정bound의결합– 분기를한정시켜쓸데없는시간낭비를줄이는방법
• Backtracking과공통점, 차이점– 공통점
• 경우들을차례로나열하는방법필요
– 차이점
• Backtracking – 가보고더이상진행이되지않으면돌아온다
• Branch-&-Bound – 최적해를찾을가능성이없으면분기는하지않는다
- 17 - 한빛아카데미㈜
IT COOKBOOK
P1
P2
P3
P4
P5
P6 P1
P2
P3
P4
P5
P6
어느 시점에 가능한 선택들 최적해를 포함하지 않아 제외하는 선택들
- 18 - 한빛아카데미㈜
IT COOKBOOK
1
1-2
1-2-3
1-2-3-4 1-2-3-5
(33)0+33
(33)10+23
(37)24+13
1-2-4
(44)31+13
1-2-5
(33)20+13
1-3 (33)10+23
1-3-2
(44)28+16
1-3-4
(33)17+16
1-3-5(35)
19+16
1-2-5-41-2-5-3 1-3-4-2 1-3-4-5 1-3-5-41-3-5-2
1-4
(53)30+23
1-5
(48)25+23
1
2
4 5
6 9
7 8
11
12 13 1615
10 19 18
173 14
4045
1-2-5-3-4-11-2-3-4-5-1 1-2-3-5-4-1 1-2-5-4-3-1
40 4358
1-3-5-2-4-11-3-4-2-5-1 1-3-4-5-2-1 1-3-5-4-2-1
48 44 52
TSP 예제를대상으로한 Branch-and-Bound 탐색의예(State-Space Tree)
- 19 - 한빛아카데미㈜
IT COOKBOOK
A* Algorithm
• Best-First-Search
– 각정점이매력함수값 g(x)를갖고있다
– 방문하지않은정점들중 g(x) 값이가장매력적인것부터방문한다
• A* algorithm은 best-first search에목적점에이르는잔여추정거리를고려하는알고리즘이다– Vertex x로부터목적점에이르는잔여거리의추정치 h(x)는
실제치보다크면안된다
- 20 - 한빛아카데미㈜
IT COOKBOOK
Shortest Path 문제
• Remind: Dijkstra algorithm
– 시작점은하나
– 시작점으로부터다른모든 vertex에이르는최단경로를구한다 (목적점이하나가아니다)
• A* algorithm에서는목적점이하나다
- 21 - 한빛아카데미㈜
IT COOKBOOK
30
23
25
24
18
28 20
29
25
39
20
40
28
1610
19
17
20
17
030
23
25
24
18
28 20
29
25
39
∞
20
40
28
1610
19
17
20
17
1030
17 23
∞
∞
∞
25
030
23
25
24
18
28 20
29
25
39
∞
20
40
28
1610
19
17
20
17
1030
17 23
∞
∞
∞
25
030
23
25
24
18
28 20
29
25
39
20
40
28
1610
19
17
20
17
∞∞
∞
∞
∞
∞
∞
∞ ∞
s
t
Dijkstra Algorithm의작동예
- 22 - 한빛아카데미㈜
IT COOKBOOK
030
23
25
24
18
28 20
29
25
39
∞
20
40
28
1610
19
17
20
17
1030
17 23
∞
∞
∞
25
030
23
25
24
18
28 20
29
25
39
∞
20
40
28
1610
19
17
20
17
1030
17 23
41
∞
∞
25
030
23
25
24
18
28 20
29
25
39
∞
20
40
28
1610
19
17
20
17
1030
17 23
41
∞
50
25
030
23
25
24
18
28 20
29
25
39
61
20
40
28
1610
19
17
20
17
1030
17 23
41
64
50
25
- 23 - 한빛아카데미㈜
IT COOKBOOK
030
23
25
24
18
28 20
29
25
39
61
20
40
28
1610
19
17
20
17
1030
17 23
41
64
50
25
030
23
25
24
18
28 20
29
25
39
61
20
40
28
1610
19
17
20
17
1030
17 23
41
64
50
25
- 24 - 한빛아카데미㈜
IT COOKBOOK
16
25
52
40
39
34
19
19
52
68
61
30
23
25
24
18
28 20
29
25
39
20
40
28
1610
19
17
20
17
(77)
(57)
(71)
(85)
(70)
030
23
25
24
18
28 20
2939
∞
20
40
28
10
19
17
20
17
1030
17 23
∞
∞
∞
25
∞
추정 잔여거리
030
23
25
24
18
28 20
29
25
39
20
40
28
1610
19
17
20
17
∞∞
∞ ∞
∞
∞
∞
∞
∞
∞
A* Algorithm의작동예
- 25 - 한빛아카데미㈜
IT COOKBOOK
030
23
25
24
18
28 20
29
25
39
61
20
40
28
1610
19
17
20
17
1030
17 23
41
∞
50
25
(60)
(89)
030
23
25
24
18
28 20
29
25
39
61
20
40
28
1610
19
17
2017
1030
17 23
41
∞
50
25
(77)
(57)
(71)
(85)
(70)
(60)
(89)
(77)
(57)
(71)
(85)
(70)
추정잔여거리를사용함으로써탐색의단계가현저히줄었다
- 26 - 한빛아카데미㈜
IT COOKBOOK
1
1-2
1-2-3
1-2-3-4 1-2-3-5
(33)0+33
(33)10+23
(37)24+13
1-2-4
(44)31+13
1-2-5
(33)20+13
1-3 (33)10+23
1-3-2
(44)28+16
1-3-4
(33)17+16
1-3-5(35)
19+16
1-2-5-4
40
1-2-5-3
45
1-2-5-3-4-11-2-3-4-5-1 1-2-3-5-4-1 1-2-5-4-3-1
1-3-4-2 1-3-4-5
40
1-3-5-4
43
1-3-5-2
58
1-3-5-2-4-11-3-4-2-5-1 1-3-4-5-2-1 1-3-5-4-2-1
1-4
(53)30+23
1-5
(48)25+23
1
2
8
7 5
3
4 6
48 44 52
TSP 예제를대상으로한A* Algorithm 탐색의예(State-Space Tree)
- 27 - 한빛아카데미㈜
IT COOKBOOK
153241 153421
1-5
154231152351 152431 154321
(48)25+23
1-2-5
(33)20+13
1-2-5-4
40
1-2-5-3
45
125341 125431
1-3-5
(35)19+16
1-3-5-4
41
1-3-5-2
58
125341 125431
…… …
계산된 leaf node들 계산되지 않은 leaf node들방문된 leaf node
A* Algorithm이첫 Leaf Node를방문하는순간종료되는이유
영역과 영역의 leaf node들이 모두
40 보다 커질수 없는 이유를이해할 것
- 28 -
IT COOKBOOK
한빛아카데미㈜
Thank you