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

Slides:



Advertisements
Similar presentations
Big Data & Hadoop. 1. Data Type by Sectors Expected Value using Big Data.
Advertisements

영화 예매 시스템 - 많이 봤다이가 ? CSE Corp. PM 송진희 김성욱 김보람 천창영.
1 탐색 (Lecture Note #4) 인공지능 이복주 단국대학교 컴퓨터공학과 Modified from the slides by SciTech Media.
인공지능 : 개념 및 응용 Artificial Intelligence: Concepts and Applications 2. 탐색 도용태 김일곤 김종완 박창현 공저 탐색 (Search) 컴퓨터가 문제를 자율적으로 해결하기 위해 해 혹은 해 에 이르기 위한 경로를 찾아가는.
탐색 (Lecture Note #2) 인공지능 이복주 단국대학교 컴퓨터공학과 Modified from the slides
자동창고 Automated Storage and Retrieval System
알고리즘 기본 개념 정렬 알고리즘 탐색 알고리즘 알고리즘 복잡도.
컴퓨터와 인터넷.
UNIX 운영 체제의 설계 - Chapter 4. 파일의 내부 표현
순차, 조건, 반복 이점숙 농대 뒷편 언덕을 넘어가며 같은 문제 다르게 해결 순차, 조건, 반복 이점숙
순차, 조건, 반복 이점숙 같은 문제 다르게 해결하기 순차, 조건, 반복 이점숙
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
제2장 주파수 영역에서의 모델링.
연결리스트(linked list).
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
1-1 일과 일률.
컴퓨터 프로그래밍 기초 [Final] 기말고사
Windows Server 장. 사고를 대비한 데이터 백업.
되추적(Backtracking).
Chapter 02 순환 (Recursion).
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
Error Detection and Correction
컴퓨터과학 전공탐색 배상원.
1. 현대 생활과 응용 윤리의 필요성 2. 윤리 문제의 탐구와 실천 3. 윤리 문제에 대한 다양한 접근
상관함수 correlation function
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
보조저장장치 구조(Secondary Storage Structure)
CHAP 10:그래프 (2) 순천향대학교 하상호.
자바 5.0 프로그래밍.
프로그래밍 개요
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
27장. 모듈화 프로그래밍.
메모리 관리 & 동적 할당.
뇌를 자극하는 Windows Server 2012 R2
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Metal Forming CAE Lab., Gyeongsang National University
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
8장. spss statistics 20의 데이터 변환
20 장 네트워킹과 인터네트워킹 장치 20.1 리피터(Repeaters) 20.2 브리지(Bridges)
메모리 타입 분석을 통한 안전하고 효율적인 메모리 재사용
3강. 컴퓨터와의 기본적인 소통수단 - I 연산자란? 컴퓨터와 소통하기 위한 다양한 방법들
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
균형이진탐색트리 이진 탐색(binary search)과 이진 탐색 트리(binary search tree)와의 차이점
CHAP 12 : 탐색 C로 쉽게 풀어쓴 자료구조 Slide 1 (of 27).
알고리즘 알고리즘이란 무엇인가?.
약식 진리표를 이용한 타당성 증명 진리표 그리기 방법의 한계
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
5장. 선택 알고리즘.
광합성에 영향을 미치는 환경 요인 - 생각열기 – 지구 온난화 해결의 열쇠가 식물에 있다고 하는 이유는 무엇인가?
쉽게 배우는 알고리즘 2장. 점화식과 점근적 복잡도 분석
논리회로 설계 및 실험 4주차.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
탐색 (Search) 컴퓨터가 문제를 자율적으로 해결하기 위해 해 혹은 해에 이르기 위한 경로를 찾아가는 과정
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
발표자 : 이지연 Programming Systems Lab.
컴퓨터공학과 손민정 Computer Graphics Lab 이승용 교수님
실습 UBLAB.
트리 (Logical) Data Structures Linear list Tree Graph Linear structures
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
제 4 장 Record.
수치해석 ch3 환경공학과 김지숙.
1. 강의 소개 컴퓨팅적 사고와 문제해결.
수학10-나 1학년 2학기 Ⅱ.부등식의 영역 3. 부등식의 영역에서 최대, 최소(5/5) 부등식 영역 수업계획 수업활동.
 6장. SQL 쿼리.
문제풀이방식-맹목적 탐색 Ai4.
Ch12. Deep Learning (Backpropagation)
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
Presentation transcript:

탐색 (Search) 컴퓨터가 문제를 자율적으로 해결하기 위해 해 혹은 해에 이르기 위한 경로를 찾아가는 과정 탐색은 인공 지능적 문제해결에서 주요한 수단 해를 찾는 과정의 효율성과 찾은 해의 적합성까지 포함 인공지능 시스템에서 적용할 규칙을 선택하는 제어시스템의 행위는 일종의 탐색과정

문제 해결 인간의 지적 문제해결 직접적 기법 인공지능적 해법 ‘1+2’ : 인공지능적 문제 해결로 볼 수 없다. 하노이 탑 문제 : 인공지능적 탐색이 필요 직접적 기법 문제 해를 위한 순차적 수행을 위한 프로그래밍 초기상태가 다르면 프로그램이 수정 필요 인공지능적 방법이 아님(거의 모든 기존의 프로그램에 의한 문제 해결방식) 인공지능적 해법 문제 상태와 요구하는 목표 상태만으로 컴퓨터가 문제 해결

하노이의 답(Tower of Hanoi) 문제 d1 문제해결을 위한 동장의 정의 d2 동작 작용 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로 옮긴다. p1 p2 p3 (a) 초기상태 p1 p2 p3 (b) 목표상태 * 인터넷 웹에는 하노이 탑과 관련된 사이트들이 많이 있다. 얘를 들면 하기의 사이트에서 JAVA 애플릿을 통하여 문제의 해결과정을 살펴볼 수 있다: http://www.cut-the-knot.org/recurrence/hanoi.shtml

탐색에 의한 문제 해결 문제의 해에 도달하기 위한 탐색과정을 직접 수행함으로써 보다 포괄적이며 자동화된 해결방안 문제해결 과정 중에 지적 판단이 요구되는 경우 탐색기법이 유용 완벽한 의미의 지능적 기계보다는 인간의 지능이 어느 정도 개입하는 시스템 개발이 보다 현실적이다 문제해결의 최적의 방법보다 적당한 방법을 찾는 것이 쉽고, 인간과 상통하는 바가 있다.

상태공간(state space) 상태: 문제의 풀이과정중의 고유한 요소(상황) 상태의 집합을 상태공간 상태공간의 도입은 문제의 형식화에 유리--트리 구조 초기상태 := ((d1,d2)()()) 목표상태 := (()()(d1,d2)) 초기상태에 연산자(규칙) 적용  상태 변이  목표상태 뿌리노드에서 목표노드까지 도달하는 과정 트리의 크기가 문제해결의 효율성과 관련 트리에서의 노드의 재생성은 문제 야기  그래프구조 탐색의 효율을 저하, 무한루프에 빠질 가능성

상태 트리 예 ((d1,d2)()()) m(d1,p2) m(d1,p3) ((d2)(d1)()) ((d2)()(d1))

상태 그래프 예 ((d1,d2)()()) m(d1,p1) m(d1,p1) m(d1,p2) m(d1,p3) m(d1,p3)

탐색기법 기본적 탐색기법 경로 선택의 고려사항 탐색 기법으로 해결할 수 있는 문제 분류 해의 경로는 짧아야 한다. 탐색의 소요 경비는 적어야 한다. 해가 있다면 탐색으로 반드시 찾아야 한다. 탐색 기법으로 해결할 수 있는 문제 분류 경로 발견(path finding) 문제 8-puzzle 게임(game) 문제 chess/바둑 제약조건 만족(constraint satisfaction) 문제 8-queen

The British Museum (영국박물관,or 대영박물관) 탐색기법 무작위 탐색 (random search or blind search) 무작위로 경로 선택 영국박물관 알고리즘 (BMA) 일반적으로 최악의 방법이라고 생각되지만, 탐색 영역이 작은(축소될 수 있는) 문제에는 유용할 수도 있다. The British Museum (영국박물관,or 대영박물관) 세계 각국에서 가져온 엄청난 전시품이 있다. 특정 소장품을 아무런 정보없이 무작위로 찾으려면 긴 시간과 많은 노력이 필요하다.

깊이우선 탐색(depth-first search: DFS) 탐색 트리의 수직방향으로 점차 깊은 곳까지 목표노드를 찾아 탐색해 나가는 기법(backtracking이 존재) 장점 저장공간의 수요가 비교적 작다 목표노드가 깊은 단계에 있을 경우 해를 빨리 구할 수도 있다 단점 해가 없는 경로에 깊이 빠질 우려(depth bound설정) 해에 이르는 경로가 다수인 경우 얻어진 해가 최단 경로가 된다는 보장이 없다 평균 탐색 노드 수(가지: b개, 목표노드 깊이: d) 목표가 최좌측: d+1 - - - (1) 목표가 최우측: 1+b+b2+ … +bd = (bd+1-1)/(b-1) - - - (2) 평균: {(1) + (2)} / 2

너비우선 탐색(breadth-first search : BFS) 탐색트리의 루트노드부터 목표노드를 만날 때까지 단계별로 횡방향으로 탐색을 진행해 나가는 방식 장점 해에 이르는 경로가 다수인 경우에도 최단경로를 보장 해가 존재하면 반드시 찾을 수 있다 노드의 수가 적고 얕은 깊이에 해가 존재할 때 유리 단점 노드의 수가 늘어나면 탐색시간이 비현실적이다 기억공간에 대한 요구가 과중 평균 탐색 노드 수(가지: b개, 목표노드 깊이: d) d 깊이 목표를 위한 평균 노드 수 = (d-1깊이까지 총 노드수) + (d 깊이에서의 노드 평균수) d-1까지의 총수: 1+b+b2+ … +bd-1 = (bd-1)/(b-1) --- (1) d에서의 평균 수: (1+ bd)/2 --- (2)

탐색트리 예 깊이우선 탐색 너비우선 탐색 1 a 2 5 b c 3 4 6 7 d e f g 1 a 2 3 b c 4 5 6 7

탐색의 방향 전향추론(forward reasoning) 후향추론(backward reasoning) 초기상태에서 목표상태로 탐색 후향추론(backward reasoning) 목표상태에서 초기상태로 탐색 주어진 문제의 성격에 따라 좌우된다 시작 상태의 단순성과 복잡성 비교 예: 런던을 거쳐 도버로 여행가는 길 찾기 노리지 코벤트리 캠브리지 노스앰톤 콜체스트 마케트 옥스포드 런던 브리스톨 캔터베리 도버 솔즈베리 포츠머스 사우스앰톤 헤이스팅즈

경로계획(1) Dijkstra 알고리즘 (1959년) 최단경로 알고리즘 탐색그래프 상에서 지점은 노드로, 지점간 거리는 연결가중치로 출발노드에서 시작 출발노드에서 가장 근접한 노드를 찾아, 거리를 그 노드의 라벨로 탐색된 적이 없는 노드들 중에 가장 근접한 노드를 찾아 검색계속 목표노드를 찾으면 검색 종료

경로계획(2) 경로 탐색에서 전향 및 후향 추론을 동시 실시하면 영역축소 GPS를 이용한 차량 항법 장치에서 거리 외 추가로 고려할 사항 좌회전 최소화 (영국에서나 일본 등에서는 우회전 최소화) 가능한 직진도로 포장도로 우선 최소의 신호등 수 어린이 보호 도로 회피 등

휴리스틱 기법 휴리스틱(heuristic)기법 논리적으로 혹은 수학적으로 증명할 수 없으나 경험이나 직관에 의해 효율적으로 해를 얻을 수 있으리라는 기대를 갖게 하는 어떤 근거에 의한 방법 용도 정의하기 힘든 문제 예) 직업선택, 예산지출 맹목적인 기법(blind search)으로 풀기에는 비현실적인 문제 인간의 사고형태는 대부분 휴리스틱이다 해법이 유일하지 않으며, 최적의 해를 보장할 수 없다 해의 결정에 허용치를 부과하는 방법이 유용하다 예) TSP(Traveling Salesman Problem) n개의 도시 순회 방문  (n-1)!/2 n=3  3, n=20  60,822,550,204,416,000 표 2.2 외판원 방문 예 현재 위치에서 가장 가까운 도시부터 먼저 방문

