Anda di halaman 1dari 41

Planejamento

Joo C. P. da Silva DCC-UFRJ 2008


Inteligncia Artificial 2008 - Joo C. P. da Silva

Planejamento
Determinar uma seqncia de aes que resolva um certo problema Pode ser resolvido: Utilizar resoluo Busca no espao de estados
situaes planos

Inteligncia Artificial 2008 - Joo C. P. da Silva

STRIPS
Planejamento como um problema de busca. Estados: conjuno de literais bsicos
Objetivos: conjuno de literais (variveis quantificadas universalmente)

Aes: Nome Pre-cond.: conjuno de tomos Efeito: conjuno de literais OU Nome Pre-cond.: conjuno de tomos Acrescentar : conjuno de literais Retirar : conjuno de literais
Inteligncia Artificial 2008 - Joo C. P. da Silva

STRIPS
Mundo dos Blocos

Predicados
livre(X) mesa(X) vazia segurar(X) sobre(X,Y) segurar(X) livre(b) livre(c) mesa(a) mesa(b) vazia sobre(c,a) livre(a) sobre(a,b) mesa(c) sobre(b,c)

Estado Inicial
Inteligncia Artificial 2008 - Joo C. P. da Silva

Estado Final

STRIPS
Mundo dos Blocos

Aes
PEGAR(X) Pre. : mesa(X) , livre(X) , vazia Ac. : segurar(X) Ret.: mesa(X) , livre(X) , vazia PEGAR(X) Pre. : mesa(X) , livre(X) , vazia Efeito : segurar(X) , mesa(X) , livre(X) , vazia

Inteligncia Artificial 2008 - Joo C. P. da Silva

STRIPS
Mundo dos Blocos

Aes
SOLTAR(X) Pre. : segurar(X) Ac. : mesa(X) , livre(X) , vazia Ret.: segurar(X) EMPILHAR(X,Y) Pre. : segurar(X) , livre(Y) Ac. : sobre(X,Y) , livre(X) , vazia Ret.: segurar(X) , livre(Y) DESEMPILHAR(X,Y) Pre. : mesa(X) , livre(X) , vazia Ac. : segurar(X) , livre(Y) Ret.: mesa(X) , livre(X) , vazia

SOLTAR(X) Pre. : segurar(X) Efeito : mesa(X) , livre(X) , vazia , segurar(X) EMPILHAR(X,Y) Pre. : segurar(X) , livre(Y) Efeito : sobre(X,Y) , livre(X) , vazia , segurar(X) , livre(Y) DESEMPILHAR(X,Y) Pre. : mesa(X) , livre(X) , vazia Efeito : segurar(X) , livre(Y) , mesa(X) , livre(X) , vazia

Inteligncia Artificial 2008 - Joo C. P. da Silva

STRIPS
Mundo dos Blocos

livre(b) livre(c) mesa(a) mesa(b) vazia sobre(c,a)

livre(a) sobre(a,b)

mesa(c) sobre(b,c)

Estado Inicial s0
Inteligncia Artificial 2008 - Joo C. P. da Silva

Estado Final sf

STRIPS
Mundo dos Blocos

livre(b) livre(c) mesa(a) mesa(b) vazia sobre(c,a)

Estado Inicial s0
Inteligncia Artificial 2008 - Joo C. P. da Silva

STRIPS
Mundo dos Blocos

livre(b) livre(c) mesa(a) mesa(b) vazia sobre(c,a)

PEGAR(b) SOLTAR(b) DESEMPILHAR(c,a)

s1 s2

livre(b) livre(c) segurar(b) mesa(a) mesa(b) vazia sobre(c,a) livre(b) livre(c) livre(a) mesa(a) mesa(b) segurar(c) vazia sobre(c,a)
9

Estado Inicial s0

EMPILHAR(c,a)

Inteligncia Artificial 2008 - Joo C. P. da Silva

STRIPS
Mundo dos Blocos

fatos no afetados pela ao PEGAR(b)

livre(b) livre(c) mesa(a) mesa(b) vazia sobre(c,a)

PEGAR(b) SOLTAR(b) DESEMPILHAR(c,a)

s1 s2

livre(b) livre(c) segurar(b) mesa(a) mesa(b) vazia sobre(c,a) livre(b) livre(c) livre(a) mesa(a) mesa(b) segurar(c) vazia sobre(c,a)
10

