ctc15 cap5 planejamento [modo de compatibilidade]pauloac/ctc15/ctc15_cap5_6s.pdf · 2011-10-20 ·...

11
1 1 lnteligência Artificial Planejamento Inteligência Artificial CTC-15 2 Planejamento:Conceitos básicos A tarefa de apresentar uma seqüência de ações que alcançarão um objetivo é chamada planejamento.Vimos até agora dois exemplos de agentes de planejamento: o agente de resolução de problemas baseado em busca e o agente de planejamento lógico Agora, tratamos principalmente com o aumento de escala para problemas complexos de planejamento que derrota as abordagens que vimos até aqui. Veremos uma linguagem para planejamento baseada nas representações proposicional e de primeira ordem de ações Inteligência Artificial CTC-15 Planejamento:Conceitos básicos - 2 Planejador: objetiva encontrar um plano que permita um agente executar uma tarefa, a partir de uma situação inicial. Plano: seqüência ordenada de ações tarefa: obter banana, leite e uma furadeira plano: ir ao supermercado, ir à seção de frutas, pegar as bananas, ir à seção de leite, pegar uma caixa de leite, ir ao caixa, pagar tudo, ir a uma loja de ferramentas, ..., voltar para casa. Inteligência Artificial CTC-15 Busca x planejamento Representação usando busca Ações: programas que geram o estado sucessor Estados: descrição completa problemático em ambientes inacessíveis Objetivos: função de teste e heurística Planos: totalmente ordenados e criados incrementalmente a partir do estado inicial Ex. posições das peças de um jogo Exemplo do supermercado estado inicial: em casa sem objetos desejados estado final: em casa com objetos desejados operadores: tudo o que o agente pode fazer heurística: número de objetos ainda não possuídos Inteligência Artificial CTC-15 Exemplo em resolução de problemas usando busca começo começo Ir ao banco Ir ao banco Ir à escola Ir à escola Ir ao supermercado Ir ao supermercado Ir dormir Ir dormir Ler um livro Ler um livro Sentar na cadeira Sentar na cadeira Etc... Etc... Pagar contas Pagar contas Assistir aula Assistir aula Pegar dinheiro Pegar dinheiro Levantar Levantar Ler um livro Ler um livro Comprar queijo Comprar queijo Comprar banana Comprar banana Comprar atum Comprar atum Fim Fim ... ... Tudo que o agente pode fazer Inteligência Artificial CTC-15 Limitações desta abordagem Fator de ramificação grande; A função heurística apenas escolhe o estado mais próximo do objetivo. Não permite descartar ações a priori; Não permite abstração dos estados parciais; Considera ações a partir do estado inicial, uma após a outra; Objetivo é testado para cada estado; para cada novo estado, um novo teste idêntico precisa ser feito.

Upload: others

Post on 07-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ctc15 cap5 Planejamento [Modo de Compatibilidade]pauloac/ctc15/ctc15_cap5_6s.pdf · 2011-10-20 · Assistir aula Pegar dinheiro Levantar Ler um livro Comprar queijo Comprar banana

1

1

lnteligência Artificial

Planejamento

Inteligência Artificial CTC-152

Planejamento:Conceitos básicos

� A tarefa de apresentar uma seqüência de ações que alcançarão um objetivo é chamada planejamento. Vimos até agora dois exemplos de agentes de planejamento: o agente de resolução de problemas baseado em busca e o agente de planejamento lógico

� Agora, tratamos principalmente com o aumento de escala para problemas complexos de planejamento que derrota as abordagens que vimos até aqui.

� Veremos uma linguagem para planejamento baseada nas representações proposicional e de primeira ordem de ações

Inteligência Artificial CTC-15

Planejamento:Conceitos básicos - 2

� Planejador: objetiva encontrar um plano que permita um agente executar uma tarefa, a partir de uma situação inicial.

� Plano: seqüência ordenada de ações� tarefa: obter banana, leite e uma furadeira� plano: ir ao supermercado, ir à seção de frutas, pegar as

bananas, ir à seção de leite, pegar uma caixa de leite, ir ao caixa, pagar tudo, ir a uma loja de ferramentas, ..., voltar para casa.

Inteligência Artificial CTC-15

Busca x planejamento

� Representação usando busca� Ações: programas que geram o estado sucessor� Estados: descrição completa

� problemático em ambientes inacessíveis� Objetivos: função de teste e heurística� Planos: totalmente ordenados e criados

incrementalmente a partir do estado inicial� Ex. posições das peças de um jogo

