• Nenhum resultado encontrado

DIM DPLL e teorias DIM / 39

N/A
N/A
Protected

Academic year: 2021

Share "DIM DPLL e teorias DIM / 39"

Copied!
45
0
0

Texto

(1)

DIM0436

23. DPLL e teorias

(2)

Sumário

1 Provadores SAT

(3)

1 Provadores SAT

(4)

Exemplo de árvore binária de decisão

Φ = (¬A ∨ B) ∧ (¬B ∨ C )

Árvore de decisão

A B C v1 1 v2 0 1 C v3 1 v4 0 0 1 B C v4 1 v6 0 1 C v7 1 v8 0 0 0

(5)

FNC

∆ = CNF (Φ) = {{¬A, B}, {¬B, C }} ∆ | A, ¬B = {{⊥, ⊥}, {>, C }}} =  A B C v1 1 v2 0 1 C v3 1 v4 0 0 1 B C v4 1 v6 0 1 C v7 1 v8 0 0 0 F

(6)

Melhorada possível

∆ = CNF (Φ) = {{¬A, B}, {¬B, C }} ∆ | ¬A, ¬B = {{>, ⊥}, {>, C }}} = 

Todas as cláusulas são subsumidas uma vez que {A 7→ 0, B 7→ 0} A B C v1 1 v2 0 1 C v3 1 v4 0 0 1 B C v4 1 v6 0 1 C v7 1 v8 0 0 0 F S

(7)

DPLL(∆, d)

if ∆ = {} then return {} else if {} ∈ ∆ then

returnUNSAT

else if L= DPLL(∆|Pd +1, d +1) 6= UNSAT then

return L ∪ Pd +1

else if L= DPLL(∆|¬Pd +1, d +1) 6= UNSAT then

return L ∪ ¬Pd +1

else

returnUNSAT

(8)

Resolução unitária

Problema

Seja ∆ = {{¬A, B}, {¬B, ¬C}, {C, ¬D}} ∆|A = {{B}, {¬B, ¬C }, {C , ¬D}} Nesse ponto ∆ 6= {} ∧ {} 6∈ ∆ Mas poderíamos já declarar sucesso

Propagação unitária

Antes do teste de sucesso/falha, propagar cláusulas unitárias A fase de resolução unitária produz dois resultados

I I : literais presentes como cláusulas unitárias ou derivados por resolução

(9)

Exemplos

1 ∆ = {{¬A, ¬B}, {B, C }, {¬C , D}, {A}} I I = {A, ¬B, C , D} I Γ = {} 2 ∆ = {{¬A, ¬B}, {B, C }, {¬C , D}, {C }} I I = {C , D} I Γ = {{¬A, ¬B}}

(10)

Algoritmo DPLL

Unit

(∆)

(I , Γ) ← UNIT − RESOLUTION(∆) if Γ = {} then return I

else

if {} ∈ Γ then returnUNSATISFIABLE

else

choose a literal L in Γ

if L= DPLL(Γ|L) 6= UNSATISFIABLE then return L ∪ I ∪ {L}

else if L= DPLL(Γ|¬L) 6= UNSATISFIABLE then return L ∪ I ∪ {¬L}

elsereturnUNSATISFIABLE

end if end if end if

(11)

Backtracking cronológico

Se os dois valores duma variável ao nível n geram uma contradição, o algoritmo DPLLUnit volta ao nível n − 1

Se o backtracking voltar até o nível 0 a FNC é incoerente.

Diferenças

Mudar do nível corrente a um nível inferior é backtracking

Se o backtracking ao nível n for feito só após tentar os 2 valores ao nível n +1, é backtracking cronológico

(12)

Exemplo

∆ = 1 {A, B} 2 {B, C } 3 {¬A, ¬X , Y } 4 {¬A, X , Z } 5 {¬A, ¬Y , Z } 6 {¬A, X , ¬Z } 7 {¬A, ¬Y , ¬Z } A B C X 0|1 1 X 0|1 0 1 X 0|1 0 1 {}

(13)

Backtracking não cronológico

Conjunto de conflito

Backtracking não cronológico pode ser usado após identificação de toda valoração que contribui à derivação da cláusula vazia.

Esse conjunto é o conjunto de conflito

Em vez de um backtracking até a última variável mudada, o algoritmo volta à variável de decisão mais recente do conjunto de conflito.

