제5장 문제 축소에 의한 풀이방식.

Slides:



Advertisements
Similar presentations
행사개요 년의 역사와 함께한 교훈을 되새기자.
Advertisements

법의 이념과 철학의 이해 법의 이념은 무엇일까 ? 정의 : 각자에게 각자의 몫을 주는 것 - 평등의 의미가 내포되어 있음 법적 안정성 : 법의 규정이 명확하고 잦은 변경 이 없어야 함 개인의 자유와 권리를 공공복지와 조화롭게 추구 – 사회질서와 안전유지 + 사회정의.
비전중학교 1 학년 8 반 민경찬, 이윤규.  전화기가 생기기 전의 사람들이 생각을 전하는 모습  전화기의 기원과 시초  전화기의 발전 과정  미래의 전화기  빠르게 발전한 전화기 ( 스마트폰 ) 로 인해 발생한 문제점과 해결 방안.
지도교수 : 박진식 교수님 조 원 : 홍승기, 이병용, 백승준, 조근용, 조동현, 한정협, 이상하.
㈜ 금산산업 회사 소개서. 회사 소개 회사 개요 회사 연혁 공장약도 제품 소개 원료 관리 필렛 작업 염 ( 소금 ) 침지 공정 급속동결 및 진공 포장 거래처 LIST 거래처별 매출 실적 공장사진 목 차.
언어의 자서전 소단원 (1) 단원. 언어의 특성 기호성 자의성 사회성 규칙성 창조성 역사성.
공공의료 한국의료의 ‘미운 오리새끼’ (목) 김 용 익 새정치민주연합 국회의원.
자료구조: CHAP 7 트리(1) 순천향대학교 컴퓨터공학과 하 상 호.
국립생물자원관 교육콘텐츠 02_강낭콩, 싹터요!.
변비 재활전문센터 재활 간호사 김은화.
Shortest Path Algorithm
8. 파일 인덱스: 탐색트리 (Search Tree)
Q & A (사실상 혼인·이혼) Q. 사실상 혼인·이혼 관계를 어떻게 처리해야 하나요?   사실 혼인·이혼은 부부 모두 동의 여부를 확인하고, 자녀, 이·통·반장으로부터 「사실(이)혼 확인서」를 징구해야 합니다. 만약 어느 한쪽이 동의하지 않는 경우는.
M원 탐색트리.
메탄 하이드레이트 활용 방법과 기술 환경공학과 천대길.
공공의료 한국의료의 ‘미운 오리새끼’ 김 용 익 새정치민주연합 국회의원.
제주북초등학교 6학년 심화반 장지은 지도교사 : 고동림 선생님
‘2016 원대로 전공체험’ 예산 및 진행 관련 담당조교 OT
주택형 : 59m²(24py), 75m²(30py), 84m²(34py) 견본주택 : 18年 05月 18日 OPEN
CHAP 10:그래프 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
강의 #7 트리(Tree).
논리회로 및 실험 4변수 Karnaugh map
쉽게 배우는 알고리즘 9장. 그래프 알고리즘.
 Branch-and-Bound (분기한정)
Chapter 10 그래프(graph) SANGJI University Kwangman KO
10장. 그래프 알고리즘.
그래프(graph) 연결되어 있는 객체 간의 관계를 표현하는 자료구조 가장 일반적인 자료구조 형태
반도체 신입 Operator 채용 안내 ㈜ 하이닉스반도체에서는 2011년도 신입 Operator 사원을 모집합니다.
Tree & Heap SANGJI University Kwangman Ko
CHAPTER 6 그래프.

