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

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)
>
>
<
r (a)
>
>
>
>
: r(b)

:q(x)

N. T
 andareanu: Sinteza 2-4

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;

M3

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

M2

= fr(a); r(b); q(a); q(b)g

Intersectia acestor patru modele este multimea fr(a); r(b)g si^n consecinta intersectia tuturor modelelor Herbrand ale programului P este aceeasi
multime, care nu este model pentru P . Astfel, programul P admite modele 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. Reamintim ca am notat cu BI multimea simbolurilor de predicate built-in.
De nitia 2.1 Fie

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

negat ^n corpul lui r atunci


p

2 Pi; q 2 Pj =) i > j

2 SP n BI

apare

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 . Evident, 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

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)

= fpg. Multimea
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.
Consideram straturile P0

= fu; v; qg,

P1

= frg,

P2

Exista programe normale care nu admit strati eri. De exemplu, programul


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 s
a 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.

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

este V

= SP n BI ,

iar arcele sunt

= (V; E ) unde multimea nodurilor


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
etichetat cu

+; daca ^n corp apare :q atunci arcul (q; p) este

Propozitia 2.1 Un program normal

este strati abil daca si numai

daca graful de dependen- ta GP nu contine cicluri care sa aiba arce negative.

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. Conform 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 respectiv 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 presupunerea 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

1) Cazul I: GP nu contine cicluri.


^In acest caz se poate obtine o strati ere daca se aplica urmatorul algoritm:

 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.

N. T
 andareanu: Sinteza 2-4
d
PPP+ r di
6 QQ+ - P d u  v
Qs ?d)  +
+
+

k
Q
p

+ Q- QQ /
+

sd
td

q dQ

Figura 1: Graf de dependenta


Ca exemplu de aplicare a acestui algoritm consideram urmatorul program:
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
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. Denumirea provine de la faptul ca:
^n concluzia clauzei este prezenta disjunctia si de aici provine denumirea 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 atunci 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 acestuia.
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

P

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 prioritate ^ntre elementele bazei Herbrand. Astfel, prin scrierea A <P B
^ntelegem ca prioritatea atomului B este mai mare strict dec^at prioritatea

11

N. T
 andareanu: Sinteza 2-4

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 program Horn. Aceeasi a rmatie este adevarata pentru un program disjunctiv 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 dou
a 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)


s(x)
:r(x)
r (a)
r (b)
p x

Baza Herbrand este multimea


BHP

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

12

- r(a) 
6

N. T
 andareanu: Sinteza 2-4

- 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-adev
ar, avem:
M10

n M20 = fp(a); q(b)g

M20

n M10 = fs(a); s(b)g

()

( ), q(b) < s(b)

p a <s a

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 Herbrand 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

( ). Daca M1 

MH P

un program disjunctiv restrictionat, M1 ; M2 2


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-adev
ar, daca M1  M2 atunci M1 n M2 = ; si deci

15

N. T
 andareanu: Sinteza 2-4

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

( ) multimea tuturor modelelor Herbrand pentru P care sunt mod-

P ERF P

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

( ) daca si numai daca M

P ERF P

este minimal.

Demonstratie. Implicatia de la st^anga la dreapta se obtine din Propozitia 4.1. Sa presupunem acum ca

. 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 restrictionate care admit mai multe modele perfecte. Vom arata acum ca
M1 << M2

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)
>
>
>
>
>
: r(a)

:q(x)
:p(x)

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 strati abile. Semantica de model perfect.


^In acest paragraf vom de ni strati abilitatea programelor disjunctive
restrictionate si vom caracteriza proprietatea de strati abilitate prin intermediul 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)

17

N. T
 andareanu: Sinteza 2-4

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

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(a) :p(a)

:r(x)

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

 este noetheriana atunci relatia < este

Propozitia 5.2 Daca relatia


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 simbolurilor 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 abilitate 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

( )

( ): ( )

unde Xi ; Yj ; Zk reprezinta notatii vectoriale, exista h


^nc^at sa e ^ndeplinite urmatoarele conditii:
1) fp1 ; : : : ; psg  Ph

2) fq1 ; : : : ; qn g  jh Pj

: ( )

q1 Y1 ; : : : ; qn Yn ; r1 Z1 ; : : : ; rm Zm