(14)

Exemplo

∆ = 1 {A, B} 2 {B, C } 3 {¬A, ¬X , Y } 4 {¬A, X , Z } 5 {¬A, ¬Y , Z } 6 {¬A, X , ¬Z } 7 {¬A, ¬Y , ¬Z } 1 {A 7→1, B 7→ 1, C 7→ 1, X 7→ 1} 2 Por resolução unitária, Y 7→ 1, Z 7→ 1} 3 Cláusula ?? vira vazia

4 O conjunto de conflito é

{A 7→1, X 7→ 1, Y 7→ 1, Z 7→ 1}

5 Vamos dar um outro valor a X 6 Outro conflito :

{A 7→1, X 7→ 1, Z 7→ 1}

7 Como não tem mas valores para X ,

(15)

Pista de melhorada

∆ = 1 {A, B} 2 {B, C } 3 {¬A, ¬X , Y } 4 {¬A, X , Z } 5 {¬A, ¬Y , Z } 6 {¬A, X , ¬Z } 7 {¬A, ¬Y , ¬Z }

Cada vez que a resolução unitária descobre uma contradição, tem a possibilidade de identificar uma cláusula implicada pela FNC

Essa cláusula permitiria a realização de novas implicações pela resolução unitária (assim {¬A, ¬X } é uma consequência da FNC acima)

(16)

Grafo de implicação

Como ler o grafo

3/Y = 1: a variável Y é valorada a verdadeira ao nível 3, usando cláusula 3, A 7→1, X 7→ 1 0/A 7→ 1 1/B 7→ 1 2/C 7→ 1 3/X 7→ 1 3/Y 7→ 1 3/Z 7→ 1 3/{} 5 3 3 5 7 7 7 0/A 7→ 1 0/X 7→ 0 0/Z 7→ 1 0/{} 4 8 6 4 6 6

(17)

Calcular uma cláusula conflito

Todo corte do grafo de implicação define um conjunto de conflito enquanto o corte separa as variáveis de decisão da contradição.

Todo nó com uma aresta saindo cruzando o corte faz parte do conjunto de conflito.

Após a identificação de um conjunto de conflito, a cláusula de conflito é calculada a partir da negação da valoração do conjunto de conflito

Assim se ele for {A 7→ 1, B 7→ 0, C 7→ 0}, a cláusula de conflito é {¬A, B, C} Uma cláusula de conflito gerada a partir de cortes que contem exatamente uma variável valorada nesse nível são asserting.

I Cláusulas asserting são necessárias para a completude

I O nível de asserção é o segundo maior nível da cláusula de conflito, -1 se não

(18)

Cortes

0/A 7→ 1

1/B 7→ 1

2/C 7→ 1

3/X 7→ 1

3/Y 7→ 1

3/Z 7→ 1

3/{}

5

3

3

5

7

7

7

(19)

Algoritmo DPLL+

D ← () . sequência vazia de decisões

Γ ← {} .nenhuma cláusula aprendida

whiletrue do

if Unit-resolution acha uma contradição em ∆, Γ, D then

if D = () then .contradição sem decisão

returnUNSAT

else .backtracking

α ←cláusula assertinda m ←nível de asserção de α

D ←primeiras m decisões de D . apagar decisões lm+1, . . .

Γ ← {α} ∪ Γ end if

else .sem contradição por resolução unitária

if l é um literal ∧ nem l nem ¬l são implicadas por resolução unitária (∆, Γ, D) then

D← D; l . nova decisão l em D

else

returnSAT end if

(20)

Exemplo final

∆ = 1 {A, B} 2 {B, C } 3 {¬A, ¬X , Y } 4 {¬A, X , Z } 5 {¬A, ¬Y , Z } 6 {¬A, X , ¬Z } 7 {¬A, ¬Y , ¬Z } 1 D = (), Γ = {} 2 Suponha que D = (A 7→1, B 7→ 1, C 7→ 1, X 7→ 1)

3 Cláusula de conflito {¬A, ¬X }de nível 0 4 Backtrackingao nível de asserção :

D = (A 7→1), Γ = {{¬A, ¬X }}

5 Resolução unitáriaacha um conflito, gerando

{¬A}com nível (-1).

6 Backtracking: D = (), Γ = {{¬A, ¬X }, {¬A}} 7 . . .