언덕등반기법(hill-climbing) 평가함수(evaluation function or objective function) 사용 평가함수값을 증가(감소)시키는 방향으로 나가는 탐색전략 계곡하강법(valley declining) 깊이우선 탐색기법에 평가함수를 활용한 형태 최단의 경로에 대한 보장이 없다 국부최대가 존재할 수 있다(plateau) 과정 회복 불가능(irrevocable) 예) 8-퍼즐 문제 2 3 1 2 3 1 8 4 8 4 7 6 5 7 6 5 초기상태 목표상태

8-퍼즐문제의 탐색 평가함수값: 목표상태와 같은 위치에 있는 타일 수 2 3 1 8 4 7 6 5

최고우선탐색(best-first) ☞ (예) 그림 2.15 언덕등반기법의 실패 최고우선탐색(best-first) ☞ (예) 그림 2.15 모든 말단 노드를 대상으로 평가함수 값을 비교하는 방법 선택 안 된 노드도 추후 선택 가능 국부최대를 만나도 탐색이 계속된다 너비우선 방식에 비해 탐색비용이 절감된다 최적의 경로를 보장할 수 없다 아직 선택 안 된 노드를 또 확장해 보면 더 나은 해를 발견 가능 2 8 3 1 4 5 7 6 5 2 8 3 2 3 2 8 3 2 8 3 1 4 1 8 4 1 4 1 6 4 5 5 4 4 7 6 5 7 6 5 7 6 5 7 5

