Sunteți pe pagina 1din 29

BAZE DE CUNOS

 TINT
E

Sinteza 2-4:

Programe logice strati abile.


Semantica de model perfect.

Nicolae T
 andareanu

Facultatea de Matematica-Informatica,

Universitatea din Craiova,

str.A.I.Cuza 13, 1100-Craiova, Romania

e-mail: ntand@oltenia.ro

1
2 N. T
 andareanu: Sinteza 2-4

1 Obiective
Obiectivele acestui capitol sunt urmatoarele:

 ^ntelegerea conceptelor de program strati abil si local strati abil


 ^nsusirea conceptului de model perfect si semantica de model perfect

2 Programe normale strati abile


Vom considera ^n acest paragraf programe logice normale. ^In asemenea
programe subscopurile unei clauze pot literali negativi, adica o clauza
este de forma
A : :
B1 ; : : : ; Bk ; C1 ; : : : ; Cm

Considerarea negatiei ^n corpul unei clauze aduce modi cari importante
cu privire la semantica acestor programe. De exemplu, se stie ca intersectia
tuturor modelelor Herbrand ale unui program Horn este de asemenea un
model al programului respectiv. Programele normale nu se mai bucura de
aceasta proprietate, dupa cum se poate constata ^n urmatorul exemplu.
Consideram programul P de mai jos:
8
>
>
> p(x) :q(x)
>
<
> r (a)
>
>
>
: r(b)
N. T
 andareanu: Sinteza 2-4 3

Putem usor calcula modelele Herbrand minimale ale programului P daca


observam ca prima regula este echivalenta cu formula 8x[p(x) _ q(x)].
Deoarece U HP = fa; bg, se constata ca P admite urmatoarele patru
modele Herbrand minimale:

M1 = fr(a); r(b); p(a); p(b)g; M2 = fr(a); r(b); q(a); q(b)g

M3 = fr(a); r(b); p(a); q(b)g; M4 = fr(a); r(b); p(b); q(a)g


Intersectia acestor patru modele este multimea fr(a); r(b)g si^n consecin-
ta intersectia tuturor modelelor Herbrand ale programului P este aceeasi
multime, care nu este model pentru P . Astfel, programul P admite mod-
ele Herbrand minimale, dar nu admite cel mai mic model Herbrand.
Unul din conceptele importante ale programelor normale este strati-
abilitatea acestora, concept prezentat ^n de nitia care urmeaza. Ream-
intim ca am notat cu BI multimea simbolurilor de predicate built-in.

De nitia 2.1 Fie P un program normal. P se numeste strati abil


daca exista o partitie fP0 ; : : : ; Pk g a multimii SP n BI astfel ^nc^at pentru
ecare clauza r 2 P :

 daca p 2 SP n BI apare ^n concluzia lui r si q 2 SP n BI apare


negat ^n corpul lui r atunci

p 2 Pi; q 2 Pj =) i > j
4 N. T
 andareanu: Sinteza 2-4

 daca p 2 SP n BI apare ^n concluzia lui r si q 2 SP n BI apare


pozitiv ^n corpul lui r atunci

p 2 Pi; q 2 Pj =) i  j

Elementele P0 ; : : : ; Pk se numesc straturile programului P . Intuitiv vom


considera ca aceste straturi sunt asezate unele peste altele astfel ^nc^at
P0 este primul strat, P1 este al doilea strat si el este asezat deasupra

lui P0 si ^n general stratul Pi+1 este asezat imediat deasupra stratului
Pi . Adopt^ and aceasta ierarhie de straturi vedem ca de nitia de mai sus
poate citita si astfel:

 daca :q apare ^n corpul unei clauze si p este simbolul de predicat
care de neste atomul din concluzia clauzei atunci q trebuie sa apara
^ntr-un strat strict inferior stratului lui p

 daca q apare ^n corpul unei clauze si p este simbolul de predicat
care de neste atomul din concluzia clauzei atunci q poate sa apara
e ^ntr-un strat strict inferior stratului lui p, e ^n acelasi strat cu
p

Partitia fP0; : : : ; Pk g se mai numeste strati ere a programului P . Evi-


dent, daca P este strati abil atunci el poate admite mai multe strati eri
dupa cum se poate constata ^n exemplul care urmeaza.
N. T
 andareanu: Sinteza 2-4 5

Exemplul 2.1 Consideram programul P :


