Sunteți pe pagina 1din 5

FMI, Mate-Info, Anul III

Programare logică

Recapitulare

(S1.1)
Fie următoarea funcţie:
f1 : P ({1, 2, 3}) → P ({1, 2, 3}), f1 (Y ) = Y ∪ {1}
Indicati punctele fixe ale acesteia si cel mai mic punct fix.

Demonstraţie: Se observă că punctele fixe ale lui f1 sunt submulţimile Y ale lui {1, 2, 3}
care ı̂l conţin pe 1 (dacă 1 6∈ Y , atunci f1 (Y ) = Y ∪ {1} si Y 6= Y ∪ {1}). Deci punctele fixe
ale lui f1 sunt {1}, {1, 2}, {1, 3}, {1, 2, 3}. Evident, cel mai mic punct fix este {1}.

(S1.2) Fie S o mulţime de clauze definite propoziţionale. Fie A mulţimea variabilelor


propoziţionale p1 , p2 , ... care apar ı̂n S, şi Baza = {pi | pi ∈ S} mulţimea clauzelor unitate
din S. Definim funcţia fS : P (A) V → P (A) prin:
fS (Y ) = Y ∪ Baza ∪ {a ∈ A | ( 1≤i≤n si → a) ∈ S, s1 , ..., sn ∈ Y }
Să se arate că fS este monotonă.

Demonstraţie:
Fie Y1 ⊆ A si Y2 ⊆ A cu proprietatea că Y1 ⊆ Y2 . Având ı̂n vedere definiţia monotonicităţii,
avem de arătat Vcă fS (Y1 ) ⊆ fS (Y2 ). Fie următoarele mulţimi:
Z1 = {a ∈ A | (V1≤i≤n si → a) ∈ S, s1 ∈ Y1 , ..., sn ∈ Y1 }
Z2 = {a ∈ A | ( 1≤i≤n si → a) ∈ S, s1 ∈ Y2 , ..., sn ∈ Y2 }
Deci:
fS (Y1 ) = Y1 ∪ Baza ∪ Z1
fS (Y2 ) = Y2 ∪ Baza ∪ Z2
Acum,
V deoarece Y1 ⊆ Y2 , mai avem de arătat că Z1 ⊆ Z2 . Fie a ∈ Z1 . Atunci există
( 1≤i≤n si → a) ∈ S şi s1 , ..., sn ∈ Y1 . Deci s1 , ..., sn ∈ Y2 , de unde rezultă că a ∈ Z2 .

(S1.3) Calculaţi cel mai mic punct fix pentru funcţia fS pentru următoarea mulţime de
clauze propoziţionale:
S = {x1 ∧ x2 → x3 , x4 ∧ x2 → x5 , x2 , x6 , x6 → x1 }

1
Demonstraţie:
Aşa cum putem vedea, A = {x1 , ..., x6 }, Baza = {x2 , x6 }. Deoarece fS este continuă,
aplicând Teorema Knaster-Tarski vom afla cel mai mic punct fix:
fS (∅) = {x2 , x6 }
fS ({x2 , x6 }) = {x2 , x6 , x1 }
fS ({x2 , x6 , x1 }) = {x2 , x6 , x1 , x3 }
fS ({x2 , x6 , x1 , x3 }) = {x2 , x6 , x1 , x3 }
Deci cel mai mic punct fix este {x1 , x2 , x3 , x6 }.

(S1.4) Aplicaţi algoritmul de unificare pentru a găsi un unificator pentru termenii:

Demonstraţie:
V. cursul 4, ı̂ncepând cu slide-ul 36 (83 din 112).

(S1.5) Fie un limbaj de ordinul I cu următoarele proprietăţi: R = {P, R, Q}, cu ari(P ) = 1,


ari(R) = ari(Q) = 2. Aduceţi următoarea formulă la forma ei prenex corespunzătoare:
ϕ = ∀x, ∃y(R(x, y) → R(y, x)) → ∃xR(x, x).

Demonstraţie:

ϕ  ∀x∃y(R(x, y) → R(y, x)) → ∃zR(z, z)(redenumire variabile)


 ¬∀x∃y(¬R(x, y) ∨ R(y, x)) ∨ ∃zR(z, z)
 ∃x∀y(R(x, y) ∧ ¬R(y, x)) ∨ ∃zR(z, z)
 ∃z(∃x∀y(R(x, y) ∧ ¬R(y, x)) ∨ R(z, z))
 ∃z∃x(∀y(R(x, y) ∧ ¬R(y, x))) ∨ R(z, z))
 ∃z∃x∀y((R(x, y) ∧ ¬R(y, x)) ∨ (R(z, z)))

(S1.6) Fie un limbaj de ordinul I cu C = {b} si R = {P, R, Q}, cu ari(P ) = 1 si ari(R) =


ari(Q) = 2. Găsiţi forma Skolem pentru următoarea formulă prenex:
ϕ = ∀x∃y∀z∃w(R(x, y) ∧ (R(y, z) → (R(z, w) ∧ R(w, w))))

Demonstraţie:

