02.11.2014 Views

Planejamento automatizado - Laboratório de Técnicas Inteligentes ...

Planejamento automatizado - Laboratório de Técnicas Inteligentes ...

Planejamento automatizado - Laboratório de Técnicas Inteligentes ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Planejamento</strong><br />

<strong>automatizado</strong><br />

Introdução e Conceitos básicos<br />

Leliane Nunes <strong>de</strong> Barros<br />

1


<strong>Planejamento</strong> <strong>automatizado</strong><br />

<strong>Planejamento</strong> é o processo <strong>de</strong> escolha e<br />

organização <strong>de</strong> ações através da antecipação<br />

(previsão) <strong>de</strong> seus efeitos (necessita um mo<strong>de</strong>lo)<br />

Objetivo: satisfazer, através da execução <strong>de</strong> ações,<br />

objetivos previamente estabelecidas.<br />

<strong>Planejamento</strong> <strong>automatizado</strong> é a sub-área da IA<br />

que estuda esse processo <strong>de</strong> raciocínio, usando o<br />

computador.<br />

Aplicação: sistemas que exigem comportamento<br />

autônomo e <strong>de</strong>liberativo em ambientes que<br />

se po<strong>de</strong> mo<strong>de</strong>lar.<br />

2


<strong>Planejamento</strong>: aplicações<br />

Veículo <strong>de</strong> exploração (rover) em Marte (NASA)<br />

Satélite <strong>de</strong> observação espacial (Deep Blue-NASA)<br />

Sistemas <strong>de</strong> manufatura (Xerox) e operações <strong>de</strong><br />

estamparia (bending) na indústria automotiva<br />

Indústria <strong>de</strong> Jogos, por exemplo: nas narrativas e<br />

construção <strong>de</strong> personagens não-jogadores; Bridge<br />

(campeão), GO, etc.<br />

Suporte nas tarefas <strong>de</strong> planejamento quando<br />

realizadas por humanos<br />

Q<br />

J 6<br />

5<br />

North<br />

9<br />

7<br />

A<br />

K<br />

5<br />

3<br />

A<br />

9<br />

West<br />

2<br />

6 8<br />

Q<br />

South<br />

East<br />

3


<strong>Planejamento</strong>: motivação inicial<br />

Um dos principais objetivos da IA foi/é o<br />

<strong>de</strong>senvolvimento <strong>de</strong> um Resolvedor Geral <strong>de</strong><br />

Problemas (General Problem Solver)<br />

[Newell & Simon, 1961]<br />

Problema Linguagem GPS Solução<br />

Idéia: problemas são <strong>de</strong>scritos numa linguagem <strong>de</strong><br />

alto-nível <strong>de</strong> abstração e são resolvidos<br />

automaticamente<br />

Objetivo: facilitar a mo<strong>de</strong>lagem <strong>de</strong> problemas (menor<br />

custo) com um prejuízo mínimo em termos <strong>de</strong><br />

<strong>de</strong>sempenho.<br />

4


<strong>Planejamento</strong>: motivação inicial<br />

Problema Linguagem GPS Solução<br />

Questão: das técnicas estudadas nessa disciplina,<br />

existe alguma que po<strong>de</strong> ser chamada <strong>de</strong> um GPS?<br />

5


<strong>Planejamento</strong>: motivação inicial<br />

Precisamos <strong>de</strong> uma linguagem geral<br />

que <strong>de</strong>ve ser usada como entrada<br />

para algoritmos <strong>de</strong> busca!<br />

Problema Linguagem Busca ? Solução<br />

Questão: das técnicas estudadas nessa disciplina,<br />

existe alguma que po<strong>de</strong> ser chamada <strong>de</strong> um GPS?<br />

6


<strong>Planejamento</strong>: motivação inicial<br />

Um sistema <strong>de</strong> planejamento po<strong>de</strong> ser consi<strong>de</strong>rado<br />

um solucionador geral <strong>de</strong> problemas (STRIPS)<br />

[Fikes, 1971]<br />

Problema Linguagem Planejador Solução<br />

Importante: formas diferentes <strong>de</strong> planejamento<br />

envolvem mo<strong>de</strong>los diferentes do mundo<br />

7


<strong>Planejamento</strong>: motivação inicial<br />

Agentes inteligentes ...<br />

... <strong>de</strong>vem controlar a evolução do ambiente ao seu<br />

redor <strong>de</strong> uma maneira <strong>de</strong>sejada, por exemplo,<br />

maximizando suas chances <strong>de</strong> fetivamente realizar<br />

esse controle.<br />

... <strong>de</strong>vem ser capazes <strong>de</strong> construir planos, isto é,<br />

sequência <strong>de</strong> ações escolhidas com base nos objetivos<br />

a serem atingidos pelos agentes, bem como no estado<br />

atual e na dinâmica <strong>de</strong> evolução do ambiente.<br />

A complexida<strong>de</strong> <strong>de</strong> se construir planos <strong>de</strong>pen<strong>de</strong> <strong>de</strong><br />

uma varieda<strong>de</strong> <strong>de</strong> proprieda<strong>de</strong>s do ambiente e do agente<br />

8


Recordação: agente baseado em objetivo<br />

... ou estocástico!<br />

9


Proprieda<strong>de</strong>s do ambiente e do agente<br />

discreto ou contínuo<br />

ambiente<br />

<strong>de</strong>terminístico/<br />

não-<strong>de</strong>terminístico/<br />

probabilístico<br />

percepções<br />

Que plano<br />

<strong>de</strong>vo<br />

executar?<br />

ações<br />

completamente<br />

ou parcialmente<br />

observável<br />

instantânea ou<br />

com duração <strong>de</strong><br />

tempo<br />

única fonte <strong>de</strong> mudança ou<br />

ambiente <strong>de</strong> multiagente<br />

10


<strong>Planejamento</strong><br />

mo<strong>de</strong>lo conceitual<br />

suposições restritivas<br />

11


Mo<strong>de</strong>lo conceitual <strong>de</strong> um planejador<br />

Descrição <strong>de</strong> Σ<br />

Estado inicial<br />

Planejador<br />

Metas<br />

Status da execução Planos<br />

Controle<br />

Observações<br />

Ações<br />

Sistema Σ<br />

Eventos<br />

12


Mo<strong>de</strong>lo Conceitual<br />

Estado inicial<br />

Metas<br />

Planejador<br />

Descrição <strong>de</strong> Σ<br />

Ingredientes:<br />

Status da execução<br />

Controle<br />

Planos<br />

Observações<br />

Descrição do sistema (ambiente):<br />

mo<strong>de</strong>lo <strong>de</strong> estados possíveis<br />

Mo<strong>de</strong>lo <strong>de</strong> como o sistema muda: ações,<br />

eventos e seus efeitos<br />

