Documente Academic
Documente Profesional
Documente Cultură
TINT
E
Sinteza 2-4:
Nicolae T
andareanu
Facultatea de Matematica-Informatica,
e-mail: ntand@oltenia.ro
1
2 N. T
andareanu: Sinteza 2-4
1 Obiective
Obiectivele acestui capitol sunt urmatoarele:
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) :q(x)
>
<
> r (a)
>
>
>
: r(b)
N. T
andareanu: Sinteza 2-4 3
p 2 Pi; q 2 Pj =) i > j
4 N. T
andareanu: Sinteza 2-4
p 2 Pi; q 2 Pj =) i j
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
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.
Exista programe normale care nu admit stratieri. De exemplu, progra-
mul 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 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 sucienta
pentru ca un program normal sa e stratiabil.
6 N. T
andareanu: Sinteza 2-4
Propozitia 2.1 Un program normal P este stratiabil 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
stratiabil. Notam cu Pj1 , : : :, Pjn 1 straturile la care apartin respec-
tiv elementele a1; : : : ; an 1. Din denitia stratiabilitatii 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 stratiabil.
Sa presupunem acum ca GP nu contine cicluri cu arce negative. Avem
de analizat doua cazuri:
N. T
andareanu: Sinteza 2-4 7
q dQ r di PPP+ -
6 QQ+ - P d u v
d
Qs ?d) + +
+ p k
Q
+
+ Q- QQ /
sd td
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
^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
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
()
p a
- q(a)
( ) r(a); p(a) < s(a); q(a) < s(a); s(a) < r(a)
q a
( ) r(b); p(b) < s(b); q(b) < s(b); s(b) < r(b)
q 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.
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 X se numeste noetheriana
daca nu exista o secventa innita a1 ; a2 ; : : : din X astfel ^nc^at a1 a2 : : :
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
ar noetheriana.
18 N. T
andareanu: Sinteza 2-4
Propozitia 5.2 Daca relatia este noetheriana atunci relatia < este
noetheriana.
( ) _ : : : _ ps(Xs)
p1 X1 ( ) ( ): ( ) : ( )
q1 Y1 ; : : : ; qn Yn ; r1 Z1 ; : : : ; rm Zm
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
A1 _ : : : _ Ap : :
B1 ; : : : ; Bm ; C1 ; : : : ; Cn
fA1 ; : : : ; Apg Hk
fB1 ; : : : ; Bm g Sjk Hj
fC1; : : : ; Cng Sj<k Hk
Propozitia 5.3 Orice program disjunctiv restrictionat stratiabil este
local stratiabil.
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
::: _ ai _ : : : :
: : : ; aj ; : : :
a unei clauze din P . Din denitia local stratiabilitatii rezulta ca exista
at ai 2 Hki si aj 2 St<ki Ht . Asadar exista kj < ki astfel ^nc^at
ki astfel ^nc^
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
(
p t1 ; : : : ; tn ) : :
B1 ; : : : ; Bk ; C1 ; : : : ; Cl
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.
TP " 0(I ) = I
Fie un program normal stratiabil si fP0; : : : ; Pk g o stratiere 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 stratiabil si f1 ; : : : ; n g
N. T
andareanu: Sinteza 2-4 25
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
>
>
> :
>
>
>
p r; s
>
>
>
>
> q r; :s
>
<
> r q
>
>
>
>
>
> :r
>
>
p
>
>
>
: s t
26 N. T
andareanu: Sinteza 2-4
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) :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
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)