� Exemplo do supermercado� estado inicial: em casa sem objetos desejados� estado final: em casa com objetos desejados� operadores: tudo o que o agente pode fazer� heurística: número de objetos ainda não possuídos

Inteligência Artificial CTC-15

Exemplo em resolução de problemas

usando busca

começocomeço

Ir ao bancoIr ao banco

Ir à escolaIr à escola

Ir ao supermercadoIr ao supermercado

Ir dormirIr dormir

Ler um livroLer um livro

Sentar na cadeiraSentar na cadeira

Etc...Etc...

Pagar contasPagar contas

Assistir aulaAssistir aula

Pegar dinheiroPegar dinheiro

LevantarLevantar

Ler um livroLer um livro

Comprar queijoComprar queijo

Comprar bananaComprar banana

Comprar atumComprar atum

FimFim......

Tudo que o agente pode fazer

Inteligência Artificial CTC-15

Limitações desta abordagem� Fator de ramificação grande;� A função heurística apenas escolhe o estado mais

próximo do objetivo. Não permite descartar ações a priori;

� Não permite abstração dos estados parciais;� Considera ações a partir do estado inicial, uma

após a outra;� Objetivo é testado para cada estado; para cada

novo estado, um novo teste idêntico precisa ser feito.

Page 2: ctc15 cap5 Planejamento [Modo de Compatibilidade]pauloac/ctc15/ctc15_cap5_6s.pdf · 2011-10-20 · Assistir aula Pegar dinheiro Levantar Ler um livro Comprar queijo Comprar banana

2

Inteligência Artificial CTC-15

Planejamento: 3 idéias principais� Representação dos estados, objetivos e ações usando LPO

(descrições parciais dos estados)

� pode conectar diretamente estados e ações. Ex. estado: Have (Milk),

ação: Buy(milk)� Have(Milk)

� Adiciona ações ao plano quando forem necessárias

� ordem de planejamento ≠≠≠≠ ordem de execução

� primeiro, o que é importante : Buy(Milk) – pode-se colocar esta ação

no plano, mesmo sem saber como chegar ao supermercado.

� diminui fator de ramificação

� Uso da estratégia de dividir-e-conquistar

� Definição de sub-planos: sub-plano supermercado, sub-plano loja de

ferramentas (sub-metas)

Inteligência Artificial CTC-15

Relembrando o Cálculo Situacional

Result(Forward,S0) = S1

Result(Turn(Right),S1) = S2

Result(Forward,S2) = S3

Mundo : seqüência de situações

Representação das mudanças no mundo:

Ações : provocam mudanças na situação

Inteligência Artificial CTC-15

Planejando com Cálculo de

Situações

� Estado inicial: sentença lógicaAt(Home, S0) ∧ ¬ Have(Milk , S0) ∧ ¬ Have(Bananas, S0) ∧

¬ Have(Drill , S0)� Estado Objetivo: pergunta lógica (p/ unificação)

At(Home, S) ∧ Have(Milk , S) ∧ Have(Bananas , S) ∧ Have(Drill , S)

