BAZE DE CUNOS
TINT
E
Sinteza 2-4:
Programe logice stratiabile.
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 stratiabil si local stratiabil
^nsusirea conceptului de model perfect si semantica de model perfect
2 Programe normale stratiabile
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 modicari 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 stratiabilitatea acestora, concept prezentat ^n denitia care urmeaza. Reamintim ca am notat cu BI multimea simbolurilor de predicate built-in.
Denitia 2.1 Fie
un program normal. P se numeste stratiabil
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 denitia de mai sus
poate citita si astfel:
daca :q apare ^n corpul unei clauze si p este simbolul de predicat
care deneste 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 deneste 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 stratiere a programului P . Evident, daca P este stratiabil atunci el poate admite mai multe stratieri
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 stratiere a programului P . Evident P0 = fu; vg, P1 =
frg, P2 = fp; qg ne ofera o alta stratiere pentru acelasi program.
Consideram straturile P0
= fu; v; qg,
P1
= frg,
P2
Exista programe normale care nu admit stratieri. De exemplu, programul
8
>
>
p(x)
:q(x)
>
>
>
>
>
>
>
< q (x) :p(x)
>
>
>
r (a)
>
>
>
>
>
: r(b)
nu admite stratieri. 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 sucienta
pentru ca un program normal sa e stratiabil.
N. T
andareanu: Sinteza 2-4
Denitia 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
denite 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 stratiabil 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
stratiabil. Notam cu Pj1 , : : :, Pjn 1 straturile la care apartin respectiv elementele a1; : : : ; an 1. Din denitia stratiabilitatii 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 stratiabil.
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 stratiere 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 denesc
doua relatii binare, care au implicatii majore ^n studiul semanticii acestuia.
Denitia 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 denitia 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 armatie este adevarata pentru un program disjunctiv restrictionat care nu contine literali negativi.
Pentru simplicarea 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
Denitia 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.
Denitia 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.
Denitia 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 stratiabile. Semantica de model perfect.
^In acest paragraf vom deni stratiabilitatea programelor disjunctive
restrictionate si vom caracteriza proprietatea de stratiabilitate prin intermediul unor relatii binare.
Denitia 5.1 Fie P un program disjunctiv restrictionat si B = (SC ; SF ;
SP ) baza sa. Relatia P SP SP este denita 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 .
Denitia 5.2 O relatie binara
X
se numeste noetheriana
daca nu exista o secventa innita 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 < denita 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 innita 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 stratiabilitate si local stratiabilitate pentru programe disjunctive restrictionate.
Denitia 5.3 Fie P un program disjunctiv restrictionat. Programul P se
numeste stratiabil 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
stratiabilitate a unui program normal (cazul s = 1).
Denitia 5.4 Fie
un program disjunctiv restrictionat. Programul P
se numeste local stratiabil 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 stratiabil este
local stratiabil.
Demonstratie. Fie fP0 ; : : : ; Pk g o stratiere a programului P . Pentru
ecare j 2 f0; : : : ; kg denim 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 stratiabil.
20
N. T
andareanu: Sinteza 2-4
^In cele ce urmeaza vom nota cu P DRs familia programelor disjunctive
restrictionate stratiabile si cu P DRls familia programelor disjunctive
restrictionate local stratiabile.
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
stratiere 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 denitia local stratiabilitatii 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 stratiere 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 stratiabil are cel putin un model perfect. Orice program general Horn local stratiabil admite un singur model
perfect.
Aceasta teorema ne arata importanta conceptului de program local stratiabil: pentru orice program disjunctiv restrictionat local stratiabil P
avem P ERF (P ) 6= ; si ^n consecinta denitia care urmeaza este justicata.
Denitia 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 denitia 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 stratiabile
^In acest paragraf vom arata cum putem calcula semantica de model perfect pentru programe normale stratiabile cu ajutorul puterilor de operatori. Pentru a realiza acest scop vom extinde denitia operatorului atasat
unui program Horn pentru cazul programelor Horn generale.
Denitia 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 . Denim 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.
Denitia 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 denesc
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 stratiabil si fP0; : : : ; Pk g o stratiere 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 stratiabil si f1 ; : : : ; n g
25
N. T
andareanu: Sinteza 2-4
o stratiere 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 stratierea 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 stratiabil si aplicati algoritmul din Propozitia 2.1 pentru a obtine
o stratiere a acestuia.
2) Scrieti un program ^n SWI Prolog pentru a testa daca un program
normal este stratiabil.
TEMA 2
Considerati programul normal P de mai jos:
8
>
>
>
>
>
<
>
>
>
>
>
:
(0)
int(succ(x))
int(x)
odd(succ(x))
int(x); :odd(x)
1) Vericati ca P nu este stratiabil
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 stratiabil si gasiti o stratiere 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 stratiabil si calculati o straticare 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 stratiabilitatea 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 stratiabilitatea lui P
3) Aratati ca urmatoarele multimi formeaza o stratiere 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
Mult mai mult decât documente.
Descoperiți tot ce are Scribd de oferit, inclusiv cărți și cărți audio de la editori majori.
Anulați oricând.