Transcript lec02

Modified from the slides
by SciTech Media
탐색
(Lecture Note #2)
인공지능
이복주
단국대학교 컴퓨터공학과
1
Outline








탐색
문제 해결
상태 공간
탐색 기법
휴리스틱 기법
게임 트리 기법
알파베타 탐색 문제
제약 조건 만족 문제
2
탐색 (Search)


컴퓨터가 문제를 자율적으로 해결하기 위해 해 혹은
해에 이르기 위한 경로를 찾아가는 과정
탐색은 인공 지능적 문제해결에서 주요한 수단
– 초기의 서양 장기, 근래의 비행기표 예약 시스템


해를 찾는 과정의 효율성과 찾은 해의 적합성까지 포
함
다른 분야와의 관계 (학자에 따라서)
– 계획 (planning)은 탐색의 특수한 경우
– 탐색은 학습 (learning)의 특수한 경우
3
문제 해결

문제 해결
– 인간의 지적 문제해결
• ‘1+2’: 인공지능적 문제 해결로 볼 수 없다.
• 하노이 탑 문제: 인공지능적 탐색이 필요

예제 2.1: 하노이 타워
– 캄보디아 하노이 근처 사원, 64개의 원반, 5개 기둥
– 한번에 하나의 원반 옮김, 작은 원반이 밑에 가는 경우 없음
4
예제: 하노이 타워

예제 2.1: 간단한 하노이 타워 문제
d1
문제해결을 위한 가능한 동작
d2
의 정의
p1
p2
p3
(a) 초기상태
p1
p2
동작
m(d1,p1)
m(d1,p2)
m(d1,p3)
m(d2,p1)
m(d2,p2)
m(d2,p3)
작용
d1을 p1으로 옮긴다.
d1을 p2로 옮긴다.
d1을 p3로 옮긴다.
d2를 p1으로 옮긴다.
d2를 p2로 옮긴다.
d2를 p3로 옮긴다.
p3
(b) 목표상태
– 답: m(d1, p2), m(d2, p3), m(d1, p3)
5
문제 해결

문제 해결
– 직접적 기법
• 주어진 초기 상태로부터 문제 해를 위한 순차적 수행을 위한 프
로그래밍
• 예: m(d1, p2), m(d2, p3), m(d1, p3)을 프로그램 화
• 초기상태가 다르면 프로그램 수정 필요
• 1+2 를 해결하는 것과 비슷
• 인공지능적 방법이 아님 (거의 모든 기존의 프로그램에 의한
문제 해결방식)
– 인공지능적 해법
• 문제 상태와 요구하는 목표 상태만으로 컴퓨터가 문제 해결
6
탐색에 의한 문제 해결
 탐색에
의한 문제 해결
– 문제의 해에 도달하기 위한 탐색과정을 직접 수행함으로써
보다 포괄적(일반적)이며 자동화된 해결방안
– 탐색에 의한 문제 해결법과 직접적 해결은 활용 영역이 다름
• 문제해결 과정 중에 지적 판단이 요구되는 경우 탐색기법이 유용
– 완벽한 의미의 지능적 기계보다는 인간의 지능이 어느 정도
개입하는 시스템 개발이 보다 현실적이다
• 탐색의 방식은 인간이 결정
– 문제해결의 최적의 방법보다 적당한 방법을 찾는 것이 쉽고,
인간의 문제 해결 방식과 상통하는 바가 있다
7
상태공간 (state space)

상태공간 (state space)
– 상태: 문제의 풀이과정 중의 고유한 요소 (상황)
– 상태의 집합을 상태공간
– 상태공간의 도입은 문제의 형식화에 유리
•
•
•
•
하노이 타워: ((p1에 있는 원반) (p2에 있는 원반) (p3에 있는 원반))
초기상태 = ((d1,d2)()())
목표상태 = (()()(d1,d2))
초기상태에 연산자(규칙) 적용  상태 변이  목표상태
8
상태 트리 예

예제 2.1 상태 트리 예 (그림 2.2)
((d1,d2)()())
m(d1,p2)
m(d1,p3)
((d2)(d1)())
((d2)()(d1))
m(d2,p3)
m(d1,p1)
m(d2,p2)
m(d1,p1)
m(d1,p3)
((d1,d2)()())
((d2)()(d1))
(()(d1)(d2))
((d1,d2)()())
m(d1,p2)
((d2)(d1)())
(()(d2)(d1))
9
상태공간 (state space)

상태공간 (state space) (계속)
– 트리 구조
•
•
•
•
•
•
각 상태: 노드 (node)
문제의 초기 상태 = 뿌리 노드 (root node)
적용 가능한 연산자나 조건 = 가지 (branch)
확장 (expansion): 부모 노드에서 자녀 노드를 얻는 것
열린 노드 (open node): 확장 전 노드
닫힌 노드 (closed node): 확장 된 노드
– 뿌리노드에서 목표노드까지 도달하는 과정
• 트리 전체의 모양을 완성할 필요는 없음
• 트리의 크기가 문제해결의 효율성과 관련
– 트리에서의 노드의 재생성은 문제 야기  그래프구조
• 탐색의 효율을 저하, 무한루프에 빠질 가능성
10
상태 그래프 예

그림 2.3 상태 그래프 예
((d1,d2)( )( ))
m(d1,p1)
m(d1,p2)
m(d1,p1)
m(d1,p3)
m(d1,p3)
((d2)(d1)( ))
((d2)( )(d1))
m(d1,p2)
m(d2,p1)
m(d2,p3)
(( )(d1)(d2))
m(d2,p2)
m(d2,p1)
(( )(d2)(d1))
11
탐색기법

기본적 탐색기법
– 어떤 연산자를 선택할 것인가
– 경로 선택의 고려사항
• 해의 경로는 짧아야 한다
• 탐색의 소요 경비는 적어야 한다
• 해가 있다면 탐색으로 반드시 찾아야 한다
– 탐색 기법으로 해결할 수 있는 문제 분류
• 경로 발견 (path finding) 문제: e.g., 8-puzzle
• 게임 (game) 문제: e.g., chess, 바둑
– 두 명의 참여자가 자신의 이익을 극대화하려 경쟁
• 제약조건 만족(constraint satisfaction) 문제: e.g., 8queen
– 목표에 이르는 경로를 찾는 것이 아니라 목표 자체를 발견하는 것
12
탐색기법

무작위 탐색 (random search or blind
search)
– 무작위로 경로 선택
– 영국박물관 알고리즘 (BMA: British Museum
Algorithm)
– 일반적으로 최악의 방법이라고 생각되지만
– 탐색 영역이 작은 (축소될 수 있는) 문제에는 유용
할 수도 있다
– 예: 예제 2.1의 하노이 타워 (2개의 원반)

트리에 의한 탐색
– 일반적인 탐색기법
– 깊이우선 (depth-first) 탐색, 너비우선
(breadth-first) 탐색
13
깊이 우선 탐색 (depth-first search:
DFS)

깊이 우선 탐색(depth-first search: DFS)
– 탐색 트리의 수직방향으로 점차 깊은 곳까지 목표노드를 찾
아 탐색해 나가는 기법(backtracking이 존재)
14
깊이 우선 탐색 (depth-first search:
DFS)

깊이 우선 탐색(depth-first search: DFS)
– 장점
• 저장공간의 수요가 비교적 작다
• 목표노드가 깊은 단계에 있을 경우 해를 빨리 구할 수도 있다
– 단점
• 해가 없는 경로에 깊이 빠질 우려 (depth bound 설정)
• 해에 이르는 경로가 다수인 경우 얻어진 해가 최단 경로가 된다는 보
장이 없다
– 예제 2.2.: 평균 탐색 노드 수 (가지: b개, 목표노드 깊이: d)
• 목표가 최좌측: d+1
• 목표가 최우측: 1+b+b2+ … +bd = (bd+1-1)/(b-1)
• 평균: {(1) + (2)} / 2
(1)
(2)
15
너비우선 탐색(breadth-first search:
BFS)
 너비우선
탐색(breadth-first search: BFS)
– 탐색트리의 루트노드부터 목표노드를 만날 때까지 단계별로
횡방향으로 탐색을 진행해 나가는 방식
16
너비우선 탐색(breadth-first search :
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)
17
탐색의 방향

탐색의 방향
– 전향 추론 (forward reasoning)
• 초기상태에서 목표상태로 탐색
– 후향 추론 (backward reasoning)
• 목표상태에서 초기상태로 탐색
– 주어진 문제의 성격에 따라 좌우된다
• 시작 상태의 단순성과 복잡성 비교
– 예제 2.4: 런던을 거쳐 도버로 여행가는 길 찾기 (그림 2.6)
• 후향 추론이 더 유리
노리지
코벤트리
캠브리지
노스앰톤
옥스포드
콜체스트
마케트
런던
브리스톨
캔터베리
솔즈베리
사우스앰톤
도버
포츠머스
헤이스팅즈
18
휴리스틱 기법
 휴리스틱
(heuristic) 기법
– 논리적으로 혹은 수학적으로 증명할 수 없으나 경험이나 직
관에 의해 효율적으로 해를 얻을 수 있으리라는 기대를 갖게
하는 어떤 근거에 의한 방법
– 용도
• 정의하기 힘든 문제: 예, 직업선택, 예산지출
• 맹목적인 기법(blind search)으로 풀기에는 비현실적인 문제
– 인간의 사고형태는 대부분 휴리스틱이다
– 해법이 유일하지 않으며, 최적의 해를 보장할 수 없다
– 해의 결정에 허용치를 부과하는 방법이 유용하다
19
휴리스틱 기법
(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
가능한 경로를 구한 후 가능성 생각: 시간 너무 많이 걸림
20
휴리스틱 기법
 외판원
방문 예에서 휴리스틱 사용
– 1. 임의의 도시를 출발지로 한다
– 2. 다음 방문 도시는 지금까지 방문하지 않은 도시 중에서
현재 위치에서 가장 가까운 도시부터 먼저 방문
– 3. 더 이상 방문할 도시가 없으면 끝내고, 아니면 2 로 간다
21
휴리스틱 기법

외판원 방문 예에서 휴리스틱 사용
– 위의 절차를 표 2.2 에 적용 (그림 2.8)
– 해: 광주, 목포, 전주, 대전, 광주
22
Summary








탐색
문제 해결
하노이 타워
상태 공간
탐색 기법
깊이 우선 탐색
너비 우선 탐색
휴리스틱 기법
23