Mo<strong>de</strong>lo <strong>de</strong> observação do sistema<br />

Mo<strong>de</strong>lo <strong>de</strong> execução <strong>de</strong> um plano no sistema<br />

Especificação <strong>de</strong> estados iniciais e metas<br />

Plano <strong>de</strong> ações que é gerado pelo planejador,<br />

também chamado <strong>de</strong> programa <strong>de</strong> controle<br />

Sistema Σ<br />

Ações<br />

Eventos<br />

13


Mo<strong>de</strong>lo conceitual <strong>de</strong> um planejador<br />

Descrição <strong>de</strong> Σ<br />

Estado inicial<br />

Planejador<br />

Metas<br />

Status da execução Planos<br />

Como construir<br />

o programa <strong>de</strong><br />

controle (plano)?<br />

Controle<br />

Observações<br />

Ações<br />

Sistema Σ<br />

Eventos<br />

14


Como construir o programa <strong>de</strong> controle?<br />

Três abordagens:<br />

1. Programação: (mo<strong>de</strong>lo <strong>de</strong> Σ conhecido mas não explícito)<br />

Especificação do programa <strong>de</strong> controle pelo projetista. Tanto o<br />

mo<strong>de</strong>lo como o problema não são especificados formalmente<br />

mas estão na cabeça do programador e implícito no programa.<br />

2. <strong>Planejamento</strong> <strong>automatizado</strong>: (mo<strong>de</strong>lo<strong>de</strong> Σ conhecido e explícito)<br />

Especificação do problema pelo projetista em uma linguagem<br />

formal o programa <strong>de</strong> controle é <strong>de</strong>rivado automaticamente.<br />

3. Aprendizado <strong>automatizado</strong>: (mo<strong>de</strong>lo<strong>de</strong> Σ é<strong>de</strong>sconhecido)<br />

Especificação do problema pelo projetista em uma linguagem<br />

formal tanto o mo<strong>de</strong>lo como o controle são “aprendidos”<br />

automaticamente através da experiência (direta no sistema).<br />

Requer uma fase <strong>de</strong> exploração e explotação do ambiente.<br />

As três abordagens são consi<strong>de</strong>radas não exclusivas e em geral,<br />

se complementam. Possuem seus pontos fortes e fracos.<br />

15


Como construir o programa <strong>de</strong> controle?<br />

conhecimento sobre como obter o conhecimento<br />

completo para um problema específico sobre o sistema<br />

Σ, através <strong>de</strong> inúmeras interações com o ambiente, para<br />

finalmente construir um programa <strong>de</strong> controle <strong>de</strong> forma<br />

automática<br />

aprendizado<br />

<strong>automatizado</strong><br />

conhecimento completo sobre Σ especificado numa<br />

linguagem geral passada como entrada <strong>de</strong> um<br />

sistema capaz <strong>de</strong> gerar o programa <strong>de</strong> controle<br />

<strong>de</strong> forma automática<br />

planejamento<br />

<strong>automatizado</strong><br />

conhecimento completo sobre Σ para construir (manualmente)<br />

um programa <strong>de</strong> controle para um problema específico<br />

programação<br />

16


Como construir o programa <strong>de</strong> controle?<br />

conhecimento sobre como obter o conhecimento<br />

completo para um problema específico sobre o sistema<br />

Σ, através <strong>de</strong> inúmeras interações com o ambiente, para<br />

finalmente construir um programa <strong>de</strong> controle <strong>de</strong> forma<br />

automática<br />

aprendizado<br />

<strong>automatizado</strong><br />

...<br />

conhecimento completo sobre Σ especificado numa<br />

linguagem geral passada como entrada <strong>de</strong> um<br />

sistema capaz <strong>de</strong> gerar o programa <strong>de</strong> controle<br />

<strong>de</strong> forma automática<br />

planejamento<br />

<strong>automatizado</strong><br />

...<br />

conhecimento completo sobre Σ para construir (manualmente)<br />

um programa <strong>de</strong> controle para um problema específico<br />

programação<br />

17


Aprendizagem <strong>de</strong> máquina (visão geral)<br />

Sistema <strong>de</strong><br />

aprendizagem<br />

Descrição <strong>de</strong> Σ<br />

Estado inicial<br />

Planejador<br />

Metas<br />

Status da execução Planos<br />

Controle<br />

Observações<br />

Ações<br />

Sistema Σ<br />

Eventos<br />

18


<strong>Planejamento</strong> requer um mo<strong>de</strong>lo geral para<br />

<strong>de</strong>screver a dinâmica do sistema Σ.<br />

A maioria das abordagens <strong>de</strong> planejamento<br />

se baseia em sistemas <strong>de</strong> transição <strong>de</strong><br />

estados<br />

Mo<strong>de</strong>lo do sistema Σ :<br />

Estado inicial<br />

Metas<br />

Planejador<br />

Controle<br />

Descrição <strong>de</strong> Σ<br />

Status da execução<br />

Planos<br />

Observações<br />

Ações<br />

Mo<strong>de</strong>lo <strong>de</strong> transição <strong>de</strong> estados Σ = (S,A,E,γ)<br />

S = {s 1 , s 2 , …}= {estados}<br />

A = {a 1 , a 2 , …}= {ações}<br />

E = {e 1 , e 2 , …}= {eventos exógenos}<br />

Função <strong>de</strong> transição <strong>de</strong> estado<br />

Sistema Σ<br />

Eventos<br />

γ: S x (A ∪ E) → 2 S<br />

conjunto potência<br />

19


Mo<strong>de</strong>lo Conceitual<br />

<strong>de</strong>scrição <strong>de</strong> Σ<br />

Mo<strong>de</strong>lo Σ :<br />

o sistema evolui através <strong>de</strong><br />

eventos e ações.<br />

representação gráfica:<br />

grafo dirigido cujos nós são<br />

estados em S.<br />

Estado inicial<br />

Metas<br />

Planejador<br />

Controle<br />

Descrição <strong>de</strong> Σ<br />

Status da execução<br />

Planos<br />

Observações<br />

Ações<br />

se s’ ∈ γ(s,u), sendo u o par (a,e)<br />

com a ∈ A e e ∈ E, então o grafo<br />

contém um arco u <strong>de</strong> s a s’<br />

Se a éumaação aplicável no<br />

estado s, executá-la em s leva<br />

Σ a um outroestados’=γ(s,a).<br />

s<br />

u = (a,e)<br />

s’<br />

Sistema Σ<br />

Eventos<br />

ε é um evento neutro => γ(s,a, ε ) = γ(s,a)<br />

no-op é uma ação neutra => γ(s,no-op, e) = γ(s,e)<br />

20


Mo<strong>de</strong>lo Conceitual<br />

mo<strong>de</strong>lo <strong>de</strong> observação<br />