(21)

Exemplo final

∆ = 1 {A, B} 2 {B, C } 3 {¬A, ¬X , Y } 4 {¬A, X , Z } 5 {¬A, ¬Y , Z } 6 {¬A, X , ¬Z } 7 {¬A, ¬Y , ¬Z } 1 D = (), Γ = {} 2 Suponha que D = (A 7→1, B 7→ 1, C 7→ 1, X 7→ 1)

3 Cláusula de conflito {¬A, ¬X }de nível 0 4 Backtrackingao nível de asserção :

D = (A 7→1), Γ = {{¬A, ¬X }}

5 Resolução unitáriaacha um conflito, gerando

{¬A}com nível (-1).

6 Backtracking: D = (), Γ = {{¬A, ¬X }, {¬A}} 7 . . .

(22)

Exemplo final

∆ = 1 {A, B} 2 {B, C } 3 {¬A, ¬X , Y } 4 {¬A, X , Z } 5 {¬A, ¬Y , Z } 6 {¬A, X , ¬Z } 7 {¬A, ¬Y , ¬Z } 1 D = (), Γ = {} 2 Suponha que D = (A 7→1, B 7→ 1, C 7→ 1, X 7→ 1)

3 Cláusula de conflito {¬A, ¬X }de nível 0

4 Backtrackingao nível de asserção :

D = (A 7→1), Γ = {{¬A, ¬X }}

5 Resolução unitáriaacha um conflito, gerando

{¬A}com nível (-1).

6 Backtracking: D = (), Γ = {{¬A, ¬X }, {¬A}} 7 . . .

(23)

Exemplo final

∆ = 1 {A, B} 2 {B, C } 3 {¬A, ¬X , Y } 4 {¬A, X , Z } 5 {¬A, ¬Y , Z } 6 {¬A, X , ¬Z } 7 {¬A, ¬Y , ¬Z } 1 D = (), Γ = {} 2 Suponha que D = (A 7→1, B 7→ 1, C 7→ 1, X 7→ 1)

3 Cláusula de conflito {¬A, ¬X }de nível 0 4 Backtrackingao nível de asserção :

D = (A 7→1), Γ = {{¬A, ¬X }}

5 Resolução unitáriaacha um conflito, gerando

{¬A}com nível (-1).

6 Backtracking: D = (), Γ = {{¬A, ¬X }, {¬A}} 7 . . .

(24)

Exemplo final

∆ = 1 {A, B} 2 {B, C } 3 {¬A, ¬X , Y } 4 {¬A, X , Z } 5 {¬A, ¬Y , Z } 6 {¬A, X , ¬Z } 7 {¬A, ¬Y , ¬Z } 1 D = (), Γ = {} 2 Suponha que D = (A 7→1, B 7→ 1, C 7→ 1, X 7→ 1)

3 Cláusula de conflito {¬A, ¬X }de nível 0 4 Backtrackingao nível de asserção :

D = (A 7→1), Γ = {{¬A, ¬X }}

5 Resolução unitáriaacha um conflito, gerando

{¬A}com nível (-1).

6 Backtracking: D = (), Γ = {{¬A, ¬X }, {¬A}} 7 . . .

(25)

Exemplo final

∆ = 1 {A, B} 2 {B, C } 3 {¬A, ¬X , Y } 4 {¬A, X , Z } 5 {¬A, ¬Y , Z } 6 {¬A, X , ¬Z } 7 {¬A, ¬Y , ¬Z } 1 D = (), Γ = {} 2 Suponha que D = (A 7→1, B 7→ 1, C 7→ 1, X 7→ 1)

3 Cláusula de conflito {¬A, ¬X }de nível 0 4 Backtrackingao nível de asserção :

D = (A 7→1), Γ = {{¬A, ¬X }}

5 Resolução unitáriaacha um conflito, gerando

{¬A}com nível (-1).

6 Backtracking: D = (), Γ = {{¬A, ¬X }, {¬A}}

(26)

Exemplo final

∆ = 1 {A, B} 2 {B, C } 3 {¬A, ¬X , Y } 4 {¬A, X , Z } 5 {¬A, ¬Y , Z } 6 {¬A, X , ¬Z } 7 {¬A, ¬Y , ¬Z } 1 D = (), Γ = {} 2 Suponha que D = (A 7→1, B 7→ 1, C 7→ 1, X 7→ 1)

