3.3 Formas N˜ao-Clausais
3.3.5 Enumera¸c˜ao de Modelos para d-DNNF e FNNF
Enumera¸c˜ao de modelos ´e a opera¸c˜ao que gera todos os modelos para uma f´ormula, isto ´e, todas as valora¸c˜oes que tornam esta f´ormula verdadeira. Diferencia-se de SAT, onde se espera simplesmente saber se existe um modelo para uma f´ormula.
Segundo [6], a opera¸c˜ao de enumera¸c˜ao de modelos para uma f´ormula na d-DNNF pode ser efetuada em tempo polinomial. Por causa das propriedades de decomponibi- lidade e determinismo, basta varrer a f´ormula uma vez em busca de todos os modelos. Conv´em ressaltar que este procedimento ´e o mesmo para uma f´ormula na FNNF (ou mesmo OFNNF), visto que uma f´ormula na FNNF tamb´em est´a na d-DNNF.
Seja um modelo representado como um conjunto de literais e suponha que Ni e Mi se- jam modelos para uma f´ormula (ou subf´ormula). O produto cartesiano (×) entre modelos define-se como:
{N1, ..., Nn} × {M1, ..., Mm} ≡ N1∪ M1, N1∪ M2, ..., Nn∪ Mm
O conjunto Models(∆), conjunto de modelos de uma teoria proposicional ∆, ´e definido como:
Models(∆ = literal) = ∆
Models(∆ =Wiαi) = Models(α1) ∪ Models(α2) ∪ ... ∪ Models(αn)
Models(∆ =Viαi) = Models(α1) × Models(α2) × ... × Models(αn)
Se ∆ est´a na d-DNNF e w ´e uma atribui¸c˜ao de verdade sobre os ´atomos de ∆, ent˜ao
w |= ∆ se, e somente se, w ∈ Models(∆). A complexidade desta opera¸c˜ao ´e O(mn),
onde m ´e o tamanho de ∆ e n =| Models(∆) |2 [8]. Portanto, se o n´umero de modelos ´e
um tempo linear sobre o tamanho da f´ormula. Para a f´ormula na d-DNNF da Figura 3.10:
∆ = ((p ∨ ¬p) ∧ q ∧ r) ∨ (¬r ∧ ¬p ∧ q))
obt´em-se o conjunto Models(∆) abaixo, aplicando-se as regras definidas acima.
• {p, q, r} • {¬p, q, r} • {¬p, ¬q, ¬r}
Percebe-se neste conjunto de modelos que todas as vari´aveis proposicionais aparecem em todos os modelos. Caso a regra do Terceiro Exclu´ıdo3 fosse aplicada ao DAG da
Figura 3.10, ent˜ao seriam obtidos somente duas valora¸c˜oes, a saber:
• {q, r}
• {¬p, ¬q, ¬r}
sendo que a ausˆencia da vari´avel proposicional p no primeiro modelo, indicaria uma condi¸c˜ao irrelevante em rela¸c˜ao ao valor l´ogico de p, sendo portanto um implicado primo. Um algoritmo que percorre uma f´ormula na d-DNNF pode ser constru´ıdo atrav´es do caminhamento no DAG correspondente. As opera¸c˜oes de produto cartesiano e uni˜ao s˜ao sempre executadas quando um n´o ´e conjun¸c˜ao ou disjun¸c˜ao, respectivamente. O algoritmo para enumera¸c˜ao de modelos pode ser visto no Algoritmo 6.
Todas as considera¸c˜oes sobre enumera¸c˜ao de modelos feitas para d-DNNF valem para FNNF. Esta opera¸c˜ao ser´a usada para se resolver o problema de alcan¸cabilidade em redes de petri, em conjunto com a modelagem dos conflitos da rede em uma f´ormula n˜ao clausal. No pr´oximo cap´ıtulo ser´a mostrada a transforma¸c˜ao do problema de alcan¸cabilidade em RdP para uma instˆancia SAT baseada em forma n˜ao-clausal.
Algoritmo 6 Models Entrada: Nodo
Sa´ıda: Modelos para Nodo if nodo ´e um literal then
return literal end if
if nodo ´e disjun¸c˜ao then
M ← ∅
for all filho f de Nodo do
M ← M ∪ Models(f )
end for return M end if
if nodo ´e conjun¸c˜ao then
M ← ∅
for all filho f de Nodo do
M ← M × Models(f )
end for return M end if
CAP´ITULO 4
ALCANC¸ ABILIDADE EM REDES DE PETRI VIA SAT
PARA FORMAS N ˜AO-CLAUSAIS
Este trabalho pretende resolver o problema de planejamento usando como substrato formal as Redes de Petri. Neste contexto, o problema de planejamento ´e visto como um problema de alcan¸cabilidade que ´e tratado por um resolvedor SAT baseado em f´ormulas n˜ao-clausais, a partir do seu mapeamento para f´ormulas em NNF.
O procedimento proposto, de maneira simples, pode ser visualizado atrav´es do Algo- ritmo 7.
Algoritmo 7 Proposta Carrega o PDDL repeat
Expande a rede at´e que os objetivos sejam encontrados consistentemente Gera a f´ormula na NNF
Transforma a f´ormula para FNNF Aplica resolvedor SAT para FNNF
if resolvedor SAT encontrou valora¸c˜ao para a f´ormula then Constr´oi o plano a partir da valora¸c˜ao
end if
until encontrar plano
4.1
Modelagem
A estrutura de representa¸c˜ao usada aqui para manter o problema de planejamento ´e uma rede de Petri obtida pelo algoritmo Petriplan do cap´ıtulo 2. Esta rede possui algumas particularidades, a saber:
• ´E ac´ıclica;
• Cada transi¸c˜ao dispara no m´aximo uma vez; • Um lugar possui no m´aximo dois arcos de sa´ıda.
Esta rede representa o comportamento dinˆamico da aplica¸c˜ao de a¸c˜oes ao longo do tempo, partindo-se de uma situa¸c˜ao inicial, em busca de um estado final. Resolver um problema de planejamento usando esta RdP significa encontrar todas as transi¸c˜oes que devem ser disparadas, na ordem correta, para que, a partir de uma marca¸c˜ao inicial da RdP se consiga uma marca¸c˜ao que contenha o estado final. Esta seq¨uˆencia de a¸c˜oes ´e chamada plano.
A Figura 4.1 mostra uma RdP com uma marca¸c˜ao inicial (c´ırculos pretos nos lugares) e com uma marca¸c˜ao final (lugares com contornos mais fortes).
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 p0 p1 p3 p2 p7 p5 p6 p4 p9 p8 p13 p11 p12 p10 p15 p18 p14 p20 p16 p21 p17 p19 p25 p24 p22 p23
Figura 4.1: Problema completo com marca¸c˜oes
A Figura 4.2 mostra, para a rede da figura 4.1, uma seq¨uˆencia de disparos de transi¸c˜oes que fazem com que, a partir da marca¸c˜ao inicial se consiga uma marca¸c˜ao que cont´em a marca¸c˜ao final desejada. As transi¸c˜oes disparadas est˜ao preenchidas em cinza. Como os lugares objetivo possuem marcas ap´os o disparo destas transi¸c˜oes, tem-se um plano.
Para se chegar a um plano, pela an´alise de alcan¸cabilidade em RdP, deve-se ter especial cuidado com os conflitos. Conflitos em uma RdP indicam que existem transi¸c˜oes que n˜ao podem ser disparadas para a obten¸c˜ao do mesmo plano. Pelo fato de serem transi¸c˜oes mutuamente exclusivas, uma escolha errada pode levar a um processamento infrut´ıfero,
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 p0 p1 p3 p2 p7 p5 p6 p4 p9 p8 p13 p11 p12 p10 p15 p18 p14 p20 p16 p21 p17 p19 p25 p24 p22 p23 1 2 4 3 5 6 7 8
Figura 4.2: Uma poss´ıvel solu¸c˜ao
indicando que outra transi¸c˜ao deveria ter sido escolhida para ser disparada. Assim, uma decis˜ao consistente destes conflitos ´e dado pelo conjunto de escolhas feitas sobre quais transi¸c˜oes deveriam ser disparadas em detrimento a outras.
Um conflito em uma RdP ´e dado por um lugar, ao qual est˜ao conectados duas ou mais transi¸c˜oes de sa´ıda, como na Figura 4.3.
t2
t3
t1
p
Figura 4.3: Um conflito em RdP
Estas escolhas s˜ao de extrema importˆancia, pois se n˜ao for conseguida uma decis˜ao consistente destes conflitos, significa que n˜ao existe um plano para o problema. Por outro lado, se esta configura¸c˜ao for obtida, as demais transi¸c˜oes que n˜ao fazem parte de conflitos
n˜ao influenciam na obten¸c˜ao do plano, pois seu disparo ou ´e obrigat´orio (por causa da dinˆamica de transporte das marcas na RdP) ou seu disparo nunca ocorrer´a.
O objetivo ´e resolver os conflitos de uma dada RdP baseando-se em SAT para se obter uma RdP livre de conflitos. Se isto ocorrer, para se encontrar as transi¸c˜oes necess´arias para alcan¸car o estado final a partir do estado inicial, bastaria simular seus disparos na rede sem que haja nenhuma escolha a ser feita.