Planejamento automatizado - Laboratório de Técnicas Inteligentes ...
Planejamento automatizado - Laboratório de Técnicas Inteligentes ...
Planejamento automatizado - Laboratório de Técnicas Inteligentes ...
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