8
>
>
> p(x; y ) q (x); :r (y ); u(x; y ); v (y; y )
>
>
>
>
>
>
>
> r (x) u(x; x); :v (x; x)
>
>
>
>
>
>
>
> u(a; a)
<
> u(b; a)
>
>
>
>
>
> v (a; a)
>
>
>
>
>
>
> r (a)
>
>
>
>
>
: q (b)
Consideram straturile P0 = fu; v; qg, P1 = frg, = fpg. Multimea
P2

fP0 ; P1; P2g este o strati ere a programului P . Evident P0 = fu; vg, P1 =
frg, P2 = fp; qg ne ofera o alta strati ere pentru acelasi program.
Exista programe normale care nu admit strati eri. De exemplu, progra-
mul 8
>
>
> p(x) :q(x)
>
>
>
>
>
>
< q (x) :p(x)
>
>
> r (a)
>
>
>
>
>
: r(b)
nu admite strati eri. Explicatia consta ^n faptul ca ecare din simbolurile
p; q trebuie sa se gaseasca ^ntr-un strat superior celuilalt simbol, dupa
cum se poate constata din primele doua clauze ale programului.
^In cele ce urmeaza vom prezenta o conditie necesara si su cienta
pentru ca un program normal sa e strati abil.
6 N. T
 andareanu: Sinteza 2-4

De nitia 2.2 Fie P un program normal si SP multimea simbolurilor de


predicate care apar ^n P . Graful de dependent
a atasat programului
P este graful directionat etichetat GP = (V; E ) unde multimea nodurilor
este V = SP n BI , iar arcele sunt de nite astfel: (q; p) 2 E daca si
numai daca q apare simplu sau negat ^n corpul unei clauze, iar p apare ^n
concluzia clauzei respective. Daca ^n corpul clauzei apare q pozitiv atunci
arcul este etichetat cu +; daca ^n corp apare :q atunci arcul (q; p) este
etichetat cu .

Propozitia 2.1 Un program normal P este strati abil daca si numai
daca graful de dependen- ta GP nu contine cicluri care sa aiba arce neg-
ative.

Demonstratie.
Presupunem ca GP contine un ciclu de la p la p care sa contina cel putin
un arc negativ. Notam cu (a1; : : : ; an) acest ciclu, deci a1 = an = p. Con-
form presupunerii exista i 2 f2; : : : ; n 1g astfel ^nc^at arcul (ai 1; ai)
sa e un arc negativ. Prin absurd presupunem ca P este un program
strati abil. Notam cu Pj1 , : : :, Pjn 1 straturile la care apartin respec-
tiv elementele a1; : : : ; an 1. Din de nitia strati abilitatii rezulta ca j1 
: : :  ji 1 < ji  : : :  j1 , ceea ce este fals. Aceasta ne arat a ca pre-
supunerea facuta nu este adevarata si prin urmare P nu este strati abil.
Sa presupunem acum ca GP nu contine cicluri cu arce negative. Avem
de analizat doua cazuri:
N. T
 andareanu: Sinteza 2-4 7

1) Cazul I: GP nu contine cicluri.


^In acest caz se poate obtine o strati ere daca se aplica urmatorul algo-
ritm:
 i := 0;
 notez cu Pi multimea nodurilor ^n care nu intra nici un arc; stergem
din graful GP toate nodurile din Pi ^mpreuna cu arcele care ies din
ele
 i := i + 1; repetam pasul anterior
2) Cazul II: GP contine cicluri.
Orice arc din GP este un arc pozitiv. Str^angem toate nodurile unui ciclu
maximal s ^ntr-o multime As si ^nlocuim ciclul s cu un nod atasat lui As.
Obtinem ^n acest fel un graf fara cicluri, caruia ^i aplicam algoritmul de
la cazul I.
8 N. T
 andareanu: Sinteza 2-4

q dQ r di PPP+ -
6 QQ+ - P d u  v
d

Qs ?d)  + +
+  p k
Q 
+
 + Q- QQ /
sd td

Figura 1: Graf de dependenta


Ca exemplu de aplicare a acestui algoritm consideram urmatorul pro-
gram: 8
>
>
> p(x; y ) q (x); :r (y ); u(x; y )
>
>
>
>
>
>
>
> r (x) u(x; x); :v (x; x)
>
>
>
>
> q (x) s(x)
>
>
>
>
>
>
>
>
> s(x) p(x; a)
>
>
>
>
>
>
>
> p(x; a) :t(x)
<
> u(a; a)
>
>
>
>
>
> u(b; a)
>
>
>
>
>
>
>
> v (a; a)
>
>
>
>
>
>
> r (a)
>
>
>
>
> q (b)
>
>
>
>
>
>
: t(b) v (a; a)
Graful de dependenta atasat acestui program este desenat ^n Figura 1.
Aplic^and algoritmul prezentat mai sus obtinem urmatoarele straturi:
P0 = fu; vg
N. T
 andareanu: Sinteza 2-4 9