Estado inicial<br />

Metas<br />

Planejador<br />

Descrição <strong>de</strong> Σ<br />

Status da execução<br />

Planos<br />

Função <strong>de</strong> observação h: S → O<br />

produz observação o sobre o estado atual s<br />

Controle: dada a observação o ∈ O, produz ação a ∈ A<br />

Planejador:<br />

Observações<br />

Controle<br />

Sistema Σ<br />

entrada: <strong>de</strong>scrição <strong>de</strong> Σ, estado inicial s 0 ∈ S e uma<br />

<strong>de</strong>scrição <strong>de</strong> meta<br />

saída: um plano <strong>de</strong> ações para guiar o controle<br />

Ações<br />

Eventos<br />

21


Mo<strong>de</strong>lo Conceitual<br />

metas<br />

Exemplos <strong>de</strong> <strong>de</strong>scrições <strong>de</strong> metas:<br />

Conjunto <strong>de</strong> estados meta S g<br />

(metas <strong>de</strong> alcançabilida<strong>de</strong>)<br />

Encontre uma seqüência <strong>de</strong><br />

transição <strong>de</strong> estados terminando<br />

em um estado meta s ∈ S g<br />

Estado inicial<br />

Metas<br />

Planejador<br />

Controle<br />

Descrição <strong>de</strong> Σ<br />

Status da execução<br />

Planos<br />

Conjunto <strong>de</strong> estados meta S g + satisfazendo<br />

alguma condição sobre o conjunto <strong>de</strong> estados<br />

percorridos pelo sistema (metas estendidas)<br />

Atinja um estado meta s ∈ S g , passando por<br />

estados que valha r<br />

Observações<br />

Otimização <strong>de</strong> uma função utilida<strong>de</strong> (ou recompensa)<br />

relacionada aos estados (metas <strong>de</strong> otimização)<br />

Otimize alguma função utilida<strong>de</strong> (eventualmente<br />

terminando num estado s ∈ S g )<br />

Execução <strong>de</strong> tarefas (planos abstratos), especificadas<br />

recursivamente como conjuntos <strong>de</strong> sub-tarefas e ações<br />

Sistema Σ<br />

Ações<br />

Eventos<br />

22


Exemplo dos Robôs Portuários<br />

Sistema <strong>de</strong> transição <strong>de</strong><br />

estado Σ = (S,A,E,γ)<br />

S = {s 0 , …, s 5 }<br />

A = {move1, move2,<br />

put, take, load, unload}<br />

E = {}<br />

γ: como ilustrado<br />

h(s) = s para todo s<br />

Entrada do planejador:<br />

Mo<strong>de</strong>lo Σ<br />

Estado inicial s 0<br />

Estado meta s 5<br />

Um plano solução:<br />

move1→take→load→move2<br />

Representação gráfica do<br />

mo<strong>de</strong>lo <strong>de</strong> transição <strong>de</strong> estados<br />

s 1<br />

put<br />

take<br />

location 1 location 2<br />

location 1 location 2<br />

move2 move1<br />

move2 move1<br />

s 3<br />

put<br />

take<br />

location 1 location 2<br />

location 1 location 2<br />

unload load<br />

s 4<br />

move2<br />

move1<br />

location 1 location 2 location 1 location 2<br />

s 0<br />

s 2<br />

s 5<br />

23


<strong>Planejamento</strong> Vs Escalonamento<br />

Escalonamento<br />

Deci<strong>de</strong> como executar um dado conjunto <strong>de</strong> ações<br />

usando um número limitado <strong>de</strong> recursos<br />

em um intervalo <strong>de</strong> tempo limitado<br />

É tipicamente NP-completo<br />

<strong>Planejamento</strong><br />

Deci<strong>de</strong> quais ações usar para atingir um<br />

conjunto <strong>de</strong> metas<br />

Po<strong>de</strong> ser muito pior que NP-completo<br />

Na maioria dos casos, é não-<strong>de</strong>cidível<br />

Muitas pesquisas fazem um conjunto <strong>de</strong> suposições<br />

restritivas para garantir a <strong>de</strong>cidibilida<strong>de</strong><br />

Vamos ver algumas <strong>de</strong>ssas restrições <br />

Planejador<br />

Escalonador<br />

Controle<br />

24


<strong>Planejamento</strong><br />

abordagem clássico<br />

25


Proprieda<strong>de</strong>s do ambiente e do agente<br />

discreta<br />

percepções<br />

ambiente<br />

Que plano<br />

<strong>de</strong>vo<br />

executar?<br />

<strong>de</strong>terminístico<br />

ações<br />

completamente<br />

observável<br />

instantânea<br />

única fonte<br />

<strong>de</strong> mudança<br />

26


Suposições restritivas<br />

A0 (Σ finito):<br />

O espaço <strong>de</strong> estados S é finito<br />

S = {s 0 ,s 1 , s 2 , … s k } para<br />

algum k<br />

A1 (Σ totalmente observável):<br />

A função <strong>de</strong> observação<br />

h: S → O é a função i<strong>de</strong>ntida<strong>de</strong><br />

o controle sempre sabe em que<br />

estado ele está.<br />

Estado inicial<br />

Metas<br />

Status da execução<br />

Observações<br />

Planejador<br />

Controle<br />

Sistema Σ<br />

Descrição <strong>de</strong> Σ<br />

Σ = (S,A,E,γ)<br />

S = {estados}<br />

A = {ações}<br />

E = {eventos}<br />

γ: S x (A ∪ E) → 2 S<br />

Planos<br />

Ações<br />

Eventos<br />

27


Suposições restritivas<br />

A2 (Σ <strong>de</strong>terminístico):<br />

Para todo u em A∪E, |γ(s,u)| = 1<br />

Cada ação ou evento tem apenas<br />

um saída possível<br />

A3 (Σ estático):<br />

E é vazio: nenhuma mudança<br />

ocorre no sistema Σ exceto<br />

aquelas efetuadas pelo controle<br />

A4 (metas <strong>de</strong> alcançabilida<strong>de</strong>):<br />

O objetivo é somente<br />

alcançar um s ∈ S g<br />

Estado inicial<br />

Metas<br />

Status da execução<br />

Observações<br />

Planejador<br />

Controle<br />

Sistema Σ<br />

Descrição <strong>de</strong> Σ<br />

Σ = (S,A,E,γ)<br />

S = {estados}<br />

A = {ações}<br />

E = {eventos}<br />

γ: S x (A ∪ E) → 2 S<br />

Planos<br />

Ações<br />

Eventos<br />

28


Suposições restritivas<br />

A5 (planos sequenciais):<br />

A solução é uma seqüência <strong>de</strong><br />

ações totalmente or<strong>de</strong>nada<br />

(a 1 , a 2 , … a n )<br />

A6 (tempo implícito):<br />