빔 탐색(beam search) A-알고리즘 최고우선기법에서 기억노드의 수를 제한하는 방법 기억공간이 축소되지만 너무 빠른 가지치기를 초래 A-알고리즘 최적의 경로 : 초기노드에서 목표노드까지의 최단 경로 임의의 노드 N의 평가함수를 정의 f(N) = g(N) + h(N) g(N): 초기노드에서 N노드 까지의 최단거리 h(N): N노드에서 목표노드까지 최단 거리 h(N)은 해가 주어지지 않으면 알 수 없으므로, h(N)대신에 추정치 h*(N)을 사용 f(N) = g(N) + h* (N) : 평가함수 8 3 1 4 5 7 6 5 2 8 3 2 3 2 2 8 3 2 8 3 1 4 1 8 4 1 4 1 6 4 5 5 4 4 7 6 5 7 5 7 6 5 7 5

A* 알고리즘 A 알고리즘에서 모든 N에 대해 h*(N)  h(N)가 성립되도록 하면 허용성을 가짐  A* 알고리즘 허용성(admissibility): 최적의 경로를 보장하는 조건 f(N) = g(N)로 두면(h*(N)=0), 허용성 조건을 만족 평가함수로 초기노드만을 고려  낮은 깊이 노드를 우선 탐색  BFS BFS가 최단 경로를 발견한다는 것을 다시 입증 BFS를 해나가는 데 있어 각 노드에서 목표에 이르는 경로가 얼마나 짧은 것인가의 추정치를 이용하는 방법