3 Cláusula de conflito {¬A, ¬X }de nível 0 4 Backtrackingao nível de asserção :

D = (A 7→1), Γ = {{¬A, ¬X }}

5 Resolução unitáriaacha um conflito, gerando

{¬A}com nível (-1).

6 Backtracking: D = (), Γ = {{¬A, ¬X }, {¬A}} 7 . . .

(27)

1 Provadores SAT

(28)

Teoria de primeira ordem

Definição

Uma teoria de primeira ordem T é definida por

uma assinatura Σ: um conjunto de constantes, funções e símbolos de predicados

um conjunto de axiomas A, um conjunto de fórmulas de primeira ordem nas quais só constantes, funções e predicados de Σ aparecem.

Uma Σ-fórmula contem constantes, funções e predicados de Σ bem como conectivos lógicos e quantificadores.

(29)

Igualdade

1 ∀x x = x

2 ∀x, y x = y ⇒ y = x

3 ∀x, y , z x = y ∧ y = z ⇒ x = z

4 para todo inteiro positivo n e símbolo de função f de aridade n

∀¯x , ¯y ,V

ixi = yi ⇒ f (¯x ) = f (¯y )

5 para todo inteiro positivo n e símbolo de predicado p de aridade n

∀¯x , ¯y ,V

(30)

Aritmética de Peano

Assinatura

ΣPA= {0, 1, +, ∗, =}

Axiomas

1 ∀x ¬(x +1 = 0) 2 ∀x, y x +1 = y + 1 ⇒ x = y 3 F (0) ∧ ∀x; (F (x) ⇒ F (x + 1)) ⇒ ∀x F (x) 4 ∀x x +0 = x 5 ∀x, y (x + (y +1) = (x + y) + 1) 6 ∀x x ∗0 = 0 7 ∀x, y x ∗ (y +1) = x ∗ (y + x)

(31)

Interpretação e decidibilidade

Interpretação: α

I αI[0] . =0N αI[1] . =1N αI[+] . = +N αI[∗] . = ∗N αI[=]==. N

Decidibilidade

Satisfazibilidade e validade em TPA é indecidível.

O primeiro teorema de incompletude de Gödel implica que a aritmética de Peano não captura a "aritmética verdadeira".

(32)

Aritmética de Presburger

Assinatura

ΣN= {0, 1, +, =}

Axiomas

1 ∀x ¬(x +1 = 0) 2 ∀x, y x +1 = y + 1 ⇒ x = y 3 F (0) ∧ ∀x; (F (x) ⇒ F (x + 1]) ⇒ ∀x F (x) 4 ∀x x +0 = x 5 ∀x, y (x + (y +1) = (x + y) + 1)

Observação sobre indução

(33)

Interpretação e decidibilidade

Interpretação : α

I αI[0] . =0N αI[1] . =1N αI[+] . = +N αI[=] . ==N

Decidibilidade (Presburger)

TNé decidível.

(34)

Usar a aritmética de Presburger para Z

Considere a fórmula F0= ∀w , x ∃y , z (x +2y − z − 13 > −3w − 5)

Introdução de diferenças

F1= ∀wn, wp, xn, xp∃yn, yp, zn, zp (xp− xn+2(yp− yn) − (zp− zn) −13 > −3(wp− wn) −5)

Eliminação de −

F2= ∀wn, wp, xn, xp∃yn, yp, zn, zp $(xp + 2yp+ zn) + 3wp + 5 > xn+ 2yn + zp + 3wn + 13 $

Eliminação de ∗