기아 자동차 학번 자동차과 1반 김도희.
동적 계획(Dynamic Programming)
Ch.06 Branch-and-Bound (분기한정법) (Ch.05-7 포함)
과학 탐구 토론 대회 1학년 2반 박승원 1학년 5반 권민성.
국내 자동차회사 레포트 권준.
센터 코칭 결과 1/2 소 속 논산센터 코칭대상 엔지니어 코칭일시 2019년 03월 11일(월), 9:00~12:00(3H)
Homework #5 (1/3) Backtracking, Branch-and-Bound
Microsoft Office Specialist
게임인공지능 제 5 장 그래프의 비밀 2008년 4월 28일.
DEVSimHLA 다운로드 및 설치 수신자: 메일 내용
고객님! 장수시대 필수 상품 준비하셨나요? 간 병 보 험 무배당 무배당 상품특징!! ~3등급 2 구분
마음의 성전이 더 아름다운 조촌교회.
1.비 사업용(자가용 및 관용) 차 종 적 용 상 의 구 분 승합 자동차 (버스) 1 종
제주북초등학교 6학년 심화반 장지은 지도교사 : 고동림 선생님
13장. NP-완비NP-Completeness
3장. 탐색.
CHAP 10 : 그래프.
제 8 장 계산복잡도 개론 검색 문제 알고리즘 강의 슬라이드 8 검색 문제
제2장. 고전적 산업입지론 제2절. 2차 산업 입지론.
Homework #5 (1/3) Backtracking, Branch-and-Bound
진리 나무 Truth-tree  ∧ ∨ → ↔  =.
센터 코칭 결과 소 속 제천센터 코칭대상 엔지니어, 상담사 코칭일시
전류는 자계에서 힘을 받는다 기계공학교육 박지훈 황인석 한만혁 이덕균.
Chapter 07 트리.
(Ⅰ) 독서와 언어의 본질 언어의 본질 1 2 [고등 국어] – 독서와 문법 독서의 본질 (1) 독서의 특성
엔화 대환/대출 자금용도 대상 이자 차액 효과 (A,B,C) 환율 리스크 헷징 (A,B) 엔화의 평균환율 (A,B,C)
서울, 1964년 겨울 -김승옥.
서울, 1964년 겨울 -김승옥.
국어지도 유아교육과 권수연 김아람 중등특수교육과 박수진 양한솔
자료구조 자료구조의 개요 배열 선형 리스트 스택 큐 트리.
房思琪的初恋乐园 ‘팡쓰치’로 보는 문학의 힘 정은비.
북한학 과목소개 최 장 옥 교 수 연평도 앞 월래도 시찰.
박 현 미 울산여자상업고등학교 창업포스터 만들며 포토샵과 친해지기 박 현 미 울산여자상업고등학교.
[CPA340] Algorithms and Practice Youn-Hee Han
치매환자의 생활 간호.
곱하기 - XT식 인트로 화면 성우 나레이션 : 로고 곱하기 – XT식
문제의 표현 Ai3.
Traveling Salesman Problem – 개요 (1/2)
Traveling Salesman Problem – 개요 (1/2)
Presentation transcript:

제5장 문제 축소에 의한 풀이방식

차 례 5.1 문제축소 5.2 AND/OR 그래프 5.3 AND/OR 그래프 표현의 예 5.4 문제축소기법 차 례 5.1 문제축소 5.2 AND/OR 그래프 5.3 AND/OR 그래프 표현의 예 5.4 문제축소기법 5.5 AND/OR 그래프 탐색 5.6 넓이우선 탐색 5.7 깊이우선 탐색 5.8 휴리스틱 탐색

5.1 문제축소 5.1.1 문제묘사 어떠한 상태공간 탐색문제도 다음의 세 가지 요소의 문제묘사에 의하여 표현 한다. ① 출발 상태들의 조합 -> S ② 상태묘사를 다른 상태묘사로 변환시키는 연산자들의 조합 -> F ③ 목표상태의 조합 -> G 이러한 3개의 조(S,F,G) 가 한 문제를 정의 한다. 문제와 부분문제가(S,F,G)의 조로 묘사될 때, 부분문제는 상태 공간에서의 중요한 중간 상태들 사이의 경로를 찾는 문제에 해당된다.

5.1.2 문제축소 연산자 문제축소 연산자는 주어진 문제묘사를 간단한 문제로 분할한다. 축소된 문제묘사 ->후계문제묘사 축소된 문제묘사 ->후계문제묘사 후계문제묘사 를 생성 -> 부모문제묘사 문제축소의 목적은 궁극적으로는 해가 분명한 원시문제(primitive pro-blem)로 변환시키자는 것이다.

