Planejamento Baseado em Lógica – André Novaes – CIn UFPE 1
Planejamento Baseado em Lógica
André NovaesCIn - UFPE
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 2
Roteiro• Lógica e Planejamento
– STRIPS– Cálculo de Situações– Cálculo de Eventos
• Abdução + Calculo de Eventos• Planejamento como Satisfação• Resolução de Restrições• Atualização de BD Dedutivo• Comparações
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 3
Lógica e Planejamento• Codificar problema em alguma lógica• Aplicar um provador de teoremas
– Extrair plano a partir das provas• Vantagens
– Semântica declarativa– Complexidade já determinada– Reuso de técnicas de implementações de provadores
de teorema e compiladores de programas em lógica• Desvantagem
– Mais lento?• Como representar tempo, estados e ações?
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 4
Exemplo de Problema
A
B
C
B
A
C
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 5
STRIPS• STanford Research Institute Problem Solver• Linguagem Restrita
– Específica para planejamento– Hipótese do mundo fechado
• Algoritmo Específico para linguagem
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 6
STRIPS• Estados e Objetivo
– conjunção de literais sem variáveis e funções– sobre(A,B)
• Ação– ação + precondições + efeitos– Exemplo:
mover(Bloco,De,Para) Precondicoes: Limpo(Para) Limpo(Bloco) Sobre(Bloco,De)Efeitos: sobre(Bloco,De) sobre(Bloco,Para)
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 7
Calculo de Situações• Linguagem de Propósito Geral
– lógica da primeira ordem– hipótese do mundo aberto
• Representação baseada em situações e ações• do(A,S)
– A: ação– S: estado anterior– do(A,S): novo estado– função parcial– predicado independente do domínio– permite implementar raciocínio monotónico reusando
máquinas de inferência monotónicas– reifica fórmulas da lógica ao nível meta como termos lógicos
• Máquina de inferência: provador de teorema da lógica da 1a ordem
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 8
Calculo de SituaçõesEstado Inicial:Sobre(B,A,S0) Sobre(C,Mesa,S0) Limpo(B,S0) Limpo(C,S0)Descrição Geral:Limpo(y,s) Sobre(x,y,s) (y=Mesa) Efeitos:Sobre(x,z,do(move(x,y,z),s))
(x=z) Limpo(z,s) Limpo(x,s) Sobre(x,y,s)Frame Problem:Limpo(u,do(move(x,y,z),s))
(u=z), limpo(u,s)
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 9
Calculo de Situações• Estado Final + Axiomas + Estado Inicial
Objetivo• Tenta Provar Objetivo
– Sobre(A,C,s) Limpo(A,s) Limpo(B,s) Sobre(B,Mesa,s) Sobre(C,Mesa,s)
• Estado obtido representa ações– do(mover(A,Mesa,C),
do(mover(B,A,Mesa),s0))
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 10
Calculo de Situações• Lado Negativo
– Problema do Frame• Representação Explicita
– Expressividade limitada• Sem representação de intervalos de tempo• Sem ações concorrentes
• Lado Positivo– Lógica madura– Vários provadores de teorema
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 11
Calculo de Eventos• Linguagem de Propósito Geral
– Lógica de Horn da primeira ordem– Mundo Fechado– Duas classes de cláusulas:
• As independentes do dóminio axiomatizando raciocínio monotónico em cima de raciocínio monotónico
• As particulares a cada domínio– Ambas reificam fórmulas da lógica ao nível meta como
termos lógicos• Representação explicita do Tempo• Máquina de Inferência subjacente: Prolog
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 12
Calculo de Eventos• Mudanças modeladas como eventos
– Happens(E,T)– Evento E acontece no tempo T
• Estados modelados usando Fluentes e proposições estáticas– HoldsAt(F,T)– F é verdade no tempo T– E declarado como fato lógico é sempre verdade
• Estado Inicial– Initially(F)– Inicialmente F é verdade
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 13
Calculo de Eventos• Conseqüências e Condições da ação
– Initiates(F,F,T) Condições• Evento E Torna F verdadeiro no tempo T
– Terminates(E,F,T) Condições• Evento E Torna F falso no tempo T
– Condições: conjunção de literais
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 14
Calculo de Eventos• Axiomas independentes do domínio:
– Resolvem Problema do Frame
HoldsAt(f,t) Initially(f) Clipped(0,f,t)
HoldsAt(f,t2) Happens(a,t1) t1< t2 Initiates(a,f,t1) Clipped(t1,f,t2)
Clipped(t1,f,t2) Happens(a,t) Terminates(a,f,t) t1<t t<t2
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 15
Calculo de EventosAxiomas específicas do mundo do blocos
Estado Inicial:Sobre(B,A,0) Sobre(C,Mesa,0) Limpo(B,0) Limpo(C,0)
Regras:Initiates(mover(x,y,z),sobre(x,z),t)
HoldsAt(Limpo(z),t) HoldsAt(Limpo(x),t) HoldsAt(Sobre(x,y),t) (x=z)
Terminates(mover(x,y,z),sobre(x,y),t) HoldsAt(Limpo(z),t) HoldsAt(Limpo(x),t)
HoldsAt(Sobre(x,y),t) (x=z)
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 16
POP x Cálculo de Eventos
Clipped e declipped negadosCausal-links / protected intervals
Happens(a,t) ordenados por before(t1,t2)
Elementos do Plano
Ação a descrita por predicados:Initiates(a,f,t) :- Terminates(a,f,t) :- Releases(a,f,t) :-
Mudanças no Estado
Um conjunto de fluentes (f1,...,fn)Descrição do Estado
Estado Inicial Initially(f)
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 17
Roteiro• Lógica e Planejamento
– STRIPS– Cálculo de Situações– Cálculo de Eventos
• Abdução + Calculo de Eventos• Planejamento como Satisfação• Resolução de Restrições• Atualização de BD Dedutivo• Comparações
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 18
Calculo de Eventos• (Initiates + Terminates) Ações Estado Inicial
Axiomas Objetivo• Ações: Happens(a,t)• Solução por Abdução:
- Dado: - Conclusão: objetivo a atingir- Premissas conhecidas: Estado Inicial, Descrição do
Domínio (Initiates e Terminates), e Axiomas Gerais do Cálculo
- Abduzir: - Premissa desconhecida: ações a efetuar (i.e., plano)
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 19
Abdução• Premissas Conhecidas + Premissas
Desconhecidas Conclusão• Inverso da dedução: tenta descobrir causa a
partir do efeito• Sobre(A,B) Limpo(C) ? Sobre(A,C)• ? = Limpo(A)
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 20
Abdução + Calculo de Eventos• Efeitos das Ações Ações Axiomas Estado
Inicial Objetivo– tenta abduzir ações– happens, before
• Exemplo: Meta-Interpretador Prolog
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 21
Meta-InterpretadorDemo([]).Demo([G|GS]) :-
axiom(G,Gs2), append(Gs2,Gs1,Gs3), demo(Gs3).
Demo([not(G)|Gs]) :- not demo([G]), demo(Gs).
Onde:Axiom(H,[B1,...,Bn]) se H :- B1,...,Bn
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 22
Meta-Interpretadorholds_at(F,T3) : happens(A,T1,T2), T2 < T3, initiates(A,F,T1), not clipped(T1,F,T2).
demo([holds_at(F,T3)|Gs1]) : axiom(initiates(A,F,T1),Gs2),
axiom(happens(A,T1,T2),Gs3), axiom(before(T2,T3),[]), demo([not clipped(T1,F,T3)]), append(Gs3,Gs2,Gs4), append(Gs4,Gs1,Gs5), demo(Gs5).
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 23
Meta-Interpretador• Transformando em Meta-Interpretador para abdução
– Resíduo Inicial– Resíduo Final– Literais Negados
abdemo([],R,R,N).
abdemo([G|Gs],R1,R3,N) : abducible(G), abdemo_nafs(N,[G|R1],R2), abdemo(Gs,R2,R3,N).
abdemo([G|Gs1],R1,R2,N) : axiom(G,Gs2), append(Gs2,Gs1,Gs3), abdemo(Gs3,R1,R2,N).
abdemo([not(G)|Gs],R1,R3,N) : abdemo_naf([G],R1,R2), abdemo(Gs,R2,R3,[[G]|N]).
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 24
Meta-Interpretador• abdemo_nafs:
– para cada item N da lista de negados– provar que N Resíduo Fatos é verdade– N é uma lista [p0,...,pn] onde N :- p0,...,pn
– É necessário provar apenas que um pi é verdadeiro
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 25
Meta-Interpretadorholds_at(F,T3) : happens(A,T1,T2), T2 < T3, initiates(A,F,T1), not clipped(T1,F,T2).
abdemo([holds_at(F,T3)|Gs1],R1,R4,N) : axiom(initiates(A,F,T1),Gs2), escolhendo uma açaoabdemo_nafs(N,[happens(A,T1,T2),before(T2,T3)|R1],R2), adicionando ação ao planoabdemo_nafs([clipped(T1,F,T3)],R2,R3), protected linkappend(Gs2,Gs1,Gs3), demo(Gs3,R3,R4,[clipped(T1,F,T3)|N]).
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 26
Meta-Interpretador• Ordenando ações
– para provar holdsAt– holdsAt(F,T3) : happens(A,T1,T2), T2 < T3, initiates(A,F,T1), not
clipped(T1,F,T2).– Para provar clipped– clipped(t1,f,t2) :- happens(a,t) and terminates(a,f,t) and before(t1,t)
and before(t,t2)– indiretamente, provar que before(t1,t2) é falso– Solução: adicionar before(t2,t1) ao resíduo, checando se no há
inconsistência
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 27
Meta-Interpretador• Unsoundness
– fluent range restrictedterminates(sell,have(X),T) :
holdsAt(have(X),T),buys(Y,X),holdsAt(at(Y),T).
– em algum exemplos de state constraintsholds_at(happy,T) : holds_at(rich,T) initiates(rob_bank,rich,T).initially(neg(rich)). initially(neg(happy)).
• Incompleteness– informação incompleta do estado inicial
initiates(vaccinate1,immune,T) : holds_at(type1,T). initiates(vaccinate2,immune,T) : holds_at(neg(type1),T).
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 28
Roteiro• Lógica e Planejamento
– STRIPS– Cálculo de Situações– Cálculo de Eventos
• Abdução + Calculo de Eventos• Planejamento como Satisfação• Resolução de Restrições• Atualização de BD Dedutivo• Comparações
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 29
Planejamento como Satisfação• Codificar o plano como fórmula proposicional• Determinar se a fórmula pode ser satisfeita• Plano extraído da prova da fórmula• Assume-se que o plano tem n passos
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 30
Planejamento como Satisfação• Transformar problema de planejamento em
problema de satisfação• Definir tamanho máximo do plano• Se necessário, incluir ações dummy• Converter predicados para refletir tempo
– p(a1,...,an) p(a1,...,an,an+1)– an+1representa o tempo
• Fórmula a ser satisfeita inclui:– estado inicial, objetivo, efeitos das ações
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 31
• Estado Inicial:– Sobre(B,A,1) Sobre(C,Mesa,1) Limpo(B,1) Limpo(C,1)
• Efeitos:– Sobre(x,z,do(move(x,y,z),s)) (x=z) Limpo(z,s)
Limpo(x,s) Sobre(x,y,s)– Instanciar para cada caso– (Sobre(a,mesa,do(move(a,b,mesa),2)) (a=mesa)
Limpo(mesa,2) Limpo(a,2) Sobre(a,b,2)) (Sobre(b,mesa,do(move(b,a,mesa),2)) (b=mesa) Limpo(mesa,2) Limpo(b,2) Sobre(b,a,2)) ...
• Apenas uma ação em cada passo Mover_a_b_mesa,2) Mover(b,a,mesa,2)
• Pelo menos uma ação em cada passo– Mover(a,b,mesa,2) Mover(b,a,mesa,2) ...
Planejamento como Satisfação
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 32
Planejamento como Satisfação é a fórmula inicial
– CNF: (ab)(cd) é o plano
Satisfacao(,)enquanto ( = ) escolher um literal P tal que P ou P ocorra em enquanto existir um {L} em (L é uma cláusula com um literal) <- união {L}
para cada cláusula C em se L C então
<- \ {C} se L C então
( \ {C}) (C \ {L}) end endendexit with
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 33
Fórmula InicialD (D A B) (D A B) (D A B) (D A B)Após eliminar D = (A B)(AB)(AB) , = {D}Após escolher A = BB , o que é uma contradiçãoEscolhemos A = B , = {D, A}Escolhendo B = , = {D, A, B}Plano satisfeito
Planejamento como Satisfação
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 34
Roteiro• Lógica e Planejamento
– STRIPS– Cálculo de Situações– Cálculo de Eventos
• Abdução + Calculo de Eventos• Planejamento como Satisfação• Resolução de Restrições• Atualização de BD Dedutivo• Comparações
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 35
Constraint Logic Programming• Estado é definido por variáveis Xi com valores
num domínio Di• Restrições são definidas sobre os valores das
variáveis• Uso de algoritmos e heurísticas de propósito
geral
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 36
parcPLAN• Utiliza algoritmo em vários passos
– passo 1: inclusão de ações– passo 2: resolução de restrições– Passo 3: finalização do plano
• Ações podem ter um intervalo• utiliza "least commitment"• Ações definidas pôr
– condições, efeitos e restrições
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 37
parcPLAN• Exemplo:Acao: move(Bloco,De,Para,Inicio,Fim)Condição: clear(To,T2,Fim), clear(Bloco,T3,T4), on(Bloco,De,T1,Inicio)Efeitoson(Bloco,Para, Fim,T5)clear(De,T6,T7) RestriçõesBloco!=De, Bloco!=ParaT6 = Inicio + 2, T2 < Fim - 2, T3< Inicio, Fim < T4, Inicio + 5 <= Fim
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 38
parcPLAN
Action Introduction Collapsing Scheduling/Resource Reasoning
PlanoProblema
Falha Falha
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 39
parcPLAN• Introduzir Ação
– escolher um objetivo– escolher ação que tenha como efeito o objetivo– unificar com efeito– adicionar condições da ação ao objetivo– adicionar restrições– calcular custo
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 40
parcPLAN• Segunda Parte
– Quando todos os objetivos podem ser unificados com a base
– utilizar resolução de restrições– cada objetivo é associado a um "finite domain variable"– objetivos mais restritos são instanciados primeiro
• Se falhar– Tentar achar nova ação– Que seja mais geral
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 41
parcPLAN• Terceira Parte
– finalizar plano– restrições de tempo e recursos restantes
• Se falhar– tentar novo colapso
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 42
Roteiro• Lógica e Planejamento
– STRIPS– Cálculo de Situações– Cálculo de Eventos
• Abdução + Calculo de Eventos• Planejamento como Satisfação• Resolução de Restrições• Atualização de BD Dedutivo• Comparações
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 43
Transaction Logic• Permite atualização na base de fatos• Transações Atômicas
– Atualização da base é desfeita em caso de erro• P.ins, P.del
– P é um predicado– Ex: sobre(A,B).del
• T1 T2– Conjunção serial de transações– T2 é executada após T1, na mesma transação– Ex: Mover(B,A,Mesa) Mover(A,Mesa,C)
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 44
Transaction Logic• STRIPS
Açãomover(Bloco,De,Para) Precondições: Limpo(Para) Limpo(Bloco) Sobre(Bloco,De)Efeitos: sobre(Bloco,De) sobre(Bloco,Para)
• Transaction Logic
mover(Bloco,De,Para) Limpo(Para) Limpo(Bloco) Sobre(Bloco,De) sobre(Bloco,De).del Sobre(Bloco,Para).ins
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 45
Transaction Logicconseguir_mover(X,Y,Z)
[conseguir_limpar(X) & conseguir_limpar(Z) & conseguir_sobre(X,Y)] mover(X,Y,Z)conseguir_mover(X,Y,Z) sobre(X,Z) limpo(Y)
conseguir_limpar(X) limpo(X)conseguir_limpar(X) conseguir_mover(Y,X,Z)
conseguir_sobre(X,Y) sobre(X,Y)conseguir_sobre(X,Y) conseguir_mover(X,Z,Y)
?- [conseguir_sobre(a,c) & conseguir_limpo(b) & conseguir_ limpo(a)] sobre(a,c) limpo(b) limpo(a)
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 46
Roteiro• Lógica e Planejamento
– STRIPS– Cálculo de Situações– Cálculo de Eventos
• Abdução + Calculo de Eventos• Planejamento como Satisfação• Resolução de Restrições• Atualização de BD Dedutivo• Comparações
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 47
ComparaçãoLinguagem Algoritmo Tempo
STRIPS Específica Especializado para planejamento
Implícito
Cálculo de Situações Geral - lógica da 1 1a ordem
Provador de Teorema Geral
Implícito
Cálculo de Eventos Geral - lógica de horn da 1a ordem
Máquina de inferência para Abductive Logic Programming
Explícito
Satisfação Lógica proposicional Satisfação de Fórmula Lógica
Explícito
parcPLAN Específica Especifico para planejamento reusando máquina de inferência para CLP
Explícito
Transaction Logic Geral Máquina de inferência para Transaction Logic Programming
Explícito
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 48
2a tabela de comparação• linhas: abordagens• colunas: features de PDDL suportados• Hierarquia de expressividade N dimensionais a
partir de STRIPS até extensão de ADL
Top Related