게임트리 탐색 게임을 위한 탐색 말패(last-one-loses) 게임 ☞ 그림 2.17 다수(2인)가 상호 배타적인 환경에서 승리하기 위한 경로를 탐색 앞을 내다봄으로써 현재 상태의 선택을 결정한다 대부분의 게임에서 완벽한 평가함수의 정의가 불가능  휴리스틱한 기준에 의한 추정치 만을 제공 말패(last-one-loses) 게임 ☞ 그림 2.17 평가함수 그림 2.18 참조

게임트리 탐색 최소최대(minimax) 탐색법 최소화자와 최대화자로 구성되어 있다고 가정하고 탐색해 나가는 전략 몇 수 앞을 내다보느냐가 탐색의 양에 영향 최소최대법을 사용하면 탐색의 영역을 축소가 가능 어떤 노드가 그 함수값을 구하거나 확장하지 않아도 판단을 내리는데 지장이 없는 경우에 이 노드를 고려 대상에서 제외  - pruning(알파-베타 가지치기)

최소최대 탐색 예 평가함수 값을 최대화 시키려는 A의 탐색 최소화자 B의 의도를 고려한 A의 선택 [c1] [c2] [c3] f=0.8 [c2] f=0.3 [c3] f=-0.2 A [c1] f=0.8 [c2] f=0.3 [c3] f=-0.2 [c11] f=0.9 [c12] f=0.1 [c13] f=-0.6 [c21] f=0.1 [c22] f=-0.7 [c31] f=-0.1 [c32] f=-0.3

알파베타 가지치기 최대화 노드에서 가능한 최소의 값(알파 )과 최소화의 노드에서 가능한 최대의 값(베타 )를 사용한 게임 탐색법 [c0] =0.2 [c1] [c2] [c11] f=0.2 [c12] f=0.7 [c21] f=-0.1 [c22] [c23]

제약조건만족 문제(Constraint Satisfaction P) n개의 변수로 구성된 CSP 정의 유한하고 이산적인 영역들인 D1, D2, …,Dn으로부터 값을 취하고 그값들 간에는 제약조건 pk(xk1,xk2,…xkl)이 존재하는 문제 일종의 NP-complete 문제 8-Queen 문제 여왕 xi, xj의 위치사이의 제약조건

탐색기법의 활용 공장자동화, 경로계획 비행기 좌석예약 시스템 게임 다자가 공동의 공간에서 자신의 이익을 달성하려는 경제적 문제 NASA의 GPSS(ground processing scheduling system) 이동로봇의 공간내 이동경로계획 GPS를 활용한 차량의 항법 시스템 (내비게이터의 경로안내) 비행기 좌석예약 시스템 게임 chess - Deep Thought, Deep Blue 바둑 – 많은 진전이 있었으나 아직 최고의 수준과는 격차 포커 – Polaris 다자가 공동의 공간에서 자신의 이익을 달성하려는 경제적 문제 실제 게임의 경우 탐색의 양이 폭증  지식 활용에 대한 연구가 많이 요구됨 [c11] f=0.2 [c12] f=-0.7 [c21] f=-0.1 [c22] [c23]