P1 = fr; tg

P2 = fp; q; sg

3 Modele perfecte
^In acest paragraf vom considera programe logice care pot sa contina
clauze Horn, clauze Horn generale si clauze disjunctive restrictionate,
adica clauze de forma:

A1 _ : : : _ An : :
B1 ; : : : ; Bm ; C1 ; : : : ; Ck

unde n > 0, m  0 si k  0. Programele logice care contin cel putin


o asemenea clauza se numesc programe disjunctive restrictionate. Denu-
mirea provine de la faptul ca:

^n concluzia clauzei este prezenta disjunctia si de aici provine den-
umirea de clauza disjunctiva

^n concluzia clauzei apar numai literali pozitivi si de aceea clauza
se numete restrictionata

Daca dam voie ca ^n concluzia clauzei sa apara si literali negativi atun-
ci clauza se numeste clauza disjunctiva, iar un program care contine o
asemenea clauza se numeste program disjunctiv. Un program Horn sau
10 N. T
 andareanu: Sinteza 2-4

Horn general poate privit ca un caz particular de program disjunctiv


restrictionat.
Pe baza Herbrand a unui program disjunctiv restrictionat se de nesc
doua relatii binare, care au implicatii majore ^n studiul semanticii aces-
tuia.

De nitia 3.1 Fie P un program disjunctiv restrictionat si BHP baza sa


Herbrand. Notam cu <P si P cele mai mici relatii binare pe BHP , care
satisfac urmatoarele proprietati:

 A <P B daca exista o instanta ground r a unei clauze r 2 P care


contine pe :B ^n corpul ei si pe A ^n concluzia clauzei instantiate

 A P B daca exista o instanta ground r a unei clauze r 2P


care contine pe B ^n corp si pe A ^n concluzie sau A si B se gasesc
^n concluzia clauzei r

 daca A P B si B P C atunci A P C

 daca A P B si B <P C sau A <P B si B P C atunci A <P C

 daca A <P B atunci A P B

Din punct de vedere intuitiv putem g^andi aceste relatii ca relatii de pri-
oritate ^ntre elementele bazei Herbrand. Astfel, prin scrierea A <P B
^ntelegem ca prioritatea atomului B este mai mare strict dec^at prioritatea
N. T
 andareanu: Sinteza 2-4 11

atomului A. Cu alte cuvinte, ^n calculul valorii de adevar a atomilor A


si B , atomul B are prioritate mai mare dec^at atomul A.
Observam ca daca aplicam de nitia de mai sus unui program Horn
P atunci relatia <P este vid a deoarece un asemenea program nu contine
literali negativi. ^In consecinta, numai relatia P are sens pentru un pro-
gram Horn. Aceeasi a rmatie este adevarata pentru un program disjunc-
tiv restrictionat care nu contine literali negativi.
Pentru simpli carea scrierii vom utiliza urmatoarea conventie: ^n loc
de simbolul <P sau P vom utiliza <, respectiv  atunci c^and nu exista
nici un pericol de confuzie. Evident cele doua relatii depind de programul
P si doua programe diferite P si Q cu aceeasi baza pot genera relatii <P
si <Q diferite; aceeasi observatie este adevarata pentru P si Q .
Remarca 3.1 Este usor de observat ca relatia < este tranzitiva. ^Intr-
adevar, daca A < B si B < C atunci A  B si B < C , deci A < C .

Exemplul 3.1 Consideram urmatorul program disjunctiv restrictionat


P: 8
>
>
> ( ) _ q(x) r(x); :s(x)
>
>
>
p x
>
>
< s(x) :r(x)
>
> r (a)
>
>
>
>
>
>
: r (b)
Baza Herbrand este multimea

BHP = fp(a); p(b); q(a); q(b); r(a); r(b); s(a); s(b)g


12 N. T
 andareanu: Sinteza 2-4
- r(a) 
6
- s(a) 

() 
p a
- q(a)

Figura 2: Relatii de baza <P si P


Direct din program se obtine diagrama din Figura 2, unde cu sageata
^ntrerupta am notat relatia , iar cu sageata simpla am desemnat relatia
<.

Rezulta urmatoarele relatii de baza:

( )  q(a); q(a)  p(a); p(a)  r(a)


