Vasile Alaiba <alaiba@info.uaic.ro> http://profs.info.uaic.ro/~alaiba Facultatea de Informatic, Universitatea Al.I.Cuza Iai
Sintaxa LP Fie o mulime de variabile propoziionale, A = {A 1 , A 2 , }, mulimea conectorilor logici C = {(, v, .} i P = { ( , ) } mulimea parantezelor. Formulele vor fi cuvinte peste alfabetul L = A U C U P Sintaxa LP Baza (formulele elementare sunt formule). A _ LP . Pas constructiv. (i) Dac F e LP atunci (( F) e LP. (ii) Dac F 1 , F 2 e LP atunci ( F 1 v F 2 ) e LP. (iii) Dac F 1 , F 2 e LP atunci ( F 1 . F 2 ) e LP. (iv) Dac F e LP atunci (F) e LP.
Arborele asociat unei formule S se construiasc arborele asociat formulei: A \/ B /\ ~C ~B /\ (C \/ B /\ A) B -> A /\ ~B \/ A
Mulimea subformulelor Baza. F = A e A. Atunci subf(F) = {A}. Pas constructiv. (i) F = (( F 1 ). Atunci subf(F) = subf(F 1 ) U { (( F 1 ) }. (ii) F = (F 1 . F 2 ). Atunci subf(F) = subf(F 1 ) U subf(F 2 ) U { (F 1 . F 2 ) }. (iii) F = (F 1 v F 2 ). Atunci subf(F) = subf(F 1 ) U subf(F 2 ) U { (F 1 v F 2 ) }. (iv) F = (F 1 ). Atunci subf(F) = subf(F 1 ) U { (F 1 ) }
Mulimea subformulelor S se construiasc mulimea subformulelor asociate formulei: A \/ B /\ ~C B -> A /\ ~B \/ A
Semantica LP Orice funcie S, S : A B se numete asignare. Pentru fiecare asignare S exist o unic extensie a acesteia, S : LP B (numit structur sau interpretare), care satisface: (i) S(A) = S(A), pentru fiecare A e A. (ii) S((( F)) = S(F) , pentru fiecare F e LP. (iii) S((F 1 . F 2 ) ) = S(F 1 ) S(F 2 ), pentru fiecare F 1 , F 2 e LP. (iv) S((F 1 v F 2 ) ) = S(F 1 ) + S(F 2 ), pentru fiecare F 1 , F 2 e LP.
Exerciiu Fie F = A \/ B /\ ~C Determinati o structur S astfel nct S(F) = 1 Determinati o structur S astfel nct S(F) = 0 Satisfiabilitate O formul F e LP se numete satisfiabil dac exist mcar o structur S pentru care S(F) = 1 O formul este valid (tautologie) dac pentru orice structur S, S(F) = 1 O formul este nesatisfiabil (contradicie) dac pentru orice structur S, S(F) = 0
Forme normale n LP Form normal conjunctiv (FNC) Clauze Form normal conjunctiv (FNC) O formul F e LP se afl n FNC dac este o conjuncie de disjuncii de literali, adic o conjuncie de clauze. Simbolic:
| | m i L L F j i n j j i n j m i i i e v = v . = = = = , C notam , ) ( , 1 i , 1 1 Clauze (1) Clauz Este orice disjuncie (finit) de literali. Clauz Horn Este o clauz care are cel mult un literal pozitiv. Clauz pozitiv Este o clauz care conine doar literali pozitivi Clauze (2) Clauz negativ Este o clauz care conine doar literali negativi. Clauz definit (definite clause) Clauz Horn pozitiv Conine exact un literal pozitiv Formule Horn O formul n FNC n care toate clauzele sunt Horn Scrierea implicaional ~A \/ ~B \/ C== A /\ B -> C ~A \/ ~B == A /\ B -> 0 A == 1 -> A
Exerciiu S se aplice algoritmul Horn formulei: F = ( A v ( D ) . ( ( C v ( A v D ) . ( ( A v ( B ) . D . ( E F = ((D \/ A) /\ ((A \/ B) /\ A /\ ((B \/ C) /\ ((C \/ D)
Rezoluie n LP Fie clauzele C 1 , C 2 , R. R = Res L (C 1 , C 2 ) (R este rezolventul lui C 1 , C 2 ), dac exist un literal L e C 1 astfel nct ~L e C 2 i R = (C 1 \ {L}) U (C 2 \ { ~L })
F este nesatisfiabil dac i numai dac e Res * (F).
Exerciii Gsii o respingere pentru formula: F = {{A, B, (C}, {(A}, {A, B, C}, {A, (B}}
Sintaxa LP1 (1) variabile (funcionale) X = {x 1 , x 2 , } simboluri predicative P = {P 0 , P 1 , } variabile predicative P 0
simboluri funcionale F = {F 0 , F 1 , ...}: constante (funcionale) F 0
conectori logici C 1 = {(, v, .} cuantificatori C 2 = universali {(x) | x e X} U existeniali {(- x) | x e X} paranteze P = { (, ) } Sintaxa LP1 (2) Alf = X U (U P i ) U (U F i ) U C 1 U C 2 U P T este mulimea termilor (funcionali) Baza: X _ T F o _ T Pas constructiv: Pentru fiecare n e N*, f e F n , t 1 , t 2 , , t n e T, avem f(t 1 , t 2 , , t n ) e T. Sintaxa LP1 (3) LP1 este dat constructiv Baza: At mulimea formulelor atomice P o _ At Pentru fiecare n e N*, P e P n , t 1 , t 2 , , t n e T, avem P(t 1 , t 2 , , t n ) e At. Pas constructiv: dac F, F 1 , F 2 e LP1 atunci: ( (F) e LP1 (F 1 ) . (F 2 ) e LP1, (F 1 ) v (F 2 ) e LP1 (x)(F) e LP1, (- x)(F) e LP1 (F) e LP1 Exerciii Identificai simbolurile care apar n formule. Construii mulimea subformulelor i arborele asociat. Formulele: (x)(P(x, a) Q(y) (z)P(z, x)) (x)(z)(P(x, y, z) Q(x)) (x)(Q(X) R(f(x, z), a)) Variabil liber i legat Fie F e LP1, x e X: x apariie legat dac este parte a unei subformule G a lui F de forma G 1 = (x)(G) G 2 = (-x)(G) x apariie liber n caz contrar. Substituii Substituie elementar este o pereche de tipul [x/t], unde x e X, t e T. Prin substituie vom nelege o secven finit de forma s = [x 1 /t 1 ][x 2 /t 2 ] [x n /t n ], neN, x i eX, t i eT. O substituie s se aplic unei formule F, rezultnd o formul G, notat (F)s, care se obine din F prin nlocuirea fiecrei apariii libere a variabilei x i cu termul t i , n ordinea dat n s.
Tipuri de substituii Substituia elementar [x/t] este permis pentru F dac t nu conine variabile libere care au apariii legate n F. O substituie s este normalizat pentru F dac (F)s = (F)s, pentru fiecare s care este obinut din s printr-o permutare a componentelor acesteia, deci ordinea de aplicare a substituiilor elementare componente nu conteaz. Substituia vid, notat [], este o secven de 0 substituii elementare i nu face nicio transformare n formula F creia i este aplicat, deci (F)[] = F.
Exerciii S se aplice substituia s = [x/f(z)][z/a][y/z] formulelor: F 1 = (x)(P(x, a) Q(y) ( (z)P(z, x)) F 2 = (x)(z)(P(x, y, z) (Q(x)) (x)(Q(x) R(f(x, z), a)) F 3 = P(x) (P(y) (z)(x)Q(f(z), x) F 4 = (x)P(x, f(x)) Q(x) (P(a, f(z)) F 5 = (x)(y)(P(f(x, a), f(a, y)))
Structur: S = <U S , I S > U S este o mulime nevid I S : X U P U F U S U [U S *
B] U [U S * U S ] Dac x e X, atunci
I S (x) e U S Dac P e P n , atunci I S (P) :
B Dac F
e F n , atunci I S (F) : U S n
U S Semantica LP1 (1) Semantica LP1 (2) Fie S = <U S , I S >. Extensia sa este: S : X U P U F U T U LP1 U S U [U S *
B] U [U S * U S ] U B Pentru fiecare a e X U P U F : S(a) = S(a) Pentru fiecare n e N * , t 1 , t 2 , , t n e T , f e F n , astfel nct t = f(t 1 , t 2 , , t n ) S(t) = S(f)(S(t 1 ), S(t 2 ), ... , S(t n )) (eU S ) Semantica LP1 (3) Baza. Fie A e At . A = P e P 0
S = S(P) e B A = P(t 1 , t 2 , , t n ), n e N * , t 1 , t 2 , , t n e T S (P) = S(P)(S (t 1 ), S (t 2 ), ... , S (t n )) e B Semantica LP1 (4) Pas constructiv F = (( F 1 ). Atunci S(F) = S(F 1 ) F = (F 1 . F 2 ). Atunci S(F) = S(F 1 ) S(F 2 ) F = (F 1 v F 2 ). Atunci S (F) = S(F 1 ) + S(F 2 ) F = (x)(G). Atunci S(F) = 1 ddac pentru fiecare u e U S avem S [x/u] (G) = 1 F = (-x)(G). Atunci S(F) = 1 ddac exist mcar un u e U S astfel nct S [x/u] (G) = 1 Exerciii Pentru formula F determinai o structur S 1 = <U S , I S > astfel nct S 1 (F) = 0 i o alt structur S 2 astfel nct S 2 (F) = 1. F = P(x) (P(y) (z)(x)Q(f(z), x) Aplicai substituia s = [x/f(z)][z/b] formulei F, apoi determinai o structur S astfel nct S((F)s)=0 F = (x) (y)(P(x, a) Q(y) (x)P(z, x)) Forme normale n LP1 Forma normal rectificat (FNR) O formul F e LP1 se numete rectificat dac nu conine variabile care apar att libere ct i legate i nu are cuantificatori care s lege aceeai variabil, dar pe poziii diferite n formul.
Forme normale n LP1 Forma normal prenex (FNP) O formul F e LP1 este n form normal prenex dac F = ( 1 y 1 ) ( n y n )G, unde n e N, i e {-, }, i e [n], iar y 1 , , y n sunt toate variabilele distincte care apar (liber) n G. n plus, G nu mai conine cuantificatori.
Forme normale n LP1 Forma normal Skolem (FNS) O formul F e LP1 este n form normal Skolem (FNS, pe scurt), dac are aspectul F = (x 1 ) (x k )G, unde G nu mai conine cuantificatori (este matricea lui F), iar x 1 , x 2 , , x k sunt variabile distincte i reprezint exact variabilele care apar n G
Forme normale n LP1 Form normal Skolem clauzal (FNSC) O formul F e LP1 este n FNSC dac este n FNS i matricea sa este n FNC (forma normal conjuctiv) ntr-un sens similar cu LP (literalii reprezentnd acum formule atomice din LP1 sau negaii ale lor).
Exerciiu S se aduc la FNSC formula: F = (x) (y)(P(x,z) Q(y) (z)(x)P(z, x)) F = (x)(P(x, y) (y)P(y, c))
Unificare Fie L = {L 1 , L 2 , ... , L k } o mulime finit, nevid, de literali din LP1. L este unificabil dac exist o substituie s astfel nct card((L)s) = 1.
s se numete unificator pentru L.
O substituie s se numete cel mai general unificator (MGU) pentru o mulime unificabil L dac pentru fiecare unificator s exist o substituie sub astfel nct s = s sub.
Rezoluie n LP1 Fie C 1 , C 2 i R clauze n LP1, C 1 C 2 . R se numete rezolvent pentru C 1 i C 2 dac: (i) Exist substituiile s 1 i s 2 astfel nct (C 1 )s 1 i (C 2 )s 2 nu au variabile comune. (ii)Exist L 1 , L 2 , ... , L m e (C 1 )s 1 i L 1 , L 2 , ... , L n e (C 2 )s 2 astfel nct mulimea: L = {( L 1 , ( L 2 , ... , ( L m , L 1 , L 2 , ... , L n } este unificabil. (iii)Fie sub un cel mai general unificator pentru L. R = (((C 1 )s 1 \ {L 1 , L 2 , ... , L m }) U ((C 2 )s 2 \ {L 1 , L 2 , ... , L n }))sub. Exerciiu Demonstrai utiliznd rezoluia c urmtoarea formul din LP1 este nesatisfiabil: F = (x)(y)(P(x,x)( ( P(x,g(y))Q(y)) (Q(f(a))) F = (x)(y)((( P(x) v ( P(f(c)) v Q(y)) . P(y) . (( P(g(b, x)) v ( Q(b)))
Tem curs Un puzzle logic este un joc, textual sau vizual, bazat pe deducie. Gsii un puzzle logic, scriei-l sub form de mulime de clauze n LP1 i cutai s l rezolvai folosind metoda rezoluiei.
Venii cu tema la curs pentru a o prezenta. Exemplu: Problema lui Einstein Sunt cinci case diferite, fiecare pictata in alta culoare. In fiecare casa locuieste o persoana de alta nationalitate, care prefera propria sa bautura, diferita de a celorlalti. Fiecare om are pe langa el un animal distinct si fumeaza o marca distincta de tigari. Exemplu: Problema lui Einstein Se fac urmatoarele afirmatii: 1. Englezul locuieste in casa rosie. 2. Suedezul are un caine. 3. Danezul bea ceai. 4. Casa verde este la stanga casei pictata in alb. 5. Persoana din casa verde bea cafea. Exemplu: Problema lui Einstein 6. Persoana care fumeaza Pall Mall creste pasari. 7. Persoana din casa galbena fumeaza Dunhill. 8. Persoana din casa din mijloc bea lapte. 9. Norvegianul locuieste in prima casa. 10. Persoana care fumeaza Blend locuieste in casa vecina celei unde se cresc pisici. Exemplu: Problema lui Einstein 11. Persoana care creste cai locuieste langa cel care fumeaza Dunhill. 12. Persoana care fumeaza Blue Master bea bere. 13. Germanul fumeaza Prince. 14. Norvegianul locuieste alaturi de casa vopsita in albastru. 15. Cel care fumeaza Blend este vecin cu persoana care nu bea decat apa. Exemplu: Problema lui Einstein Intrebarea este: