Download - 탐색 (Lecture Note #2)

Transcript
Page 1: 탐색 (Lecture Note #2)

1

탐색탐색(Lecture Note #2)(Lecture Note #2)

인공지능

이복주단국대학교 컴퓨터공학과

Modified from the slidesby SciTech Media

Page 2: 탐색 (Lecture Note #2)

2

OutlineOutline

탐색 문제 해결 상태 공간 탐색 기법 휴리스틱 기법 게임 트리 기법 알파베타 탐색 문제 제약 조건 만족 문제

Page 3: 탐색 (Lecture Note #2)

3

탐색 탐색 (Search)(Search)

컴퓨터가 문제를 자율적으로 해결하기 위해 해 혹은 해에 이르기 위한 경로를 찾아가는 과정

탐색은 인공 지능적 문제해결에서 주요한 수단– 초기의 서양 장기 , 근래의 비행기표 예약 시스템

해를 찾는 과정의 효율성과 찾은 해의 적합성까지 포함 다른 분야와의 관계 ( 학자에 따라서 )

– 계획 (planning) 은 탐색의 특수한 경우– 탐색은 학습 (learning) 의 특수한 경우

Page 4: 탐색 (Lecture Note #2)

4

문제 해결문제 해결 문제 해결

– 인간의 지적 문제해결 • ‘1+2’: 인공지능적 문제 해결로 볼 수 없다 .• 하노이 탑 문제 : 인공지능적 탐색이 필요

예제 2.1: 하노이 타워– 캄보디아 하노이 근처 사원 , 64 개의 원반 , 5 개 기둥– 한번에 하나의 원반 옮김 , 작은 원반이 밑에 가는 경우 없음

Page 5: 탐색 (Lecture Note #2)

5

예제예제 : : 하노이 타워하노이 타워

예제 2.1: 간단한 하노이 타워 문제

– 답 : m(d1, p2), m(d2, p3), m(d1, p3)

(a) 초기상태

d1

d2

p1 p2 p3

(b) 목표상태

p1 p2 p3

동작 작용 m(d1,p1) d1 을 p1 으로 옮긴다 .m(d1,p2) d1 을 p2 로 옮긴다 .m(d1,p3) d1 을 p3 로 옮긴다 .m(d2,p1) d2 를 p1 으로 옮긴다 .m(d2,p2) d2 를 p2 로 옮긴다 .m(d2,p3) d2 를 p3 로 옮긴다 .

문제해결을 위한 가능한 동작의 문제해결을 위한 가능한 동작의 정의정의

Page 6: 탐색 (Lecture Note #2)

6

문제 해결문제 해결 문제 해결

– 직접적 기법• 주어진 초기 상태로부터 문제 해를 위한 순차적 수행을 위한

프로그래밍• 예 : m(d1, p2), m(d2, p3), m(d1, p3) 을 프로그램 화• 초기상태가 다르면 프로그램 수정 필요• 1+2 를 해결하는 것과 비슷• 인공지능적 방법이 아님 ( 거의 모든 기존의 프로그램에 의한

문제 해결방식 )

– 인공지능적 해법• 문제 상태와 요구하는 목표 상태만으로 컴퓨터가 문제 해결

Page 7: 탐색 (Lecture Note #2)

7

탐색에 의한 문제 해결탐색에 의한 문제 해결 탐색에 의한 문제 해결

– 문제의 해에 도달하기 위한 탐색과정을 직접 수행함으로써 보다 포괄적 ( 일반적 ) 이며 자동화된 해결방안

– 탐색에 의한 문제 해결법과 직접적 해결은 활용 영역이 다름• 문제해결 과정 중에 지적 판단이 요구되는 경우 탐색기법이 유용

– 완벽한 의미의 지능적 기계보다는 인간의 지능이 어느 정도 개입하는 시스템 개발이 보다 현실적이다

• 탐색의 방식은 인간이 결정

– 문제해결의 최적의 방법보다 적당한 방법을 찾는 것이 쉽고 , 인간의 문제 해결 방식과 상통하는 바가 있다

Page 8: 탐색 (Lecture Note #2)

8

상태공간 상태공간 (state space)(state space)

상태공간 (state space)– 상태 : 문제의 풀이과정 중의 고유한 요소 ( 상황 )– 상태의 집합을 상태공간– 상태공간의 도입은 문제의 형식화에 유리

• 하노이 타워 : ((p1 에 있는 원반 ) (p2 에 있는 원반 ) (p3 에 있는 원반 )) • 초기상태 = ((d1,d2)()()) • 목표상태 = (()()(d1,d2))• 초기상태에 연산자 ( 규칙 ) 적용 상태 변이 목표상태

Page 9: 탐색 (Lecture Note #2)

9

상태 트리 예상태 트리 예 예제 2.1 상태 트리 예 ( 그림 2.2)

((d1,d2)()()) ((d2)()(d1)) (()(d1)(d2)) ((d2)(d1)())((d1,d2)()()) (()(d2)(d1))

((d2)(d1)()) ((d2)()(d1))

((d1,d2)()())

m(d1,p2) m(d1,p3)

m(d1,p1)m(d1,p3)

m(d2,p3)m(d1,p1)

m(d1,p2)

m(d2,p2)

Page 10: 탐색 (Lecture Note #2)

10

상태공간 상태공간 (state space)(state space)

상태공간 (state space) ( 계속 )– 트리 구조

• 각 상태 : 노드 (node)• 문제의 초기 상태 = 뿌리 노드 (root node)• 적용 가능한 연산자나 조건 = 가지 (branch)• 확장 (expansion): 부모 노드에서 자녀 노드를 얻는 것• 열린 노드 (open node): 확장 전 노드• 닫힌 노드 (closed node): 확장 된 노드

– 뿌리노드에서 목표노드까지 도달하는 과정• 트리 전체의 모양을 완성할 필요는 없음• 트리의 크기가 문제해결의 효율성과 관련

– 트리에서의 노드의 재생성은 문제 야기 그래프구조• 탐색의 효율을 저하 , 무한루프에 빠질 가능성

Page 11: 탐색 (Lecture Note #2)

11

상태 그래프 예상태 그래프 예 그림 2.3 상태 그래프 예

((d1,d2)( )( ))

((d2)(d1)( ))

(( )(d1)(d2))

((d2)( )(d1))

(( )(d2)(d1))

m(d1,p2)

m(d1,p2)

m(d1,p3)

m(d1,p1)m(d1,p3)

m(d1,p1)

m(d2,p1) m(d2,p3) m(d2,p2) m(d2,p1)

Page 12: 탐색 (Lecture Note #2)

12

탐색기법탐색기법 기본적 탐색기법

– 어떤 연산자를 선택할 것인가– 경로 선택의 고려사항

• 해의 경로는 짧아야 한다• 탐색의 소요 경비는 적어야 한다• 해가 있다면 탐색으로 반드시 찾아야 한다

– 탐색 기법으로 해결할 수 있는 문제 분류• 경로 발견 (path finding) 문제 : e.g., 8-puzzle• 게임 (game) 문제 : e.g., chess, 바둑

– 두 명의 참여자가 자신의 이익을 극대화하려 경쟁• 제약조건 만족 (constraint satisfaction) 문제 : e.g., 8-queen

– 목표에 이르는 경로를 찾는 것이 아니라 목표 자체를 발견하는 것

Page 13: 탐색 (Lecture Note #2)

13

탐색기법탐색기법 무작위 탐색 (random search or blind search)

– 무작위로 경로 선택– 영국박물관 알고리즘 (BMA: British Museum Algori

thm)– 일반적으로 최악의 방법이라고 생각되지만– 탐색 영역이 작은 ( 축소될 수 있는 ) 문제에는

유용할 수도 있다– 예 : 예제 2.1 의 하노이 타워 (2 개의 원반 )

트리에 의한 탐색– 일반적인 탐색기법– 깊이우선 (depth-first) 탐색 , 너비우선 (breadth-f

irst) 탐색

Page 14: 탐색 (Lecture Note #2)

14

깊이 우선 탐색 깊이 우선 탐색 (depth-first search: (depth-first search: DFS)DFS)

깊이 우선 탐색 (depth-first search: DFS)– 탐색 트리의 수직방향으로 점차 깊은 곳까지 목표노드를

찾아 탐색해 나가는 기법 (backtracking 이 존재 )

Page 15: 탐색 (Lecture Note #2)

15

깊이 우선 탐색 깊이 우선 탐색 (depth-first search: (depth-first search: DFS)DFS)

깊이 우선 탐색 (depth-first search: DFS)– 장점

• 저장공간의 수요가 비교적 작다• 목표노드가 깊은 단계에 있을 경우 해를 빨리 구할 수도 있다

– 단점• 해가 없는 경로에 깊이 빠질 우려 (depth bound 설정 )• 해에 이르는 경로가 다수인 경우 얻어진 해가 최단 경로가 된다는

보장이 없다

– 예제 2.2.: 평균 탐색 노드 수 ( 가지 : b 개 , 목표노드 깊이 : d)

• 목표가 최좌측 : d+1 (1) • 목표가 최우측 : 1+b+b2+ … +bd = (bd+1-1)/(b-1) (2)• 평균 : {(1) + (2)} / 2

Page 16: 탐색 (Lecture Note #2)

16

너비우선 탐색너비우선 탐색 (breadth-first search: (breadth-first search: BFS)BFS)

너비우선 탐색 (breadth-first search: BFS)– 탐색트리의 루트노드부터 목표노드를 만날 때까지 단계별로

횡방향으로 탐색을 진행해 나가는 방식

Page 17: 탐색 (Lecture Note #2)

17

너비우선 탐색너비우선 탐색 (breadth-first search : (breadth-first search : BFS)BFS)

너비우선 탐색 (breadth-first search : BFS)– 장점

• 해에 이르는 경로가 다수인 경우에도 최단경로를 보장• 해가 존재하면 반드시 찾을 수 있다• 노드의 수가 적고 얕은 깊이에 해가 존재할 때 유리

– 단점• 노드의 수가 늘어나면 탐색시간이 비현실적이다• 기억공간에 대한 요구가 과중

– 예제 2.3: 평균 탐색 노드 수 ( 가지 : b 개 , 목표노드 깊이 : d)

• d 깊이 목표를 위한 평균 노드 수 = (d-1 깊이까지 총 노드수 ) + (d 깊이에서의 노드 평균수 ) • d-1 까지의 총수 : 1+b+b2+ … +bd-1 = (bd-1)/(b-1) (1)• d 에서의 평균 수 : (1+ bd)/2 (2)

Page 18: 탐색 (Lecture Note #2)

18

탐색의 방향탐색의 방향 탐색의 방향

– 전향 추론 (forward reasoning)• 초기상태에서 목표상태로 탐색

– 후향 추론 (backward reasoning)• 목표상태에서 초기상태로 탐색

– 주어진 문제의 성격에 따라 좌우된다• 시작 상태의 단순성과 복잡성 비교

– 예제 2.4: 런던을 거쳐 도버로 여행가는 길 찾기 ( 그림 2.6)• 후향 추론이 더 유리

런던

캔터베리

마케트

도버

코벤트리

노스앰톤

옥스포드

브리스톨

솔즈베리

사우스앰톤 포츠머스헤이스팅즈

노리지

캠브리지

콜체스트

Page 19: 탐색 (Lecture Note #2)

19

휴리스틱 기법휴리스틱 기법

휴리스틱 (heuristic) 기법– 논리적으로 혹은 수학적으로 증명할 수 없으나 경험이나

직관에 의해 효율적으로 해를 얻을 수 있으리라는 기대를 갖게 하는 어떤 근거에 의한 방법

– 용도• 정의하기 힘든 문제 : 예 , 직업선택 , 예산지출• 맹목적인 기법 (blind search) 으로 풀기에는 비현실적인 문제

– 인간의 사고형태는 대부분 휴리스틱이다– 해법이 유일하지 않으며 , 최적의 해를 보장할 수 없다– 해의 결정에 허용치를 부과하는 방법이 유용하다

Page 20: 탐색 (Lecture Note #2)

20

휴리스틱 기법휴리스틱 기법

휴리스틱 (heuristic) 기법 : TSP (Traveling Salesman Problem)

– n=3: A-B-C-A, A-C-B-A 같은 경로 1 가지– n=4: 3 가지– n=5: 12 가지– n 개의 도시 순회 방문 (n-1)!/2– n=20 60,822,550,204,416,000– 가능한 경로를 구한 후 가능성 생각 : 시간 너무 많이 걸림

Page 21: 탐색 (Lecture Note #2)

21

휴리스틱 기법휴리스틱 기법

외판원 방문 예에서 휴리스틱 사용– 1. 임의의 도시를 출발지로 한다– 2. 다음 방문 도시는 지금까지 방문하지 않은 도시 중에서 현재 위치에서 가장 가까운 도시부터 먼저 방문

– 3. 더 이상 방문할 도시가 없으면 끝내고 , 아니면 2 로 간다

Page 22: 탐색 (Lecture Note #2)

22

휴리스틱 기법휴리스틱 기법

외판원 방문 예에서 휴리스틱 사용– 위의 절차를 표 2.2 에 적용 ( 그림 2.8)

– 해 : 광주 , 목포 , 전주 , 대전 , 광주

Page 23: 탐색 (Lecture Note #2)

23

SummarySummary

탐색 문제 해결 하노이 타워 상태 공간 탐색 기법 깊이 우선 탐색 너비 우선 탐색 휴리스틱 기법