[인공지능] 계획수립

- 4 mins

계획수립

초기상태에서 목표상태로 도달하는 일련의 행동/연산자를 생성 하는것.

ex) 로봇의 계획수립

구성요소 : 초기상태, 목표상태, 가능한 행동 이 3가지에 대한 명세
에이전트 : 위임받은 일을 자율적,지능적으로 처리하는 개체
에이전트와 계획수립 : How를 말하지 않고 goal만 말하면 알아서 처리하는 능력 필요

계획수립 문제형태

고전적 계획수립

마르코프 결정과정 문제 (MDP)

부분관측 마르코프 결정과정 (POMDP)

다중 에이전트 계획수립 문제

img

계획수립기

주어진 문제에 대한 계획을 생성하는 프로그램.

특정 영역 계획수립기

특정영역에 특화된 계획수립기 -> 다른 분야 적용불가 ex) 강판 벤딩하는 기계

영역 독립 계획수립기

영역 상관 없는 범용 계획 수립기 but 실제로 모든 영역에 적용될 수 있는 계획수립기 개발 곤란하다 so 적용영역 제한을 가정 (ex.상태공간 계획수립, 계획공간 계획수립)

설정가능 계획수립기

영역 독립 계획수립기가 특정 영역 계획수립기에 비해 너무 느려 이걸 완화하기위해 영역 독립 계획수립기를 사용하며 해당 영역의 문제를 해결하는 방법을 추가적으로 준다. ex) 계층적 태스크 네트워크 계획수립

계획수립 언어

이러한 계획수립 문제를 풀기위해 만들어진 언어로 고전적 계획수립 문제를 표현하는 언어이다.

STRIPS

img

img

PDDL

계획수립 문제를 두개의 파일에 나눠서 저장한다

img

예시)

img

고적전 계획수립 방법

문제에대해 표현하는것을 완료했으니 문제 풀어가는 알고리즘을 알아보자

상태공간 계획 수립

상태공간내 초기상태에서 목표상태로 가는 경로를 탐색한다.
노드 = 상태, 간선 =연산자

img

전향 탐색

초기 상태에서 시작해서 적용가능한 연산자를 목표상태에 도달할때 까지 적용한다. (ex. BFS, DFS, A*)

img

후향 탐색

목표 상태에서 시작해서 해당 노드로 될수 있는 연산자를 택해 나아가 초기상태까지 간다.

img

STRIPS 알고리즘

기본적으로 후향 탐색 방법.

  1. 목표상태에서 시작하여 목표상태로 되게하는 effect를 가진 행동을 선택
  2. 그 연산자의 매개변수를 설정
  3. 그 연산자의 사전조건이 만족하는지
  4. 3번을 계속 타고 넘어가 초기상태에 도달하면 완료

img

계획수립 그래프 방법

후향탐색의 경우 초기상태에 도달할수없는 행동까지 탐색하게 되는데 Graphplan 알고리즘은 이를 축소 한다.

GraphPlan 알고리즘

명제단계와 행동단계가 번갈아 이뤄진다. 명제단계0에 초기상태 나타내는 리터럴들을 모두 표현하고 행동단계에서 사전조건에 해당하는 이전 명제단계 명제와 effect로 나타나는 명제를 다음 명제 단계에 적는다 이때 사전조건에 해당 안하는 명제는 그대로 다음 명제단계로 이어진다

상호배제 링크

img

동시에 실행되거나 만족될수 없는 동일단계의 노드 사이를 연결

  1. 상충되는 결과 도출 : 한행동의 effect가 다른 행동의 effect가 만드는 명제를 지우는 경우 (부정 리터럴 만드는 경우)
  2. 간섭 : 한 행동이 다른행동의 사전조건에서 사용되는 명제를 제거하는경우
  3. 경쟁관계 사전조건 : 두행동이 바로 이전 단계에서 상호배제관계에 있는 명제들을 사전조건으로 사용하는 경우
  4. 상충되는 지지 : 대응되는 두 명제를 만들어내는 이전단계의 모든 행동 들이 서로 상호 배제 관계에 있는경우

img

img

여기서 목표 상태 ㄱgrab, ㄱdinner, present 인데 모든 경우가 충돌되면 그래프를 확장한다

img

계획공간 계획수립

탐색공간이 부분계획들로 구성. 부분적으로 값이 결정된 행동의 집합. 제약조건의 집합 : 선행, 바인딩, 인과연결

img

위협 : 행동 a가 행동b의 사전조건 p를 생성하는 인과연결 관계에서 행동c가 p를 삭제하는 effect를 보유 -> c가 인과관계를 위협하는상황

img

img

제약조건(실선), 인과관계(점선), 위협관계(가늘고 조밀한 점선)

img

계층적 계획수립

복잡한 태스크를 분할하여 더 단순한 태스크로 분할

계층적 태스크 네트워크 (HTN)

메소드를 사용하여 더작은 부분태스크들로 분할
태스크(travel)에대한 메소드의 표현 예

img

img

img

img

comments powered by Disqus
rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora