Transcript lec18

계획과 문제 풀이 (Planning
and Problem Solving)
(Lecture Note #18)
인공지능
이복주
단국대학교 컴퓨터공학과
1
Outline
개념
 계획의 종류
 탐색 및 부목표의 상호작용
 비계층적 계획, 계층적 계획
 STRIPS
 ABSTRIPS
 HACKER
 Goal Regression
 계층적 계획

2
개념

계획과 문제풀이의 기본개념
– 문제풀이 (Problem Solving)
• 특정의 목표를 달성하기 위해 취해야 할 행동들을 순서대로 나열하는
과정  탐색에 의한 문제풀이
• 광역적 의미: 모든 인공지능 문제
– 계획 (Planning)
• 행동 순서의 표현
• 막연한 단계  상세한 것을 결정  계층 구조 (그림 7.1참조)
• 계획의 완성: 문제풀이 연산자들의 나열
추상
하루일과
오전계획
출근
상세
은행
돈
기름
운전
점심계획
저녁계획
기사보기
점심식사
신문보기
서류작업
퇴근
휴게실
빵
신문
컴퓨터
운전
3
계획의 종류

비계층적(nonhierarchical) 계획
– 계층의 두 가지 의미(부목표와 계획의 세분화): 세분화 단계가 없
음
– 각 목표들을 달성하기 위한 일련의 문제풀이 행동들을 나열하여 계
획을 형성하는 것 현상태에 목표상태로 단순 진행 (STRIPS)
– 단점
•
•
•
•

중요한 행동들과 단순히 세부적이기만 한 행동들을 구별하지 않음
세부적인 계획을 많이 가지는 계획을 형성하는 데는 많은 경비가 소요
애매한 단계들을 가지는 계획의 경우 문제풀이 연산자들을 결정하기가 어려움
단점 보완을 위해 계층적 계획 기법 이용
계층적(hierarchical) 계획
–
–
–
–
대략적 계획을 세운 후, 대략적인 부분들의 세부 부계획을 만듬
E.g., 피아노 구입: 피아노 있는 곳 찾음  돈을 구함
최종적으로 세부적인 문제풀이 연산자들을 완전하게 나열
추상 공간(abstraction space)
• 높은 위치: 추상적, 중요한 부목표, 중요치 않은 세부사항이 없음
• 낮은 위치: 세부적인 문제풀이 연산자들이 나열, e.g., 가게로 운전, 피아노 선택
– ABSTRIPS, NOAH, MOLGEN
4
탐색 및 부목표의 상호작용

탐색
– 특정의 목표 달성 또는 문제풀이 행동들의 순서를 결정하기 위해서 가능한
많은 순서들 중에서 어떤 것을 선택할 것인가를 결정하기 위해서 사용
– Combinatorial explosion: 연산자들의 조합의 수가 exponential하게 증
가

부목표의 상호작용
– 어떤 문제를 해결하기 위해서 두 가지 이상의 목표들을 모두 만족시켜야 할
때 발생 (한 부목표의 만족은 다른 부목표의 달성을 방해함)
'사다리를 칠하라‘
선행조건 : '페인트를 구하라'
'붓을 구하라'
Choice
Point
'지붕을 칠하라'
선행조건을 고려하여
계획의 선후를 결정할
수 있는 계획시스템이
더 지능적이다
선행조건 : '페인트를 구하라'
'붓을 구하라'
'사다리를 구하라'
5
탐색 및 부목표의 상호 작용

탐색 문제는 부목표의 상호 작용 문제와 밀접하게 관련
– 둘 이상의 부목표에서 특정 순서로는 목표를 달성할 수 없다는 것
을 발견하게 되면 실패한 선택점에서 부터 역추적을 진행해야 한다.
– 탐색 량에 영향을 미침

HACKER, INTERPLAN
– 부목표들이 서로 독립적이라는 선형 가정(linear assumption)을
휴리스틱으로 이용
– 연산자들의 모든 순서들을 성공적으로 조사한다는 것이 어려움

NOAH, MOLGEN
– E.g., ‘커피를 사라’: ‘커피가게로 가라’, ‘돈을 구하라’
• ‘돈을 구하라’의 선행조건: ‘은행에 가라’ 이것은 ‘커피가게로 가라’와 상충
• ‘돈을 구하라’ 다음에 ‘커피가게로 가라’가 맞는 plan
– NOAH : 문제풀이 연산자들의 선행 조건들을 고려하여 부분 순서
를 형성
– MOLGEN : 제약 조건들이 이용될 수 있을 때까지 연산자들의 순
서를 정하지 않는다.
– 역 추적이 거의 발생하지 않음
6
비계층적 계획과 계층적 계획의 비교


STRIPS와 ABSTRIPS의 비교
STRIPS (STanford Research Institute Problem
Solver)
– 가정
• 문제풀이 시스템: 문제에 대한 해결 과정을 탐색하는 가운데 문제풀이
연산자를 적용함으로써 만들어지는 상태들을 조사하는 프로그램
• 시작 상태: 문제풀이 시스템에 의해 첫번째로 검사되어지는 상태
• 목표 상태: 문제풀이가 성공적으로 종료 되었을 경우 그 마지막 상태
– STRIPS 문제 풀이 시스템
• 유효한 문제풀이 연산자와 객체들의 집합을 가진다
• 실행 시 문제 공간의 상태 변화를 수반한다.
7
STRIPS

예) 한 잔의 커피를 마시는 문제
• “주방에 가서 커피가 끓여져 있다면, 그 커피를 적당히 잔에 따른다.
만일 커피가 끓여져 있지 않다면, 커피를 만들거나 아니면 사러 가야
할 것이다. 커피를 직접 끓이고 싶지만, 원두나 인스턴트 커피가 없다
면, 커피를 사러 판매점에 가야 한다. 만일 돈이 없다면 먼저 은행에
들러야 한다.”
연산자
물을 끓인다
X를 따른다
X를 구입한다
커피를 만든다
X에 간다
돈을 출금한다
객체
끓는 물
주방
원두커피 판매점
원두커피
끓인 커피 판매점
은행
돈
8
STRIPS