2
ϕ1 = ∀x∀z∃w(R(x, f (x)) ∧ (R(f (x), z) → (R(z, w) ∧ R(w, w)))), (y 7→ f (x))
ϕ2 = ∀x∀z(R(x, f (x)) ∧ (R(f (x), z) → (R(z, g(x, z)) ∧ R(g(x, z), g(x, z))))), (w 7→ g(x, z))

(S1.7) Fie un limbaj de ordinul I cu F = {f, g}, ari(f ) = 2, ari(g) = 1, C = {b, c} şi
următoarea formulă:
ϕ = ∀x∀yP (c, f (x, b), g(y))
Construiţi universul şi expansiunea Herbrand pentru formula ϕ.

Demonstraţie:
Universul Herbrand al formulei ϕ:
T (ϕ) = {b, c, g(b), g(c), g(g(b)), g(g(c)), ..., f (b, c), f (b, g(b)), f (b, g(c)), f (g(c), b), f (g(c), g(c)), ...}
Expansiunea Herbrand a formulei ϕ:
H(ϕ) = {P (c, f (b, b), g(b)), P (c, f (b, b), g(c)), P (c, f (c, b), g(b)), P (c, f (g(b), b), g(g(g(b)))), ...}

(S1.8)
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 }}

Demonstraţie:
Pasul 1.
Alegem variabila v0 şi selectăm C0v0 := {{v0 }}, C0¬v0 = {{¬v0 , v1 }}.
Mulţimea rezolvenţilor posibili este R0 := {{v1 }}.
Se elimină clauzele ı̂n care apare v0 , adăugăm rezolvenţii şi obţinem:

C1 := {{¬v1 , v2 , v3 }, {¬v3 , v4 }, {¬v4 }, {¬v2 }, {v1 }}

Pasul 2.
Alegem variabila v1 şi selectăm C1v1 := {{v1 }} şi C1¬v1 := {{¬v1 , v2 , v3 }}.
Mulţimea rezolvenţilor posibili este R1 := {{v2 , v3 }}.
Se elimină clauzele ı̂n care apare v1 , adăugăm rezolvenţii şi obţinem:
C2 := {{¬v3 , v4 }, {¬v4 }, {¬v2 }, {v2 , v3 }}.
Pasul 3.
Alegem variabila v2 şi selectăm C2v2 := {{v2 , v3 }}, C2¬v2 := {{¬v2 }}.
Mulţimea rezolvenţilor posibili este R2 := {{v3 }}.
Se elimină clauzele ı̂n care apare v2 , adăugăm rezolvenţii şi obţinem: C3 := {{¬v3 , v4 }, {¬v4 }, {v3 }}.
Pasul 4.

3
Alegem variabila v3 şi selectăm C3v3 := {{v3 }}, C3¬v3 := {{¬v3 , v4 }}.
Mulţimea rezolvenţilor posibili este R3 := {{v4 }}.
Se elimină clauzele ı̂n care apare v3 , adăugăm rezolvenţii şi obţinem: C4 := {{¬v4 }, {v4 }}.
Pasul 5.
Alegem variabila v4 şi selectăm C4v4 := {{v4 }}, C4¬v4 := {{¬v4 }}.
Mulţimea rezolvenţilor posibili este R4 := {}.
Se elimină clauzele ı̂n care apare v4 , adăugăm rezolvenţii şi obţinem: C5 := {}.
Deoarece C5 = {}, obţinem că mulţimea de clauze C nu este satisfiabilă.

(S1.9)
Fie 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:
(1) Găsind o submulţime finită nesatisfiabilă a lui H(C),
(2) Găsind o derivare pentru  folosind rezoluţia pe clauze ı̂nchise.

Demonstraţie:
(1) Mulţimea instanţelor ı̂nchise ale clauzelor din C este:
H(C) = {{¬Q(b)}, {¬P (f (a)), Q(a)}, {¬P (f (a)), Q(b)}, {P (a)}, {P (b)}, {P (f (a))}, · · · }
Următoarea submulţime a lui H(C) este nesatisfiabilă:
{{¬P (f (a)), Q(b)}, {P (f (a))}, {¬Q(b)}}
Nesatisfiabilitatea acestei mulţimi se demonstrează construind tabelul de adevăr corespunzător
acesteia (v. cursul 7, slide-ul 23) şi observând că formula (¬P (f (a))∨Q(b))∧P (f (a))∧¬Q(b)
este falsă indiferent ce valori de adevăr atribuim atomilor P (f (a)) şi Q(b).
(2) Avem următoarea derivare a lui  din mulţimea de clauze:
{¬P (f (a)), Q(b)}
{P (f (a))}
{Q(b)}
{¬Q(b)}


(S1.10) 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ă, x, y sunt variabile.

4
Demonstraţie: Se redenumeste C20 = {¬P (z), R(f (z), a)}
Rezolvent 1: L1 = {P (x)}, L2 = {¬P (z)}, substituţie θ = {z ← x},
rezolvent C = {P (g(y)), Q(x), R(f (x), a)}
Rezolvent 2: L1 = {P (x), P (g(y))}, L2 = {¬P (z)}, substituţie θ = {z ← g(y), x ← g(y)},
rezolvent C = {Q(g(y)), R(f (g(y)), a)}

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