5.2 AND/OR 그래프 5.2.1 AND/OR 그래프란? 에이전트가 주어진 문제를 후계 문제들의 조합으로 축소하는 과정을 그래프와 비슷한 그림으로서 나타낸 것 이다.

A B C D E F A를 위해 선택할 수 있는 부분문제의 조합을 나타내는 구조

A N M F B C D E AND/OR 그래프

5.2.2 AND/OR 그래프에 의한 표현 문제축소방식을 표현하는 구조는 AND/OR 그래프이다. 이 그래프에서 출발노드는 원래의 문제묘사 해당되고, 원시문제 묘사에 해당되는 노드를 종단노드(terminal node)라고 한다. AND/OR 그래프에서 행하는 탐색의 목적은 출발노드가 풀이될 수 있음(solvable)을 보이는 것이다.

AND/OR 그래프에서 풀이될 수 있는 노드에 대한 정의. ① 종단 노드들은 풀이될 수 있다. ② 종단 노드가 아니면서 OR 후계 노드들을 갖는 노드는, 적어도 후계노드 중의 어느 하 나라도 풀이되면 풀이될 수 있다. ③ 종단 노드가 아니고 AND 후계노드들을 갖고 있다면, 모든 후계노드들이 풀이되어야 이 노드도 풀이된다. 풀이 그래프 -> 출발노드가 풀이됨 -> 풀이된 노드들로서 구성된 부분 그래프로 구성

AND/OR그래프의 몇 가지 예와 풀이 그래프 c b c b c b e d e f d e f d t t t f g t t t t t t t t AND/OR그래프의 몇 가지 예와 풀이 그래프

풀이될 수 없는 노드에 대한 정의. ① 종단이 아닌 노드로서 후계노드를 갖고 있지 않다면 풀이될 수 없는 노드이다. ② 종단이 아닌 노드로서 OR 후계 노드들을 갖게 되었을 때, 모든 후계노드가 풀이 될 수 없다면 이 노드도 풀이될 수 없다. ③ 종단이 아닌 노드로서 AND 후계 노드들을 갖고 있고 후계노드 중 어느 하나라도 풀이 될 수 없다면, 이 노드도 풀이될 수 없다.

5.3 AND/OR 그래프 표현의 예 적분식을 입력으로 받아, 이의 해를 제공해 주는 일을 생각해 보자. 예를 들면 부분 적분법칙은 udv  u dv = u  dv -  v du dv vdu <그림 5-4>적분문제의 표현

5.4 문제축소기법 5.4.1 키 연산자-하노이 탑 예 (1)문제분리의 기점 분할을 위해 기점이 되는 상태임을 알아 낼 수 있다고 가정. 초기 문제를 (S,F,{g1}),({g1}, F,{g2}), …, ({g2},F,G )들로 규정된 문제들의 조합으로 축소.

(2) 키 연산자의 발견 원판 C를 말뚝 3으로 이동하는 연산자가 문제해결에서 중요한 단계. 이러한 키 연산자(key operator)를 얻을 수 있으면, 문제축소과정을 위한 주요 기점을 결정하는 데 사용.

5.4.2 차이-원숭이 바나나 예 키 연산자의 후보가 될 수 있는 것을 구하는 한 가지 방법으로, 주어진 문제(S,F,G) 에서의 차이를 이용하는 방법. 차이란 출발노드의 집합 S 의 원소들이 왜 목표노드가 될 수 없나를 말하는 것이다. 차이가 발견되면 그 차이를 해소할 수 있는 연산자 f∈F를 선택할 수 있다.

F S G F F f G1 G 키 연산자 에 의한 문제축소

