48
Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

Embed Size (px)

Citation preview

Page 1: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

Planejamento (Cap. 11 do Russell)

Prof. Paulo Santos

Mestrado FEI

Aula baseada nos slides de Tom Lenaerts(INRIA)

Page 2: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

2

Planning

O problema de planejamento Planejamento como busca em espaço de

estados Planejamento de ordem parcial Grafos de Planejamento Planejamento em lógica proposicional

Page 3: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

3

O problema de planejamento

Gerar sequências de ações para executar tarefas e atingir objetivos. Representação: states, actions and goals

Busca por soluções de problemas sobre um espaço de planos.

Auxiliar em aplicações práticas, ex.: design e produção operações militares jogos exploração espacial

Page 4: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

4

O problema de planejamento

aumento de escala para problemas complexos (comparando com os agentes busca e lógico vistos até aqui)

Planejamento clássico: ambientes completamente observáveis, determinísticos,

finitos, estáticos e discretos

(Planejamento não-clássico: ambientes parcialmente observáveis ou estocásticos)

Page 5: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

5

Questões centrais

Para um agente de planejamento utilizando métodos de busca… Quais ações são relevantes? Encontrar boas funções heurísticas?

Estimativa para o custo de um estado? Heurística dependente ou independente do problema

como tirar proveito da decomposição do problema? Suposição: a maioria dos problemas reais é quase-decomponível.

I.e., o planejador pode trabalhar em sub-objetivos independentemente, mas talvez deva realizar algum trabalho adicional para combinar os subplanos resultantes.

Page 6: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

6

A linguagem de problemas de planejamento O que seria uma “boa” linguagem?

Suficientemente expressiva para descrever uma grande variedade de problemas.

Restritiva o bastante para permitir que algoritmos eficientes operem sobre ela.

Deve permitir a decomposição de problema em subproblemas.

Linguagens: STRIPS: Stanford Research Institute Problem Solver ADL: Action Description Language ... PDDL: Planning Domain Definition Language

Page 7: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

7

Características gerais das linguagens

Representação de estados Decompor o mundo em condições lógicas que representam um

estado como uma conjunção de literais positivos literais proposicionais: Poor Unknown literais de 1a ordem (básicos -- grounded e livres de funções):

At(Plane1, Melbourne) At(Plane2, Sydney) Hipótese de mundo fechado

(quaisquer condições não mencionadas em um estado são falsas)

Representação de objetivos (goals) Estado parcialmente especificado, representado como uma

conjunção de literais básicos positivos Um estado proposicional s satisfaz a um objetivo g se s contém

todos os literais em g (e possivelmente outros).

Page 8: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

8

Características gerais das linguagens

Representação de ações Ação = Precondição + Efeito

Action(Fly(p,from, to),PRECOND: At(p,from) Plane(p) Airport(from) Airport(to)

EFFECT: ¬AT(p,from) At(p,to))= esquema de ação (p, from, to devem ser instanciadas)

Nome da ação e lista de parâmetros PRECOND: Precondição (conj. de literais livres de função)

o que deve ser verdadeiro em um estado antes da aplicação da ação

EFFECT : Efeito (conj. de literais livres de função que descrevem como o estado se altera quando a ação é executada)

literais positivos devem ser considerados verdadeiros no estado sucessor à ação; e negativos, falsos.

Add-list vs delete-list in Effect

Page 9: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

9

Semântica da linguagem

Como as ações afetam os estados... Uma ação é aplicável em todos os estados que

satisfazem as suas precondições. Para esquemas de ações de primeira ordem, as suas

aplicabilidades envolvem uma substituição para as variáveis em PRECOND.

At(P1,JFK) At(P2,SFO) Plane(P1) Plane(P2) Airport(JFK) Airport(SFO)

Satisfazem : At(p,from) Plane(p) Airport(from) Airport(to)

com ={p/P1,from/JFK,to/SFO}