p a

( )  r(a); p(a) < s(a); q(a) < s(a); s(a) < r(a)
q a

Aplic^and proprietatile de legatura dintre < si  obtinem:


( )  p(a); q(a)  q(a); p(a)  s(a); q(a)  s(a)
p a

( )  r(a); p(a) < r(a); q(a) < r(a)


s a

Evident obtinem relatiile corespunzatoare pentru p(b) si q (b):

( )  q(b); q(b)  p(b); p(b)  r(b)


p b
N. T
 andareanu: Sinteza 2-4 13

( )  r(b); p(b) < s(b); q(b) < s(b); s(b) < r(b)
q b

( )  p(b); q(b)  q(b); p(b)  s(b); q(b)  s(b)


p b

( )  r(b); p(b) < r(b); q(b) < r(b)


s b

De nitia 3.2 Fie P un program disjunctiv restrictionat, M1 si M2 doua


modele Herbrand distincte ale lui P . Spunem ca modelul M1 este prefer-
abil lui M2 si scriem M1 << M2 daca pentru ecare atom A 2 M1 n M2
exista un atom B 2 M2 n M1 astfel ^nc^at A < B .

Daca scriem prima clauza a programului din Exemplul 3.1 sub forma
8x[p(x) _ q(x) _ s(x) _ :r(x)]
atunci este usor de constatat ca M10 = fr(a); r(b); p(a); q(b)g si M20 =
fr(a); r(b); s(a); s(b)g sunt modele Herbrand pentru programul P si M10
<< M20 , dar nu avem M20 << M10 . ^Intr-adevar, avem:
M10 n M20 = fp(a); q(b)g
M20 n M10 = fs(a); s(b)g
()
p a <s a ( ), q(b) < s(b)
Observam de asemenea ca desi s(a) < r(a) si s(b) < r(b), totusi relatia
M20 << M10 nu are loc deoarece nu avem nici una din relatiile s(a) < p(a),

s(a) < q (b), s(b) < p(a), s(b) < q (b). Datorit
a simetriei rationamentului
14 N. T
 andareanu: Sinteza 2-4

^n a si b, observam ca M30 = fr(a); r(b); q(a); p(b)g este de asemenea un
model pentru programul P si M30 << M20 . Prin urmare exista mai multe
modele preferabile unui model dat.

De nitia 3.3 Fie P un program disjunctiv restrictionat. Un model Her-


brand M al lui P se numeste model perfect daca nu exista nici un
model Herbrand M 0 al lui P astfel ^nc^at M 0 << M .

Revenind la Exemplul 3.1 constatam ca M10 este un model perfect


deoarece orice model Herbrand al lui P trebuie sa contina pe r(a) si r(b)
si nu exista nici un atom x 2 BHP astfel ^nc^at x < p(a) si x < q(b). La
fel M30 este un model perfect. Acest exemplu ne arata ca exista programe
disjunctive restrictionate care admit mai multe modele perfecte.

4 Proprietati ale modelelor perfecte


Vom prezenta acum c^ateva proprietati ale modelelor perfecte.
Propozitia 4.1 Fie Pun program disjunctiv restrictionat, M1 ; M2 2
MH P ( ). Daca M1  M2 atunci M1 << M2 . ^In particular orice model
perfect este minimal.

Demonstratie. Vom observa la ^nceput ca daca M1 si M2 sunt modele


Herbrand ale unui program disjunctiv restrictionat P si M1  M2 atunci
M1 << M2 . ^Intr-adevar, daca M1  M2 atunci M1 n M2 = ; si deci
N. T
 andareanu: Sinteza 2-4 15

conditia ca M1 << M2 este satisfacuta.


Fie acum M un model perfect pentru P . Daca prin absurd presupun ca
M nu este minimal atunci exist a un model Herbrand M 0 al lui P astfel
^nc^at M 0  M . ^In conformitate cu proprietatea demonstrata mai sus vom
avea M 0 << M , ceea ce ^nseamna ca M nu este model perfect.
De nitia 4.1 Fie P un program disjunctiv restrictionat. Notam cu
P ERF P ( ) multimea tuturor modelelor Herbrand pentru P care sunt mod-
ele perfecte.

Propozitia 4.2 Fie P un program disjunctiv pozitiv, M1 ; M2 2 M H (P ).


Avem M1  M2 daca si numai daca M1 << M2 . ^In particular M 2
P ERF P ( ) daca si numai daca M este minimal.

Demonstratie. Implicatia de la st^anga la dreapta se obtine din Propo-