� Operadores: conjunto de axiomas de estado sucessor∀ a,s Have(Milk, Result(a, s)) ⇔ [(a = Buy(Milk) ∧

At(supermarket, s) ∨ (Have(Milk, s) ∧ a ≠ Drop(Milk))]

� Notação� Result(a,s) - uma ação executada na situação s;� Result’(p,s) - seqüência de ações � S = Result’(p,S0)

Inteligência Artificial CTC-15

Planejando com Cálculo de Situações

� Reescrevendo o Estado Objetivo: pergunta lógica At(Home,Result’(p, S0)) ∧ Have(Milk, Result’(p, S0)) ∧Have(Bananas, Result’(p, S0)) ∧ Have(Drill, Result’(p, S0))

� Solução:p = [Go(SuperMarket), Buy(Milk), Buy(Bananas),

Go(HardwareStore), Buy(Drill), Go(home)]� Limitações

� Eficiência da inferência em lógica de primeira ordem: não OK!

� Nenhuma garantia sobre a qualidade da solução� ex. pode haver passos redundantes no meio do plano

� Solução: especializar linguagem (STRIPS) e definir um algoritmo para planejar (POP)

Inteligência Artificial CTC-15

STRIPS

� STRIPS: STanford Research Institute Problem Solver

� Estados: conjunção de literais sem variáveis�Inicial: At(Home)

�Por default, literal não mencionado é falso (Hipótese do mundo

fechado): ¬ Have(Milk) ^ ¬ Have(Bananas) ̂ ¬ Have(Drill)

�Final: At(Home) ^ Have(Milk) ^ Have(Bananas) ^ Have(Drill)

� Objetivos: conjunção de literais e possivelmente variáveis (∃)

� At(Home) ^ Have(Milk) ^ Have(Bananas) ̂ Have(Drill)

� At(x)^ Sells(x, Milk)

Inteligência Artificial CTC-15

� Ações:

�Descritor da ação: predicado lógico�Pré-condição: conjunção de literais positivos�Efeito: conjunção de literais (positivos ou negativos) – lista de literais a serem adicionados e lista de literais a serem removidos.

� Operador para ir de um lugar para outro� Op( ACTION: Go(there),

PRECOND:At(here) ̂ Path(here, there), EFFECT:At(there) ^ ¬ At(here))

ADD: At(there) DEL: ¬ At(here)

Notação alternativa:Go(there)Go(there)

At(here), Path(here, there)At(here), Path(here, there)

At(there), At(there), ¬¬ At(here)At(here)

Ações em STRIPS

Page 3: ctc15 cap5 Planejamento [Modo de Compatibilidade]pauloac/ctc15/ctc15_cap5_6s.pdf · 2011-10-20 · Assistir aula Pegar dinheiro Levantar Ler um livro Comprar queijo Comprar banana

3

Inteligência Artificial CTC-15

B

C

A

A

B

C

Estado inicial:On(C,A) Clear(B)On(A, Table) Clear(C)On(B, Table)

Estado final (objetivo):On(A,B) Clear(A)On(B, C)On(C, Table)

Ações:PutOn(x,y) � P: On(x,z), Clear(y), Clear(x)

Add: On(x,y), Clear(z)Del: On(x,z), Clear(y)

PutOnTable(x) � P: On(x,z), Clear(x)Add: On(x,Table), Clear(z)Del: On(x,z)

PutOn(x,y)

On(x,z), Clear(y), Clear(x)

On(x,y), Clear(z), ~Clear(y), ~On(x,z)

PutOnTable(x)

On(x,z), Clear(x)

On(x,Table), Clear(z), ~On(x,z)

Inteligência Artificial CTC-15

Tipos de Planejadores : Controle

� Progressivo: estado inicial � objetivo� Regressivo: objetivo � estado inicial

� mais eficiente (há menos caminhos partindo do objetivo do que do estado inicial)

� problemático se existem múltiplos objetivos

Inteligência Artificial CTC-15

Busca no espaço de planos

� Espaços de Busca� Espaço de situações (nó = estado do mundo)� Espaço de planos (nó = plano parcial)

� mais flexível� evita engajamento prematuro

� Idéia: Buscar nos espaço de planos� Buscar um plano desejado em vez de uma situação

desejada (espécie de meta-busca)

� parte-se de um plano inicial (parcial), e aplica-se operadores até chegar a um plano final (completo)

� Plano inicial� passos Start e Finish

Inteligência Artificial CTC-15

Busca no espaço de planos:

operadores� Condição aberta: é uma pré-condição de um passo

ainda não realizado.

� Operadores para planos parciais:� Adicionar ligação de uma ação existente para uma

condição aberta;

� Adicionar um passo para preencher uma condição aberta;

� Ordenar um passo com respeito a outro.

� Gradualmente, evolui de planos incompletos (vagos) para planos completos e corretos

Inteligência Artificial CTC-15

Plano (de ordem) parcial

LeftShoe

RightShoe

LeftSock

RightSock

LeftSockOn RightSockOn

Start

Finish

LeftShoeOn, RightShoeOn

Start

Finish

LeftShoeOn, RightShoeOn

Inteligência Artificial CTC-15

Plano final: características� Plano final

� Completo - toda pré-condição é preenchida. Uma pré-condição é preenchida iff ela for o efeito de um passo prévio e nenhum passo posterior o desfaz.

� Consistente - não há contradições nos ordenamentos ou nas atribuição de variáveis

� mas não necessariamente totalmente ordenado e instanciado….

� Ordem total x Ordem parcial� Ordem total: lista simples com todos os passos, um atrás do outro

� Linearizar um plano é colocá-lo na forma “ordem total”

� Instanciação completa de um plano: quando todas variáveis são instanciadas

Page 4: ctc15 cap5 Planejamento [Modo de Compatibilidade]pauloac/ctc15/ctc15_cap5_6s.pdf · 2011-10-20 · Assistir aula Pegar dinheiro Levantar Ler um livro Comprar queijo Comprar banana

4

Inteligência Artificial CTC-15

Linearização do exemplo dos sapatos

Inteligência Artificial CTC-15

Princípio do menor engajamento

� Por quê deixar o plano não totalmente ordenado e instanciado?

� Princípio do menor engajamento (least commitment planning)� não faça hoje o que você pode fazer amanhã � ordem e instanciação parcial são decididas quando

necessário� evita-se backtracking!

� Exemplo� para objetivo have(Milk), a ação Buy(item, store)

instancia somente o item => Buy (Milk,store)� para as meias/sapatos: calçar cada meia antes do

sapato, sem dizer por onde começa(esq/dir)

Inteligência Artificial CTC-15

POP (Partial Order Planning)� Existindo a linguagem (STRIPS), falta o algoritmo..

� Características do POP� Algoritmo não determinístico;� A inserção de um passo só é considerada se atender uma

pré-condição não preenchida (aberta);� Planejador regressivo (do objetivo para o início);� É correto e completo, assumindo busca em largura ou em

profundidade iterativa.

� Idéia do algoritmo� identifica passo com pré-condição não satisfeita;� introduz passo cujo efeito (causa) é satisfazer esta pré-

condição;� instancia variáveis e atualiza os links causais;� verifica se há ameaças e corrige o plano, se for o caso.

Inteligência Artificial CTC-15

Voltando ao exemplo das compras...

� Plano inicial

� AçõesOp(ACTION: Go(there), PRECOND: At(here),

EFFECT: At(there) ∧ ¬ At(here))Op(ACTION: Buy(x), PRECOND: At(store) ^ Sells(store, x),

EFFECT: Have(x))

Conhecimento a priori do mundo

Inteligência Artificial CTC-15

Planejamento Parcial – Exemplo (1)

StartStart

BuyBuy((DrillDrill))

At(Home) Sells(SM, Milk) Sells (SM, At(Home) Sells(SM, Milk) Sells (SM, Banana) Sells(HWS,Drill)Banana) Sells(HWS,Drill)

Sells(HWS,Drill)Sells(HWS,Drill)At(HWS),At(HWS),

FinishFinish

StartStartSells(HWS, Drill) Sells(SM, Milk)Sells(HWS, Drill) Sells(SM, Milk)Sells(SM, Bananas) At(Home)Sells(SM, Bananas) At(Home)

Have(Drill) Have(Milk) Have(Drill) Have(Milk) Have(Bananas) At(Home)Have(Bananas) At(Home)

FinishFinish HaveHave((DrillDrill) ) HaveHave(Milk) (Milk) HaveHave(Bananas) (Bananas) AtAt(Home)(Home)

Vínculo (Link) causal

Link que denota restrições de ordenamento

Inteligência Artificial CTC-15

Planejamento Parcial – Exemplo (2)

StartStart

Buy(Drill)Buy(Drill)

At(Home) Sells(HWS,Drill) Sells(SM, Milk) Sells (SM, Banana)At(Home) Sells(HWS,Drill) Sells(SM, Milk) Sells (SM, Banana)

AtAt(HWS), (HWS), SellsSells(HWS,(HWS,DrillDrill))

FinishFinish

Have(Drill) Have(Milk) Have(Bananas) At(Home)Have(Drill) Have(Milk) Have(Bananas) At(Home)

Buy(Milk)Buy(Milk)At(SM), Sells(SM,Milk)At(SM), Sells(SM,Milk)

Page 5: ctc15 cap5 Planejamento [Modo de Compatibilidade]pauloac/ctc15/ctc15_cap5_6s.pdf · 2011-10-20 · Assistir aula Pegar dinheiro Levantar Ler um livro Comprar queijo Comprar banana

5

Inteligência Artificial CTC-15

Planejamento Parcial – Exemplo (3)

StartStart

Buy(Drill)Buy(Drill)

At(Home) Sells(HWS,Drill) Sells(SM, Milk) Sells (SM, Banana)At(Home) Sells(HWS,Drill) Sells(SM, Milk) Sells (SM, Banana)

AtAt(HWS), (HWS), SellsSells(HWS,(HWS,DrillDrill))

FinishFinish

Have(Drill) Have(Milk) Have(Bananas) At(Home)Have(Drill) Have(Milk) Have(Bananas) At(Home)

Buy(Milk)Buy(Milk)AtAt(SM), (SM), SellsSells(SM,Milk)(SM,Milk)

BuyBuy(Banana)(Banana)AtAt(SM), (SM), SellsSells(SM,Banana)(SM,Banana)

Inteligência Artificial CTC-15

Planejamento Parcial – Exemplo (4)

StartStart

Buy(Drill)Buy(Drill)

At(Home)At(Home)

AtAt(HWS), (HWS), SellsSells(HWS,(HWS,DrillDrill))

FinishFinish

Have(Drill) Have(Milk) Have(Bananas) At(Home)Have(Drill) Have(Milk) Have(Bananas) At(Home)

Buy(Milk)Buy(Milk)AtAt(SM), (SM), SellsSells(SM,Milk)(SM,Milk)

Buy(Banana)Buy(Banana)AtAt(SM), (SM), SellsSells(SM,Banana)(SM,Banana)

Inteligência Artificial CTC-15

Planejamento Parcial – Exemplo (5)

Go(HWS)Go(HWS)At(x)At(x)

StartStart

Buy(Drill)Buy(Drill)

At(Home)At(Home)

AtAt(HWS), (HWS), SellsSells(HWS,(HWS,DrillDrill))

FinishFinish

Have(Drill) Have(Milk) Have(Bananas) At(Home)Have(Drill) Have(Milk) Have(Bananas) At(Home)

Buy(Milk)Buy(Milk)AtAt(SM), (SM), SellsSells(SM,Milk)(SM,Milk)

Buy(Banana)Buy(Banana)AtAt(SM), (SM), SellsSells(SM,Banana)(SM,Banana)

Inteligência Artificial CTC-15

Planejamento Parcial – Exemplo (6)

Go(HWS)Go(HWS)At(Home)At(Home)

StartStart

Buy(Drill)Buy(Drill)AtAt(HWS), (HWS), SellsSells(HWS,(HWS,DrillDrill))

FinishFinish

Have(Drill) Have(Milk) Have(Bananas) At(Home)Have(Drill) Have(Milk) Have(Bananas) At(Home)

Buy(Milk)Buy(Milk)AtAt(SM), (SM), SellsSells(SM,Milk)(SM,Milk)

Buy(Banana)Buy(Banana)AtAt(SM), (SM), SellsSells(SM,Banana)(SM,Banana)

Inteligência Artificial CTC-15

Planejamento Parcial – Exemplo (7)

Go(HWS)Go(HWS)At(Home)At(Home)

StartStart

Buy(Drill)Buy(Drill)AtAt(HWS), (HWS), SellsSells(HWS,(HWS,DrillDrill))

FinishFinish

Have(Drill) Have(Milk) Have(Bananas) At(Home)Have(Drill) Have(Milk) Have(Bananas) At(Home)

Buy(Milk)Buy(Milk)AtAt(SM), (SM), SellsSells(SM,Milk)(SM,Milk)

Buy(Banana)Buy(Banana)AtAt(SM), (SM), SellsSells(SM,Banana)(SM,Banana)

Go(SM)Go(SM)At(x)At(x)

Inteligência Artificial CTC-15

Planejamento Parcial – Exemplo (8)

GoGo(HWS)(HWS) Go(SM)Go(SM)

StartStart

Buy(Drill)Buy(Drill) Buy(Bananas)Buy(Bananas)Buy(Milk)Buy(Milk)

At(SM),At(SM),Sells(SM, Milk)Sells(SM, Milk)Sells(HWS,Drill)Sells(HWS,Drill)

Have(Milk),Have(Milk),Have(Drill),Have(Drill),

At(SM),At(SM),

Have(Bananas),Have(Bananas),

At(Home)At(Home) At(Home)At(Home)

Sells(SM, Bananas)Sells(SM, Bananas)At(HWS),At(HWS),

At(Home)At(Home)

FinishFinish

Apaga At(Home)

PROBLEMA: Considere que a pré-condição At(x) do Go(SM) foi satisfeita através de uma ligação à condição At(Home) do Start; se o agente decidir ir primeiro à HWS, ele não mais poderá sair de casa para ir ao SM, pois Go(HWS) adiciona At(HWS), mas também remove At(Home)!!! (e vice-versa: indo de casa ao SM, não mais consegue ir de casa à HWS) � AMEAÇA (Estar em Conflito)

Page 6: ctc15 cap5 Planejamento [Modo de Compatibilidade]pauloac/ctc15/ctc15_cap5_6s.pdf · 2011-10-20 · Assistir aula Pegar dinheiro Levantar Ler um livro Comprar queijo Comprar banana

6

Inteligência Artificial CTC-15

Problema da ameaça� Ameaça

� ocorre quando os efeitos de um passo põem em risco as pré-condições de outro

� Como testar?� O novo passo é inconsistente com condição protegida

(vínculo causal)� Vínculo causais também são chamados de intervalos de proteção

porque protegem a possibilide de c ser negado entre S1 e S2

� O passo antigo é inconsistente com nova condição protegida

S1:S1:GoGo(HWS)(HWS) S2:S2:BuyBuy((DrillDrill))c:At(HWS)c:At(HWS)

Inteligência Artificial CTC-15

Ameaça - soluções

SS11

SS33

SS22

¬ ¬ cc

cc

SS11

SS33

SS22

¬ ¬ cc

cc

PromotionPromotionDemotionDemotionSS33SS11

SS22

cc

¬ ¬ ¬ ¬ ¬ ¬ ¬ ¬ cc

S3 ameaça a condição c estabelecida por S1 e protegida pelo vínculo causal S1 para S2.

S1 tem efeito c que é pré-condiçãode S2. S3 tem efeito¬ ¬ ¬ ¬ ¬ ¬ ¬ ¬ cc

AmeaçaAmeaça

OU

Inteligência Artificial CTC-15

Planejamento Parcial – Exemplo (8)

GoGo(HWS)(HWS) Go(SM)Go(SM)

StartStart

Buy(Drill)Buy(Drill) Buy(Bananas)Buy(Bananas)Buy(Milk)Buy(Milk)

At(SM),At(SM),Sells(SM, Milk)Sells(SM, Milk)Sells(HWS,Drill)Sells(HWS,Drill)

Have(Milk),Have(Milk),Have(Drill),Have(Drill),

At(SM),At(SM),

Have(Bananas),Have(Bananas),

At(Home)At(Home) At(Home)At(Home)

Sells(SM, Bananas)Sells(SM, Bananas)At(HWS),At(HWS),

At(Home)At(Home)

FinishFinish

Apaga At(Home)

Tentativas de solução: 1. Demotion não dá: Go(SM) ficaria antes de

Start???2. Promotion: sairia de Home, iria à HWS e, logo

em seguida, ao SM, sem comprar o Drill!! (nova ameaça)

Inteligência Artificial CTC-15

Planejamento Parcial – Exemplo (9)

StartStart

Buy(Drill)Buy(Drill)At(HWS), Sells(HWS,Drill)At(HWS), Sells(HWS,Drill)

FinishFinishHave(Drill) Have(Milk) At(Home) Have(Drill) Have(Milk) At(Home) Have(Bananas)Have(Bananas)

Go(HWS)Go(HWS)At(Home)At(Home)

Buy(Milk)Buy(Milk)At(SM), Sells(SM,Milk)At(SM), Sells(SM,Milk)

Go(SM)Go(SM)

Buy(Banana)Buy(Banana)At(SM), Sells(SM,Banana)At(SM), Sells(SM,Banana)

Ameaça!!

Solução ?

Inteligência Artificial CTC-15

Planejamento Parcial – Exemplo (10)Start

Go(HWS)

Buy(Drill)

Go(SM)

Buy(Milk) Buy(Banana)

Go(Home)

Finish

At(Home)

At(HWS) Sells(HWS,Drill)

At(SM) Sells(SM,Milk) At(SM) Sells(SM,Banana)

At(SM)

At(HWS)

Have(Milk) At(Home) Have(Banana) Have(Drill)

Plano Final

Inteligência Artificial CTC-15

Exemplo: Troca de Pneu

Page 7: ctc15 cap5 Planejamento [Modo de Compatibilidade]pauloac/ctc15/ctc15_cap5_6s.pdf · 2011-10-20 · Assistir aula Pegar dinheiro Levantar Ler um livro Comprar queijo Comprar banana

7

Inteligência Artificial CTC-15

Troca de Pneu -2

Inteligência Artificial CTC-15

Troca de Pneu - 3

� Inconsistência? � Em(Sobressalente,Chao) inconsistente entre Remover e

DeixarDuranteNoite

� Solução?

Inteligência Artificial CTC-15

Troca de Pneu -4

Inteligência Artificial CTC-15

Troca de Pneu – 5

Inteligência Artificial CTC-15

Mundo dos blocos

B

C

A

A

B

C

Estado inicial Estado final

Inteligência Artificial CTC-15

Primeira abordagem Ação Mover

� Problema: E se x=Mesa ou y=Mesa?� A mesa não fica “livre” e não precisa estar livre para mover

algo para a mesa

� Solução: criar outra ação MoverParaAMesa, além de Mover

Page 8: ctc15 cap5 Planejamento [Modo de Compatibilidade]pauloac/ctc15/ctc15_cap5_6s.pdf · 2011-10-20 · Assistir aula Pegar dinheiro Levantar Ler um livro Comprar queijo Comprar banana

8

Inteligência Artificial CTC-15

B

C

A

A

B

C

Estado inicial:On(C,A) Clear(B)On(A, Table) Clear(C)On(B, Table)

Estado final (objetivo):On(A,B) Clear(A)On(B, C)On(C, Table)

Ações:PutOn(x,y) � P: On(x,z), Clear(y), Clear(x)

Add: On(x,y), Clear(z)Del: On(x,z), Clear(y)

PutOnTable(x) � P: On(x,z), Clear(x)Add: On(x,Table), Clear(z)Del: On(x,z)

PutOn(x,y)

On(x,z), Clear(y), Clear(x)

On(x,y), Clear(z), ~Clear(y), ~On(x,z)

PutOnTable(x)

On(x,z), Clear(x)

On(x,Table), Clear(z), ~On(x,z)

Inteligência Artificial CTC-15

START

On(C,A) , On(A,Table) , Clear(B) , On(B,Table) , Clear(C)

FINISH

On(A,B) , On(B,C)

Inteligência Artificial CTC-15

START

On(C,A) , On(A,Table) , Clear(B) , On(B,Table) , Clear(C)

FINISH

On(A,B) , On(B,C)

PutOn(B,C)

On(B,z), Clear(B) , Clear(C)

~On(B,z), ~Clear(C) , On(B,C) , Clear(z)

Inteligência Artificial CTC-15

START

On(C,A) , On(A,Table) , Clear(B) , On(B,Table) , Clear(C)

FINISH

On(A,B) , On(B,C)

PutOn(B,C)

On(B,z), Clear(B) , Clear(C)

~On(B,z), ~Clear(C) , On(B,C) , Clear(z)

[z|Table]

Inteligência Artificial CTC-15

START

On(C,A) , On(A,Table) , Clear(B) , On(B,Table) , Clear(C)

FINISH

On(A,B) , On(B,C)

PutOn(B,C)

On(B,Table), Clear(B) , Clear(C)

~On(B,Table), ~Clear(C) , On(B,C) , Clear(Table)

Inteligência Artificial CTC-15

START

On(C,A) , On(A,Table) , Clear(B) , On(B,Table) , Clear(C)

FINISH

On(A,B) , On(B,C)

PutOn(B,C)

On(B,Table), Clear(B) , Clear(C)

~On(B,Table), ~Clear(C) , On(B,C) , Clear(Table)

Page 9: ctc15 cap5 Planejamento [Modo de Compatibilidade]pauloac/ctc15/ctc15_cap5_6s.pdf · 2011-10-20 · Assistir aula Pegar dinheiro Levantar Ler um livro Comprar queijo Comprar banana

9

Inteligência Artificial CTC-15

START

On(C,A) , On(A,Table) , Clear(B) , On(B,Table) , Clear(C)

FINISH

On(A,B) , On(B,C)

PutOn(A,B)

~On(A,z), ~Clear(B) , On(A,B) , Clear(z)

On(A,z), Clear(B) , Clear(A)

PutOn(B,C)

On(B,Table), Clear(B) , Clear(C)

~On(B,Table), ~Clear(C) , On(B,C) , Clear(Table)

Inteligência Artificial CTC-15

START

On(C,A) , On(A,Table) , Clear(B) , On(B,Table) , Clear(C)

FINISH

On(A,B) , On(B,C)

PutOn(A,B)

~On(A,z), ~Clear(B) , On(A,B) , Clear(z)

On(A,z), Clear(B) , Clear(A)

PutOn(B,C)

On(B,Table), Clear(B) , Clear(C)

[z|Table]

Ameaça!!S3:PutOn(A,B)S1: STARTS2:PutOn(B,C)

Demotion: não dá!Promotion: PutOn(A,B) deve ser executado após PutOn(B,C)

~On(B,Table), ~Clear(C) , On(B,C) , Clear(Table)

Inteligência Artificial CTC-1551

START

On(C,A) , On(A,Table) , Clear(B) , On(B,Table) , Clear(C)

FINISH

On(A,B) , On(B,C)

PutOn(A,B)

~On(A,z), ~Clear(B) , On(A,B) , Clear(z)

On(A,z), Clear(B) , Clear(A)

PutOn(B,C)

On(B,Table), Clear(B) , Clear(C)

[z|Table]

~On(B,Table), ~Clear(C) , On(B,C) , Clear(Table)

Inteligência Artificial CTC-15

START

On(C,A) , On(A,Table) , Clear(B) , On(B,Table) , Clear(C)

FINISH

On(A,B) , On(B,C)

PutOn(A,B)

~On(A,z), ~Clear(B) , On(A,B) , Clear(z)

On(A,z), Clear(B) , Clear(A)

PutOn(B,C)

On(B,Table), Clear(B) , Clear(C)

[z|Table]

[z|Table]~On(B,Table), ~Clear(C) , On(B,C) , Clear(Table)

Inteligência Artificial CTC-15

START

On(C,A) , On(A,Table) , Clear(B) , On(B,Table) , Clear(C)

FINISH

On(A,B) , On(B,C)

PutOnTable(C)On(C,z) , Clear(C)

~On(C,z) , On(C,Table) , Clear(z)

PutOn(A,B)

~On(A,Table), ~Clear(B) , On(A,B) , Clear(Table)

On(A,Table), Clear(B) , Clear(A)

PutOn(B,C)

On(B,Table), Clear(B) , Clear(C)

[z|Table]

[z|A]

~On(B,Table), ~Clear(C) , On(B,C) , Clear(Table)

Inteligência Artificial CTC-15

START

On(C,A) , On(A,Table) , Clear(B) , On(B,Table) , Clear(C)

FINISH

On(A,B) , On(B,C)

PutOnTable(C)On(C,A) , Clear(C)

~On(C,A) , On(C,Table) , Clear(A)

PutOn(A,B)

~On(A,Table), ~Clear(B) , On(A,B) , Clear(Table)

On(A,Table), Clear(B) , Clear(A)

PutOn(B,C)

On(B,Table), Clear(B) , Clear(C)

~On(B,Table), ~Clear(C) , On(B,C) , Clear(Table)

Page 10: ctc15 cap5 Planejamento [Modo de Compatibilidade]pauloac/ctc15/ctc15_cap5_6s.pdf · 2011-10-20 · Assistir aula Pegar dinheiro Levantar Ler um livro Comprar queijo Comprar banana

10

Inteligência Artificial CTC-15

START

On(C,A) , On(A,Table) , Clear(B) , On(B,Table) , Clear(C)

FINISH

On(A,B) , On(B,C)

PutOnTable(C)On(C,A) , Clear(C)

~On(C,A) , On(C,Table) , Clear(A)

PutOn(A,B)

~On(A,Table), ~Clear(B) , On(A,B) , Clear(Table)

On(A,Table), Clear(B) , Clear(A)

PutOn(B,C)

On(B,Table), Clear(B) , Clear(C)

[z|Table]Ameaça!

S1:STARTS2:PutOnTable(C)S3:PutOn(B,C)Demotion: não dá!Promotion: S3 após S2

~On(B,Table), ~Clear(C) , On(B,C) , Clear(Table)

Inteligência Artificial CTC-15

START

On(C,A) , On(A,Table) , Clear(B) , On(B,Table) , Clear(C)

FINISH

On(A,B) , On(B,C)

PutOnTable(C)On(C,A) , Clear(C)

~On(C,A) , On(C,Table) , Clear(A)

PutOn(A,B)

~On(A,Table), ~Clear(B) , On(A,B) , Clear(Table)

On(A,Table), Clear(B) , Clear(A)

PutOn(B,C)

On(B,Table), Clear(B) , Clear(C)

[z|Table]

~On(B,Table), ~Clear(C) , On(B,C) , Clear(Table)

Inteligência Artificial CTC-15

Plano Final (no caso, ordem total!)

START

PutOn(A,B)

FINISH

PutOnTable(C)

PutOn(B,C)

Inteligência Artificial CTC-15

Exemplo: Transporte de Cargas

Inteligência Artificial CTC-15

Uma possível solução encontrada via

STRIPS e POP

Inteligência Artificial CTC-15

STRIPS e ADL

� Nos últimos anos, ficou claro que STRIPS é insuficientemente expressiva para alguns domínios reais e foram desenvolvidas muitas variantes da linguagem.

� Uma variação importante é a Linguagem de Descrição de Ação (ADL). Em ADL a ação voar poderia ser escrita como:

� Observe o uso do operador diferente e a notação de p:Avião, que é uma abreviação para Avião(p). A notação diferente não poderia ser escrita de modo sucinto em STRIPS

Page 11: ctc15 cap5 Planejamento [Modo de Compatibilidade]pauloac/ctc15/ctc15_cap5_6s.pdf · 2011-10-20 · Assistir aula Pegar dinheiro Levantar Ler um livro Comprar queijo Comprar banana

11

Inteligência Artificial CTC-15

Diferenças entre ADL e STRIPS