Effect List
연산자
(Operator)
선행조건
(precondition)
효과
(effect)
커피를 부어라
끓인 커피가 있다.
문제해결
커피를 만들어라
끓인 커피를 가진다
어떤 곳에 가라
원두가 있다
분쇄기가 있다
끓고 있는 물이 있다
주방 안이다
판매점에 있다
돈이 있다
그 장소가 존재한다
돈을 출금하라
은행에 있다
어떤 곳에 있다
그 곳 외에는 없다
돈을 가진다
물을 끓여라
주방 안이다
끓는 물을 가진다
무언가를 구입하라
무언가를 가진다
9
STRIPS

시작 상태와 목표 상태
시작 상태
목표 상태
끓인 커피가 없다
주방 안이다
분쇄기가 있다
돈이 있다
끓인 물이 있다
끓인 커피를 가진다
주방 안이다
분쇄기가 있다
돈이 있다
끓인 물이 있다
차이

문제 해결: 목적-수단 방법(means-ends analysis) 이용
– 현재 상태와 목표 상태 비교 → 차이 조사 → 차이를 줄일 수 있는
문제풀이 연산자를 찾음 → 목표 상태에 도달할 때 까지 반복
– 예) 차이를 줄이는 연산자
• ‘커피를 만들어라’
• ‘무언가를 구입하라’
→ 둘 중 하나를 선택하여 문제풀이 시작
10
STRIPS

‘커피를 만들어라’를 선택한 경우
끓인 커피가 있다
주방 안이다, 분쇄기가 있다
돈이 있다, 끓인 물이 있다
(목표상태)
끓인 커피가 없다.
주방에 있다
원두가 있다, 분쇄기가 있다
돈이 있다, 끓인 물이 있다
(커피를 부어라)
선행조건: 끓인 커피가 있다
OR
(커피를 만들어라)
선행조건: 원두가 있다, ...
(원두를 구입하라)
선행조건: 판매점에 있다, ...
끓인 커피가 없다.
원두판매점에 있다.
분쇄기가 있다
돈이 있다, 끓인 물이 있다
끓인 커피가 없다.
주방 안이다, 분쇄기가 있다
돈이 있다, 끓인 물이 있다
(시작 상태)
(끓인 커피를 구입하라)
선행조건: ...
(주방에 가라)
선행조건: 주방이 있다
(판매점에 가라)
선행조건: 판매점이 존재한다
문제 공간 안에서 참(true)
상태 변이
11
STRIPS

탐색과 역추적
– ‘분쇄기가 없다.’, ‘분쇄기 판매점이 없다.’, ‘돈이 있다.’ 로 시작상태
변경
(커피를 부어라)
선행조건: 끓인 커피가 있다
(커피를 만들어라)
선행조건: 원두가 있다,
분쇄기가 있다, ...
(원두를 구입하라)
선행조건: 돈이 있다,
판매점에 있다, ...
OR
(끓인 커피를 구입하라)
선행조건: ...
(분쇄기를 구입하라)
선행조건: 돈이 있다,
분쇄기 판매점에 있다
(돈을 출금하라)
선행조건:
은행에 있다
(판매점에 가라)
선행조건:
판매점이 존재한다
(은행에 가라)
선행조건:
은행이 존재한다
참
참
(판매점에 가라)
선행조건:
판매점이 존재한다
거짓
참
12
ABSTRIPS

