Sunteți pe pagina 1din 6

FMI, Info, Anul II, 2017-2018

Programare logică

Seminar 5
Rezoluţie

Teorie pentru S5.1:


Rezoluţia ı̂n calculul propoziţional

• În calculul propoziţional un literal este o variabilă sau negaţia unei variabile.

literal := p | ¬p unde p este variabilă propoziţională

• O formulă este ı̂n formă normală conjunctivă (FNC) dacă este o conjuncţie de disjuncţii de
literali.

• Pentru orice formulă α din există o FNC αf c astfel ı̂ncât α  αf c .

• O clauză este o disjuncţie de literali.

• Observăm că o FNC este o conjuncţie de clauze.

• Clauza vidă  nu este satisfiabilă.

• Mulţimea de clauze vidă {} este satisfiabilă.

• Dacă ϕ este o formulă ı̂n calculul propoziţional, atunci


Vk Wni
ϕf c = i=1 j=1 Lij unde Lij sunt literali

• Ştim că:

ϕ este satisfiabilă dacă şi numai dacă

ϕf c este satisfiabilă dacă şi numai dacă

{{L11 , . . . , L1n1 }, . . . , {Lk1 , . . . , Lknk }} este satisfiabilă

1
• Regula Rezoluţiei păstrează satisfiabilitatea:

C1 ∪ {p}, C2 ∪ {¬p}
Rez
C1 ∪ C2
unde C1 , C2 clauze, iar p este variabila propoziţională astfel ı̂ncât
{p, ¬p} ∩ C1 = ∅ şi {p, ¬p} ∩ C2 = ∅.

• Algoritmul Davis-Putnam:
Intrare: o mulţime C de clauze

Se repetă următorii paşi:

– se elimină clauzele triviale


– se alege o variabilă p
– se adaugă la mulţimea de clauze toţi rezolvenţii obţinuti prin aplicarea Rez pe variabila
p
– se şterg toate clauzele care conţin p sau ¬p

Ieşire: dacă la un pas s-a obţinut , mulţimea C nu este satisfiabilă;


altfel C este satisfiabil

(S5.1) Folosind algoritmul Davis-Putnam, cercetaţi dacă următoarea mulţime de clauze din calculul
propoziţional este satisfiabilă:

C = {{v0 }, {¬v0 , v1 }, {¬v1 , v2 , v3 }, {¬v3 , v4 }, {¬v4 }, {¬v2 }}

Teorie pentru S5.2:


Rezoluţia pentru clauze ı̂nchise ı̂n logica de ordinul I

• În logica de ordinul I un literal este o formulă atomică sau negaţia unei formule atomice.

literal := P (t1 , . . . , tn ) | ¬P (t1 , . . . , tn )

unde P ∈ R, ari(P ) = n, şi t1 , . . . , tn sunt termeni.

• Pentru un literal L vom nota cu Lc literalul complement.


De exemplu, dacă L = ¬P (x) atunci Lc = P (x) şi invers.

2
• O formulă ϕ este formă clauzală dacă

ϕ := ∀x1 . . . ∀xn ψ unde ψ este FNC

• Pentru orice formulă ϕ din logica de ordinul I există o formă clauzală ϕf c astfel ı̂ncât

ϕ este satisfiabilă dacă şi numai dacă ϕf c este satisfiabilă

• Pentru o formulă ϕ, forma clauzală ϕf c se poate calcula astfel:


(i) se determină forma rectificată
(ii) se cuantifică universal variabilele libere
(iii) se determină forma prenex
(iv) se determină forma Skolem
ı̂n acest moment am obţinut o formă Skolem ∀x1 . . . ∀xn ψ
(v) se determină o FNC ψ 0 astfel ı̂ncât ψ  ψ 0
(vi) ϕf c este ∀x1 . . . ∀xn ψ 0
• Fie C o clauză. Spunem că C 0 este o instaţă a lui C dacă există o substituţie θ : V → T rmL
astfel ı̂ncât C 0 = θ(C).
Spunem că C 0 este o instanţă ı̂nchisă a lui C dacă există o substituţie θ : V → TL astfel ı̂ncât
C 0 = θ(C) (C 0 se obţine din C ı̂nlocuind variabilele cu termeni din universul Herbrand)
• Fie C o mulţime de clauze. Definim

H(C) := {θ(C) | C ∈ C, θ : V → TL }
O mulţime de clauze C este nesatisfiabilă dacă şi numai dacă există o submulţime finită a lui
H(C) care este nesatisfiabilă.

H(C) este mulţimea instanţelor ı̂nchise ale clauzelor din C.


• Rezoluţia pe clauze ı̂nchise păstrează satisfiabilitaea