Transições <strong>de</strong> estados<br />

instantâneas, i.e., ações<br />

sem duração <strong>de</strong> tempo<br />

A7 (planejamento off-line):<br />

O Planejador não consi<strong>de</strong>ra<br />

o status da execução<br />

Estado inicial<br />

Metas<br />

Status da execução<br />

Observações<br />

Planejador<br />

Controle<br />

Sistema Σ<br />

Descrição <strong>de</strong> Σ<br />

Σ = (S,A,E,γ)<br />

S = {estados}<br />

A = {ações}<br />

E = {eventos}<br />

γ: S x (A ∪ E) → 2 S<br />

Planos<br />

Ações<br />

Eventos<br />

29


<strong>Planejamento</strong> Clássico<br />

<strong>Planejamento</strong> clássico faz as 8<br />

suposições restritivas<br />

Problema <strong>de</strong> <strong>Planejamento</strong> Clássico:<br />

Dado (Σ, s 0 , S g ), encontre uma<br />

seqüência <strong>de</strong> ações (a 1 , a 2 , … a n )<br />

que produza uma seqüência <strong>de</strong><br />

transições <strong>de</strong> estados<br />

s 1 = γ(s 0 , a 1 ),<br />

s 2 = γ(s 1 , a 2 ),<br />

…,<br />

s n = γ(s n–1 , a n )<br />

tal que s n pertença à S g .<br />

Descrição <strong>de</strong> Σ<br />

Estado inicial<br />

Planejador<br />

Metas<br />

Status da execução Planos<br />

Controle<br />

Observações<br />

Ações<br />

Sistema Σ<br />

Eventos<br />

30


<strong>Planejamento</strong> Clássico: exemplo<br />

Exemplo dos Robôs Portuários:<br />

sistema finito,<br />

<strong>de</strong>terminístico, estático<br />

conhecimento completo<br />

metas <strong>de</strong> alcance<br />

tempo implícito<br />

planejamento offline<br />

<strong>Planejamento</strong> clássico é<br />

basicamente uma busca<br />

<strong>de</strong> caminho em um grafo<br />

estados são nós<br />

ações são arestas<br />

Esse é um problema trivial?<br />

location 1 location 2<br />

move2 move1<br />

location 1 location 2<br />

unload load<br />

s 1<br />

s 3<br />

s 4<br />

put<br />

take<br />

put<br />

take<br />

move2<br />

move1<br />

location 1 location 2<br />

move2 move1<br />

location 1 location 2<br />

s 0<br />

s 2<br />

s 5<br />

location 1 location 2 location 1 location 2<br />

31


<strong>Planejamento</strong> Clássico<br />

Computacionalmente muito difícil<br />

generalização do exemplo dos Robôs Portuários:<br />

5 localizações, 3 pilhas, 3 robôs, 100 containers<br />

isso implica em 10 277 estados<br />

mais do que 10 190 vezes o número<br />

<strong>de</strong> partículas no universo!<br />

s 0<br />

location 1 location 2<br />

Existem muitas pesquisas <strong>de</strong> IA em planejamento clássico<br />

Apesar <strong>de</strong> ser uma abordagem muito restritiva para<br />

tratar a maioria dos problemas <strong>de</strong> interesse prático, …<br />

… muitas das idéias <strong>de</strong> soluções do planejamento<br />

clássico têm se mostrado úteis na resolução <strong>de</strong><br />

problemas práticos<br />

32


Relaxando as Suposições<br />

Relaxar A0 (Σ finito):<br />

Contínuo, e.g. ações com<br />

variáveis numéricas<br />

Relaxar A1 (Σ totalmente<br />

observável):<br />

Busca por estados <strong>de</strong> crença ou<br />

mundo possíveis<br />

Descrição <strong>de</strong> Σ<br />

Estado inicial<br />

Planejador<br />

Metas<br />

Status da execução Planos<br />

Controle<br />

Observações<br />

Ações<br />

Sistema Σ<br />

Eventos<br />

A0: Finito<br />

A1: Totalmente observável<br />

A2: Determinístico<br />

A3: Estático<br />

A4: Satisfação <strong>de</strong> metas<br />

A5: Planos seqüenciais<br />

A6: Tempo implícito<br />

A7: <strong>Planejamento</strong> off-line<br />

33


Relaxando as Suposições<br />

Relaxar A2 (Σ <strong>de</strong>terminístico):<br />

Ações possuem mais do que 1<br />

saída (efeito) possível com<br />

transições<br />

Sem probabilida<strong>de</strong>s:<br />

Sistema <strong>de</strong> transição não<br />

<strong>de</strong>terminístico, e.g.,<br />

planejamento condicional<br />

Com probabilida<strong>de</strong>s:<br />

Processos <strong>de</strong> <strong>de</strong>cisão<br />

estocáticos (MDPs)<br />

Combinação <strong>de</strong> planejamento<br />

probabilístico e não<br />

<strong>de</strong>terminístico<br />

imprecisão nas probabilida<strong>de</strong>s<br />

<strong>de</strong> transição<br />

Estado inicial<br />

Metas<br />

Status da execução<br />

Observações<br />

Planejador<br />

Controle<br />

Sistema Σ<br />

Descrição <strong>de</strong> Σ<br />

Planos<br />

Ações<br />

Eventos<br />

A0: Finito<br />

A1: Totalmente observável<br />

A2: Determinístico<br />

A3: Estático<br />

A4: Satisfação <strong>de</strong> metas<br />

A5: Planos seqüenciais<br />

A6: Tempo implícito<br />

A7: <strong>Planejamento</strong> off-line<br />

34


Relaxando as Suposições<br />

Relaxar A1 e A2 (Σ totalmente<br />

observável e <strong>de</strong>terminístico):<br />

MDPs com obervação parcial -<br />

POMDPs finitos (planejamento<br />

sobre estados <strong>de</strong> crença)<br />

Relaxar A0 e A2 (Σ finito e<br />

<strong>de</strong>terminístico):<br />

MDPs contínuos ou híbridos<br />

Teoria <strong>de</strong> controle<br />

Estado inicial<br />

Metas<br />

Status da execução<br />

Observações<br />

Planejador<br />

Controle<br />

Sistema Σ<br />

Descrição <strong>de</strong> Σ<br />

Planos<br />

Ações<br />

Eventos<br />

A0: Finito<br />

A1: Totalmente observável<br />

A2: Determinístico<br />

A3: Estático<br />

A4: Satisfação <strong>de</strong> metas<br />

A5: Planos seqüenciais<br />

A6: Tempo implícito<br />

A7: <strong>Planejamento</strong> off-line<br />

35


Relaxando as Suposições<br />

Relaxar A3 (Σ estático):<br />

Outros agentes<br />

Jogos finitos <strong>de</strong> soma-zero<br />