F3= ∀wn, wp, xn, xp∃yn, yp, zn, zp∃u ¬(u =0) ∧ (xp+ yp+ yp+ zn+ wp+ wp+ wp+ u =

(35)
(36)

Eliminação dos quantificadores

Admissibilidade

Uma teoria T admite eliminação dos quantificadores se existir um algoritmo que, dado uma Σ-fórmula F , calcula uma fórmula G sem quantificadores

T-equivalente a F .

Exemplo

Seja F = ∃x · 2x = y.

Se F for uma ΣQ-fórmula, G = >

Se F for uma ΣZ-fórmula, G =??

Predicado de divisibilidade

(37)

Método de Cooper

Objetivo

A entrada uma cΣZ-fórmula ∃x F (x), com F uma fórmula sem quantificador, mas com outras variáveis livres que x.

O algoritmo vai construir uma cΣZ-fórmula sem quantificador c TZ-equivalente a ∃x F (x).

Etapa 1

Calcular a NNF de F (x), chamada de F1(x ). ∃x F (x) ≡ c TZ ∃x F1(x )

(38)

Método de Cooper (etapa 2)

Reescrita de literais

1 s = t → s < t +1 ∧ t < s + 1 2 ¬(s = t) → s < t ∨ t < s 3 ¬(s < t) → t < s +1

Análise da saida

A saída ∃x F2(x ) ≡cT

Z ∃x F1(x )e contem só literais da forma

s < t, k|t ou ¬(k|t)

Exemplo

(39)

Método de Cooper (etapa 3)

Descrição

Reunir os termos contendo x, para que os literais tiverem a forma hx < t, t < hx, k|hx + t ou ¬(k|hx + t) com x ¬∈ t

Saída

∃x F3(x ) ≡Tc

Z ∃x F2(x )

Exemplo

(40)

Método de Cooper (etapa 4)

Descrição

Seja δ = mmc{h|hcoeficientedexemF3(x )}. 1 hx < t → δx < h0t h0h = δ 2 t < hx → h0t < δx h0h = δ 3 k|hx + t → h0k|δx + h0t h0h = δ 4 ¬(k|hx + t) → ¬(h0k|δx + h0t) h0h = δ

Análise da saída

h0k| · ¬k|· A fórmula obtida é F0 3 1 Seja F ”3= F30{δx 7→ x0} 2 ∃x0F4(x0) = ∃x0F ”3(x0) ∧ δ|x0

(41)

Método de Cooper (etapa 5)

Descrição

Construir a projeção esquerda infinita F−∞(x0)de F4(x0)

Reescrita de

1 x0< a → > 2 b < x0→ ⊥

Seja

I γ = mmc{h dos literais h|x0+ c, k dos literais k|x0+ d }

I B = {b dos literais (B)}

Construir F5=Wγj =1F−∞(j ) ∨Wγj =1

W

(42)

Exercícios

Assunto

Transforme com o método de Cooper as fórmulas abaixo:

1 ∃x 3x − 2y + 1 > −y ∧ 2x − 6 < z ∧ 4|5x + 1

2 ∃x 2x = y

(43)

Resumo

1 Provadores SAT

(44)

Referências

Armin Biere, Marijn Heule, Hans van Maaren, and Toby Walsh (eds.), Handbook of Satisfiability, IOS Press, 2009.

Aaron R. Bradley and Zohar Manna, The Calculus of Computation: Decision Procedures with Applications to Verification, Springer-Verlag New York, Inc., Secaucus, NJ, USA, 2007.

Daniel Kroening and Ofer Strichman, Decision Procedures: An Algorithmic Point of View, 1 ed., Springer Publishing Company, Incorporated, 2008.

(45)

Perguntas ?

Referências

Documentos relacionados

Se o show da banda gospel Diante do Trono no Alemão suscita inúmeras questões sobre a relação entre religião e pacificação, e o Programa de TV Papo de Polícia abre outra

Assim, este estudo tem como objetivo investigar as características anatômicas, bem como verificar a estrutura da parede celular, teores de silício, lignina, e

INDICADOR  1.4  –  Índice  de  satisfação  dos  usuários  de  serviços  sobre  legislação  do  empregado doméstico.  Resultado alcançado: ·  Meta 9,00

Estudos já ressaltam a importância dos polaxâmeros na liberação controlada de substâncias, como um estudo realizado por Ricci e colaboradores (2005) no qual desenvolveram

A partir deste conjunto de informações, os procedimentos serão distintos de acordo com a confirmação, ou não, do caso suspeito e da exposição, ou não, ao

No entanto, como ele observa, &#34;como poderia o uso de encantos e encantamentos para curar doenças não ser sobre fantasmas e espíritos?&#34; Em vez disso, ele somatiza a

coordenação de programas e projetos de ensino, (itens “a” até “l” da tabela acima), deverá ser igual ou inferior à soma da carga horária semanal de aulas com a carga

O presente estudo, realizado em um Hospital Maternidade no Oeste do Paraná, foi executado com o objetivo de identificar os processos do setor de compras da empresa e