zitia 4.1. Sa presupunem acum ca M1 << M2 . Avem doua cazuri: ori
M1  M2 , ori M1 n M2 6= ;. Situatia M1  M2 este cea prezentat a ^n
enuntul propozitiei. Sa consideram a doua situatie. Daca A 2 M1 n M2
atunci din conditia M1 << M2 rezulta ca exista B 2 M2 n M1 astfel
^nc^at A < B . Acest lucru este imposibil deoarece programul P ind un
program disjunctiv pozitiv, relatia < este vida.
Am aratat ^n paragraful anterior ca exista programe disjunctive res-
trictionate care admit mai multe modele perfecte. Vom arata acum ca
exista programe disjunctive restrictionate care nu admit nici un model
16 N. T
 andareanu: Sinteza 2-4

perfect. Pentru aceasta vom considera programul P de mai jos:


8
>
>
> p(x) :q(x)
>
>
<
>
> q (x) :p(x)
>
>
>
: r(a)

Avem BHP = fp(a); q(a); r(a)g. Evident M1 = fp(a); r(a)g si M2 =


fq(a); r(a)g sunt modele Herbrand minimale pentru P . Avem p(a) < q(a)
si q(a) < p(a) deci M1 << M2 si M2 << M1. Asadar nici unul din
modelele M1 , M2 nu este model perfect. Deoarece orice model perfect
este minimal si nu exista alte modele minimale pentru programul P ,
rezulta ca P nu admite modele perfecte.

5 Programe disjunctive restrictionate strat-


i abile. Semantica de model perfect.
^In acest paragraf vom de ni strati abilitatea programelor disjunctive
restrictionate si vom caracteriza proprietatea de strati abilitate prin in-
termediul unor relatii binare.

De nitia 5.1 Fie P un program disjunctiv restrictionat si B = (SC ; SF ;


SP ) baza sa. Relatia P  SP SP este de nita astfel: p P q daca exista
p(a); q (b) 2 BHP astfel ^nc^
at p(a) <P q (b)
N. T
 andareanu: Sinteza 2-4 17

Facem observatia ca ori de c^ate ori nu exista pericol de confuzie vomm
nota  ^n loc de P .
De nitia 5.2 O relatie binara   X X se numeste noetheriana
daca nu exista o secventa in nita a1 ; a2 ; : : : din X astfel ^nc^at a1 a2  : : :

Astfel, pentru programul:


8
>
< p(x) _ q (x) :r(x)
>
: r(a) :p(a)

avem p(a) < r(a) si r(a) < p(a) deci p(a) < p(a). ^In consecinta exista
secventa p(a) < p(a) < p(a) < : : :, deci relatia < de nita de acest
program pe baza Herbrand nu este o relatie noetheriana.
Propozitia 5.1 Relatia  este noetheriana daca si numai daca este ire-
exiva.

Demonstratie. Sa presupunem ca relatia  este ire exiva si prin absurd
presupunem ca ea nu este noetheriana. Exista o secventa in nita p1 
p2 precp3 < : : : de simboluri de predicate. Deoarece SP este o multime

nita, rezulta ca exista i si j cu i 6= j astfel ^nc^at ai = p si aj = p. Asadar


p  p si prin urmare relatia  nu ar ire exiv a.
Reciproc, daca relatia  nu ar ire exiva ar rezulta ca exista p 2 SP cu
p  p. ^In acest caz am avea p  p  p  : : : si prin urmare relatia  nu

ar noetheriana.
18 N. T
 andareanu: Sinteza 2-4

Propozitia 5.2 Daca relatia  este noetheriana atunci relatia < este
noetheriana.

Demonstratie. Presupunem ca relatia  este noeteriana. Sa presupunem


prin absurd ca relatia < nu este noetheriana. Exista o secventa a1 <
a2 < a3 < : : : de elemente ale bazei Herbrand. Deoarece multimea sim-

bolurilor de predicate este nita, exista un simbol de predicat p si exista


i; j cu i 6= j astfel ^nc^
at ai = p(a), aj = p(b) pentru doua elemente a
si b ale universului Herbrand. Asadar avem p  p, deci exista secventa
p  p  p  : : : si prin urmare relatia  nu este noetherian
a.
Vom introduce acum conceptul de strati abilitate si local strati abil-
itate pentru programe disjunctive restrictionate.
De nitia 5.3 Fie P un program disjunctiv restrictionat. Programul P se
numeste strati abil daca exista o partitie fP0 ; : : : Pk g a multimii SP nBI
astfel ^nc^at pentru orice clauza din P