Estado Inicial s0

EMPILHAR(c,a)

Inteligncia Artificial 2008 - Joo C. P. da Silva

STRIPS
Mundo dos Blocos livre(b) livre(c) mesa(a) mesa(b) vazia sobre(c,a)
PEGAR(B)

s0

DESEMPILHAR(c,a)

livre(b) livre(c) segurar(b) s1 mesa(a) mesa(b) vazia sobre(c,a)


SOLTAR(c)

livre(b) livre(c) livre(a) mesa(a) mesa(b) segurar(c) vazia sobre(c,a)

s2

s3

PEGAR(b)

s4
EMPILHAR(b,c)

PEGAR(a)

s6

EMPILHAR(a,b)

s5

livre(a) sobre(a,b)

mesa(c) sobre(b,c)

sf

Inteligncia Artificial 2008 - Joo C. P. da Silva

11

STRIPS
Mundo dos Blocos livre(b) livre(c) mesa(a) mesa(b) vazia sobre(c,a)
PEGAR(B)

s0

PLANO
DESEMPILHAR(c,a)

livre(b) livre(c) segurar(b) s1 mesa(a) mesa(b) vazia sobre(c,a)


SOLTAR(c)

livre(b) livre(c) livre(a) mesa(a) mesa(b) segurar(c) vazia sobre(c,a)

s2

s3

PEGAR(b)

s4
EMPILHAR(b,c)

PEGAR(a)

s6

EMPILHAR(a,b)

s5

livre(a) sobre(a,b)

mesa(c) sobre(b,c)

sf

Inteligncia Artificial 2008 - Joo C. P. da Silva

12

Clculo Situacional
Representa o mundo como uma seqncia de situaes. Conhecimento representado por frmulas da lgica de primeira-ordem. Utiliza resoluo para construo do plano.

Inteligncia Artificial 2008 - Joo C. P. da Silva

13

Clculo Situacional
Exemplo: Problema do Macaco e da Banana

Predicado p(X,Y,Z,S) : no estado S, o macaco est na posio X, a banana em Y, e a cadeira em Z. r(S): no estado S, o macaco alcana a banana. Funes andar(Y,Z,S) : estado atingido se o macaco est inicialmente no estado S e anda da posio Y para a posio Z. carregar(Y,Z,S) : estado atingido se o macaco est inicialmente no estado S e carrega a cadeira da posio Y para a posio Z. subir(S) : estado alcanado se o macaco est no estado S e sobe na cadeira.
Inteligncia Artificial 2008 - Joo C. P. da Silva

14

Clculo Situacional
Exemplo: Problema do Macaco e da Banana situao s0

Base de Conhecimento
1- Em qualquer situao, o macaco pode andar da posio X para a posio Z. X,Y,Z,S (p(X,Y,Z,S) p(Z,Y,Z,andar(X,Z,S))) 2- Se o macaco est ao lado da cadeira que est localizada em X, ento ele pode carreg-la para qualquer lugar Y. X,Y,S (p(X,Y,X,S) p(Y,Y,Y,carregar(X,Y,S))) 3- Se a cadeira e o macaco esto sob a banana, o macaco pode subir na cadeira e pegar a banana. S (p(b,b,b,S) r(subir(S))) 4 - Inicialmente, o macaco est na posio a, a banana na posio b e a cadeira na posio c. p(a,b,c,s0)

Inteligncia Artificial 2008 - Joo C. P. da Silva

15

Clculo Situacional
Exemplo: Problema do Macaco e da Banana

Base de Conhecimento
1- X,Y,Z,S (p(X,Y,Z,S) p(Z,Y,Z,andar(X,Z,S))) 2- X,Y,S (p(X,Y,X,S) p(Y,Y,Y,carregar(X,Y,S))) 3- S (p(b,b,b,S) r(subir(S))) 4 - p(a,b,c,s0) p(X1,Y1,Z1,S1) p(Z1,Y1,Z1,andar(X1,Z1,S1)) p(X2,Y2,X2,S2) p(Y2,Y2,Y2,carregar(X2,Y2,S2)) p(b,b,b,S3) r(subir(S3)))

Inteligncia Artificial 2008 - Joo C. P. da Silva