ABSTRIPS (Abstraction STRIPS)
– 추상 공간의 계층구조 하에서 계획을 형성한다
– 초기 명세에 주어지는 모든 객체와 연산자들은 추상 공간에
포함
– 선행조건은 임계(criticality)라 부르는 계층으로 할당
– 선행조건의 중요도에 따라 계층별 구분
– 임계의 할당 순서
• 1. 사람이 중요성을 직관적으로 판단해서 선행조건의 부분순서를 형성
• 2. ABSTRIPS에서 임계를 더욱 정확하게 조정하기 위해 임계조정 알
고리즘을 적용
– 부분 순서(partial ordering)
•
•
•
•
선행조건
장소가 존재한다
어떤 것이 있다
어딘가에 있다
직관적 임계
3
2
1
13
ABSTRIPS

ABSTRIPS의 임계 조정 방법
– 어떠한 연산자에 의해서도 변화 될 수 없는 참 값을 가지는
모든 선행 조건들은 가장 높은 임계 할당
– 선행 조건의 각각을 이루기 위한 단기 계획이 발견될 경우
부분 순서에서 기술되는 것과 같은 임계 할당
– 단기 계획이 발견되지 않을 경우 부분 순서에서 가장 높은
임계보다 더 높은 임계 할당
선행조건
임계
원두 판매점이 존재한다
5
끓인 커피 판매점이 존재한다
5
은행이 존재한다
5
분쇄기가 있다
4
원두, 끓는 물, 돈이 있다
2
끓인 커피 판매점, 원두 판매점, 은행에 있다
1
14
ABSTRIPS의 탐색과정
계층 5:
(커피를 만들어라)
선행조건: 임계5의 선행조건 없음
OR
분쇄기가 있다(4)
(끓인 커피를 구입하라)
선행조건: 임계5의 선행조건 없음
임계4의 선행조건 없음
원두…, 끍는물…, 돈…(2)
계층 4:
(분쇄기를 구입하라)
선행조건: 분쇄기 상점에 있다, 돈…(2)
(분쇄기 상점에 가라)
선행조건: 분쇄기 판매점이 존재한다
실패: 계층5로 되돌아 감
계층 3:
임계3의 선행조건 없음
선행조건: 돈이 있다, 커피 판매점에 있다
계층 2:
계층 1:
(돈을 출금하라)
선행조건: 은행에 있다
(판매점에 가라)
• STRIPS 보다 더욱 적은 탐색과 역추적으로 문제 해결
• 최종 목표를 만족시키기 위한 중요한 선행 조건(분쇄기
구입)이 만족 될 수 없다는 점을 빨리 검출할 수 있다
(은행에 가라)
15
비계층적 계획


계획을 위한 비계층적인 접근은 단일 추상 단계에서 연산자들의
순서를 형성
대표적인 비계층적 계획 시스템: HACKER
– 서로 독립적이지 않은 결합적인 부목표들로 형성되는 어려운 문제
를 비계층적으로 해결
– 부목표들 사이의 간섭에 의한 불완전한 계획을 형성시켜 놓고 다
음 단계에서 불완전한 계획 내의 연산자들을 재순서화하여 계획을
수정

예) 봄맞이 대청소: 먼지 쓸기, 마루 닦기, 유리창 닦기, 양탄자
털기
– 임의의 순서대로 작업이 진행될 경우
• 먼지를 쓸어 내지 않고 마루를 닦는 것
• 양탄자를 먼저 털지 않고 마루를 닦는 것
•
→ 보호 목표(protected goal)의 파괴(violation)를 초래
• 마루 닦기가 끝난 후에는 마루가 마를 때까지 사람이 마루를 지나가는 것과 다른
목적을 위해 마루를 사용하는 것을 불허
•
→ 어떤 목표의 달성은 다른 목표들의 달성을 방해
16
비계층적 계획

선형 가정 (Linear assumption)
– Sussman
– “부 목표들은 독립적이어서 무작위 순서로 차례로 달성될 수
있다”
– 맞지 않는 경우 많음
– 그러나 부 목표를 일단 임의로 순서화 시키고 나중에 수정하
는 접근 방법에서는 효율적
– 선형 가정을 사용하지 않고 모든 경우를 고려하려면
• 부 목표의 개수의 factorial의 수 만큼 고려해야 함
• 예: 10개의 부 목표, 약 300만개의 순서 고려해야
17
Summary
개념
 계획의 종류
 탐색 및 부목표의 상호작용
 비계층적 계획, 계층적 계획
 STRIPS
 ABSTRIPS
 HACKER
 Goal Regression
 계층적 계획

18