Portanto, a ação Action(Fly(p,from, to) é aplicável.

Page 10: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

10

Semântica da linguagem

O resultado da execução da ação a em um estado s é o estado s’, em que: s’ é o mesmo que s exceto que

Qualquer literal positivo P no efeito de a é adicionado a s’ Qualquer literal negativo ¬P é removido de s’

At(P1,SFO) At(P2,SFO) Plane(P1) Plane(P2) Airport(JFK) Airport(SFO)

Hipótese de STRIPS: todo literal não mencionado em efeito permanece inalterado (evita o problema do quadro representacional)

Page 11: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

11

Expressividade e extensões

STRIPS: tornar os alg. de planejamento mais simples e eficientes simplificação principal: literais livres de função permite a proposicionalização de qualquer esquema de ação

STRIPS é insuficientemente expressiva para alguns domínios reais:

Variante do STRIPS:Action Description language (ADL)Action(Fly(p:Plane, from: Airport, to: Airport),

PRECOND: At(p,from) (from to)EFFECT: ¬At(p,from) At(p,to))

Page 12: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

12

Expressividade e extensões

Vários formalismos de planejamento foram sistematizados em uma linguagem padrão: Planning domain definition language (PDDL) permitindo que diferentes sistemas permutem problemas benchmark e

comparem seus resultados; Inclui sublinguagens correspondentes a STRIPS, ADL e às redes

hierárquicas

Page 13: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

13

Ex: Transporte aéreo de cargasRepresentação do problema de planejamento STRIPS:

Init(At(C1, SFO) At(C2,JFK) At(P1,SFO) At(P2,JFK) Cargo(C1) Cargo(C2) Plane(P1) Plane(P2) Airport(JFK) Airport(SFO))

Goal(At(C1,JFK) At(C2,SFO))Action(Load(c,p,a)

PRECOND: At(c,a) At(p,a) Cargo(c) Plane(p) Airport(a)EFFECT: ¬At(c,a) In(c,p)

Action(Unload(c,p,a)PRECOND: In(c,p) At(p,a) Cargo(c) Plane(p) Airport(a)EFFECT: At(c,a) ¬In(c,p)

Action(Fly(p,from,to)PRECOND: At(p,from) Plane(p) Airport(from) Airport(to)EFFECT: ¬ At(p,from) At(p,to)

Possível plano:

[Load(C1,P1,SFO), Fly(P1,SFO,JFK), Load(C2,P2,JFK), Fly(P2,JFK,SFO)]

Page 14: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

14

Ex: Pneu sobressalenteRepresentação do problema em ADL:

Este exemplo está alem do STRIPS: literal negativo na pre-condição

Init(At(Flat, Axle) At(Spare,trunk))Goal(At(Spare,Axle))Action(Remove(Spare,Trunk)

PRECOND: At(Spare,Trunk)EFFECT: ¬At(Spare,Trunk) At(Spare,Ground))

Action(Remove(Flat,Axle)PRECOND: At(Flat,Axle)EFFECT: ¬At(Flat,Axle) At(Flat,Ground))

Action(PutOn(Spare,Axle)PRECOND: At(Spare,Ground) ¬At(Flat,Axle)EFFECT: At(Spare,Axle) ¬At(Spare,Ground))

Action(LeaveOvernightPRECOND:EFFECT: ¬ At(Spare,Ground) ¬ At(Spare,Axle) ¬ At(Spare,trunk) ¬ At(Flat,Ground) ¬ At(Flat,Axle) )

Page 15: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

15

Ex: Mundo dos blocos

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

Goal(On(A,B) On(B,C))Action(Move(b,x,y)

PRECOND: On(b,x) Clear(b) Clear(y) Block(b) (b x) (b y) (x y) EFFECT: On(b,y) Clear(x) ¬ On(b,x) ¬ Clear(y))

Action(MoveToTable(b,x)PRECOND: On(b,x) Clear(b) Block(b) (b x) EFFECT: On(b,Table) Clear(x) ¬ On(b,x))

Ações espúrias são possíveis: Move(B,C,C)

Page 16: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

16

Planejamento como busca em espaço de estados São possíveis ambos: encadeamento para frente e para

trás Planejamento por progressão

busca por encadeamento para frente Considerar os efeitos de TODAS as ações em um dado estado

Planejamento por regressão busca por encadeamento para trás Para atingir um objetivo, buscar o que deve ser verdadeiro no

estado anterior (e assim recursivamente).

Page 17: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

17

Progressão e regressão

Page 18: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

18

Algoritmo de progressão Formulação como busca em um espaço de estados:

estado inicial = estado inicial do problema de planejamento Literais não presentes são falsos

Ações = aplicáveis se precondições são satisfeitas Adicionar efeitos positivos, excluir (deletar) os negativos

Teste de objetivo = verifica se o estado satisfaz o objetivo do problema de planejamento

custo do passo = cada ação custa 1

Sem símbolos funcionais … qualquer algoritmo (completo) de busca é um algoritmo de planejamento completo.

Ineficiente: (1) muitas ações irrelevantes são geradas (2) a abordagem fracassa sem uma boa heurística.

Page 19: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

19

Algoritmo de Regressão

Como determinar predecessores? Quais são os estados a partir dos quais a aplicação de uma dada ação

leva ao objetivo?Objetivo = At(C1, B) At(C2, B) … At(C20, B)Ação relevante para o primeiro literal: Unload(C1,p,B)Funciona somente se as precondições forem satisfeitas. I.e. qqr estado predecessor deve

incluir estas precondições, no caso: At(C1, p) At(p, B) Predecessor = In(C1, p) At(p, B) At(C2, B) … At(C20, B)o subobjetivo At(C1,B) não deve estar presente neste estado.

Ações não devem desfazer literais desejados: ações devem ser consistentes)

Vantagem principal: somente ações relevantes são consideradas (fator de ramificação < que progressão). Uma ação é relevante para um objetivo se ela alcança um dos

elementos da conjunção do objetivo.

Page 20: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

20

Algoritmo de Regressão Processo geral para a construção de predecessores

Dada uma descrição de objetivo G, seja A uma ação relevante e consistente

O predecessor correspondente é descrito a seguir: Quaisquer efeitos positivos de A que aparecem em G são eliminados. Cada literal de precondição de A é adicionado, a menos que já apareça.

Qualquer dos algoritmos de busca pode ser usado para executar a busca.

O término acontece quando é gerada uma descrição de predecessor que é satisfeita pelo estado inicial do problema de planejamento. No caso de 1a ordem, a satisfação pode requerer uma

substituição de variáveis na descrição de predecessor.

Page 21: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

21

Algoritmo de Regressão

A principal vantagem da busca por regressão é que ela nos permite gerar somente ações relevantes.

considere o problema de ter 20 itens no aeroporto B:In(C1,B) ^ In(C2,B) ^ ... ^ In(C20,B)

Regredir do objetivo até a açãoDescarregar(C1, p, B)

gera o primeiro elemento da conjunção, levando a um predecessor:In(C1,p) ^ In(p,B) ^ ... ^ In(C20,B)

Este estado é satisfeito pelo estado inicial:In(C1,P12) ^ In(P12, B) ^ In(C2,B) ^ ... ^ In(C20,B)

considerando-se a substituição {p/P12} e a ação Descarregar(C1,P12,B)

Page 22: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

22

Heuristicas para planejamento em espaço de estados

Nenhum dos algoritmos de progressão ou regressão são eficientes sem uma boa heurística Quantas ações são necessária para atingir o objetivo? A solução completa é NP-difícil, deve-se encontrar uma boa

estimativa

Page 23: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

23

Heuristicas para planejamento em espaço de estados Dois procedimentos para se encontrar uma heurística

admissível: Encontrar a solução ótima para um problema relaxado.

Remover todas as precondições das ações hipótese de independência de subobjetivo:

O custo de resolver uma conjunção de objetivos é aproximadamente igual ao somatório dos custos de resolver cada subobjetivo independentemente.

Otimista: quando existem interações negativas entre os subplanos correspondentes a cada subobjetivo (e.g. quando uma ação em um subplano exclui um objetivo atingido por outro subplano)

Pessimista (inadmissível): quando os subplanos contêm ações redundantes

Page 24: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

24

Planejamento de ordem parcial

Planejamento por progressão ou regressão no espaço de estado são formas de busca de planos totalmente ordenados. Exploram sequências estritamente lineares de ações

conectadas de forma direta ao início ou ao objetivo. Não podem tirar proveito da decomposição do problema.

Sempre tomam decisões sobre como definir sequências de ações sobre todos os subproblemas

Page 25: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

25

Planejamento de ordem parcial

A idéia é desenvolver um algoritmo que funcionasse independentemente sobre vários subobjetivos, os resolvesse com subplanos e depois combinasse os subplanos

Estratégia do compromisso mínimo (Least commitment strategy): retardar a escolha da ordem de aplicação de algumas

ações durante a busca.

Page 26: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

26

Exemplo: calçar um par de sapatos

Goal(RightShoeOn LeftShoeOn)Init()Action(RightShoe, PRECOND: RightSockOn

EFFECT: RightShoeOn)Action(RightSock, PRECOND:

EFFECT: RightSockOn)Action(LeftShoe, PRECOND: LeftSockOn

EFFECT: LeftShoeOn)Action(LeftSock, PRECOND:

EFFECT: LeftSockOn)

Planejador: combinar duas sequências de ações (1)leftsock, leftshoe (2)rightsock, rightshoe

Page 27: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

27

Planejamento de ordem parcial

Qualquer algoritmo de planejamento que possa inserir duas ações em um plano sem especificar qual delas deve ser executada primeiro.

Page 28: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

28

Planejamento de ordem parcial

Page 29: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

29

POL : problema de busca Estados são planos não terminados.

O plano vazio contém somente as ações início e fim.

Cada plano possui 4 componentes: Um conjunto de ações (passos do plano) Um conjunto de restrições de ordenação: A < B

Cíclos representam contradições. Um conjunto de vínculos causais (causal links)

Um plano não pode ser estendido com a adição de uma nova ação C que entra em conflito com o vínculo causal (se o efeito de C for ¬p e se C pode vir depois de A e antes de B)

Um conjunto de precondições abertas. Precondição aberta: não é alcançada por alguma ação no plano. Os

planejadores trabalharão para reduzir o número de precondições abertas até o conjunto vazio (sem inserir contradições)

A p B

Page 30: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

30

POL : problema de busca

Um plano é consistente sse não existirem ciclos nas restrições de ordenação e nem conflitos com os vínculos causais..

Um plano consistente sem precondições abertas é uma solução.

Toda linearização de uma solução de ordem parcial é uma solução de ordem total cuja execução a partir do estado inicial alcançará um estado objetivo.

Page 31: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

31

Resolvendo POL

Assumindo problemas de planejamento proposicionais: O plano inicial contém Start e Finish, a restrição de

ordenação Start < Finish, nenhum vínculo causal, e todas as precondições em Finish abertas.

Função successor: escolhe uma precondição aberta p em uma ação B e gera um plano sucessor para todo modo consistente

possível para escolher uma ação A que alcance p. Teste de objetivo

Page 32: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

32

Impondo consistência

Quando da geração de um plano sucessor: O vínculo causal A--p->B e a restrição de ordenação A <

B é adicionada ao plano. se A é novo, adicione também start < A

Resolver conflitos entre novos vínculos causais e todas as ações existentes no plano

Resolver conflitos entre a ação A (se nova no plano) e todos os vínculos existentes no plano.

Page 33: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

33

Exemplo: problema do pneu furadoInit(At(Flat, Axle) At(Spare,trunk))Goal(At(Spare,Axle))Action(Remove(Spare,Trunk)

PRECOND: At(Spare,Trunk)EFFECT: ¬At(Spare,Trunk) At(Spare,Ground))

Action(Remove(Flat,Axle)PRECOND: At(Flat,Axle)EFFECT: ¬At(Flat,Axle) At(Flat,Ground))

Action(PutOn(Spare,Axle)PRECOND: At(Spare,Groundp) ¬At(Flat,Axle)EFFECT: At(Spare,Axle) ¬Ar(Spare,Ground))

Action(LeaveOvernightPRECOND:EFFECT: ¬ At(Spare,Ground) ¬ At(Spare,Axle) ¬ At(Spare,trunk) ¬ At(Flat,Ground) ¬ At(Flat,Axle) )

Page 34: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

34

Pneu furado

Plano inicial: iniciar com os EFFECTS da ação Start e as PRECOND da ação Finish.

Page 35: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

35

Tomar uma precondição aberta: At(Spare, Axle) Somente PutOn(Spare, Axle) é aplicável Adicione vínculo causal: Adicione restrição : PutOn(Spare, Axle) < Finish

PutOn(Spare,Axle) At(Spare ,Axle ) Finish

Page 36: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

36

Tomar outra precondição aberta: At(Spare, Ground) Somente Remove(Spare, Trunk) é aplicável Adicione o vínculo causal: Adicionar restrição : Remove(Spare, Trunk) < PutOn(Spare,Axle)

),(),(Re ),( AxleSparePutOnTrunkSparemove GroundSpareAt

Page 37: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

37

Re move(Spare,Trunk) At(Spare,Ground ) PutOn(Spare,Axle)

Tomar uma precondição aberta: At(Spare, Axle) LeaveOverNight é aplicável conflito: Para resolver, adicionar restrição :

LeaveOverNight < Remove(Spare, Trunk) Adicionar vínculo causal:

LeaveOverNight At(Spare,Ground ) PutOn(Spare, Axle)

Page 38: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

38

Tomar uma precondição aberta: At(Spare, Trunk) Somente Start é aplicável Adicionar vínculo: Conflito: do vínculo com o efeito At(Spare,Trunk) de LeaveOverNight

Nenhum reordenamento é possível.

retroceder

Start At(Spare ,Trunk ) Re move(Spare,Trunk)

Page 39: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

39

Remover LeaveOverNight e vínculos causais Adicionar agora Remove(Flat, Axle) Termina o plano

Page 40: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

40

Grafos de planejamento (Para vosso divertimento) Utilizados para produzir boas heurísticas

Soluções podem ser também obtidas por GRAPHPLAN.

Consistem de uma sequência de níveis correspondentes a passos no plano . Nível 0 é o estado inicial. Cada nível consiste de um conjunto de literais e ações.

Literais = tudo o que poderia ser verdade naquele instante, dependendo das ações executadas nos passos anteriores.

Ações = todas as ações que poderiam ter suas precondições satisfeitas, dependendo dos literais verdadeiros naquele passo.

Page 41: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

41

Exemplo: Bolo

Init(Have(Cake))Goal(Have(Cake) Eaten(Cake))Action(Eat(Cake), PRECOND: Have(Cake)

EFFECT: ¬Have(Cake) Eaten(Cake))Action(Bake(Cake), PRECOND: ¬ Have(Cake)

EFFECT: Have(Cake))

Page 42: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

42

Inicia no nível S0 e determina o próximo nível de ações A0 e o próximo nível S1. A0 >> todas as ações cujas precondições são satisfeitas nos níveis anteriores. Conectar precondições e efeitos das ações S0 --> S1 Inação é representada por “ações de persistência”.

Nível A0 contém as ações que podem ocorrer Conflitos entre ações são representados por vínculos mutex (vínculos de exclusão mútua).

Page 43: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

43

Continuar até que dois níveis consecutivos sejam idênticos: nivelamenteo

Page 44: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

44

Um vínvulo mutex ocorre quando duas ações: efeitos inconsistentes: uma ação nega os efeitos de uma outra. Interferência: um dos efeitos de uma ação é a negação de uma precondição de uma outra ação. Necessidades concorrentes: uma das precondições de uma ação é mutuamente excludente com

uma das precondições de outra ação.

Um vínculo mutex ocorre entre dois literais se (inconsistent support): um é a negação do outro OU Se cada par possível de ações que alcançariam os dois literais são mutuamente exclusivas

Page 45: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

45

Grafos de planejamento e heurísticas

GP’s fornecem informações sobre o problema Um literal que não aparece no último nível do grafo não pode

ser alcançado por qualquer plano. Um literal inatingível tem custo h(n) = infinito.

O nível em que todos os literais do objetivo aparecem O grafo pode ser utilizado como um problema relaxado.

Page 46: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

46

The GRAPHPLAN Algorithm

Como extrair soluções diretamente do grafo

function GRAPHPLAN(problem) return solution or failure

graph INITIAL-PLANNING-GRAPH(problem)

goals GOALS[problem]

loop do

if goals all non-mutex in last level of graph then do

solution EXTRACT-SOLUTION(graph, goals, LENGTH(graph))

if solution failure then return solution

else if NO-SOLUTION-POSSIBLE(graph) then return failure

graph EXPAND-GRAPH(graph, problem)

Page 47: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

47

GRAPHPLAN example

Inicialmente o plano consiste dos 5 literais do estado inicial e da hipótese de mundo fechado (S0).

Adicionar ações cujas precondições são satisfeitas por EXPAND-GRAPH (A0) adicionar ações de persistência e vínculos mutex. Adicionar os efeitos no nível S1 Repetir até que o objetivo esteja no nível Si

Page 48: Planejamento (Cap. 11 do Russell) Prof. Paulo Santos Mestrado FEI Aula baseada nos slides de Tom Lenaerts (INRIA)

48

GRAPHPLAN example

Em S2, os literais do objetivo existem e não são mutex com nenhum outro Uma solução pode existir e EXTRACT-SOLUTION tentará encontra-la

Processo de busca de caminho em um grafo.