16

Clculo Situacional
Exemplo: Problema do Macaco e da Banana

Base de Conhecimento
1- p(X1,Y1,Z1,S1) p(Z1,Y1,Z1,andar(X1,Z1,S1)) 2- p(X2,Y2,X2,S2) p(Y2,Y2,Y2,carregar(X2,Y2,S2)) 3- p(b,b,b,S3) r(subir(S3)) 4 - p(a,b,c,s0) 5 - r(S)

Inteligncia Artificial 2008 - Joo C. P. da Silva

17

Clculo Situacional
Exemplo: Problema do Macaco e da Banana

Base de Conhecimento
1- p(X1,Y1,Z1,S1) p(Z1,Y1,Z1,andar(X1,Z1,S1)) 2- p(X2,Y2,X2,S2) p(Y2,Y2,Y2,carregar(X2,Y2,S2)) 3- p(b,b,b,S3) r(subir(S3)) 4 - p(a,b,c,s0) 5 - r(S) resposta(S) Utilizado para armazenar as substituies feitas durante a resoluo. Inteligncia Artificial 2008 - Joo C. P. da Silva 18

Clculo Situacional
Exemplo: Problema do Macaco e da Banana

Base de Conhecimento
1- p(X1,Y1,Z1,S1) p(Z1,Y1,Z1,andar(X1,Z1,S1)) 2- p(X2,Y2,X2,S2) p(Y2,Y2,Y2,carregar(X2,Y2,S2)) 3- p(b,b,b,S3) r(subir(S3)) 4 - p(a,b,c,s0) 5 - r(S) resposta(S) 6 - (3,5): p(b,b,b,S3) resposta(subir(S3)) {S/subir(S3)} 7 - (2,6): p(X2,b,X2,S2) resposta(subir(carregar(X2,b,S2))) {Y2/b, S3/carregar(X2,b,S2)} 8 - (1,7): p(X1,b,Z1,S1) resposta(subir(carregar(Z1,b, andar(X1,Z1,S1))) {X2/Z1, Y1/b, S2/andar(X1,Z1,S1)} 9 - (4,8): resposta(subir(carregar(c,b,andar(a,c,s0))) {Z1/c, X1/a, S1/s0} Inteligncia Artificial 2008 - Joo C. P. da Silva

19

Clculo Situacional
Exemplo: Problema do Macaco e da Banana

resposta(subir(carregar(c,b,andar(a,c,s0)))

s1 = andar(a,c,s0) s2 = carregar(c,b,s1) s3 = subir(s2)

ou

s1 = result(andar(a,c),s0) s2 = result(carregar(c,b),s1) s3 = result(subir,s2)

Inteligncia Artificial 2008 - Joo C. P. da Silva

20

STRIPS x Clculo Situacional


Mundo dos Blocos

Predicados - STRIPS
livre(X) mesa(X) vazia segurar(X) sobre(X,Y) segurar(X)
Inteligncia Artificial 2008 - Joo C. P. da Silva 21

STRIPS x Clculo Situacional


Mundo dos Blocos

Predicados - STRIPS
livre(X) mesa(X) vazia segurar(X) sobre(X,Y) segurar(X)

Predicados - Clculo Situacional


livre(X,S) mesa(X,S) vazia(S) segurar(X,S) sobre(X,Y,S) segurar(X,S)
Inteligncia Artificial 2008 - Joo C. P. da Silva 22

STRIPS x Clculo Situacional


Mundo dos Blocos

Predicados - Clculo Situacional


livre(X,S) mesa(X,S) vazia(S) segurar(X,S) sobre(X,Y,S) segurar(X,S) livre(b,s0) mesa(a,s0) vazia(s0) livre(c,s0) mesa(b,s0) sobre(c,a,s0)

Estado Inicial s0
Inteligncia Artificial 2008 - Joo C. P. da Silva 23

STRIPS x Clculo Situacional


Aes PEGAR(X) Pre. : mesa(X) , livre(X) , vazia Efeito : segurar(X) , mesa(X) , livre(X) , vazia SOLTAR(X) Pre. : segurar(X) Efeito : mesa(X) , livre(X) , vazia , segurar(X) EMPILHAR(X,Y) Pre. : segurar(X) , livre(Y) Efeito : sobre(X,Y) , livre(X) , vazia , segurar(X) , livre(Y) DESEMPILHAR(X,Y) Pre. : mesa(X) , livre(X) , vazia Efeito : segurar(X) , livre(Y) , mesa(X) , livre(X) , vazia
Inteligncia Artificial 2008 - Joo C. P. da Silva 24

X,S{(mesa(X,S) livre(X,S) vazia(S)) (segurar(X,pegar(X,S)) mesa(X,pegar(X,S)) livre(X,pegar(X,S)) vazia(pegar(X,S)))}

Axioma de efeito : o que muda quando uma ao executada.

STRIPS x Clculo Situacional


Aes PEGAR(X) Pre. : mesa(X) , livre(X) , vazia Efeito : segurar(X) , mesa(X) , livre(X) , vazia SOLTAR(X) Pre. : segurar(X) Efeito : mesa(X) , livre(X) , vazia , segurar(X) EMPILHAR(X,Y) Pre. : segurar(X) , livre(Y) Efeito : sobre(X,Y) , livre(X) , vazia , segurar(X) , livre(Y) DESEMPILHAR(X,Y) Pre. : mesa(X) , livre(X) , vazia Efeito : segurar(X) , livre(Y) , mesa(X) , livre(X) , vazia
Inteligncia Artificial 2008 - Joo C. P. da Silva 25

X,S{(mesa(X,S) livre(X,S) vazia(S)) (segurar(X,pegar(X,S)) mesa(X,pegar(X,S)) livre(X,pegar(X,S)) vazia(pegar(X,S)))}

STRIPS x Clculo Situacional


Aes PEGAR(X) Pre. : mesa(X) , livre(X) , vazia Efeito : segurar(X) , mesa(X) , livre(X) , vazia SOLTAR(X) Pre. : segurar(X) Efeito : mesa(X) , livre(X) , vazia , segurar(X) EMPILHAR(X,Y) Pre. : segurar(X) , livre(Y) Efeito : sobre(X,Y) , livre(X) , vazia , segurar(X) , livre(Y) DESEMPILHAR(X,Y) Pre. : mesa(X) , livre(X) , vazia Efeito : segurar(X) , livre(Y) , mesa(X) , livre(X) , vazia
Inteligncia Artificial 2008 - Joo C. P. da Silva 26

X,S{(mesa(X,S) livre(X,S) vazia(S)) (segurar(X,pegar(X,S)) mesa(X,pegar(X,S)) livre(X,pegar(X,S)) vazia(pegar(X,S)))}

STRIPS x Clculo Situacional


Aes PEGAR(X) Pre. : mesa(X) , livre(X) , vazia Efeito : segurar(X) , mesa(X) , livre(X) , vazia SOLTAR(X) Pre. : segurar(X) Efeito : mesa(X) , livre(X) , vazia , segurar(X) EMPILHAR(X,Y) Pre. : segurar(X) , livre(Y) Efeito : sobre(X,Y) , livre(X) , vazia , segurar(X) , livre(Y) DESEMPILHAR(X,Y) Pre. : mesa(X) , livre(X) , vazia Efeito : segurar(X) , livre(Y) , mesa(X) , livre(X) , vazia
Inteligncia Artificial 2008 - Joo C. P. da Silva 27

X,S{(mesa(X,S) livre(X,S) vazia(S)) (segurar(X,pegar(X,S)) mesa(X,pegar(X,S)) livre(X,pegar(X,S)) vazia(pegar(X,S)))}

STRIPS x Clculo Situacional


Aes PEGAR(X) Pre. : mesa(X) , livre(X) , vazia Efeito : segurar(X) , mesa(X) , livre(X) , vazia X,S{(mesa(X,S) livre(X,S) vazia(S)) (segurar(X,pegar(X,S)) mesa(X,pegar(X,S)) livre(X,pegar(X,S)) vazia(pegar(X,S)))}

s0
livre(b) mesa(a) vazia livre(c) mesa(b) sobre(c,a)

PEGAR(b)

s1
livre(b) livre(c) segurar(b) mesa(a) mesa(b) vazia sobre(c,a)

livre(b,s0) mesa(a,s0) vazia(s0)

livre(c,s0) mesa(b,s0) sobre(c,a,s0) {(mesa(b,s0) livre(b,s0) vazia(s0)) (segurar(b,pegar(b,s0)) mesa(b,pegar(b,s0)) livre(b,pegar(b,s0)) vazia(pegar(b,s0)))}
Inteligncia Artificial 2008 - Joo C. P. da Silva 28

STRIPS x Clculo Situacional


Aes PEGAR(X) Pre. : mesa(X) , livre(X) , vazia Efeito : segurar(X) , mesa(X) , livre(X) , vazia X,S{(mesa(X,S) livre(X,S) vazia(S)) (segurar(X,pegar(X,S)) mesa(X,pegar(X,S)) livre(X,pegar(X,S)) vazia(pegar(X,S)))}

s0
livre(b) mesa(a) vazia livre(c) mesa(b) sobre(c,a)

PEGAR(b)

s1
livre(b) livre(c) segurar(b) mesa(a) mesa(b) vazia sobre(c,a)

livre(b,s0) mesa(a,s0) vazia(s0)

livre(c,s0) mesa(b,s0) sobre(c,a,s0)

livre(b,s1) mesa(b,s1) vazia(s1)

segurar(b,s1)

s1 = pegar(b,s0)

{(mesa(b,s0) livre(b,s0) vazia(s0)) (segurar(b,pegar(b,s0)) mesa(b,pegar(b,s0)) livre(b,pegar(b,s0)) vazia(pegar(b,s0)))}


Inteligncia Artificial 2008 - Joo C. P. da Silva 29

STRIPS x Clculo Situacional


s0
livre(b) mesa(a) vazia livre(c) mesa(b) sobre(c,a) PEGAR(b)

s1
livre(b) livre(c) segurar(b) mesa(a) mesa(b) vazia sobre(c,a)

livre(b,s0) mesa(a,s0) vazia(s0)

livre(c,s0) mesa(b,s0) sobre(c,a,s0)

livre(b,s1) mesa(b,s1) vazia(s1)

segurar(b,s1)

Inteligncia Artificial 2008 - Joo C. P. da Silva

30

STRIPS x Clculo Situacional


s0
livre(b) mesa(a) vazia livre(c) mesa(b) sobre(c,a) PEGAR(b)

s1
livre(b) livre(c) segurar(b) mesa(a) mesa(b) vazia sobre(c,a)

livre(b,s0) mesa(a,s0) vazia(s0)

livre(c,s0) mesa(b,s0) sobre(c,a,s0)

livre(b,s1) mesa(b,s1) vazia(s1)

segurar(b,s1)

O que verdade em s0.

Inteligncia Artificial 2008 - Joo C. P. da Silva

31

STRIPS x Clculo Situacional


s0
livre(b) mesa(a) vazia livre(c) mesa(b) sobre(c,a) PEGAR(b)

s1
livre(b) livre(c) segurar(b) mesa(a) mesa(b) vazia sobre(c,a)

livre(b,s0) mesa(a,s0) vazia(s0)

livre(c,s0) mesa(b,s0) sobre(c,a,s0)

livre(b,s1) mesa(b,s1) vazia(s1)

segurar(b,s1)

O que era verdade em s0 e passou a ser falso em s1.

Inteligncia Artificial 2008 - Joo C. P. da Silva

32

STRIPS x Clculo Situacional


s0
livre(b) mesa(a) vazia livre(c) mesa(b) sobre(c,a) PEGAR(b)

s1
livre(b) livre(c) segurar(b) mesa(a) mesa(b) vazia sobre(c,a)

livre(b,s0) mesa(a,s0) vazia(s0)

livre(c,s0) mesa(b,s0) sobre(c,a,s0)

livre(b,s1) mesa(b,s1) vazia(s1)

segurar(b,s1)

O que passou a ser verdade em s1.

Inteligncia Artificial 2008 - Joo C. P. da Silva

33

STRIPS x Clculo Situacional


s0
livre(b) mesa(a) vazia livre(c) mesa(b) sobre(c,a) PEGAR(b)

s1
livre(b) livre(c) segurar(b) mesa(a) mesa(b) vazia sobre(c,a)

livre(b,s0) mesa(a,s0) vazia(s0)

livre(c,s0) mesa(b,s0) sobre(c,a,s0)

livre(b,s1) mesa(b,s1) vazia(s1)

segurar(b,s1)

E o que era verdadeiro em s0, e continua verdadeiro em s1 ?

Inteligncia Artificial 2008 - Joo C. P. da Silva

34

STRIPS x Clculo Situacional


s0
livre(b) mesa(a) vazia livre(c) mesa(b) sobre(c,a) PEGAR(b)

s1
livre(b) livre(c) segurar(b) mesa(a) mesa(b) vazia sobre(c,a)

livre(b,s0) mesa(a,s0) vazia(s0)

livre(c,s0) mesa(b,s0) sobre(c,a,s0)

livre(b,s1) mesa(b,s1) vazia(s1)

segurar(b,s1)

Axioma de Frame: Estabelece o que no muda quando uma ao executada. A ao PEGAR(b) no afeta as propriedades e relaes que envolvem os outros blocos.
Inteligncia Artificial 2008 - Joo C. P. da Silva

35

STRIPS x Clculo Situacional


s0
livre(b) mesa(a) vazia livre(c) mesa(b) sobre(c,a) PEGAR(b)

s1
livre(b) livre(c) segurar(b) mesa(a) mesa(b) vazia sobre(c,a)

livre(b,s0) mesa(a,s0) vazia(s0)

livre(c,s0) mesa(b,s0) sobre(c,a,s0)

livre(b,s1) mesa(b,s1) vazia(s1)

segurar(b,s1)

Axiomas de Frame para a ao PEGAR X,Y,S((livre(Y,S) X Y) livre(Y,pegar(X,S))) X,Y,S(livre(Y,S) livre(Y,pegar(X,S))) X,Y,S((mesa(Y,S) X Y) mesa(Y,pegar(X,S))) X,Y,S(mesa(Y,S) mesa(Y,pegar(X,S))) X,Y,Z,S(sobre(Y,Z,S) sobre(Y,Z,pegar(X,S)))
Inteligncia Artificial 2008 - Joo C. P. da Silva

36

STRIPS x Clculo Situacional


s0
livre(b) mesa(a) vazia livre(c) mesa(b) sobre(c,a) PEGAR(b)

s1
livre(b) livre(c) segurar(b) mesa(a) mesa(b) vazia sobre(c,a)

livre(b,s0) mesa(a,s0) vazia(s0)

livre(c,s0) mesa(b,s0) sobre(c,a,s0)

livre(b,s1) mesa(b,s1) vazia(s1)

segurar(b,s1)

Axiomas de Frame para a ao PEGAR X,Y,S((livre(Y,S) X Y) livre(Y,pegar(X,S))) X,Y,S(livre(Y,S) livre(Y,pegar(X,S))) X,Y,S((mesa(Y,S) X Y) mesa(Y,pegar(X,S))) X,Y,S(mesa(Y,S) mesa(Y,pegar(X,S))) X,Y,Z,S(sobre(Y,Z,S) sobre(Y,Z,pegar(X,S)))
Inteligncia Artificial 2008 - Joo C. P. da Silva

Fazer o mesmo para as outras aes

37

Planejamento Parcial
Planejamento como um problema de busca. O espao de busca formado por planos parciais e no situaes. Alm das aes, temos um conjunto de links causais e outro de restries de ordem.
Aes Nome Pre-cond.: conjuno de tomos Efeito: conjuno de literais OU Nome Pre-cond.: conjuno de tomos Acrescentar : conjuno de literais Retirar : conjuno de literais Representao Grfica

Aes Especiais

Inteligncia Artificial 2008 - Joo C. P. da Silva

38

Planejamento Parcial
Exemplo
Start Pre. : Efeito : at(home),sells(sm,banana), sells(sm,milk), sells(hws,drill) Finish Pre. : at(home), have(banana), have(milk), have(drill) Efeito : GO(X) Pre. : at(Y) Efeito : at(X) , at(Y)

GO(X) Pre. : at(Y) Efeito : at(X) , at(Y)

BUY(X) Pre. : at(Y) , sells(Y,X) Efeito : have(X)


Inteligncia Artificial 2008 - Joo C. P. da Silva 39

Planejamento Parcial
Exemplo

Ver figuras

Inteligncia Artificial 2008 - Joo C. P. da Silva

40

Planejamento Parcial
Exemplo

Inteligncia Artificial 2008 - Joo C. P. da Silva

41