e informação perfeita<br />

Ambientes <strong>de</strong> comportamento<br />

aleatório<br />

Análise <strong>de</strong> <strong>de</strong>cisão (business,<br />

pesquisa operacional)<br />

Descrição <strong>de</strong> Σ<br />

Estado inicial<br />

Planejador<br />

Metas<br />

Status da execução Planos<br />

Controle<br />

Observações<br />

Ações<br />

Sistema Σ<br />

Eventos<br />

A0: Finito<br />

A1: Totalmente observável<br />

A2: Determinístico<br />

A3: Estático<br />

A4: Satisfação <strong>de</strong> metas<br />

A5: Planos seqüenciais<br />

A6: Tempo implícito<br />

A7: <strong>Planejamento</strong> off-line<br />

36


Relaxando as Suposições<br />

Relaxar A6 (tempo implícito):<br />

<strong>Planejamento</strong> temporal<br />

Relaxar A0, A5, A6 (Σ finito, planos<br />

sequenciais e tempo implícito):<br />

Planos com paralelismo e<br />

concorrência<br />

Problemas <strong>de</strong> escalonamento<br />

Relaxar A7 (planejamento off-line):<br />

<strong>Planejamento</strong> e execução<br />

Necessida<strong>de</strong> <strong>de</strong> coleta <strong>de</strong><br />

informações durante o<br />

planejamento<br />

Existem outras 247 combinações<br />

para serem exploradas …<br />

Estado inicial<br />

Metas<br />

Status da execução<br />

Observações<br />

Planejador<br />

Controle<br />

Sistema Σ<br />

Descrição <strong>de</strong> Σ<br />

Planos<br />

Ações<br />

Eventos<br />

A0: Finito<br />

A1: Totalmente observável<br />

A2: Determinístico<br />

A3: Estático<br />

A4: Satisfação <strong>de</strong> metas<br />

A5: Planos seqüenciais<br />

A6: Tempo implícito<br />

A7: <strong>Planejamento</strong> off-line<br />

37


Representação <strong>de</strong><br />

estados, ações e metas<br />

38


Como especificar um problema <strong>de</strong> planejamento?<br />

<strong>de</strong>scrição do problema<br />

planejador<br />

plano<br />

39


Como especificar um problema <strong>de</strong> planejamento?<br />

Representação explícita:<br />

todos os estados e<br />

transições possíveis!<br />

<strong>de</strong>scrição do problema<br />

planejador<br />

plano<br />

40


Como especificar um problema <strong>de</strong> planejamento?<br />

Representação explícita:<br />

todos os estados e<br />

transições possíveis<br />

<strong>de</strong>scrição do problema<br />

planejador<br />

plano<br />

Representação implícita:<br />

todas as ações (com<br />

símbolos constantes) mas<br />

não todos os estados<br />

41


Como especificar um problema <strong>de</strong> planejamento?<br />

Representação explícita:<br />

todos os estados e<br />

transições possíveis<br />

<strong>de</strong>scrição do problema<br />

planejador<br />

plano<br />

Representação implícita:<br />

todas as ações (com<br />

símbolos constantes) mas<br />

não todos os estados<br />

Representação<br />

implícita e relacional:<br />

ações (com variáveis)<br />

<strong>de</strong> estado<br />

42


Exemplo: O Mundo dos Blocos<br />

Estado inicial<br />

C<br />

A<br />

B<br />

A<br />

B<br />

C<br />

43


Exemplo: O Mundo dos Blocos<br />

Estado inicial<br />

C<br />

A<br />

B<br />

Objetos: blocos A,B,C,mesa<br />

Proprieda<strong>de</strong>s:<br />

A e B estão sobre a mesa<br />

C está sobre A<br />

o topo <strong>de</strong> C está livre<br />

otopo <strong>de</strong> B estálivre<br />

otopo <strong>de</strong> A não está livre<br />

C não está sobre B (mesa)<br />

A não está sobre B (C)<br />

B não está sobre C (A)<br />

a mesa está sempre livre<br />

44


Exemplo: O Mundo dos Blocos<br />

Estado inicial<br />

C<br />

A<br />

B<br />

A<br />

B<br />

C<br />

coloque bloco C<br />

<strong>de</strong> A para mesa<br />

45


Exemplo: O Mundo dos Blocos<br />

Estado inicial<br />

C<br />

B<br />

A<br />

B<br />

A<br />

B<br />

C<br />

A<br />

C<br />

coloque bloco C<br />

<strong>de</strong> A para mesa<br />

move bloco B da<br />

mesa para cima <strong>de</strong> C<br />

46


Exemplo: O Mundo dos Blocos<br />

Estado inicial<br />

A<br />

C<br />

B<br />

B<br />

A<br />

B<br />

A<br />

B<br />

C<br />

A<br />

C<br />

C<br />

coloque bloco C<br />

<strong>de</strong> A para mesa<br />

move bloco B da<br />

mesa para cima <strong>de</strong> C<br />

move bloco A da<br />

mesa para cima <strong>de</strong> B<br />

Plano<br />

47


Representação <strong>de</strong> Estado (CWA)<br />

Closed World Assumption:<br />

aquilo que não está <strong>de</strong>scrito<br />

no estado é consi<strong>de</strong>rado falso<br />

Ufa!!<br />

C<br />

A<br />

B<br />

Estado Inicial:<br />

sobre(B,mesa)<br />

sobre(A,mesa)<br />

sobre(C,A)<br />

limpo(C)<br />

limpo(B)<br />

¬ sobre(C,mesa)<br />

¬ sobre(C,B)<br />

¬ sobre(A,B)<br />

¬ sobre(A,C)<br />

¬ sobre(B,C)<br />

¬ sobre(B,A)<br />

¬ limpo(A)<br />

Na representação clássica <strong>de</strong> problemas<br />

<strong>de</strong> planejamento, um estado não <strong>de</strong>screve<br />

o que é falso, mas somente o que é verda<strong>de</strong>iro<br />

48


Representação <strong>de</strong> Estados e Meta<br />

C<br />

A<br />

B<br />

Estado Inicial:<br />

sobre(B,mesa)<br />

sobre(A,mesa)<br />

sobre(C,A)<br />

limpo(C)<br />

limpo(B)<br />

A<br />

B<br />

C<br />

Estado Meta:<br />

sobre(C,mesa)<br />

sobre(B,C)<br />

sobre(A,B)<br />

limpo(A)<br />

Descrição da Meta:<br />

{sobre(A,B), sobre(B,C)}<br />

49


Representação do mo<strong>de</strong>lo explícita:<br />

todos os estados e transições possíveis<br />

C<br />

A<br />

B<br />

B<br />

A<br />

A<br />

C A B B C<br />

C<br />

C<br />

B<br />

A<br />