C1 ∪ {L}, C2 ∪ {¬L}
Rez
C1 ∪ C2
unde C1 , C2 clauze ı̂nchise, iar L este o formulă atomică ı̂nchisă astfel ı̂ncât {L, ¬L} ∩ C1 = ∅
şi {L, ¬L} ∩ C2 = ∅

(S5.2) Considerăm următoarea mulţime de clauze ı̂n logica de ordinul I:

C = { {¬P (f (a)), Q(y)}, {P (y)}, {¬Q(b)} }


Arătaţi că C nu este satisfiabilă prin următoarele metode:

3
1) Găsiţi o submulţime finită nesatisfiabilă lui H(C).

2) Găsiţi o derivare pentru  folosind rezoluţia pe clauze ı̂nchise.

Teorie pentru S5.3, S5.4:


Regula rezoluţiei pentru clauze arbitrare

• Regula rezoluţiei păstrează satisfiabilitatea:

C1 , C2
Rez
(σC1 \ σLit1 ) ∪ (σC2 \ σLit2 )

dacă următoarele condiţii sunt satisfăcute:

(i) C1 , C2 clauze care nu au variabile comune,


(ii) Lit1 ⊆ C1 şi Lit2 ⊆ C2 sunt mulţimi de literali,
(iii) σ este un cgu pentru Lit1 şi Litc2 , adică
σ unifică toţi literalii din Lit1 şi Litc2 .

• O clauză C se numeşte rezolvent pentru C1 şi C2 dacă există o redenumire de variabile


θ : V → V astfel ı̂ncât C1 şi θC2 nu au variabile comune şi C se obţine din C1 şi θC2 prin
Rez.

• Fie C o mulţime de clauze. O derivare prin rezoluţie din mulţimea C pentru o clauză C este
o secvenţă C1 , . . . , Cn astfel ı̂ncât Cn = C şi, pentru fiecare i ∈ {1, . . . , n}, Ci ∈ C sau Ci este
un rezolvent pentru două cauze Cj , Ck cu j, k < i.

• O mulţime de clauze C este nesatisfiabilă dacă şi numai dacă există o derivare a clauzei vide
 din C prin Rez.

(S5.3) Găsiţi doi rezolvenţi pentru următoarele clauze:

C1 = {P (x), P (g(y)), Q(x)}


C2 = {¬P (x), R(f (x), a)}
unde P, Q, R sunt simboluri de relaţii, a este o constantă, iar x, y sunt variabile.

(S5.4) Găsiţi o derivare prin rezoluţie a  pentru următoarea mulţime de clauze:


C1 = { ¬P (x), R(x, f (x)) }
C2 = { ¬R(a, x), Q(x) }

4
C3 = {P (a)}
C4 = {¬Q(f (x))}
unde P, Q, R sunt simboluri de relaţii, f este un simbol de funţie de ariatate 1, a este o constantă,
iar x, y sunt variabile.

Teorie pentru S5.5, S5.6:


Deducţie şi satisfiabilitate

• Dacă ϕ1 , . . . , ϕn , ϕ sunt formule (ı̂n logica propoziţională sau calculul cu predicate) atunci:
{ϕ1 , . . . , ϕn }  ϕ este echivalent cu
 ϕ1 ∧ . . . ∧ ϕn → ϕ este echivalent cu
 ¬ϕ1 ∨ . . . ¬ϕn ∨ ϕ este echivalent cu
ϕ1 ∧ . . . ∧ ϕn ∧ ¬ϕ este satisfiabilă.
• În particular,  ϕ dacă şi numai dacă există o derivare pentru  din forma clauzală a lui ¬ϕ.
• Pentru a cerceta satisfiabilitatea este suficient să studiem forme clauzale.

(S5.5) Folosind rezoluţia, arătaţi că următoarea formulă este validă ı̂n logica de ordinul I:
ϕ := (∀x (P (x) → Q(x))) → ((∃x P (x)) → (∃x Q(x)))
Indicaţie: se găseşte o derivare pentru  din forma clauzală a lui ¬ϕ.
C = { {¬P (x), Q(x)}, {P (c)}, {¬Q(x)} }
Derivare prin rezoluţie pentru :
C1 = {¬P (x), Q(x)}
C2 = {P (c)}
C3 = {Q(c)}
C4 = {¬Q(x)}
C5 =  Rez, C3 , C4 , θ = {x ← c}

(S5.6) Avem următorul raţionament:


”Există elevi cărora le plac toate lecturile. Nici unui elev nu ı̂i plac lucrurile plictisitoare. În
consecinţă, nicio lectură nu este plictisitoare.”
Definim predicatele
E(x) ”x este elev”
L(x) ”x este lectură”
P (x) ”x este plictisitor”
R(x, y) ”x place y”

5
1) Folosind predicatele E, L, P, R, exprimaţi fiecare afirmaţie ı̂n logica de ordinul I.

2) Demonstraţi prin rezoluţie că raţionamentul este corect.

S-ar putea să vă placă și