Raciocínio Abdutivo usando Cálculo de Eventos e sua correspondência com Sistemas de Planejamento Exame de Qualificação Silvio do Lago Pereira Introdução • • • • • Planejamento Sistemas corretos versus práticos Raciocínio e representação O artigo de Green O artigo de Shanahan 2 Objetivo • Mostrar que Sistemas de planejamento lógicos Sistemas de planejamento algorítmicos 3 Suposições • Sobre o mundo: tempo atômico efeitos determinísticos onisciência causa de mudança única • Sobre o agente: representa e mantém o estado do mundo representa ações e os efeitos produzidos por elas delibera sobre a construção de um plano de ações raciocina sobre interação de ações e metas 4 Organização • • • • Representação de conhecimento Planejamento clássico Planejamento abdutivo Metodologia 5 Representação de Conhecimento Cálculo de Situações Representação STRIPS Cálculo de Eventos Cálculo de Situações S0 Do(,S0) n+1, ..., Axiomas de efeito 1, ..., n ) Holds(n+1 ,Do(,S i,S0 0)) n+j 1 , ..., i -1, i+k, ..., n Axiomas de quadro 7 Mundo dos Blocos • Situações: S0 e S1 • Fluentes: Sobre(x,y) e Livre(x) • Ação: Move(x,y) 8 O problema do Quadro • Novo fluente: Cor(x,c) • Nova ação: Pinta(x,c) • Num domínio com m ações e n fluentes, temos O(mn) axiomas de quadro 9 Circunscrição • Lei do senso comum da inércia • A conjectura de McCarthy • A idéia básica da circunscrição • CIRC[;] def q[(q) q] • Raciocínio não-monotônico 10 Exemplo • Seja := Livre(B) Livre(C) Sobre(C,A). • Por exemplo, temos |= Livre(B), mas não temos |=Livre(A), nem |= Livre(A). • Temos CIRC[;Livre] |= Livre(A). • De modo geral, temos CIRC[;Livre] |= x[Livre(x) (xB xC)]. 11 Representação STRIPS • Evita os axiomas de quadro • Baseado em estados do mundo • Ações são representadas por operadores OPERADOR(Move(C, A, M), PRECONDS: {Sobre(C,A), Livre(C)}, EFEITOS: {Sobre(C,M), Sobre(C,A), Livre(A)}) 12 Semântica Seja uma ação e um estado do mundo: • é aplicável a sse PRECONDS() • O estado resultante da aplicação a é EFEITOS() EFEITOS() 13 Representação ADL • É uma extensão da representação STRIPS OPERADOR(Move(x, y, z), PRECONDS: {Pasta(x), Em(x,y) , xz}, EFEITOS: {Em(x,z), Em(x,y), v(Objeto(v) (Dentro(v,x) (Em(v,z) Em(v,y)) ))} ) 14 Cálculo de Eventos • Ontologia: eventos, intervalos de tempo e fluentes • Linguagem: Initiates(,,), Terminates(,,) e Releases(,,) InitiallyP() e InitiallyN() Happens(,1,2) HoldsAt(,) Clipped(1,,2) e Declipped(1,,2) 15 Axiomas EC (EC1) HoldsAt(f,t) InitiallyP(f) Clipped(0,f,t) (EC2) HoldsAt(f,t) Happens(a,t1,t2) Initiates(a,f,t1) t2t Clipped(t1,f,t) 16 (EC3) HoldsAt(f,t) InitiallyN(f) Declipped(0,f,t) (EC4) HoldsAt(f,t) Happens(a,t1,t2) Terminates(a,f,t1) t2t Declipped(t1,f,t) 17 (EC5) Clipped(t1,f,t2) a, t3, t4 [ Happens(a,t3,t4) t1t3 t4t2 (Terminates(a,f,t3) Releases(a,f,t3))] (EC6) Declipped(t1,f,t2) a, t3, t4 [ Happens(a,t3,t4) t1t3 t4t2 (Initiates(a,f,t3) Releases(a,f,t3))] (EC7) Happens(a,t1,t2) t1 t2 18 Planejamento Clássico Busca no espaço de estados Busca no espaço de planos Representação de Conhecimento e paradigmas de busca Algoritmos de planejamento Busca no Espaço de Estados 20 Planejamento Progressivo Algoritmo PROG(, , , ) Entrada: A descrição das ações . A descrição do estado corrente . A descrição de um estado meta . Um plano parcialmente especificado . Saída: FALHA ou um plano completo . 1. Se então devolva . 2. Seja A := { | PRECONDS() }. 3. Escolha A. 3.1. Seja := PROG(, +EFEITOS+()EFEITOS(), , ). 3.2. Se FALHA então devolva . 3.3. Retroceda. 4. Devolva FALHA. 21 Planejamento Regressivo Algoritmo REGR(, , , ) Entrada: A descrição das ações . A descrição do estado inicial . A descrição do estado corrente . Um plano parcialmente especificado . Saída: FALHA ou um plano completo . 1. Se então devolva . 2. Seja A := { | EFEITOS() EFEITOS()}. 3. Escolha A. 3.1. Seja := REGR(, , +PRE()+EFEITOS()EFEITOS+(), ). 3.2. Se FALHA então devolva . 3.3. Retroceda. 4. Devolva FALHA. 22 Busca no Espaço de Planos • O espaço de planos como um grafo nós: planos parcialmente especificados arestas: operações de refinamento do plano • Ordem das ações no plano total parcial 23 Planejamento de Ordem Total Planejamento de ordem total como busca no espaço de planos Planejamento regressivo como busca no espaço de estados 24 Planejamento de Ordem Parcial Plano Vazio Vínculo Ameaça Causal A0 p p t c c A 25 Representação de Conhecimento e Paradigmas de Busca • Cálculo de Situações Planejamento de ordem total como busca no espaço de estados • Cálculo de Eventos Planejamento de ordem parcial como busca no espaço de planos 26 Algoritmos de Planejamento • UCPOP - suporta a representação ADL • SNLP - planejamento sistemático • HTN - decomposição hierárquica 27 Planejamento Abdutivo Abdução Planejamento Abdutivo com EC Meta-interpretador Abdutivo para EC Abdução Sejam a descrição de um domínio e 0 a descrição de uma observação. Abdução consiste em encontrar um conjunto de sentenças , explicação abdutiva de 0, tal que é consistente |= 0 29 SLDA-Refutação Sejam um conjunto de cláusulas definidas e 0 uma cláusula objetivo. Uma SLDA-refutação é uma seqüência 0,0, , n,n onde cada i+1,i+1 é obtido a partir de i,i. Seja o literal selecionado de i: se é abdutível, i+1 := i e i+1 := i{} senão, a resolução é efetuada e i+1 := i 30 Exemplo (1) grama-molhada choveu (2) grama-molhada irrigada (3) sapatos-molhados grama-molhada (4) sapatos-molhados , { } (5) grama-molhada , { } (6) choveu , { } (7) irrigada , { } (8) , { irrigada } 0 R(4,3) R(5,1) R(5,2) A(7) 31 SLDNFA-Refutação • Negação e a hipótese do mundo fechado • Pode-se inferir de um programa lógico se não existe uma SLD-refutação para a partir de • Interferências entre negação e abdução 32 Planejamento Abdutivo com Cálculo de Eventos • Domínio : Initiates, Terminates e Releases • Situação inicial : InitiallyN e InitiallyP • Meta : ()HoldsAt • Plano : Happens e < • Planejamento: CIRC[; Initiates,Terminates,Releases] CIRC[;Happens] EC |= 33 Meta-interpretador Abdutivo para Cálculo de Eventos (1) demo([]). (2) demo([G|Gs1]) :axiom(G,Gs2), append(Gs2,Gs1,Gs3), demo(Gs3). (3) demo([not(G)|Gs]) :not demo(G), demo(Gs). 34 Meta-interpretador Abdutivo (1) abdemo([],R,R). (2) abdemo([G|Gs],R1,R2) :abducible(G), abdemo(Gs,[G|R1],R2). (3) abdemo([G|Gs1],R1,R2) :axiom(G,Gs2), append(Gs2,Gs1,Gs3), abdemo(Gs3,R1,R2). 35 Estendendo Abdução com Negação por Falha (1) abdemo([],R,R,N,N). (2) abdemo([G|Gs],R1,R3,N1,N2) :abducible(G), abdemo_nafs(N1,[G|R1],R2), abdemo(Gs,R2,R3,N1,N2). (3) abdemo([G|Gs1],R1,R2,N1,N2) :axiom(G,Gs2), append(Gs2,Gs1,Gs3), abdemo(Gs3,R1,R2,N1,N2). (4) abdemo([not(G)|Gs],R1,R2,N1,N2) :abdemo_naf([G],R1,R2), abdemo(Gs,R2,R3,[[G]|N1],N2). 36 (5) abdemo_nafs([],R,R). (6) abdemo_nafs([N|Ns],R1,R3) :abdemo_naf(N,R1,R2), abdemo_nafs(Ns,R2,R3). (7) abdemo_naf([G|Gs1],R,R) :not resolve(G,R,Gs2). (8) abdemo_naf([G1|Gs1],R1,R2) :findall(Gs2,(resolve(G1,R1,Gs3), append(Gs3,Gs1,Gs2)),Gss), abdemo_nafs(Gss,R1,R2). ( 9) resolve(G,R,[]) :- member(G,R). (10) resolve(G,R,Gs) :- axiom(G,Gs). 37 Compilação de Axiomas A cláusula 1, 2, , n Pode ser compilada como demo([|Gs1]) :axiom(1,Gs2), append(Gs2,[2,,n|Gs1],Gs3), demo(Gs3). 38 Compilando os Axiomas do Cálculo de Eventos holds_at(F,T3) :happens(A,T1,T2), T2<T3, initiates(A,F,T1), not clipped(T1,F,T2). 39 Compilando os Axiomas do Cálculo de Eventos 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). 40 Tratamento de Informação Incompleta • Informação incompleta e negação por falha • Tratamento no meta-nível O predicado before O predicado holds_at 41 O Sistema de Planejamento AECP abdemo([holds_at(F1,T3)|Gs1],R1,R5,N1,N4) :abresolve(initiates(A,F1,T1),R1,Gs2,R1), abresolve(happens(A,T1,T2),R1,[],R2), abresolve(before(T2,T3),R2,[],R3), add_neg([clipped(T1,F1,T3)],N1,N2), abdemo_nafs(N2,R3,R4,N2,N3), append(Gs2,Gs1,Gs3), abdemo(Gs3,R4,R5,N3,N4). 42 Exemplos de Análises • • • • • • • Tarefas de refinamento Sistematicidade Representação ADL Multicontribuidores Decomposição hierárquica Planejamento de ordem total Ações de percepção 43 Metodologia Atividades Cronograma Atividades • Estudar e implementar algoritmos eficientes da literatura de planejamento • Alterar o meta-interpretador AECP de modo a implementar esses algoritmos, mantendo o propósito original de sua especificação • Comparar os passos de planejamento nos sistemas algorítmicos com aqueles observados nos sistemas lógicos 45 Cronograma Mar Abr Mai Jun Jul Ago Set Out Nov Dez Estudar e implementar alguns algoritmos de planejamento selecionados da literatura Estender o meta-interpretador AECP de modo a implementar esses algoritmos Avaliar a eficiência dessas extensões Redigir a dissertação Defender a dissertação x x x x x x x x x x x x x x x x x x x x x x 46