3) fr1 ; : : : ; rm g  j<h Pj

2 f0; : : : ; kg astfel

19

N. T
 andareanu: Sinteza 2-4

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

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 intereseaza ^n mod special familia P DRls, urmatorul rezultat referitor la familia P DRs este prezentat fara demonstratie.
Teorema 5.1

2 P DRs daca si numai daca relatia P

este noetheri-

ana.

Referitor la familia P DRls avem urmatoarea caracterizare:


Teorema 5.2

2 P DRls daca si numai daca relatia <P este noetheri-

ana.

si e fH0; H1; H2; : : :g o


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
Demonstratie. Presupunem ca

:::

_ ai _ : : :

P DRls

: : : ; aj ; : : :

a unei clauze din P . Din de nitia local strati abilitatii rezulta ca exista
ki astfel ^nc^
at ai 2 Hki si aj 2 St<ki Ht . Asadar exista kj < ki astfel ^nc^at
aj 2 Hkj . Dac
a aplicam aceasta observatie pentru secventa a0 < a1 < : : :

21

N. T
 andareanu: Sinteza 2-4

de la care am plecat rezulta ca exista urmatorul sir descrescator de numere naturale k0 > k1 > k2 > : : :, ceea ce este imposibil.
Reciproc, sa presupunem ca relatia < este noetheriana. Urmatorul algoritm calculeaza o strati ere locala:
i

:= 0; X := BHP

REPEAT
Hi

:= fA 2 X j6 9B : B 2 X; A < B g

:= X n Hi

:= i + 1

UNTIL X = ;
Observam ca la ecare pas avem Hi 6= ; deoarece relatia < este noetheriana.
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 demonstrata ^n Propozitia 5.3. ^In al doilea r^and, se poate usor dovedi ca
pentru programul P de mai jos:
8
>
<
>
:

( ( ))
par (0)

nr par s x
nr

:nr

()

par x

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 perfect. Orice program general Horn local strati abil admite un singur model
perfect.

Aceasta teorema ne arata importanta conceptului de program local strati 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

\
M2PERF (P )

^ raport cu aceasta semantica un atom A


In
numai daca A 2 P M S (P ).

BHP

este true daca si

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

23

N. T
 andareanu: Sinteza 2-4

Prin Propozitia 4.2 multimile M1 = fp(a)g si M2 = fp(b)g sunt modele 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 model perfect pentru programe normale strati abile
^In acest paragraf vom arata cum putem calcula semantica de model perfect pentru programe normale strati abile cu ajutorul puterilor de operatori. 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-

: 2BHP ! 2BHP astfel: TP (I ) este


multimea tuturor atomilor ground p(c1 ; : : : ; cn ) pentru care exista
brand BHP . De nim operatorul TP

p t1 ; : : : ; tn

B1 ; : : : ; Bk ; C1 ; : : : ; Cl

^n P si exista o substitutie ground  astfel ^nc^at B1 

C1  = I , : : :, Cl  = I

2 I , : : :, Bk  2 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 (a)

:q(b)
: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

2 N [ f!g; ele sunt operatori TP " n : 2BHP ! 2BHP

" n pentru

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 acestuia. 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

25

N. T
 andareanu: Sinteza 2-4

o strati ere a acestuia. Notam:

8
>
>
>
>
>
>
>
>
>
<
>
>
>
>
>
>
>
>
:

= T1 " !(;)


M2 = T2 " ! (M1 )
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
>
>
>
>
>
>
>
>
>
>
>
>
<
>
>
>
>
>
>
>
>
>
>
>
>
:

:
r; :s

:r

r; s

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(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 :
int

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

:u(x); :v(x)

()

r x

a) Calculati relatiile <P ; P ; P


b) Aratati ca relatia P este noetheriana

27

N. T
 andareanu: Sinteza 2-4

2) Considerati urmatorul program disjunctiv restrictionat P :


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

:u(x); :v(x)

()

r x

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)
>
>
>
>
>
>
>
u(x)
>
>
<
v (x)
>
>
>
>
>
>
r (a)
>
>
>
>
>
>
: r(b)

:q(x); :u(x); :v(x)


()
r (x)
r x

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(b)
q (c)
u(b)
r (x)
r (x)
p a

():()
u(x)
p x ; q 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; 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)
lung x; y;

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