( ) _ : : : _ ps(Xs)
p1 X1 ( ) ( ): ( ) : ( )
q1 Y1 ; : : : ; qn Yn ; r1 Z1 ; : : : ; rm Zm

unde Xi ; Yj ; Zk reprezinta notatii vectoriale, exista h 2 f0; : : : ; kg astfel


^nc^at sa e ^ndeplinite urmatoarele conditii:

1) fp1 ; : : : ; psg  Ph
S
2) fq1 ; : : : ; qn g  jh Pj
S
3) fr1 ; : : : ; rm g  j<h Pj
N. T
 andareanu: Sinteza 2-4 19

Se observa imediat ca acest concept este o extensie a conceptului de


strati abilitate a unui program normal (cazul s = 1).
De nitia 5.4 Fie P un program disjunctiv restrictionat. Programul P
se numeste local strati abil daca exista o partitie fH0 ; H1 ; : : :g a bazei
Herbrand BHP astfel ^nc^at pentru orice instanta ground

A1 _ : : : _ Ap : :
B1 ; : : : ; Bm ; C1 ; : : : ; Cn

a unei clauze din P exista k astfel ^nc^at urmatoarele conditii sa e


^ndeplinite:

fA1 ; : : : ; Apg  Hk
fB1 ; : : : ; Bm g  Sjk Hj
fC1; : : : ; Cng  Sj<k Hk
Propozitia 5.3 Orice program disjunctiv restrictionat strati abil este
local strati abil.

Demonstratie. Fie fP0 ; : : : ; Pk g o strati ere a programului P . Pentru


ecare j 2 f0; : : : ; kg de nim multimile:
Hj = fp(c1; : : : ; cn) 2 BHP j p 2 Pj g
Atunci, fH0; : : : ; Hk g formeaza o partitie a lui BHP ^n raport cu care P
este local strati abil.
20 N. T
 andareanu: Sinteza 2-4

^In cele ce urmeaza vom nota cu P DRs familia programelor disjunctive


restrictionate strati abile si cu P DRls familia programelor disjunctive
restrictionate local strati abile.
Vom caracteriza acum programele acestor doua familii cu ajutorul
relatiilor binare introduse ^n paragrafele anterioare. Deoarece ne intere-
seaza ^n mod special familia P DRls, urmatorul rezultat referitor la fa-
milia P DRs este prezentat fara demonstratie.
Teorema 5.1 P 2 P DRs daca si numai daca relatia P este noetheri-
ana.

Referitor la familia P DRls avem urmatoarea caracterizare:


Teorema 5.2 P 2 P DRls daca si numai daca relatia <P este noetheri-
ana.

Demonstratie. Presupunem ca P 2 si e fH0; H1; H2; : : :g o


P DRls

strati ere locala a lui P . Prin absurd sa presupunem ca relatia < nu este
noetheriana. Exista o secventa a0 < a1 < a2 < : : : de elemente din BHP .
Fie i < j . Deoarece ai < aj rezulta ca exista o instanta ground de forma
::: _ ai _ : : : :
: : : ; aj ; : : :

a unei clauze din P . Din de nitia local strati abilitatii rezulta ca exista
at ai 2 Hki si aj 2 St<ki Ht . Asadar exista kj < ki astfel ^nc^at
ki astfel ^nc^

aj 2 Hkj . Dac a aplicam aceasta observatie pentru secventa a0 < a1 < : : :


N. T
 andareanu: Sinteza 2-4 21

de la care am plecat rezulta ca exista urmatorul sir descrescator de nu-


mere naturale k0 > k1 > k2 > : : :, ceea ce este imposibil.
Reciproc, sa presupunem ca relatia < este noetheriana. Urmatorul algo-
ritm calculeaza o strati ere locala:

i := 0; X := BHP

REPEAT

Hi := fA 2 X j6 9B : B 2 X; A < B g
X := X n Hi
i := i + 1

UNTIL X = ;

Observam ca la ecare pas avem Hi 6= ; deoarece relatia < este noethe-
riana.
Teoremele 5.1 si 5.2 au aplicatii interesante. ^In primul r^and, prin
Propozitia 5.2 rezulta din nou incluziunea P DRs  P DRls demon-
strata ^n Propozitia 5.3. ^In al doilea r^and, se poate usor dovedi ca
pentru programul P de mai jos:
8
>
< ( ( ))
nr par s x :nr ()
par x
>
: nr par (0)
22 N. T
 andareanu: Sinteza 2-4