(2) 원숭이 바나나 문제에서 차이 상태묘사 스키마 ( W,X,Y,Z ) 로 이용하여 묘사 W= 원숭이의 수평 위치로, 2차원 벡터 X= 원숭이가 상자 위에 있으면 1, 아니면 0 Y= 상자의 수평 위치로, 역시 2차원 벡터 Z= 원숭이가 바나나를 잡았으면 1, 아니면 0 연산자는 goto, pushbox,dlimbbox, grasp의 4가지, 원숭이와 상자의 초기위치 는 각각 A와 B 바나나의 위치는 C 이다.

V X=0 w=y x=0 X=C Y=C X=1 Z=0 연산자 차이 goto(u) pushbox(v) climbbox grasp 있지 않다. V 2.상자가 v 위치에 3.원숭이가 상자 위에 있지 않다. 4.원숭이가 바나나 를 쥐고 있지 않다. 전제조건 X=0 w=y x=0 X=C Y=C X=1 Z=0 적용 결과 (u,-,y,z) (v,0,v,z) (w,1,w,z) (C,1,C,1) 연산자 차이

출발상태는 (A, 0,B ,0)로 표현되며, 목표상태는 (w,x,y,1)이다. 연산자의 집합을 F 라 하면, 초기의 문제 P는 P:({(A,0,B,0)},F , {(w,x,y,1}) 로 나타낼 수 있다.

차이를 해소하기 위해서는 grasp연산자 적용. graps을 적용시키기 위해서는 전제조건을 만족 시켜야 한다. (3) 차이를 해소하기 위한 키 연산자와 전제조건 (A,0,B,0)이 목표 상태가 아닌 차이점은 마지막 요소가 1이 아니기 때문. 차이를 해소하기 위해서는 grasp연산자 적용. graps을 적용시키기 위해서는 전제조건을 만족 시켜야 한다. 전제조건은 원숭이와 상자 모두 C위치에 있고, 원숭이가 상자 위에 있으며, 아직 바나나를 쥐고 있지 않은 상태(C,1,C,0)로 표현.

다음으로 (C,1,C,0)에 연산자를 적용하여 (C,1,C,1)을 만들어 내는 원시 문제가 만들어 지고, 결과는 이미 목표 상태이다. 즉, 초기문제는 (C,1,C,0)라는 중간상태를 기준 으로 2개의 부분문제로 축소된다. P1:({(A,0,B,0)},F , {(C,1,C,0)})와 P2:({(C,1,C,0)}, {grasp}, {(C,1,C,1)})

(4) 부분문제에서 다시 차이와 키 연산자를 부분문제 을 해결하기 위해서는 다시 (A,0,B,0) 와 (C,1,C,0) 사이의 차이를 발견해야 한다. ① 상자가 C에 있지 않다. -> pushbox(C) ② 원숭이가 C에 있지 않다. -> goto(C) ③ 원숭이가 상자 위에 있지 않다. -> climbbox 이 세 가지 연산자를 적용함으로써 세 가지 형태로 문제를 축소 할 수 있다.

({(A,0,B,0)},{(w,x,y,1)}) ({(A,0,B,0)},{(C,0,C,0)}) ({(C,1,C,0)},{(C,1,C,1)}) climbbox goto pushbox ({(C,0,C,0)},{(C,1,C,0)}) ({(A,0,B,0)},{(B,0,B,9)}) ({(B,0,B,0)},{(B,0,C,0)})

5.5 AND/OR 그래프 탐색 5.5.1 풀이 그래프 ▣ 풀이된 로드 ① 종단노드(terminal node)는 풀이된 노드로서 이는 원시 문제에 해당된다. ② 후계노드를 갖는 종단이 아닌 노드는, 후계노드 중 적어도 하나가 풀이되면, 이 노드도 풀이된다. ③ AND 후계노드를 갖는 종단이 아닌 노드는, 모든 후계노드가 풀이되면, 이 노드도 풀이된 것으로 한다.

▣ 풀이될 수 없는 로드 ① 후계노드가 없는 종단이 아닌 노드는 풀이될 수 없다. ② OR 후계노드가 갖는 종단이 아닌 노드는, 모든 후계 노드가 풀이될 수 없으면, 이 노드도 풀이될 수 없다. ③ AND 후계노드를 갖는 종단이 아닌 노드는, 후계노드 중 어느 하나라도 풀이 될 수 없으면, 이 노드도 풀이될 수 없다.

5.5.2 탐색 과정 ● 앞으로 논의할 탐색과정은 다음 단계를 포함한다. ① 출발 노드는 초기 문제묘사와 관계된다. ② 후계 노드들의 조합은 적용 가능한 문제축소 연산자를 가하여서 얻어진다. ③ 포인터들이 설정되어 각 후계노드에서 부모 노드를 가리키게 된다. ④ 노드확장 과정은 출발노드가 풀이된 것 또는 풀이될 수 없는 것으로 표시될 때가지 지속된다.

AND/OR 그래프 탐색과 상태공간 그래프 탐색의 차이 상태공간 탐색에서는 출발 노드로부터 목표 노드까지의 경로를 찾는 것이 문제이지만, 문제축소에서는 출발노드로부터 풀이된 노드들로 구성되는 그래프를 찾는것이 문제이다. 즉, 적용할 연산자들을 찾는 것이다. (2) 탐색종료 테스트 문제축소에서 탐색종료에 대한 테스트를 행하기 위해서는, 우선 그때까지 형성된 AND/OR 탐색 그래프에, 풀이표시 프로시저를 적용. 만일 출발 노드가 풀이된 것으로 표시되면 탐색은 종료.

(3) 확장순서 AND/OR 그래프의 탐색방법은 노드들의 확장 순서에 따라 서로 차이가 난다.여기서도 넓이우선 (breadth-first) 방식은 노드가 생성 된 순서에 따라 확장시키는 것이고, 깊이우선(depth-first) 방식은 가장 최근에 생성된 노드를 가장 먼저 확장시키는 방법이다. 탐색방법은 일반적인 그래프의 경우보다 트리 (tree)의 경우가 훨씬 간단하다. AND/OR 트리를 탐색하면, 이의 부분인 탐색트리(search tree)를 얻게된다. 그리고 탐색트리 중에서 해를 나타내는 풀이트리(solution tree)를 얻을 수 있다.

5.6 넓이우선 탐색 넓이우선 알고리즘 1. 출발노드 S 를 OPEN이라 부르는 리스트에 넣는다. 2. 출발노드가 풀이된 것 또는 풀이될 수 없다는 표시가 될 때까지 다음을 반복한다. 2.1 OPEN으로부터 제일 앞에 있는 노드를 제거하여 이를 CLOSED에 넣는다. 이 노드를 n 이라고 부른다. 2.2 n 을 확장하여 모든 후계노드를 얻는다. 후계노드들을 OPEN의 끝에 넣고, 포인터들을 마련하여 n 을 가리키게 한다. 2.3 후계노드가 있는가 여부에 따라 2.3.1 후계노드가 있다면 2.3.1.1 후계노드 중에서 종단 노드가 있다면 2.3.1.1.1 탐색트리에 풀이표시(solve-labelling) 프로시저를 적용한다. 2.3.1.1.2 출발노드가 풀이된 것으로 표시되면 출발노드가 풀이되었음을 나타낼 수 있는 풀이 트리로서 탐색을 종료한다.

2.3.1.1. 3 OPEN으로부터 풀이되었거나 조상이 풀이된 노드들을 제거한다.(이는 문제를 한가지 이상의 방법으로 풀이함으로써 낭비되는 불필요한 노력을 막기 위한 것이다). 2.3.2 후계노드가 없다면 2.3.2.1 n 을 풀이될 수 없는 것으로 표시한다. 2.3.2.2 탐색트리에 풀이불가표시(unsolvable-labelling) 프로시저를 적용한다. 2.3.2.3 출발노드가 풀이될 수 없음으로 판명된다면 탐색은 실패로 끝난다. 2.3.2.4 OPEN에서 풀이될 수 없는 조상(ancestor)을 가진 노드들은 제거한다(이는 풀이될 수 없는 문제들을 풀기 위하여 불필요하게 노력이 낭비되는 것을 막기 위한 것이다).

풀이표시 알고리즘 1. S-LIST라는 리스트에 풀이된 노드를 넣는다. 될 때까지 다음을 반복한다. 2.1 S-LIST에서 하나의 노드를 꺼낸다. 이 노드를 n 이라 하자. 2.2 만일 노드n 이 그 노드의 부모노드(노드 p 라 하자)의 AND 후계 노드라면 2.2.1 노드 n 의 모든 형제노드에 풀이표시가 되어 있으면, 노드  p 에 풀이표시를 하고, 노드 p 를 S-LIST에 넣는다. 2.3 만일 노드 n 이 노드 p 의 OR 후계노드라면 2.3.1 노드 p 에 풀이표시를 하고, S-LIST에 노드 p 를 첨가한다.

풀이불가표시 알고리즘 1. S-LIST라는 리스트에 풀이 불가표시 된 노드를 넣는다. 표시가 될 때까지 다음을 반복한다. 2.1 S-LIST에서 하나의 노드를 꺼낸다. 이 노드를 n 이라 하자. 2.2 만일 노드n 이 그 노드의 부모노드(노드 p 라 하자)의 AND 후계 노드라면 2.2.1 노드 p 에 풀이불가표시를 하고, 노드 p 를 S-LIST에 넣는다. 2.3 만일 노드 n 이 노드 p 의 OR 후계노드라면 2.3.1 노드 n 의 모든 형제노드에 풀이불가표시가 되어 있으면, 노드 p 에 풀이불가표시를 하고,S-LIST에 노드 p를 첨가한다

출발노드 1 3 2 4 5 6 7 8 9 10 t B C t t A t <그림 5-7> 넓이우선 탐색에서 노드의 확장순서를 보이는 AND/OR 탐색 트리

5.7 깊이우선 탐색 깊이우선 알고리즘 1. 출발노드 S 를 OPEN이라 부르는 리스트에 넣는다. 2. 출발노드가 풀이된 것 또는 풀이될 수 없다는 표시가 될 때까지 다음을 반복한다. 2.1 OPEN으로부터 제일 앞에 있는 노드를 제거하여 이를 CLOSED에 넣는다. 이 노드를 n 이라고 부른다. 2.2 n 의 깊이가 깊이 제한과 같다면, n 은 풀이될 수 없으므로 확장하지 않고, 그렇지 않으면 n 을 확장하여 모든 후계노드들을 생성한다. 이러한 후계노드들을 (임의의 순서로) OPEN의 앞쪽에 넣고  n 으로의 포인터를 첨부한다. 2.3 후계노드가 있는가의 여부에 따라 2.3.1 후계노드가 있다면 2.3.1.1 후계노드 중에서 종단 노드가 있다면 2.3.1.1.1 탐색트리에 풀이표시(solve-labelling) 프로시저를 적용한다.

2.3.1.1.2 출발노드가 풀이된 것으로 표시되면 출발노드가 풀이되었음을 나타낼 수 있는 풀이트리로서 탐색을 종료한다. 2.3.1.1.3 OPEN으로부터 풀이되었거나 조상이 풀이된 노드들을 제거한다. 2.3.2 후계노드가 없다면 2.3.2.1 n 을 풀이될 수 없는 것으로 표시한다. 2.3.2.2 탐색트리에 풀이불가표시(unsolvable-labelling) 프로시저를 적용한다. 2.3.2.3 출발노드가 풀이될 수 없음으로 판명된다면 탐색은 실패로 끝난다. 2.3.2.4 OPEN에서 풀이될 수 없는 조상(ancestor)을 가진 노드들은 제거한다.

5.8 휴리스틱 탐색 ● 노드의 확장순서를 휴리스틱 평가함수를 사용하여 정함. ● 평가함수를 정의하는 데 중요한 것은 어떤 노드에서 목표까지의 최적경로(optimal path)의 비용을 예측(estimate)하는 휴리스틱 함수이다. ● AND/OR 트리에서는 주어진 노드에서 시작되는 풀이트리의 비용을 어떻게 예측 할 것인가를 정해야 한다.