A<br />

B C<br />

A B C<br />

A<br />

B<br />

C<br />

B<br />

C<br />

A<br />

C<br />

A B<br />

A C<br />

B<br />

A<br />

B<br />

C<br />

mo<strong>de</strong>lo flat<br />

A<br />

C<br />

B<br />

50


Representação do mo<strong>de</strong>lo explícita:<br />

todos os estados e transições possíveis<br />

C<br />

A<br />

B<br />

B<br />

A<br />

A<br />

C A B B C<br />

C<br />

C<br />

B<br />

A<br />

A<br />

B C<br />

A B C<br />

A<br />

B<br />

C<br />

B<br />

C<br />

A<br />

C<br />

A B<br />

A C<br />

B<br />

A<br />

B<br />

C<br />

mo<strong>de</strong>lo flat<br />

A<br />

C<br />

B<br />

51


Descrição <strong>de</strong> ações<br />

Como <strong>de</strong>screver as “transições” ou ações?<br />

limpo(C), sobre(C,A), limpo(B)<br />

move(C,A,B)<br />

¬sobre(C,A), ¬limpo(B),<br />

limpo(A), sobre(A,B),<br />

Precisamos <strong>de</strong> uma linguagem para <strong>de</strong>screver ações!<br />

52


Representação do mo<strong>de</strong>lo implícita:<br />

todas as ações (constantes) mas não todos os estados<br />

Ações:<br />

precondições<br />

limpo(C), sobre(C,A), limpo(B)<br />

move(C,A,B)<br />

¬sobre(C,A), ¬limpo(B),<br />

limpo(A), sobre(A,B),<br />

efeitos<br />

limpo(A), sobre(A,B)<br />

coloque-sobre-mesa(A,B)<br />

¬sobre(A,B),limpo(B),<br />

sobre(A,mesa),<br />

53


Representação do mo<strong>de</strong>lo implícita e relacional:<br />

ações com variáveis <strong>de</strong> estado<br />

Esquema <strong>de</strong> Ações<br />

(operadores):<br />

precondições<br />

limpo(x), sobre(x,y), limpo(z)<br />

move(x,y,z)<br />

¬sobre(x,y), ¬limpo(z),<br />

limpo(y), sobre(y,z),<br />

efeitos<br />

limpo(x), sobre(x,y)<br />

coloque-sobre-mesa(x,y)<br />

¬sobre(x,y),limpo(y),<br />

sobre(x,mesa),<br />

54


Observação<br />

O fluente on(x,y) é uma versão abstrata (lifted) dos<br />

fluentes<br />

on(A,B) on(B,A) on(A,C) on(C, mesa)<br />

O operador move(x,y,z) é uma versão abstrata (lifted) das<br />

ações (ground):<br />

move(A,B,C) move(B,A,C) move(C,B,A)<br />

move(A,C,B) move(B,C,A) move(C,A,B)<br />

55


Domínio × Problema <strong>de</strong> <strong>Planejamento</strong><br />

Domínio <strong>de</strong> planejamento:<br />

linguagem + conjunto <strong>de</strong> operadores<br />

correspon<strong>de</strong> a um conjunto <strong>de</strong> sistemas <strong>de</strong> transição <strong>de</strong><br />

estados, um para cada conjunto possível <strong>de</strong> objetos (blocos<br />

A, B, …)<br />

Domain:<br />

operator: (move(x,y,z),<br />

precond: { limpo(z), limpo(y), sobre(z,x) },<br />

effects: { limpo(x), sobre(z,y), ¬limpo(y), ¬sobre(z,x)})<br />

operator: (coloque-sobre-mesa(x,z),<br />

precond: { limpo(x), sobre(x,z) },<br />

effects: {¬sobre(x,z), limpo(z), sobre(x,mesa)})<br />

56


Domínio × Problema <strong>de</strong> <strong>Planejamento</strong><br />

Problema <strong>de</strong> planejamento:<br />

domínio + estado inicial + meta<br />

representação compacta porém, isso implica numa explosão<br />

combinatória no número <strong>de</strong> constantes do problema<br />

(tamanho do problema)<br />

Domain:<br />

PROBLEMA DE PLANEJAMENTO:<br />

operator: (move(x,y,z),<br />

precond: { limpo(z), limpo(y), sobre(z,x) },<br />

effects: { limpo(x), sobre(z,y), ¬limpo(y), ¬sobre(z,x) })<br />

operator: (coloque-sobre-mesa(x,z),<br />

precond: { limpo(x), sobre(x,z) },<br />

effects: {¬sobre(x,z), limpo(z), sobre(x,mesa)})<br />

Initial State: {sobre(B,mesa), sobre(A,mesa), sobre(C,A),<br />

limpo(C), limpo(B)}<br />

Goal: {sobre(A,B) ∧ sobre(B,C)}<br />

57


Linguagem para Descrição do Problema<br />

representação clássica<br />

Baseada na Lógica <strong>de</strong> Predicados (LPO), livre <strong>de</strong> funções:<br />

conjunto finito <strong>de</strong> símbolos <strong>de</strong> predicados (ex.: sobre, limpo, move …) e<br />

símbolos <strong>de</strong> objetos (variáveis ou constantes) (ex.: bloco A ou bloco x)<br />

predicados <strong>de</strong>finem relações entre objetos<br />

um átomo éum predicado seguido <strong>de</strong> uma lista <strong>de</strong> objetos (ex.:<br />

sobre(x,y), limpo(A)).<br />

um átomo po<strong>de</strong> ser negativo ou positivo (¬limpo(z) ou limpo(z)).<br />

Expressões envolvem operadores clássicos da LPO, ex.: sobre(A,B) ∧<br />

sobre(B,C).<br />

um átomo positivo ou negativo échamado<strong>de</strong> literal<br />

Um literal constante não contém variável. Ex.: sobre(A,B).<br />

θ = {x 1 /v 1 , x 2 /v 2 , …, x n /v n } representa uma substituição que<br />

quando aplicada a uma expressão troca a variável x i pelo objeto v i<br />

uma instância da expressão e, é o resultado da aplicação<br />

<strong>de</strong> uma substituição θ em e com v i = cte<br />

negação<br />

lógica<br />

58


Representação implícita e fatorada:<br />

esquema das transições<br />

Operator: representação fatorada (com variáveis) <strong>de</strong> ações,<br />

dada pela tripla (nome, precond, effects):<br />

name: expressão sintática da forma n (x 1 ,…,x k )<br />

precond: precondições que <strong>de</strong>vem ser verda<strong>de</strong>iras para<br />

ser possível usar/executar o operador<br />

effects: lista <strong>de</strong> efeitos que serão verda<strong>de</strong>iros e os que<br />

serão falsos, após a execução do operador<br />