relatia P nu este noetheriana, iar relatia < este noeteriana. Aceasta ne


conduce la concluzia ca P 2 P DRls n P DRs. Asadar avem incluziunea
stricta P DRs  P DRls.
Un rezultat deosebit de interesant este prezentat ^n teorema care
urmeaza, pe care o prezentam fara demonstratie.
Teorema 5.3 Orice program local strati abil are cel putin un model per-
fect. Orice program general Horn local strati abil admite un singur model
perfect.

Aceasta teorema ne arata importanta conceptului de program local strat-


i abil: pentru orice program disjunctiv restrictionat local strati abil P
avem P ERF (P ) 6= ; si ^n consecinta de nitia care urmeaza este justi -
cata.
De nitia 5.5 Fie P 2 P DRls. Semantica de model perfect a lui P
este
\
P MS P ( )= M
M2PERF (P )
^ raport cu aceasta semantica un atom A
In 2 BHP este true daca si
numai daca A 2 P M S (P ).

Sa observam ca P M S (P ) nu este neaparat un model Herbrand pentru


P . ^Intr-adev
ar, sa consideram urmatorul program P :

( ) _ p(b)
p a
N. T
 andareanu: Sinteza 2-4 23

Prin Propozitia 4.2 multimile M1 = fp(a)g si M2 = fp(b)g sunt mod-


ele perfecte pentru programul P . Aplic^and de nitia semanticii de model
perfect avem P M S (P ) = ;, care nu este model al lui P .

6 Tratarea operatoriala a semanticii de mod-


el perfect pentru programe normale strat-
i abile
^In acest paragraf vom arata cum putem calcula semantica de model per-
fect pentru programe normale strati abile cu ajutorul puterilor de opera-
tori. Pentru a realiza acest scop vom extinde de nitia operatorului atasat
unui program Horn pentru cazul programelor Horn generale.
De nitia 6.1 Consideram un program Horn general P si baza sa Her-
brand BHP . De nim operatorul TP : 2BHP ! 2BHP astfel: TP (I ) este
multimea tuturor atomilor ground p(c1 ; : : : ; cn ) pentru care exista

(
p t1 ; : : : ; tn ) : :
B1 ; : : : ; Bk ; C1 ; : : : ; Cl

^n P si exista o substitutie ground  astfel ^nc^at B1  2 I , : : :, Bk  2 I ,


2 2
C1  = I , : : :, Cl  = I si p(t1 ; : : : ; tn ) = p(c1 ; : : : ; cn ).

Sa observam de la ^nceput faptul ca operatorul TP nu se mai bucura de


proprietatea de monotonie. ^Intr-adevar, sa consideram programul P de
24 N. T
 andareanu: Sinteza 2-4

mai jos:
8
>
< p(a) :q(b)
>
: q (a) :r(a)
Se observa ca daca luam I1 = ;, I2 = fq(b)g atunci TP (I1 ) = fp(a); q(a)g
si TP (I2 ) = fq(a)g, deci operatorul TP nu este monoton.

De nitia 6.2 Iteratiile operatorului TP sunt notate cu TP " n pentru


n 2 N [ f!g; ele sunt operatori TP " n : 2BHP ! 2BHP si se de nesc
astfel:

TP " 0(I ) = I

TP " (n + 1)(I ) = TP (TP " n(I )) [ TP " n(I )

TP " !(I ) = Sn0 TP " n(I )

Fie  un program normal strati abil si fP0; : : : ; Pk g o strati ere a acestu-
ia. Programul  se poate descompune ^n programele f0; : : : ; k g, unde
pentru ecare i 2 f0; : : : ; kg programul i este format din toate clauzele
lui  cu proprietatea ca atomii concluziilor au simbolurile de predicate
^n Pi.

Teorema 6.1 Fie  un program general Horn strati abil si f1 ; : : : ; n g
N. T
 andareanu: Sinteza 2-4 25

o strati ere a acestuia. Notam:


8
>
>
> = T1 " !(;)
>
>
>
M1
>
>
>
< M2 = T2 " ! (M1 )
>
>
>
>
>
>
::::::::::::::::::::::::::
>
>
: Mn = Tn " !(Mn 1)
Atunci Mn este unicul model perfect al lui P . ^In consecinta avem P M S () =
Mn

Sa observam ca daca aplicam teorema de mai sus pentru un program
Horn , atunci P M S () = LM S () deoarece strati erea programului
are un singur strat.

7 TEME
TEMA 1
1) Considerati programul normal de mai jos:
8
>
>
> :
>
>
>
p r; s
>
>
>
>
> q r; :s
>
<
> r q
>
>
>
>
>
> :r
>
>
p
>
>
>
: s t
26 N. T
 andareanu: Sinteza 2-4

