28
http://www.hanbit.co.kr 쉽게 배우는 알고리즘 12 . 상태공간 트리의 탐색

쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

http://www.hanbit.co.kr

쉽게 배우는 알고리즘

12장. 상태공간 트리의 탐색

Page 2: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 2 -

IT COOKBOOK

한빛아카데미㈜

12장. 상태공간 트리의 탐색

인공지능은 미국인들

특유의 천진난만함의 표현이다.

-에드거 다익스트라

Page 3: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 3 -

IT COOKBOOK

한빛아카데미㈜

학습목표

• 상태공간 트리가 무엇인지 이해한다.

• 백트래킹 기법의 작동 원리를 이해한다.

• 한정분기의 작동 원리를 이해하고, 백트래킹에 비해 장점이 무엇인지 이해하도록 한다.

• A* 알고리즘의 작동 원리를 이해하고, 어떤문제들이 A* 알고리즘의 적용 대상인지 감지하도록 한다.

Page 4: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 4 - 한빛아카데미㈜

IT COOKBOOK

State-Space Tree

• State-space tree (상태공간트리)

– 문제해결과정의중간상태를각각한노드로나타낸트리

• 이장에서배우는세가지상태공간탐색기법– Backtracking

– Branch-and-bound

– A* algorithm

Page 5: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 5 - 한빛아카데미㈜

IT COOKBOOK

1

3

6

4

2

5

1

3

6

4

2

5

1

3

6

4

2

5

TSP 예제 해의 예 최적해

TSP의예

Page 6: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 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의예

Page 7: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 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

Page 8: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 8 - 한빛아카데미㈜

IT COOKBOOK

Backtracking

• DFS 또는그와유사한스타일의탐색을총칭한다

• Go as deeply as possible, backtrack if impossible

– 가능한지점까지탐색하다가막히면되돌아간다

• 예

– Maze, 8-Queens problem, Map coloring, …

Page 9: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 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

Page 10: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 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);

}

}

Page 11: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 11 - 한빛아카데미㈜

IT COOKBOOK

Coloring Problem

• Graph에서

– 인접한 vertex는같은색을칠할수없다

– k개의색상을사용해서전체 graph를칠할수있는가?

Page 12: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 12 - 한빛아카데미㈜

IT COOKBOOK

1

3

6

42

5

1

3

6

42

5

(a) 지도 (b) 구역간의 인접관계

(c) 연결관계를 정점과 간선으로 나타낸 것 (d) (c)와 동일한 그래프

Coloring Problem의예: Map Coloring

Page 13: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 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;}

}

Page 14: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 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;

}

Page 15: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 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

Page 16: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 16 - 한빛아카데미㈜

IT COOKBOOK

Branch-and-Bound

• 분기branch와한정bound의결합– 분기를한정시켜쓸데없는시간낭비를줄이는방법

• Backtracking과공통점, 차이점– 공통점

• 경우들을차례로나열하는방법필요

– 차이점

• Backtracking – 가보고더이상진행이되지않으면돌아온다

• Branch-&-Bound – 최적해를찾을가능성이없으면분기는하지않는다

Page 17: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 17 - 한빛아카데미㈜

IT COOKBOOK

P1

P2

P3

P4

P5

P6 P1

P2

P3

P4

P5

P6

어느 시점에 가능한 선택들 최적해를 포함하지 않아 제외하는 선택들

Page 18: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 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)

Page 19: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 19 - 한빛아카데미㈜

IT COOKBOOK

A* Algorithm

• Best-First-Search

– 각정점이매력함수값 g(x)를갖고있다

– 방문하지않은정점들중 g(x) 값이가장매력적인것부터방문한다

• A* algorithm은 best-first search에목적점에이르는잔여추정거리를고려하는알고리즘이다– Vertex x로부터목적점에이르는잔여거리의추정치 h(x)는

실제치보다크면안된다

Page 20: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 20 - 한빛아카데미㈜

IT COOKBOOK

Shortest Path 문제

• Remind: Dijkstra algorithm

– 시작점은하나

– 시작점으로부터다른모든 vertex에이르는최단경로를구한다 (목적점이하나가아니다)

• A* algorithm에서는목적점이하나다

Page 21: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 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의작동예

Page 22: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 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

Page 23: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 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

Page 24: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 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의작동예

Page 25: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 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)

추정잔여거리를사용함으로써탐색의단계가현저히줄었다

Page 26: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 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)

Page 27: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 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 보다 커질수 없는 이유를이해할 것

Page 28: 쉽게 배우는 알고리즘 강의노트nlp.chonbuk.ac.kr/AL/ch12.pdf · 2016-02-29 · - 3 - it cookbook 한빛아카데미㈜ 학습목표 •상태공간트리가무엇인지이해한다

- 28 -

IT COOKBOOK

한빛아카데미㈜

Thank you