operator: (move (x,z,y)<br />

;; move bloco x <strong>de</strong> cima do bloco z, para cima do bloco y<br />

precond: {limpo(x ), sobre(x,z), limpo(y)}<br />

effects: {limpo(z), sobre(x,y), ¬ sobre(x,z), ¬limpo(y) })<br />

59


Representação implícita e fatorada: esquema<br />

das transições<br />

Chamamos <strong>de</strong> ações as instâncias <strong>de</strong> um operador<br />

operator: (move (x,z,y)<br />

;; move bloco x <strong>de</strong> cima do bloco z, para cima do bloco y<br />

precond: {limpo(x ), sobre(x,z), limpo(y)}<br />

effects: {limpo(z), sobre(x,y), ¬ sobre(x,z), ¬limpo(y)})<br />

substituição = {x/C, y/A, z/B}<br />

action: (move (C,A,B)<br />

;; move bloco C <strong>de</strong> cima do bloco A, para cima do bloco B<br />

precond: {limpo(C ), sobre(C,A), limpo(B)}<br />

effects: {limpo(A), sobre(C,B), ¬ sobre(C,A), ¬ limpo(B) })<br />

C<br />

A<br />

A<br />

B<br />

move (C,A,B)<br />

C<br />

B<br />

60


Domínio × Problema <strong>de</strong> <strong>Planejamento</strong><br />

Dado um domínio <strong>de</strong> planejamento um problema <strong>de</strong><br />

planejamento é <strong>de</strong>finido pela tripla P=(O,s 0 ,g), sendo:<br />

O uma coleção <strong>de</strong> operadores (domínio)<br />

s 0<br />

um estado (o estado inicial)<br />

g um conjunto <strong>de</strong> literais (a fórmula meta), sendo S g , o conjunto<br />

<strong>de</strong> estados tal que S g ∩ g = g<br />

Dado Σ, um problema <strong>de</strong> planejamento éa triplaP=(Σ,s 0 ,S g ), sendo:<br />

s 0 e S g (como <strong>de</strong>finidos acima, permitem i<strong>de</strong>ntificar L)<br />

Σ = (S,A,γ) é um sistema <strong>de</strong> transição <strong>de</strong> estados<br />

S = {2 L = conjuntos <strong>de</strong> todos os átomos em L}<br />

A = {todas as instâncias dos operadores em O }<br />

γ = a função <strong>de</strong> transição <strong>de</strong> estado (também po<strong>de</strong> ser<br />

<strong>de</strong>terminada pelos operadores)<br />

61


Domínio × Problema <strong>de</strong> <strong>Planejamento</strong><br />

Dado um domínio <strong>de</strong> planejamento, um problema <strong>de</strong><br />

planejamento édado pelatriplaP=(O,s 0 ,g), sendo:<br />

O uma coleção <strong>de</strong> operadores (domínio) também chamada <strong>de</strong><br />

<strong>de</strong>scrição <strong>de</strong> primeira or<strong>de</strong>m<br />

um estado (o estado inicial)<br />

s 0<br />

g um conjunto <strong>de</strong> literais (a fórmula meta), sendo S g , o conjunto<br />

<strong>de</strong> estados tal que S g ∩ g = g<br />

Um problema <strong>de</strong> planejamento éa triplaP=(Σ,s 0 ,S g ), sendo:<br />

s 0 e S g (como <strong>de</strong>finidos acima)<br />

Σ = (S,A,γ) é um sistema <strong>de</strong> transição <strong>de</strong> estados também chamada <strong>de</strong><br />

<strong>de</strong>scrição proposicional<br />

S = {conjuntos <strong>de</strong> todos os átomos em L}<br />

A = {todasasinstânciasdos operadores em O }<br />

γ = a função <strong>de</strong> transição <strong>de</strong> estado (também po<strong>de</strong> ser<br />

<strong>de</strong>terminada pelos operadores)<br />

62


Planos e Soluções<br />

63


Planos e Soluções<br />

Plano: qualquer seqüência <strong>de</strong> ações σ = 〈a 1 , a 2 , …, a n 〉 tal<br />

que cada a i éumainstância<strong>de</strong> um operadoremO<br />

O plano é uma solução para P=(O,s 0 ,g) se ele é executável<br />

em s 0 e atinge algum estado <strong>de</strong> S g<br />

i.e., se há estados s 0 , s 1 , …, s n tal que<br />

γ (s 0 ,a 1 ) = s 1<br />

γ (s 1 ,a 2 ) = s 2<br />

…<br />

γ (s n–1 ,a n ) = s n<br />

s n satisfaz g (ou s n ∈ S g )<br />

64


Semântica <strong>de</strong> Operadores<br />

(na geração progressiva <strong>de</strong> estados sucessores)<br />

operator: (move(x,y,z),<br />

precond: { limpo(x), limpo(z), sobre(x,y) },<br />

effects: { limpo(y), sobre(x,z), ¬limpo(z), ¬sobre(x,y) })<br />

substituição = {x/C, y/A, z/B}<br />

s<br />

s’<br />

C<br />

A<br />

B<br />

move(C,A,B)<br />

A<br />

C<br />

B<br />

limpo(B)<br />

limpo(C)<br />

sobre (A,mesa)<br />

Sobre(B,mesa)<br />

sobre(C,A)<br />

65


Semântica <strong>de</strong> Operadores<br />

(na geração progressiva <strong>de</strong> estados sucessores)<br />

action: (move(C,A,B),<br />

precond: { limpo(C), limpo(B), sobre(C,A) },<br />

effects: { limpo(A), sobre(C,B), ¬limpo(B), ¬sobre(C,A) })<br />

s’ = s ∪ efeitos(positivos) \ efeitos(negativos)<br />

s<br />

s’<br />

C<br />

A<br />

B<br />

move(C,A,B)<br />

A<br />

C<br />

B<br />

limpo(B)<br />

limpo(C)<br />

sobre (A,mesa)<br />

Sobre(B,mesa)<br />

sobre(C,A)<br />

66


Semântica <strong>de</strong> Operadores<br />

(na geração progressiva <strong>de</strong> estados sucessores)<br />

action: (move(C,A,B),<br />

precond: { limpo(C), limpo(B), sobre(C,A) },<br />

effects: { limpo(A), sobre(C,B), ¬limpo(B), ¬sobre(C,A) })<br />

s’ = s ∪ efeitos(positivos) \ efeitos(negativos)<br />

s<br />

s’<br />

C<br />

A<br />

B<br />

move(C,A,B)<br />

A<br />

C<br />

B<br />

limpo(B)<br />

limpo(C)<br />

sobre (A,mesa)<br />

Sobre(B,mesa)<br />

sobre(C,A)<br />

limpo(B)<br />

limpo(C)<br />

sobre(A,mesa)<br />

sobre(B,mesa)<br />

sobre(C,A)<br />

67


Semântica <strong>de</strong> Operadores<br />

(na geração progressiva <strong>de</strong> estados sucessores)<br />

action: (move(C,A,B),<br />

precond: { limpo(C), limpo(B), sobre(C,A) },<br />

effects: { limpo(A), sobre(C,B), ¬limpo(B), ¬sobre(C,A) })<br />

s’ = s ∪ efeitos(positivos) \ efeitos(negativos)<br />

s<br />

s’<br />

C<br />

A<br />

B<br />

move(C,A,B)<br />

A<br />

C<br />

B<br />

limpo(B)<br />

limpo(C)<br />

sobre (A,mesa)<br />

Sobre(B,mesa)<br />

sobre(C,A)<br />

limpo(B)<br />

limpo(C)<br />

sobre(A,mesa)<br />

sobre(B,mesa)<br />

sobre(C,A)<br />

limpo(B)<br />

limpo(C)<br />

sobre(A,mesa)<br />

sobre(B,mesa)<br />

sobre(C,A)<br />

limpo(A)<br />

sobre(C,B)<br />

68


Semântica <strong>de</strong> Operadores<br />

(na geração progressiva <strong>de</strong> estados sucessores)<br />

action: (move(C,A,B),<br />

precond: { limpo(C), limpo(B), sobre(C,A) },<br />

effects: { limpo(A), sobre(C,B), ¬limpo(B), ¬sobre(C,A) })<br />

s’ = s ∪ efeitos(positivos) \ efeitos(negativos)<br />

s<br />

s’<br />

C<br />

A<br />

B<br />

move(C,A,B)<br />

A<br />

C<br />

B<br />

limpo(B)<br />

limpo(C)<br />

sobre (A,mesa)<br />

Sobre(B,mesa)<br />

sobre(C,A)<br />

limpo(B)<br />

limpo(C)<br />

sobre(A,mesa)<br />

sobre(B,mesa)<br />

sobre(C,A)<br />

limpo(B)<br />

limpo(C)<br />

sobre(A,mesa)<br />

sobre(B,mesa)<br />

sobre(C,A)<br />

limpo(A)<br />

sobre(C,B)<br />

limpo(B)<br />

limpo(C)<br />

sobre(A,mesa)<br />

sobre(B,mesa)<br />

sobre(C,A)<br />

limpo(A)<br />

sobre(C,B)<br />

69


Robôs Portuários<br />

Generalização do exemplo anterior<br />

Um cais <strong>de</strong> porto com várias localizações<br />

e.g., docas, navios com docas, áreas <strong>de</strong><br />

armazenagem, áreas <strong>de</strong> transferência<br />

<strong>de</strong> carga (pallets)<br />

Containers<br />

vão/vêm <strong>de</strong> navios<br />

Carros Robôs<br />

Po<strong>de</strong>m mover containers<br />

Guindastes<br />

po<strong>de</strong>m carregar ou<br />

<strong>de</strong>scarregar<br />

containers<br />

70


Robôs Portuários<br />

Localizações: l1, l2, …<br />

Containers: c1, c2, …<br />

Po<strong>de</strong>m ser empilhados, carregados sobre os robôs, ou carregados pelos<br />

guindastes<br />

Pallets: p1, p2, …<br />

Plataforma fixa no fundo <strong>de</strong> cada pilha<br />

Carros Robôs: r1, r2, …<br />

Po<strong>de</strong>m mover para localizações adjacentes<br />

carregam no máximo um container<br />

Guindastes: k1, k2, …<br />

cada um pertence a uma única localização<br />

carrega um container <strong>de</strong> uma pilha para um carro robô e vice-e-versa<br />

Se há uma pilha em uma localização então <strong>de</strong>ve haver também um<br />

guindaste na mesma localização<br />

71


Robôs Portuários<br />

Relações fixas: é a mesma em todos os estados<br />

adjacent(l,l’) attached(p,l) belong(k,l)<br />

Relações dinâmicas (fluentes): diferem <strong>de</strong> um estado para outro<br />

occupied(l) at(r,l)<br />

loa<strong>de</strong>d(r,c) unloa<strong>de</strong>d(r)<br />

holding(k,c) empty(k)<br />

in(c,p) on(c,c’)<br />

top(c,p) top(pallet,p)<br />

Conjunto <strong>de</strong> ações:<br />

take(c,k,p) put(c,k,p)<br />

load(r,c,k) unload(r) move(r,l,l’)<br />

72


Exemplo <strong>de</strong> um estado para o<br />

problema dos Robôs Portuários<br />

73


Domínio <strong>de</strong> planejamento:<br />

linguagem + conjunto <strong>de</strong><br />

operadores<br />

74


Planning Domain Definition Language PDDL<br />

Linguagem adotada como padrão para <strong>de</strong>crever domínios<br />

<strong>de</strong> planejamento. Permite incluir: tipos, funções, variáveis<br />

numéricas, ações durativas, funções <strong>de</strong> otimização ==><br />

planejamento e escalonamento<br />

Proposta inicial para acompetição <strong>de</strong> planejamento:<br />

AIPS 2002 Planning Competition<br />

http://www.dur.ac.uk/d.p.long/competition.htm<br />

75


Mundo dos Blocos em PDDL<br />

C<br />

A<br />

B<br />

76


PDDL temporal e numér co<br />

Operador do Domínio Satélites <strong>de</strong> Observação<br />

Espacial<br />

(:durative-action take_image<br />

:parameters (?s - satellite ?d - direction ?i - instrument ?m - mo<strong>de</strong>)<br />

:duration (= ?duration 7)<br />

:condition (and (over all (calibrated ?i))<br />

(over all (on_board ?i ?s))<br />

(over all (supports ?i ?m) )<br />

(over all (power_on ?i))<br />

(over all (pointing ?s ?d))<br />

(at end (power_on ?i))<br />

(at start (>= (data_capacity ?s) (data ?d ?m)))<br />

)<br />

:effect (and (at start (<strong>de</strong>crease (data_capacity ?s) (data ?d ?m)))<br />

(at end (have_image ?d ?m))<br />

(at end (increase (data-stored) (data ?d ?m))) )<br />

77


Bibliografia<br />

M. Ghallab, Dana Nau, and Paulo Traverso. Automated<br />

Planning: Theory and Practice. Morgan Kaufmann<br />

Publishers, 2004<br />

Stuart Russel and Peter Norvig. Artificial Intelligence: a<br />

Mo<strong>de</strong>rn Approach (2nd edition). Elsevier, 2006.<br />

Silvio do Lago Pereira. <strong>Planejamento</strong> no Cálculo <strong>de</strong><br />

Eventos. Dissertação <strong>de</strong> Mestrado em Ciência da<br />

Computação, IME-USP, 2002.<br />

78

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!