Construiti graful de dependenta a acestui program. Aratati ca programul


este strati abil si aplicati algoritmul din Propozitia 2.1 pentru a obtine
o strati ere a acestuia.
2) Scrieti un program ^n SWI Prolog pentru a testa daca un program
normal este strati abil.
TEMA 2
Considerati programul normal P de mai jos:
8
>
>
> (0)
>
>
<
int

> int(succ(x)) int(x)


>
>
>
>
: odd(succ(x)) int(x); :odd(x)

1) Veri cati ca P nu este strati abil


2) A ati modelele Herbrand minimale ale lui P . Exista cel mai mic model
Herbrand?
TEMA 3
1) Considerati urmatorul program disjunctiv restrictionat P :
8
>
>
> p(x) _ q (x) :u(x); :v(x)
>
>
>
>
>
>
>
> u(x) r (x)
>
<
> v (x) ()
r x
>
>
>
>
>
> r (a)
>
>
>
>
>
: r(b)
a) Calculati relatiile <P ; P ; P
b) Aratati ca relatia P este noetheriana
N. T
 andareanu: Sinteza 2-4 27

2) Considerati urmatorul program disjunctiv restrictionat P :


8
>
>
> p(x) _ q (x) :u(x); :v(x)
>
>
>
>
>
>
>
> u(x) r (x)
>
<
> v (x) ()
r x
>
>
>
>
> r (a)
>
>
>
>
>
>
: r(b)

a) Aratati ca programul P este strati abil si gasiti o strati ere a lui P
b) Calculati P M S (P )
TEMA 4
Calculati P M S (P ) pentru programul normal P de mai jos:
8
>
> p(x) :q(x); :u(x); :v(x)
>
>
>
>
>
>
>
>
> u(x) ()
r x
<
> v (x) r (x)
>
>
>
>
>
> r (a)
>
>
>
>
>
: r(b)

TEMA 5
Considerati urmatoarea piesa de cunostinte:
Un conducator auto este prudent daca este asigurat si nu a cauzat
accidente. Daca un conducator este prudent atunci el plateste o prima
mica de asigurare. Daca o persoana plateste prima mica de asigurare
atunci ea este un conducator prudent. Daca o persoana este asigurata si
28 N. T
 andareanu: Sinteza 2-4

nu este un conducator prudent atunci ea plateste o prima de asigurare


mare. Ana si Petre au asigurari auto. Petre a cauzat accident
1) Reprezentati aceasta piesa sub forma unui program logic normal.
2) Aratati ca programul obtinut este strati abil si calculati o strati-
care a acestuia.
3) Calculati toate modelele Herbrand minimale ale programului.
4) Reprezentati aceeasi piesa de cunostinte sub forma unui program
disjunctiv restrictionat.
5) Calculati pentru programul disjunctiv restrictionat obtinut relatiile
<,  si .

6) Studiati strati abilitatea locala a programului


7) Calculati modelele perfecte
8) Calculati valoarea de adevar pentru diferite elemente din baza
Herbrand ^n raport cu semantica de model perfect.
TEMA 6
1) Considerati programul Horn general P de mai jos:
8
>
>
> ()
>
>
>
p a
>
>
>
>
> p(b)
>
>
>
>
>
< q (c)
>
>
> u(b)
>
>
>
>
>
>
>
> r (x) ():()
p x ; q x
>
>
>
>
: r (x) u(x)
N. T
 andareanu: Sinteza 2-4 29

Calculati P M S (P ).
2) Considerati programul Horn general P de mai jos:
8
>
> ( 1) arc(x; y)
>
>
>
lung x; y;
>
>
>
>
>
> lung (x; y; s(k )) lung (x; z; k ); arc(z; y ); :lung (x; y; k )
>
>
>
>
>
>
> arc(a; b)
>
<
> arc(b; c)
>
>
>
>
>
> arc(a; e)
>
>
>
>
>
>
>
> arc(e; f )
>
>
>
>
: arc(f; d)

1) Aratati ca lung P lung


2) Studiati strati abilitatea lui P
3) Aratati ca urmatoarele multimi formeaza o strati ere locala a lui
P :
H0 = farc(a; b) j arc(a; b) 2 BHP g
Hk = flung(x; y; k) j lung(x; y; k) 2 BHP g; k  1

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