Documente Academic
Documente Profesional
Documente Cultură
CICLU DE PRELEGERI
la disciplina "Matematica discret n inginerie"
Chiinu 1999
4. GRAFURI
4.1.
4.1.1.
4.1.2.
4.1.3.
4.2.
4.2.1.
4.2.2.
4.2.3.
4.3.
4.3.1.
4.3.2.
4.3.3.
4.3.4.
4.4.
4.4.1.
4.4.2.
4.4.3.
4.4.4.
4.4.5
4.5.
4.5.1.
Noiuni generale
Definiia grafului
Numr cociclomatic i numr ciclomatic
Numr cromatic. Grafuri planare. Arbori.
Metode de reprezentare a grafului
Matricea de iciden
Matricea de adiacen
Lista de adiacen i lista de inciden
Structuri de date
Structuri de date: liste
Structuri de date : fire de ateptare
Structuri de date: stive
Structuri de date - arbori
Algoritmi pe grafuri
Cutare n adncime
Algoritmul de cutare n lrgime
Noiune de graf de acoperire. Algoritmul de determinare a grafului de acoperire
Noiune de drum minim. Algoritmul lui Ford pentru determinarea drumului minim
Algoritmul Bellman - Calaba
Reele de transport
Noiuni generale
4.5.2.
Algoritmul Ford-Fulkerson
1. INTRODUCERE
Prezenta lucrare este dedicat metodelor matematicii discrete aplicabile n inginerie i are ca destinatari
pe studenii i specialitii n informatica teoretic i aplicat, la fel ca i pe toi doritorii s fac cunotin cu
acest domeniu matematic. Matematica tradiional, inclusiv matematica aplicat, care formeaz fundamentul
tiinelor tehnice clasice, s-a conformat pe parcursul anilor cerinelor acestora. Exist monografii i manuale,
lucrri metodice i ndrumare consacrate problemelor legate de tiinele tehnice clasice i metodele
matematice respective. Nimeni nu mai consider necesar s explice noiunile legate de calculul diferenial sau
integral n cadrul electrotehnicii sau termodinamicii. Nu este aceeai situaie i n cazul disciplinelor legate de
tiina calculatoarelor, informatica teoretic i aplicat, inclusiv, sisteme expert i inteligena artificial, etc.
Foarte muli autori sunt convini de necesitatea de a ncepe de la "zero", lmurind ce este o funcie logic sau
un tabel de adevr, un circuit sau un ciclu ntr-un graf. Lucrarea de fa este o ncercare de a "scuti" pe viitorii
autori de eforturi suplimentare i de a le permite s se concentreze total n problemele tehnice tratate. Un alt
obiectiv este legat de faptul c majoritatea inginerilor consider matematica un fel de dicionar mare. Este
suficient s tii numai a depista informaia necesar, deschizndu-l la pagina respectiv. Inginerii sunt
obligai s "iubeasc" formulele, dar nu i teoremele (ca s nu vorbim de demonstrarea lor). Ins domeniile de
vrf ale tiinei contemporane cer cu insisten s fie schimbat aceast mentalitate, or problemele tehnicotiinifice principale sunt legate nu att de lucrul cu modele cunoscute ct de elaborarea unor modele noi.
Pentru aceasta este necesar ca matematica s fie nu numai o metod de calcul, ci i una de gndire.
2. SISTEME ALGEBRICE
2.1. Mulimi. Noiuni generale
Teoria mulimilor studiaz conceptele de mulime i de infinit i legile de operare cu mulimile. Noiunea
de mulime este una din noiunile primare ale matematicii i, ca i majoritatea noiunilor primare nu are o
definiie unanim acceptat. Georg Cantor (1845-1918) a definit astfel aceast noiune: "neleg prin mulime,
n general, tot ceea ce este mult, dar care poate fi conceput ca o entitate, adic orice colecie de anumite
obiecte putnd fi nchegate ntr-un ntreg cu ajutorul unei legi oarecare" [1]. Obiectele care formeaz
mulimile se numesc elemente. De obicei, elementele se noteaz cu litere mici, iar mulimile cu litere mari
latine cu sau fr indici. Elementele se iau n acolade i se separ prin virgule. Dou i mai multe elemente de
acelai fel se vor scrie o singur dat.
Vom nota apartenena elementului a mulimii C n felul urmtor: aC, iar dac g nu aparine mulimii
C se va scrie gC. Din exemplul de mai sus vedem c mulimile pot fi finite sau infinite.
Numrul elementelor unei mulimi finite se numete cardinalul sau puterea acestei mulimi.
Cardinalul mulimii A se noteaz prin |A|. Exemplu: |C| = 6. (Despre cardinalul mulimilor infinite se va
discuta n paragrafele urmtoare).
Un loc aparte i este rezervat mulimii de cardinal zero (fr elemente, { }). Aceast mulime se
numete mulime vid i se noteaz prin .
Expresia x S semnific faptul c elementul x este un element al mulimii S. Dac x\, x2,..., xn sunt toate
elemente ale mulimii S, atunci poate fi scris S={x1, x2,..., xn}. Fiecare x trebuie s fie distinct; nu putem repeta
scrierea unui element ntr-o mulime. Ordinea n care elementele sunt scrise n cadrul mulimii este arbitrar.
Exemplul 2.1. Fie S = {1,3,6}; altfel spus, S este mulimea care are ca elemente valorile ntregi 1, 3 i 6,
alte elemente nu exist. Putem scrie 1 S, 3 S i 6 S. Din contra, afirmaia 2 S este
fals ca i oricare alta, care afirm c altceva poate fi element din S.
Mulimile pot avea ca elemente alte mulimi. De exemplu, fie T = {{1, 2}, 3, }. T are aici
trei elemente. Primul element este mulimea {1, 2}, al doilea este numrul ntreg 3, iar al
treilea este mulimea vid. Urmtoarele afirmaii sunt juste: {1,2} T, 3 T, i T.
Afirmaia 1 T est fals. Adic, din faptul c 1 este element al unuia dintre elementele lui
T nu rezult c 1 este i element al lui T.
Mulimea A se va numi submulime (sau parte) a mulimii B (se va nota A B, simbolul se numete
simbol de incluziune), dac fiecare element al mulimii A este i element al mulimii B. Se va mai spune c B
acoper A. Dou mulimi A i B se vor considera egale dac conin aceleai elemente, altfel, dac AB i
BA, atunci A = B. n cazul n care A B i A B se va scrie A B, iar A se va numi submulime proprie sau
strict a lui B. Se consider c mulimea vid este submulime a oricrei mulimi.
1. {1, 2, 3} {1, 2, 3, 5}
2. {1, 2, 3} {1, 2, 3, 5}
3. {1, 2, 3} {1, 2, 3}
Remarcm, c o mulime este ntotdeauna i submulime a sa (p.3), dar niciodat
submulime proprie, adic afirmaia {1, 2, 3} {1, 2, 3} este fals.
Pentru fiecare mulime A exist o mulime B(A) care conine toate prile lui A (inclusiv mulimea vid i
A). Aceast mulime B(A) se va numi booleanul lui A.
Exemplul 2.4. Pentru mulimea F = {a, b, c} vom avea P(F)= {, {a}, {b}, {c}, {a,b}, {a,c}, {b,c},
{a,b,c}}. Adic, P(F) este o mulime cu opt elemente, fiecare element fiind la rndul lui o
mulime. Un alt exemplu, P() = {} deoarece S. Notm c {}, mulimea care
conine mulimea vid nu este aceeai ca i mulimea vid. Prima are un element - , iar
mulimea vid nu are nici unul.
Mulimea tuturor obiectelor posibile n cadrul unei cercetri concrete se numete adesea mulime
universal sau universum (fr pretenii de strictee) i se va nota prin E sau U.
Mulimile pot fi definite prin simpla enumerare a elementelor lor, dar aceast metod este valabil
doar pentru mulimile finite cu un numr mic de elemente.
O alt metod propune s se porneasc de la o mulime S i o proprietate P a elementelor, definind o
mulime ca toate elementele lui S care verific proprietatea P. Notaia acestei operaii, numit abstracie este
{x | x S i P(x)}
sau toate elementele x din S, care verific proprietatea P. Variabila x din ultima expresie este local, adic
putem scrie cu acelai succes {y | y S i P(y)} pentru a descrie aceeai mulime.
Exemplul 2.5. Fie S, mulimea {1, 3, 6} din exemplul 1.1, i P(x) proprietatea x este impar. Atunci,
{x | x S i x este impar }
este o alt modalitate de a defini mulimea {1,3}. Altfel, noi acceptm elementele 1 i 3 din
S pentru c ele sunt impare, dar refuzm elementul 6, pentru c el nu este impar.
Un alt exemplu, considerm mulimea T = {{1,2}, 3, 0} din exemplul 1.1. Atunci,
{A | A T i A este o mulime }
definete mulimea {{1,2},0}.
nc un exemplu: mulimea numerelor ntregi nenegative, sau naturale, este adesea
notat prin N. Fie P(x) proprietatea x este numr primar (adic x > 1 i nu are ali
divizori dect 1 i el nsui). Mulimea numerelor primare va fi notat n acest caz
{x | x N i P(x)}
Aceast expresie definete mulimea infinit {2, 3, 5, 7, 11, ...}.
Este reconfortant s presupunem, c mulimile sunt finite adic c exist un ntreg n astfel c mulimea
considerat are exact n elemente. De exemplu, mulimea {1, 3, 6} are trei elemente. ns, n foarte multe
cazuri mulimile sunt infinite, adic nu exist un ntreg care ar limita numrul elementelor mulimii. Iat
cteva exemple:
Plecnd de la aceste mulimi, pot fi create prin abstracie alte mulimi infinite.
Exemplul 2.6. Mulimea {x | x Z i x < 3} este mulimea tuturor numerelor ntregi negative plus 0, 1 i
2. Mulimea {x | x Z i x Z} reprezint mulimea numerelor ntregi care sunt ptrate
perfecte, {0, 1, 4, 9, 16, ...}.
A treia metod const n definirea mulimilor prin intermediul unei proceduri generatoare, care va
descrie modalitatea de obinere a elementelor mulimii din elemente iniiale i/sau care au fost obinute
anterior. Se vor considera elemente ale mulimii toate obiectele care pot fi construite cu ajutorul acestei
proceduri. De pild, mulimea M = {1, 2, 3, 5, 8, 13,...} poate fi definit cu ajutorul urmtoarei proceduri:
1) x1 = 1, x2 = 2;
UTM, Chiinu, 1998, V.Beliu
Exemplul 2.7. Mulimea A = {x | x>>1} este definit ca setul de numere mult mai mari ca unu. n
sensul obinuit A nu poate fi considerat o mulime. Se poate spune precis, c numerele
mai mici dect 1 nu aparin lui A. Numerele mai mari ca 1 pot fi considerate elemente din
A cu un anumit grad de subiectivism: cu ct numrul considerat este mai mare cu att pare
mai corect s considerm, c acesta aparine lui A. Ultima afirmaie poate fi descris, de
exemplu, cu ajutorul funciei caracteristice de mai jos:
Noiunea de egalitate a dou mulimi fuzzy se introduce de asemenea cu ajutorul funciei de apartenen:
dou mulimi fuzzy A i B se numesc egale dac xU avem A(x) = B(x).
La fel i relaia de incluziune: vom spune, c mulimea fuzzy A este submulime a mulimii fuzzy B (este
inclus n B, AB), dac xU are loc inegalitatea A(x)B(x). Mulimea fuzzy vid este submulime a
oricrei mulimi.
2.3. Operaii cu mulimi
n acest paragraf vom defini trei operaii cu mulimi: reuniunea, intersecia i complementara, operaii
de baz, i dou operaii suplimentare: diferena i diferena simetric.
Reuniunea a dou mulimi A i B se va numi mulimea C (C = AB), care conine toate elementele lui A
i toate elementele mulimii B, alte elemente nu are.
De exemplu, pentru A = {a, b, c, d} i B = {c, d, e, f} reuniunea lor va fi mulimea C = {a, b, c, d, e, f}.
Cu alte cuvinte, C = A B = {x | xA sau xB}.
Intersecia a dou mulimi A i B se va numi mulimea C = AB, care conine toate elementele comune
ale acestor dou mulimi: C = {x | xA i xB}. Pentru aceleai A i B din exemplul precedent AB = {c, d}.
Operaiile de reuniune i intersecie pot fi definite pentru o familie de mulimi Ai,
i = 1,...,n:
Ai = {x | xA1 sau xA2 sau ... xAn},
Exemplul 2.8. Fie S, mulimea {1,2,3} i T mulimea {3,4,5}. Atunci S T = {1,2,3,4,5}, S T = {3}, i
S - T = {1,2}. Adic S T conine toate elementele care apar fie n S fie n T. Chiar dac 3
apare o dat n S i nc o dat n T, el va fi regsit o singur dat n S T, deoarece
elementele nu pot s se repete, analogic i pentru mulimea S T. Mulimea S - T conine
elementele 1 i 2, deoarece ele sunt n S, dar nu se afl n T. Elementul 3 nu este prezent n
mulimea S - T deoarece, dei este n S, el aparine i lui T.
Complementara mulimii A n U (AU) notat cu CUA se va numi mulimea care conine toate
elementele mulimii U ce nu aparin mulimii A: CUA = {x | x U i xA}. n cazurile n care este evident
despre care mulime U se vorbete indicile poate fi omis. Complementul lui A se va mai nota prin (A barat).
De exemplu, dac U = {a, b, c, d, e, f, g}, atunci pentru aceleai mulimi A i B vom avea CUA = = {e,
f, g}, iar CUB = {a, b, g}.
Se numete partiie a mulimii A oricare familie de pri X1, X2, X3,..., Xn ale lui A care verific
urmtoarele condiii:
1. Xi , i = 1, 2,..., n;
2. Xi Xj, i j;
3. Xi = A, i =1, 2,...,n
(2.1)
Etapa
x este din S - (T R)
x este din S
x nu este n T R
x nu este n T
x nu aparine lui R
x aparine lui S - T
x este n (S - T) - R
Justificarea
dat
definiia
definiia
definiia
definiia
definiia
definiia
operaiei
operaiei
operaiei
operaiei
operaiei
operaiei
- i (1)
- i (1)
i (1) (3)
i (3)
- cu (2) i (4)
- cu (6) i (5)
submulime a prii stnga, adic dac un x atbitrar este din (S - T) R, atunci el se conine i n S - (T R).
Am artat acest lucru n tabelul 2.2.
1)
2)
3)
4)
5)
6)
7)
Etapa
x este din S - (T - R)
x este din S-T
x nu este n R
x este n S
x nu aparine lui T
x nu aparine lui R T
x este n S (T R)
Justificarea
dat
definiia
definiia
definiia
definiia
definiia
definiia
operaiei
operaiei
operaiei
operaiei
operaiei
operaiei
- i (1)
- i (1)
- i (2)
- i (2)
cu (3) i (5)
- cu (6) i (4)
Exerciii
2.2.1. Care sunt elementele mulimii {{a, b, c}, {a}, {b, c}} ?
2.2.2. Definii mulimile:
a) Mulimea numerelor ntregi mai mari ca 100.
b) Mulimea numerelor ntregi pare.
2.2.3.Demonstrai echivalenele:
a) (S (T R)) ((S T) (S R))
b) ((S T) - R) ((S - R) (T - R))
c) (S - (T R)) ((S - T) - R)
2.2.4. Fie S T, demonstrai c:
a) (ST) = S
b) (S -T) =
c) P(S) P(T).
2.2.5. Artai c
a) P(S) P(T) P(S T)
b) P(S T) P(S) P(T)
Pot (a) sau (b) fi adevrate dac incluziunea este nlocuit prin echivalen ?
2.2.6. Ce reprezint P(P(P()))?
2.5. Vectori i produs cartezian
Un set ordonat de elemente se va numi vector sau cortej. Aceasta nu este definiia noiunii de vector,
care la fel ca i noiunea de mulime nu se definete. Elementele, care formeaz vectorul se numesc coordonate
sau componente i se numeroteaz de la stnga spre dreapta. n acest sens se va nelege noiunea de set
ordonat. Vectorii se scriu n paranteze rotunde, componentele se vor separa prin virgul, la necesitate.
Numrul de componente se numete lungimea sau dimensiunea vectorului.
De exemplu, v = (2,3,0,3) este un vector de lungime 4 i difer de b = (3,2,0,3). Observm, c este
admis coincidena coordonatelor. Vectorul de lungime 2 se mai numete pereche, iar de lungime n - n-uplu.
Doi vectori sunt egali dac au aceeai lungime, iar componentele respective coincid.
Se numete produs cartezian a dou mulimi A i B (se noteaz AxB) mulimea tuturor perechilor (a,b)
pentru care aA, bB. Pentru A = B vom avea AxA = A2. Prin analogie, A1xA2x...xAn se va numi mulimea
tuturor vectorilor de lungime n (a1,a2,...,a n) pentru care a1A1, a2A2,..., anAn. Dac A1=A2=...=A n=A produsul
cartezian A1xA2x...xAn se va nota An.
De exemplu, mulimea R x R = R2 este mulimea tuturor perechilor (a,b) pentru care a, bR i reprezint
coordonatele punctelor unui plan. Aceast reprezentare a punctului unui plan a fost propus de ctre
matematicianul i filosoful francez Rene Descartes (1596-1650) din care cauz produsul a dou mulimi i
poart numele.
Alt exemplu, fie A o mulime finit de simboluri (litere, cifre, semne de operaii i ortografice etc.), care,
de obicei, se numete alfabet. Elementele mulimii An se numesc cuvinte de lungime n n alfabetul A.
Mulimea A =A1A2A3... definete toate cuvintele alfabetului A.
Teorema 2.1. Dac A1, A2,..., An sunt mulimi finite cu |A1|=m1, |A2|=m2,..., |An|=mn, atunci
|A1xA2x...xAn| = m1m2...mn.
Demonstraie. Vom apela la metoda induciei matematice. Pentru n = 1 teorema este evident corect.
Presupunem c teorema are loc pentru n = k i vom demonstra justeea ei pentru n = k+1.
Conform presupunerii |A1xA2x...xAk| = m1m2...mk. Vom considera un vector arbitrar
(a1,a2,...,a k)A1xA2x...xAk i vom aduga pe locul k+1 componenta ak+1Ak+1. Vom obine mk+1 vectori diferii
din A1x...xAk+1. Cu alte cuvinte, adugnd la m1m2...mk (vectori de lungime k) componenta cu numrul k+1 din
Ak+1 se vor obine m1m2...mkmk+1 vectori diferii din A1xA2x...xAk xAk+1. Ali vectori n acest produs cartezian nu
exist. Teorema este adevrat pentru n=k+1 i, deci, este adevrat pentru n arbitrar.
Consecin. |An| = |A| n.
Proiecia vectorului v pe axa i se va numi componenta cu numrul i a acestui vector: v=(a1,a2,...,a i,...,a n),
priv=ai.
Proiecia lui v pe axele i1, i2,..., ik se numete vectorul de lungime k: pri1,i2,...,ikv=(ai1,...,a ik).
Pentru V - mulime de vectori de aceeai lungime se introduce noiunea de proiecie a lui V pe axa i i pe
axele i1, i2,..., ik: priV = {priv | vV} i pri1,i2,...,ikV = {pri1,i2,...,ikv | vV}.
2.6. Corespondene i funcii
Vom numi coresponden ntre mulimile A i B submulimea G AxB. Dac (a,b)G se va spune c b
corespunde lui a n corespondena G.
Mulimea pr1G se va numi domeniu de definiie, iar pr2G - domeniu de valori ale corespondenei G.
Dac pr1G = A corespondena se va numi total definit (n caz contrar - parial definit). Corespondena
pentru care pr2G = B se numete suriectiv. Corespondena G se va numi funcional dac fiecrui element
din pr1G i va corespunde un singur element din pr2G = B.
O coresponden se numete biunivoc (sau 1:1) dac ea este
total definit,
suriectiv,
funcional i
fiecrui element din domeniul de valori i corespunde un singur element din domeniul de definiie.
Teorema 2.2. Dac ntre dou mulimi A i B exist o coresponden biunivoc, atunci
|A|=|B|.
Demonstraia este banal i poate fi realizat prin metoda reducerii la absurd. ntradevr, dac teorema
nu este just, pot avea loc dou cazuri:
1. |A| > |B| sau 2. |A| < |B|.
n primul caz, deoarece corespondena este total definit, n A pot fi determinate dou elemente crora le
va corespunde unul i acelai element bB - nu se respect punctul al patrulea. Cazul |A| > |B| trebuie exclus.
n al doilea caz, corespondena fiind suriectiv n B vor fi cel puin dou elemente care corespund unuia
i aceluiai aA - nu se respect funcionalitatea.
i ntr-un caz i n altul am ajuns la contradicie, deci, nu ne rmne dect s fim de acord cu afirmaia
teoremei.
Ultima teorem permite:
a) stabilirea egalitii cardinalelor a dou mulimi fr calcule i
b) determinarea cardinalului unei mulimi prin stabilirea unei corespondene biunivoce a acestei
mulimi cu o alta, cardinalul creia este cunoscut sau uor de calculat.
Ca exemplu
Teorema 2.3. Dac A este o mulime finit i |A|= n, atunci numrul tuturor submulimilor mulimii
A este 2n (|B(A)|=2|A|=2n).
UTM, Chiinu, 1998, V.Beliu
Deoarece relaia este n ultim instan o mulime, pot fi executate aceleai operaii (reuniune, intersecie
etc.) cu relaiile.
O relaie se numete inversa relaiei R (se va nota R-1) dac aiRaj are loc atunci i numai atunci cnd are
loc ajR-1ai.
Relaia poate poseda o serie de proprieti dintre care vom studia reflexivitatea, simetria i
tranzitivitatea.
Dac pentru aM are loc aRa relaia R se numete reflexiv. Diagonala principal a matricei relaiei R
conine numai uniti. Relaia R se numete antireflexiv dac nu exist aM pentru care ar avea loc aRa.
Diagonala principal a matricei unei astfel de relaii conine numai zerouri. Relaiile "", "a avea un divizor
comun" sunt reflexive. Relaiile "a fi fiu", ">" - sunt antireflexive.
Dac pentru o pereche (a,b)M2 din aRb rezult bRa (relaia are loc n ambele pri sau nu are loc de
fel), relaia R se numete simetric. Pentru astfel de relaii c(i,j) = c(j,i) (matricea este simetric fa de
diagonala principal). Relaia se va numi antisimetric dac din aiRaj i ajRai rezult c ai=aj . Relaia ""
este antisimetric, iar "a locui n acelai ora" - simetric.
Relaia R se numete tranzitiv dac pentru oricare a, b i c din aRb i bRc rezult aRc. Relaiile "a
locui n acelai ora", "egal", "<" sunt tranzitive, iar "a fi fiu" nu este tranzitiv.
Pentru oricare relaie R poate fi definit noiunea de nchidere tranzitiv R *: aR*b (a se afl n relaia R*
cu b), dac n M exist o secven de n elemente a=a1,..., an-1, an = b n care pentru elementele vecine are loc
R: aRa2, a2Ra3,..., an-1Rb. Dac R este tranzitiv, atunci R*=R. Pentru relaia "a fi fiu" relaia "a fi descendent
direct" este nchidere tranzitiv (este reuniunea relaiilor "a fi fiu", "a fi nepot", "a fi strnepot" s.a.m.d.).
O relaie care posed proprietile reflexivitate, simetrie i tranzitivitate se numete relaie de
echivalen.
Se numete relaie de ordine oricare relaie care posed proprietile reflexivitate, antisimetrie i
tranzitivitate. O relaie antireflexiv, antisimetric i tranzitiv se numete relaie de ordine strict. Dou
elemente a i b se numesc comparabile conform relaiei de ordine R dac are loc aRb sau bRa. O mulime M
cu o relaie de ordine definit pe M se numete total ordonat dac oricare dou elemente din M sunt
comparabile i parial ordonat n caz contrar.
Exemple. Relaiile "", "" pentru o mulime de numere sunt relaii de ordine, iar "<", ">" - de ordine
strict.
Relaia de subordonare n cadrul unei ntreprinderi definete o ordine strict (dar parial - nu pot fi
comparai colaboratorii diferitor departamente).
n alfabetul latin literele sunt aranjate ntr-o ordine binecunoscut: se afl n relaia de precedare a
literelor. Conform acestei relaii poate fi stabilit relaia de precedare a cuvintelor - ordinea lexicografic a
cuvintelor (utilizat de exemplu n dicionare). Relaia de ordine lexicografic poate fi definit i pentru
informaii numerice. De exemplu, n calculator data i anul sunt memorizate sub forma "anul, luna, ziua"
pentru ca ordinea de cretere a datei totale s coincid cu ordinea lexicografic.
2.8. Operaii i algebre. Proprietile operaiilor
Funcia de tipul : M M se va numi operaie n-ar pe M. Setul A = <M, >, n care este o mulime
de operaii definite pe M, se numete algebr. Mulimea M se va numi mulime de baz sau suportul, iar =
{1, 2,..., m,...} - signatura algebrei A. Vectorul, componentele cruia sunt aritile operaiilor 1, 2,... se
numete tipul algebrei A.
n
Operaia se numete:
b) comutativ, dac ab = ba,
a) asociativ, dac pentru oricare a, b, c are loc (ab)c = a(bc),
c) idempotent, dac aa = a,
d) distributiv stnga fa de operaia g, dac pentru oricare a, b, c are loc relaia
a(bgc) = (ab)g(ac), i distributiv dreapta dac (agb)c = (ac)g(bc).
Dac exist un element e pentru care are loc ae = ea = a, atunci acest element se numete neutru (sau
unitate).
Exemple. a) Pentru o mulime arbitrar U notm mulimea tuturor prilor prin B(U). Algebra A = {B(U), ,
, } se numete algebr booleana a mulimilor. Tipul ei este (2,2,1).
b) Algebra A = {R,+,x} se numete cmp al numerelor reale. Ambele operaii sunt binare, deci tipul
este (2,2).
c) Algebrele L = {M, ,} (cu dou operaii binare - reuniunea i intersecia) se numesc latice, dac
au loc axiomele:
UTM, Chiinu, 1998, V.Beliu
(2.5)
(2.7)
Diferena Ri\Rj a dou relaii compatibile Ri i Rj se numete mulimea tuturor cortejurilor care aparin
lui Ri i nu aparin relaiei Rj .
Produs cartezian extins RixRj a dou relaii Ri i Rj se va numi mulimea tuturor cortejurilor formate
prin concatenarea lui aRi i a lui bRj.
Exemplu: dac Ri ={(a,b),(a,c),(a,e)}, iar Rj = ((a,b,c),(c,d,e)}, atunci
RixR j = {(a,b,a,b,c), (a,b,c,d,e), (a,c,a,b,c), (a,c,c,d,e), (a,e,a,b,c), (a,e,c,d,e)}.
Algebra relaiilor i modelele sunt utilizate pentru formalizarea unor obiecte reale. Vom exemplifica prin
folosirea algebrei relaiilor n cazul bazelor relaionale de date.
O baz de date de tip relaional este un tablou bidimensional n care coloanele determin aa numitele
domene (atribute), iar liniile sunt cortejuri de valori concrete ale atributelor, care se afl n relaia R.
De exemplu, relaia R5 - "examene" (v.tab. 2.1).
Tabelul 2.1.
R5
1
2
3
4
5
6
7
8
9
10
D1
3-101
3-202
3-310
3-101
3-104
3-101
3-101
3-202
3-310
3-101
D2
Matematica discret n inginerie
Microelectronica
Fizica
Circuite integrate
Electrotehnica
Matematica discret n inginerie
Matematica discret n inginerie
Microelectronica
Fizica
Circuite integrate
D3
conf. V.Beliu
conf. V.ontea
prof. I.Samusi
conf. V.Negur
conf. A.Diligul
conf. V.Beliu
conf. V.Beliu
conf. V.ontea
prof. I.Samusi
conf. V.Negur
D4
3 iunie
4 iunie
3 iunie
4 iunie
3 iunie
8 iunie
13 iunie
8iunie
8iunie
8iunie
D5
TI-961
C-951
TI-962
C-941
TI-951
TI-962
TI-963
C-952
TI-961
C-942
Relaia R5 este o submulime a produsului cartezian D1xD2xD3xD4xD5. Elemente ale domenului Di sunt
valorile atributelor:
D1 = {3-101, 3-501, 3-502, 3-310} - numerele auditoriilor unde au loc examenele;
D2 = {Matematica discret n inginerie, Microelectronica, Fizica, Circuite integrate, Electrotehnica} denumirea disciplinelor;
D3 = {conf.V.Beliu, conf. V.Negur, conf.A.Diligul, conf.V.ontea, prof.I.Samusi} -examinatorii;
D4 = {3 iunie, 4 iunie, 8 iunie, 13 iunie} - data examenului;
D5 = {TI-961, TI-962, TI-963, C-941, C-942, C-951, C-952} - denumirea grupei.
Numerele 1, 2,...., 10 din prima coloan identific elemente ale relaiei R5.
Algebra relaional este o extensie a algebrei relaiilor n sens c signatura S n afar de cele 4 operaii
descrise anterior mai conine cteva operaii speciale: proiecia, selecia i jonciunea.
Operaia selecie permite evidenierea unei submulimi de cortejuri care posed o proprietate dat. De
exemplu, operaia selecie permite evidenierea relaiei orarul conf. V.Beliu - liniile n care valoarea
domenului D3 este conf. V.Beliu:
R5
1
6
7
D1
3-101
3-101
3-101
D2
Matematica discret n inginerie
Matematica discret n inginerie
Matematica discret n inginerie
Tabelul 2.2
D3
D4
D5
conf. V.Beliu 3 iunie TI-961
conf. V.Beliu 8 iunie TI-962
conf. V.Beliu 13 iunie TI-963
Tabelul 2.3.
D2
Matematica discret n inginerie
Microelectronica
Fizica
Circuite integrate
Electrotehnica
D3
conf. V.Beliu
conf. V.ontea
prof. I.Samusi
conf. V.Negur
conf. A.Diligul
Proiecia PrRn/Ai1,...,A im a relaiei n-are RnA1xA2x...xA n, m n, pe Ai1, Ai2,..., Aim se numete mulimea
cortejurilor (ai1, ai2,..., aim), n care ai1Ai1, ai2Ai2,..., aimAim i fiecare cortej este parte a unui element al
relaiei n-are Rn. Cu alte cuvinte, operaia proiecie permite construirea unei submulimi verticale a relaiei (a
unei mulimi de submulimi de atribute care se obine prin alegerea unor domene concrete).
De exemplu, Pr(R5/D2,D3) determin denumirea examenelor i numele examinatorilor (liniile care
coincid se scriu o singur dat):
Operaia jonciune (join) a dou tabele care au un domen comun permite construirea unui tabel nou n
care fiecare linie se va obine din unirea a dou linii din tabelele iniiale. Aceste linii corespund aceluiai
atribut din domenul comun. Domenul comun se va scrie o singur dat.
De exemplu, pentru tabele 2.4 i 2.5 domenul comun este D5, rezultatul operaiei de jonciune este
prezentat n tabelul 2.6.
Tabelul 2.4.
D1
3-202
3-310
3-104
D2
Microelectronica
Fizica
Electrotehnica
D3
conf. V.ontea
prof. I.Samusi
conf. A.Diligul
D4
4 iunie
3 iunie
3 iunie
D5
C-951
TI-962
TI-951
Tabelul 2.5.
D1
3-104
3-310
3-202
D2
Electrotehnica
Matematica
Microelectronica
D3
conf. A.Diligul
conf. L.Dogotaru
conf. V.ontea
D4
13 iunie
13 iunie
14 iunie
D5
C-951
TI-962
TI-951
Tabelul 2.6.
D1
3-202
3-310
3-104
D2
Microelectronica
Fizica
Electrotehnica
D3
conf. V.ontea
prof. I.Samusi
conf. A.Diligul
D4
4 iunie
3 iunie
3 iunie
D11
D21
3-104 Electrotehnica
3-310 Matematica
3-202 Microelectronica
D31
D41
conf. A.Diligul
13 iunie
conf. L.Dogotaru 13 iunie
conf. V.ontea
14 iunie
D5
C-951
TI-962
TI-951
Operaia join este definit nu numai pentru condiia de egalitate a dou domene, ci pot fi i alte condiii
de comparare, de exemplu, >, , <, .
N al obiectului
Dintre principalele orientri ale logicii matematice pot fi menionate logica clasic, logica intuiionist,
logica polivalent, logica hibrid, logica fuzzy etc.
Definirea riguroas a problemelor legate de tiina calculatoarelor, informatica teoretic i aplicat este
bazat pe principiile logicii matematice. Problemele tehnice privind circuitele logice i comenzile secveniale,
majoritatea modelelor matematice utilizate n inteligena artificial nu pot fi concepute n afara acestui
domeniu.
3.1. Funciile algebrei logicii
Vom evidenia n mod deosebit mulimea B care conine dou elemente, notate de obicei prin 0 i 1 B =
{0, 1}. Aceste elemente nu vor fi considerate numere n sensul obinuit. Ne vom opri la interpretarea logic: 0
n sens de nu sau fals, 1 n sens de da sau adevrat; (v amintii de programare - FALS i TRUE). ntr-un caz
mai general aceast interpretare nu este obligatorie - adesea elementele mulimii B pot fi considerate simboluri
formale care nu au un sens aritmetic.
Algebra A = <B, F>, n care F este mulimea operaiilor f: BnB, n = 1, 2,..., m se numete algebra
logicii sau boolean, dup numele matematicianului i logicianului englez George Boole (1815 - 1864).
Operaiile f: BnB se numesc funcii ale algebrei logicii sau funcii logice, booleene (FB). Cu alte cuvinte, o
funcie boolean de n argumente f(x1, x2,..., xn) are domeniul de valori i domeniul de definiie mulimea B =
{0, 1}. Mulimea tuturor funciilor logice de n argumente notm prin P2(n).
Lund n locul lui B o mulime finit M de cardinal k de simboluri formale mpreun cu toate operaiile
definite pe M vom ajunge la logica polivalent. Mulimea tuturor funciilor logice n logica polivalent se va
nota prin Pk(n).
O algebr boolean mai poate fi definit ca o latice complementar i distributiv cu axiomele i
proprietile respective (v.p. 2.7).
funcie logic f(x1, x2,..., xn) poate fi definit cu ajutorul unui tabel care conine n+1 coloane. Primele
n coloane vor enumera toate combinaiile posibile ale argumentelor, iar ultima determin valorile
posibile ale funciei. De exemplu, pentru o funcie de trei argumente f(x1, x2, x3) putem avea urmtorul
tabel:
x1
0
0
0
0
x2
0
0
1
1
x3
0
1
0
1
f(x1,x2,x3)
1
0
0
0
x1
1
1
1
1
Tabelul 3.1.
x2
x3
f(x1,x2,x3)
0
0
1
0
1
0
1
0
0
1
1
1
Se va mai spune c combinaia (000) este aplicat n 1, (001) - n 0 .a.m.d. Combinaiile au fost
enumerate n ordine lexicografic, ncepnd de la 0, reprezentat n binar prin (000) pn la 7 - (111). Avem 8
combinaii posibile n cazul unei funcii de trei argumente.
Pentru cazul unei funcii de n argumente observm c combinaiile posibile ale argumentelor sunt vectori
binari de lungime n. Este uor de demonstrat, c mulimea tuturor combinaiilor posibile este k = 2n (v.
teorema 2.1). Din aceleai considerente pot exista 2k = 2**2n funcii booleene distincte. ntradevr, mulimea
tuturor vectorilor binari de lungime n prin definiie reprezint produsul cartezian Bn. Cardinalul acestui
produs este |B| = 2n. Analogic, deoarece oricare funcie boolean de n argumente este un vector binar de
lungime k = 2n, exist 2**2n funcii booleene.
Tabelele de tipul lui 3.1 se numesc tabele de adevr.
Exist situaii cnd pentru unele combinaii ale valorilor argumentelor valoarea FB s nu fie determinat.
FB nedeterminate pentru una sau mai multe combinaii ale valorilor argumentelor se numesc incomplet
definite. n tabelul de adevr valorile nedefinite le vom
indica cu asterisc (*).
Exemplu: Fie f(x1, x2, x3) o FB dat prin tabelul de adevr 3.2.
x1
0
0
0
0
x2
0
0
1
1
x3
0
1
0
1
f(x1,x2,x3)
1
*
0
0
x1
1
1
1
1
Tabelul 3.2.
x2
x3
f(x1,x2,x3)
0
0
*
0
1
0
1
0
0
1
1
*
Funcia este nedeterminat pentru combinaiile (001), (100) i (111) ale valorilor argumentelor, ele
putnd fi aplicate uneori arbitrar n 0 sau 1. Funciile incomplet definite se ntlnesc frecvent n practica
comenzilor secveniale, evidenierea situaiilor de nedefinire i atibuirea unor valori la necesitate fiind extrem
de important pentru simplificarea lor.
UTM, Chiinu, 1998, V.Beliu
f0(x)
0
0
f1(x)
0
1
f2(x)
1
0
f3(x)
1
1
Funciile f0 i f3 se numesc constanta 0 si, respectiv, constanta 1. Valorile lor nu depind de valoarea
argumentului. n acest caz se va spune c argumentul este nesemnificativ, redundant sau fictiv. Funcia f1
repet valoarea argumentului x: vom scrie f1(x) = x. Funcia f2(x) se numete negaia lui x (NONx) i se noteaz
x (x barat).
Exista 16 FB de dou argumente:
x1
0
0
1
1
x2
0
1
0
1
f0
0
0
0
0
f1
0
0
0
1
f2
0
0
1
0
f3
0
0
1
1
f4
0
1
0
0
f5
0
1
0
1
f6
0
1
1
0
f7
0
1
1
1
f8
1
0
0
0
f9
1
0
0
1
Tabelul 3.4.
f10
f11
f12
1
1
1
0
0
1
1
1
0
0
1
0
f13
1
1
0
1
f14
1
1
1
0
f15
1
1
1
1
FB fo(x1,x2) i f15(x1,x2) sunt aceleai constante 0 i 1, respectiv, numai c n acest caz ambele argumente
sunt fictive, iar funciile mai pot fi numite degenerate.
Funcia f1(x1,x2), care aplic combinaiile celor dou argumente n 1 atunci i numai atunci, cnd ambele
argumente au valoarea 1, se numete conjuncie, produs logic sau funcia logic I, (AND). Se noteaz
x1&x2, x1x2, x1x2.
Funcia f7(x1,x2) are valoarea 1 dac cel puin unul din argumente este 1 i se numete disjuncie, sum
logic, funcia logic SAU (OR). Se noteaz x1vx2 sau x1+x2.
FB f6(x1,x2) se numete suma modulo 2, funcia SAU-EXCLUSIV sau neechivalen i se noteaz f6(x1,x2)
= x1x2.
Funciile f3(x1,x2) i f5(x1,x2) corespund valorilor argumentelor: f3(x1,x2) = x1 i f5(x1,x2) = x2 i se numesc
funcii identitate, iar f10(x1,x2) i f12(x1,x2) corespund funciilor f3(x1,x2) i f5(x1,x2) negate.
Funcia f8(x1,x2) = f7(x1,x2) poart denumirea de funcia lui Pierce sau funcia lui Webb i se noteaz:
f8(x1,x2) = x1x2. Se mai numete aceast funcie NICI sau NOR din cauza c coincide cu (x1x2).
FB f9(x1,x2) care are valoarea 1 atunci i numai atunci cnd valorile argumentelor coincid se numete
funcia de echivalen i se noteaz prin f9(x1,x2) = x1x2 sau x1x2.
Funcia f13(x1,x2) are valoarea 0 numai n cazul cnd x1 este 1, iar x2 = 0. Ea se numete implicaie. Se va
mai spune c x1 implic x2 sau dac x1 atunci x2 i vom nota x1 x2. Analogic, funcia f11(x1,x2) este implicaia
lui x2, n x1: x2x1.
FB f14(x1,x2) este 0 dac i numai dac ambele argumente sunt 1 i se numete funcia lui Sheffer sau INU (n englez NAND). Se noteaz f14(x1,x2) = x1|x2 sau (x1x2).
Observm, c n cazul funciilor de un argument jumtate din FB sunt cu argumente fictive (degenerate).
n cazul a dou argumente din 16 funcii booleene ase sunt cu argumente fictive. Odat cu creterea lui n
numrul funciilor cu argumente fictive descrete, tinznd ctre 0, cnd n tinde spre infinit.
3.2.
n 2.5 am numit superpoziie a funciilor f1, f2,...,, fn funcia f obinut prin substituiri i redenumiri de
argumente n aceste funcii, iar prin formul nelegem expresia care descrie aceast superpoziie. Vom
concretiza noiunea de formul pentru funciile logice, introducnd noiunea de formul peste = {f1, f2,...,,
fm,...}, fiind o mulime de funcii logice date.
Considerm formul peste toate formulele care conin numai simboluri de variabile, simboluri de
funcii i paranteze.
De exemplu, poate fi considerat formul expresia: f=((x1x3)(x2x4)). Valoarea funciei dat de o
formul poate fi calculat, cunoscnd valorile argumentelor i tabelele de adevr ale funciilor logice
elementare (v. tab.3.4). Dac x1=1, x2=1, x3=0 i x4=0, avem x1x3=1, x2x4=0 i f=0.
UTM, Chiinu, 1998, V.Beliu
Deci, o formul, pune n coresponden fiecrui set de valori ale argumentelor o anumit valoare de
adevr i poate servi, mpreun cu tabelele de adevr, drept metod de definire i calculare a valorilor
funciilor logice. Se mai spune c o formul reprezint sau realizeaz o funcie logic. Calculnd valorile FB
pentru toate 2n combinaii ale argumentelor restabilim tabelul de adevr al acestei funcii. ns, spre deosebire
de tabelele de adevr, o funcie logic poate fi realizat prin mai multe formule. Cu alte cuvinte, dac ntre
mulimea tabelelor de adevr i mulimea funciilor logice exist o coresponden biunivoc, alta este situaia
cu formulele: o FB poate fi prezentat printr-o infinitate de formule. De exemplu, funcia Pierce f8(x1,x2) =
x1x2 mai poate fi realizat prin formulele (x1x2) sau x1 x2, iar funcia Sheffer f14(x1,x2) = x1|x2 prin x1 x2
sau (x1x2).
Formulele, care realizeaz aceeai funcie logic se numesc echivalente; Echivalena a dou formule se
va nota prin simbolul = sau . Metoda general de stabilire a echivalenei a dou formule const n construirea
tabelelor lor de adevr i compararea acestora. Alt metod, denumit metoda transformrilor echivalente,
presupune transformarea uneia dintre formule (sau a ambelor) pn se ajunge la o form evident comun. Un
interes aparte l prezint procedeele de reprezentare a funciilor booleene prin aa numitele forme normale sau
canonice i forme minimale.
Notm x0= x, x1=x. Este simplu s ne convingem (de exemplu prin construirea tabelului de adevr), c
pentru un parametru egal cu 0 sau cu 1, reeind din notaia introdus, avem
i
x=1 cnd x=
x=0, dac x..
(3.1)
Teorema 3.1. Orice funcie boolean f(x1, x2,..., xn) poate fi pus sub forma:
f(x1, x2,..., xm, xm+1,..., xn)= x11...x mm f(1,..., m, xm+1,..., xn)
(3.2)
,..., m
1
n care mn, iar disjunciile se vor lua pentru toate 2m seturi, formate din variabilele x1, x2,..., xm.
Relaia (3.2) se numete decompoziia funciilor booleene pentru variabilele x1, x2,..., xm.
Demonstrm prin introducerea unui set arbitrar de valori (1,2,..., m,m+1,..., n) ale argumentelor n
ambele pri ale relaiei (3.2). Deoarece x=1 numai n cazul n care x=, dintre toate cele 2m conjuncii ale
prii drepte a relaiei (3.2) numai una este egal cu 1 (restul sunt 0), cea pentru care 1=1, 2=2,..., m=m.
Obinem
f(1,2,..., n) = 11... mmf(1,2,..., m,m+1,..., n) = f(1,2,..., n),
i, deoarece setul de valori a fost luat arbitrar, iar noi am obinut o identitate, teorema este demonstrat.
Pentru m=1 avem decompoziia FB pentru o singur variabil (de exemplu x1):
f(x1, x2,..., xn)= x1 f(0, x2,..., xn) x1 f(1, x2,..., xn).
Prezint interes deosebit cazul m = n - decompoziia FB pentru toate variabilele x1, x2,..., xn. Avem:
f(x1, x2,..., xn)= x11...x nn f(1,..., n)= x11...x nn,
,..., n
1
(3.3)
f(1,..., n)=1
n care disjunciile se iau pentru combinaiile argumentelor aplicate de f n 1, iar conjunciile respective se
numesc elementare, termeni canonici conjunctivi sau termeni minimali (mintermi).
Numim formul boolean orice formul care n afr de variabile i paranteze conine doar funciile
disjuncie, conjuncie i negaie.
Teorema 3.2. Orice funcie logic poate fi prezentat printr-o formul boolean.
Demonstraia este imediat i reiese din teorema 3.1, relaia (3.3) i ultima definiie. Constanta 0 poate
fi reprezentat prin formula x x.
Algebra A = <P2, {, , }>, suportul creia este mulimea tuturor funciilor logice, iar n calitate de
operaii sunt luate disjuncia, conjuncia i negaia, se numete algebra boolean a funciilor logice. Operaiile
acestei algebre se mai numesc operaii booleene.
UTM, Chiinu, 1998, V.Beliu
Pentru operaiile booleene s-a convenit a se considera urmtoarea ordine de ndeplinire: mai nti vor fi
ndeplinite toate operaiile de negaie (cea mai nalt prioritate), apoi conjunciile, iar cea mai mic prioritate
o are disjuncia. La necesitate pot fi utilizate parantezele.
Este simplu de stabilit (prin construirea tabelelor de adevr, de exemplu), c operaiile booleene posed
proprietile:
asociativitate
x1(x2x3 ) = (x1x2)x3;
x1(x2x3 ) = (x1x2)x3;
(3.4)
comutativitate
x1x2 = x2x1;
x1x2 = x2x1;
(3.5)
distributivitate
x1(x2x3 ) = x1x2x1x3;
x1(x2x3 ) = (x1x2)(x1x3);
(3.6)
idempoten
xx = x;
x x = x;
(3.7)
principiul involuiei
x = x;
operaii cu constante
x&1=x;
(x1x2) = x1 x2;
contradicie
x x =0;
(3.11)
x x = 1.
(3.12)
(3.8)
x&0=0;
x1=1; x0=x;
0=1; 1=0;
(x1x2) = x1 x2;
(3.9)
(3.10)
Important: operaiile booleene posed proprietile (3.4) - (3.12) chiar dac argumentele xi sunt la
rndul lor funcii sau vor fi obinute n rezultatul unor calcule. Ca rezultat, aceste proprieti se mai numesc
relaii de echivalen, iar transformrile care pot fi operate cu ajutorul lor se numesc transformri echivalente.
Relaiile de echivalen (3.4) - (3.12), mpreun cu unele relaii suplimentare, obinute din primele, prezint
un interes deosebit n tratarea problemei de echivalen a formulelor, datorit eficacitii mai mari n
comparaie cu tabelele de adevr.
Dintre relaiile de echivalen suplimentare (demonstraiile se bazeaz pe proprietile de mai sus i se
propun ca exerciiu):
absorbie
xxy = x;
x(xy) = x;
alipire
xyx y = x;
alipire generalizat
xz y z xy = xz y z
3.3. Forme canonice
Decompoziia (3.3) se numete form canonic disjunctiv (FCD) sau form normal disjunctiv perfect
(FNDP) a funciei f(x1, x2,..., xn). FCD conine tot attea conjuncii elementare cte uniti sunt n tabelul de
adevr al funciei date: fiecrui set de valori ale argumentelor pentru care f=1 i corespunde o conjuncie n
care xi este negat, dac = 0 i fr negaie, dac = 1. Cu alte cuvinte, exist o coresponden biunivoc
ntre tabelul de adevr al funciei f(x1, x2,..., xn) i FCD a acestei funcii. Unica funcie boolean care nu posed
FCD este constanta 0.
Relaia (3.3) conduce la un algoritm simplu de elaborare a FCD pentru o FB arbitrar:
1o. Se construiete tabelul de adevr al funciei;
2o. Pentru fiecare combinaie de valori ale argumentelor aplicate n 1 se scriu termenii canonici
conjunctivi n care argumentul xi este luat ca atare sau negat dup cum valoarea lui n combinaia respectiv
este 1 sau 0;
3o. Se reunesc toi termenii canonici conjunctivi, obinute la pasul precedent, cu operaia disjuncie.
Reprezentarea unei FB se poate face i sub o alt form, numit forma canonic conjunctiv (FCC).
Pentru aceasta numim numrul combinaiei numrul i ataat unei combinaii de valori (1,2,..., n)
conform relaiei:
i = 12n-1+22n-2+...+n20
i introducem funcia Si(x1, x2,..., xn) definit astfel:
Si =
Aceast funcie se numete funcia caracteristic a lui zero, sau constituentul lui zero.
UTM, Chiinu, 1998, V.Beliu
Poate fi demonstrat
Teorema 3.3. Orice FB poate fi scris sub urmtoarea form
f(x1, x2,..., xn) = & Si
(3.14)
i M
unde M0 este mulimea numerelor combinaiilor valorilor argumentelor pentru care funcia f(x1, x2,..., xn) ia
valoarea 0 (conjuncia constituenilor lui zero) [1].
Demonstraie. Se consider un set arbitrar de valori ale argumentelor (1,2,..., n). Sunt posibile dou
cazuri distincte: funcia s aplice acest set de valori n 0 sau n 1. Dac valoarea funciei este 0, atunci n
partea dreapt a relaiei (3.14) se afl funcia Sik al crei indice ik corespunde numrului setului considerat. n
acest caz, conform cu (3.13), pentru setul respectiv de valori ale argumentelor Sik va fi egal cu 0. Conform
proprietii x&0 = 0 partea dreapt a relaiei (3.14) va fi egal cu 0. Dac ns pentru setul considerat valoarea
funciei este 1, atunci conform formulrii teoremei, printre funciile Sik din (3.14) nu va fi nici una pentru care
indicele s coincid cu numrul combinaiei. n acest caz, conform cu (3.13), toi membrii conjunciei din
partea dreapt a relaiei (3.14) vor fi egali cu 1, deci partea dreapt va fi egal cu 1. Deoarece s-a demonstrat
c ambele pri ale relaiei (3.14) sunt identice pentru un set arbitrar de valori ale argumentelor rezult c
este adevrat pentru orice alt set de valori. Teorema este demonstrat.
Pentru a stabili expresiile funciilor Sik se consider expresia boolean
x11 x22... xnn.
(3.15)
Conform relaiei (3.1) funcia (3.15) este 0 atunci i numai atunci, cnd x1 1, x2 2,..., xn n, fiind 1
pentru toate celelalte cazuri. Avnd n vedere (3.13) pentru funcia constituentul lui 0 rezult:
x 2
...xn
cu condiia ca i = 12n-1+22n-2+...+n20.
x2 2...xn n)
(3.16)
unde prin &0 s-a notat faptul c se consider conjuncia termenilor disjunctivi (3.15) pentru care funcia f ia
valoarea 0.
Reprezentarea FB sub forma (3.16) se numete forma canonic conjunctiv (FCC) a funciei, iar
termenii (3.15) cu condiia xii termeni canonici disjunctivi (TCD), termeni maximali sau maxtermi.
Relaia (3.16) permite stabilirea algoritmului realizrii FCC dac se cunoate tabelul de adevr al
funciei, care conine urmtorii pai:
10. Din tabelul de adevr al funciei se consider toate combinaiile pe care funcia le aplic n 0;
20. Se scriu TCD care corespund acestor combinaii. In expresia TCD argumentul xi intr ca atare sau
negat dup cum n combinaia considerat are valoarea 0 sau 1;
30. TCD obinui la pasul 2 se reunesc prin semnul conjunciei.
Formele canonice sunt unice pentru o funcie logic complet definit. Este recomandat FCD n cazul n
care tabelul de adevr al funciei conine un numr mai mic de valori 1 i FCC, n caz contrar.
3.4.
n afar de reprezentarea FB cu ajutorul tabelelor de adevr i a formelor canonice mai sunt cunoscute o
serie de alte forme cum ar fi diagramele Karnaugh, schemele logice, diagramele de timp etc.
Diagramele Karnaugh au fost concepute pentru simplificarea FB i reprezint un tablou bidimensional,
care pentru o funcie de n argumente conine 2p linii i 2q coloane, iar p+q = n. Dac n este par, atunci p = q i
p = q+1, n caz contrar. De obicei, pot fi utilizate cu succes pentru n = 4; 5; mai dificil pentru n = 6 i mai
mare. ntr-un tabel bidimensional Karnaugh titlurile coloanelor i liniilor sunt formate din combinaiile de
valori posibile dispuse n cod Gray (binar reflectat). Acest cod fiind continuu i ciclic asigur relaia de
adiacen ntre cmpurile diagramei (numim adiacente dou cmpuri dac titlurile lor difer printr-un singur
rang).
Exemplu. Pentru FB de 4 argumente cu tabelul de adevr 3.5 diagrama Karnaugh este prezentat n
figura 3.1.
Tabelul 3.5
x1
x2
x3
x4
f(x1,x2,x3,x4)
x1
x2
x3
x4
f(x1,x2,x3,x4)
x1x2
00
01
11
10
00
01
11
10
x3x4
Fig. 3.1.
Combinaiile valorilor argumentelor x1 i x2 sunt dispuse n partea superioar a diagramei, iar cele ale
argumentelor x1 i x2 vertical n partea stng. La intersecia unei coloane i a unei linii este cmpul diagramei
n care se trece 0 sau 1, dup cum valoarea funciei n tabelul de adevr este 0 sau 1.
Schema logic este o reprezentare grafic a FB obinut prin adoptarea unor semne convenionale pentru
operaiile logice. Altfel spus, schema logic reprezint topologia unui circuit logic, care materializeaz o FB.
Simbolurile grafice adoptate constituie o reprezentare a circuitelor logice care materializeaz funciile logice
elementare. Unele dintre cele mai des utilizate semne grafice pentru FB elementare sunt prezentate n tab. 3.6.
Tab.3.6
Denumirea funciei
Negaia f = x
Reprezentarea grafic
x --------O--------- x
Disjuncia f = x1x2
Conjuncia f = x1x2
Pierce f = x1x2
Sheffer f = x1/x2
Exemplu. S se reprezinte prin schem logic funcia f(x1, x2, x3) = ( x1x2 x3) (x1x2x3).
Utiliznd figurile grafice din tab.3.6 schema logic este prezentat n fig. 3.2. Aici pot fi indicate i
nivelele logice - mulimea elementelor fizice care opereaz simultan. n exemplul dat avem nivelele logice 0,
1 i 2.
Fig. 3.2.
Dac vom reprezenta grafic argumentele x i ca funcii de timp, atand valorii 0 un nivel cobort, iar
valorii 1 un nivel ridicat, astfel ca s existe o difereniere evident a acestor nivele, i vom face acelai lucru i
cu valorile funciei vom obine reprezentarea unei FB prin diagrame n timp (diagrame temporale),
reprezentare extrem de util n studiul sistemelor secveniale n evoluia crora intervine timpul.
Exemplu. Diagrama temporal a funciei f = x1x2 are forma prezentat n fig. 3.3.
Fig.3.3.
3.5.
Definiie. Numim sistem complet de FB (baz) n clasa sistemul (f1, f2,..., fk), dac orice funcie
poate fi reprezentat prin superpoziia funciilor din acest sistem.
n calitate de poate fi luat mulimea P2(n). n aceast clas exist un sistem complet i anume toate
cele 2**2n funcii de n argumente. Conform teoremei 3.2, orice funcie logic de n argumente de asemenea
poate fi reprezentat utiliznd doar funciile negaie, disjuncie i conjuncie. Deci, n aceeai clas pot exista
mai multe sisteme complete cu un numr diferit de funcii. Un interes deosebit prezint problema alegerii
bazei care conine un numr minim de funcii.
Numim baz minimal (sistem complet minimal) un sistem complet arbitrar de funcii booleene (f1,
f2,..., fk), care odat cu eliminarea oricrei funcii aprinnd sistemului devine incomplet.
Pentru a stabili completitudinea unui sistem oarecare de FB este suficient s se arate c funciile
sistemului considerat pot reprezenta funciile sistemului (, , ). Pot fi demonstrate teoremele:
Teorema 3.4. Sistemul (, ) este un sistem complet n clasa P2(n).
Teorema 3.5. Sistemul (, ) este un sistem complet n clasa P2(n).
Teorema 3.6. Funcia lui Pierce () formeaz n clasa P2(n) un sistem complet.
Teorema 3.7. Funcia lui Sheffer ( ) formeaz n clasa P2(n) un sistem complet.
Pentru a demonstra, de exemplu, teorema 3.5 este suficient s se demonstreze c funcia disjuncie poate
s fie reprezentat prin funciile negaie i conjuncie. Utiliznd principiul involuiei i una din relaiile lui De
Morgan avem
f(x1, x2,..., xn)= x1 x2... xn=
Analogic se demonstreaz teorema 3.4. Am stabilit c sistemul (, , ) este redundant. Una din funcii
(disjuncia sau conjuncia poate fi eliminat, sistemul rmnnd complet).
Pentru a demonstra teorema 3.6 vom arta c funcia lui Pierce poate reprezenta sistemul ( , ). Negaia
se poate scrie astfel:
x = x& x = xx.
Funcia conjuncie poate fi exprimat n modul urmtor:
x1x2 = (x1x2) = (x1x2) = (x1x2)(x1x2).
Analogic demonstrm i teorema 3.7.
Teoremele 3.6 i 3.7 prezint un interes deosebit datorit numrului minim posibil de elemente care
formeaz baza: putem utiliza un singur tip de circuit pentru materializarea oricrei funcii booleene. n acest
context este important trecerea de la FCD i FCC la forme cu funcii Pierce (SAU-NU) sau Sheffer (I-NU),
trecere denumit implementare.
3.6.
Problema reprezentrii funciilor booleene prin sisteme complete care conin un numr minim de funcii
elementare vizeaz posibilitatea folosirii unui numr ct mai redus de tipuri de circuite logice pentru
materializarea FB considerate. Exist i un alt aspect al problemei - cel care privete utilizarea unui numr ct
mai mic de circuite standard. Teoretic aceast problem se reflect n simplitatea funciilor booleene. Este
evident c formele canonice sunt departe de a fi cele mai simple. Obinerea unor forme mai simple poate fi
realizat prin metoda transformrilor echivalente utiliznd relaiile p.3.2. ns simplitatea final depinde de
miestria i experiena cercettorului, mai mult - nu exist sigurana c forma obinut este cea mai simpl.
Din aceast cauz au fost cutate metode sistematice pentru obinerea expresiilor minimale a FB.
3.6.1.
Numim termen normal conjunctiv (TNC) conjuncia x11x22...x kk (kn), n care fiecare variabil se
ntlnete numai o singur dat. Numrul literelor unui termen normal conjunctiv numim rangul termenelui,
iar disjuncia TNC - form normal disjunctiv (FND). Reeind din aceste definiii putem spune c FCD a unei
FB de n argumente este FND la care toi termenii sunt de rang n (forma normal cea mai complex).
Definiie. Forma normal disjunctiv care conine cel mai mic numr de litere xii n comparaie cu toate
celelalte FND ale unei FB date numim form disjunctiv minim (FDM).
Definiie. Numim implicani primi ai unei FB de n argumente termenii conjunctivi de forma x11x22...x kk
(kn) care implic funcia fr a se putea elimina vre-o variabil (TNC de rang minim care implic funcia).
De exemplu, dac pentru f(x1,x2,x3,x4) avem
x1 x2x3 x4 f(x1,x2,x3,x4)
x1x3 x4 f(x1,x2,x3,x4)
x1x3 f(x1,x2,x3,x4)
x1 f(x1,x2,x3,x4)
x3 f(x1,x2,x3,x4)
(3.17)
Adesea, n rezultatul efecturii operaiei de alipire parial, pot aprea termeni normal disjunctivi n
repetare sau asupra crora poate fi executat operaia absorbie. Primii, conform proprietii idempoten se
vor scrie o singur dat, pentru cei de categoria a doua se va opera absorbia.
Teorema 3.8 (Quine). Executnd asupra FCD a unei FB toate operaiile posibile de alipire parial i de
absorbie obinem disjuncia implicanilor primi.
Demonstraie. Conform teoremei are loc relaia
f(x1,x2,...,x n)= k,
(3.18)
n care k este setul respectiv de implicani primi. Aceast relaie trebuie s fie adevrat i atunci cnd
f(x1,x2,...,x n)=0 i pentru cazul n care f(x1,x2,...,x n)=1. n primul caz toi implicanii primi sunt egali cu 0,
altfel am avea valoarea 0 pentru funcia if(x1,x2,...,x n), unde i 0 (deci i nu ar fi implicantul funciei
f(x1,x2,...,x n), v.p.3.2). n cel de-al doilea caz va exista cel puin un implicant prim j = 1, drept rezultat partea
dreapta a relaiei (3.18) va fi ca i partea stng egal cu 1 c.c.t.d.
Expresia (3.18) se numete form disjunctiv prescurtat (FDP). n FDP exist n caz general implicani
primi de prisos (redundani, care implic suplimentar funcia), deci FDP nu este minim. Implicanii primi
strict necesari (obinui dup eliminarea implicanilor redundani) se numesc implicani eseniali. Disjuncia
implicanilor eseniali conduce la FDM. n concluzie, putem afirma c minimizarea unei FB pornind de la
FCD presupune urmtorii doi pai:
1o. determinarea formei disjunctive prescurtate (3.18);
2o. alegerea implicanilor eseniali.
Implicanii eseniali pot fi alei construind un tabel special numit tabelul implicanilor primi sau tabel
de acoperire. Fiecare linie n acest tabel corespunde unui implicant prim, iar fiecare coloan unui TCC din
FCD iniial. Vom spune c un implicant prim se afl n relaia de acoperire cu un TCC, dac el se conine n
acesta. Se va construi matricea acestei relaii binare (la intersecia liniei i cu coloana j se va pune 1, dac
implicantul prim cu numrul i se afl n relaia de acoperire cu TCC cu numrul j, i 0 n caz contrar.) Vom
alege cel mai mic numr de implicani primi strict necesari (eseniali) pentru ca s fie acoperii toi TCC.
Exemplu. Fie funcia f(x1,x2,x3,x4) definit prin FCD a sa:
f(x1,x2,x3,x4)= x1 x2 x3 x4 x1x2 x3 x4 x1x2 x3x4x1x2 x3x4x1 x2 x3x4x1 x2 x3 x4.
S se determine forma disjunctiv minim.
1o. Determinm FDP evideniind toi implicanii primi:
x1 x2 x3 x4 x1x2 x3 x4
= x1 x3 x4,
UTM, Chiinu, 1998, V.Beliu
x1 x2 x3 x4x1 x2 x3 x4
= x2 x3 x4,
= x1x2 x3,
x1x2 x3x4
x1x2 x3x4
= x2 x3x4,
x1x2 x3x4
x1 x2 x3x4
= x1 x3x4,
x1 x2 x3x4
x1 x2 x3 x4
= x1 x2 x3,.
Deoarece alipiri pariale pentru termenii normali de rang 3 nu se pot opera avem urmtoarea form
disjunctiv prescurtat:
f(x1,x2,x3,x4) = x1 x3 x4 x2 x3 x4 x1x2 x3 x2 x3x4 x1 x3x4 x1 x2 x3.
2o. Construim tabelul de acoperire:
Tabelul 3.7.
Termenii canonici conjunctivi
Implicanii
x1 x2 x3 x4
x1 x2 x3 x4
x1 x2 x3 x4
x1 x2 x3 x4
x1 x2 x3 x4
x1 x2 x3 x4
x1 x3 x4
x2 x3 x4
x1 x2 x3
x2 x3 x4
x1 x3 x4
x1 x2 x3
primi
4. GRAFURI
Anul 1736 este considerat pe bun dreptate de nceput pentru teoria grafurilor. n acel an L.Euler a
rezolvat problema despre podurile din Knigsberg, stabilind criteriul de existen n grafuri a unui circuit
special, denumit astzi ciclu Euler. Acestui rezultat i-a fost hrzit s fie mai bine de un secol unicul n teoria
grafurilor. Doar la jumtatea secolului XIX inginerul G.Kirchof a elaborat teoria arborilor pentru cercetarea
circuitelor electrice, iar matematicianul A.Caly a rezolvat problema enumerrii pentru trei tipuri de arbori. n
aceeai perioad apare i cunoscuta problem despre patru culori.
Avndu-i nceputurile n rezolvarea unor jocuri distractive (problema calului de ah i reginelor, "cltoriei n
jurul Pmntului" despre nuni i haremuri, etc.), astzi teoria grafurilor s-a transformat ntr-un aparat simplu
i accesibil, care permite rezolvarea unui cerc larg de probleme. Grafuri ntlnim practic peste tot. Sub form
de grafuri pot fi reprezentate sisteme de drumuri i circuite electrice, hri geografice i molecule chimice,
relaii dintre oameni i grupuri de oameni.
Foarte fertile au fost pentru teoria grafurilor ultimele trei decenii, ceea ce a fost cauzat de creterea
spectaculoas a domeniilor de aplicaii. n termeni grafo-teoretici pot fi formulate o mulime de probleme
legate de obiecte discrete. Astfel de probleme apar la proiectarea circuitelor integrate i sistemelor de
comand, la cercetarea automatelor finite, circuitelor logice, schemelor-bloc ale programelor, n economie i
statistic, chimie i biologie, teoria orarelor i optimizarea discret. Teoria grafurilor a devenit o parte
component a aparatului matematic al ciberneticii, limbajul matematicii discrete.
4.1. NOIUNI GENERALE
4.1.1. Definiia grafului
Se numete graf, ansamblul format dintr-o mulime finit X i o aplicaie F a lui X n X. Se noteaz G = (X,F).
Numrul elementelor mulimii X determin ordinul grafului finit. Dac card X = n, graful G = (X,F) se
numete graf finit de ordinul n. Elementele mulimii X se numesc vrfurile grafului. Geometric, vrfurile unui
graf le reprezentm prin puncte sau cerculee. Perechea de vrfuri (x,y) se numete arc; vrful x se numete
originea sau extremitatea iniial a arcului (x,y), iar vrful y se numete extremitatea final sau terminal. Un
arc (x,y) l reprezentm geometric printr-o sgeat orientat de la vrful x la vrful y.
Dac un vrf nu este extremitatea nici unui arc el se numete vrf izolat, iar dac este extremitatea a mai mult
de dou arce - nod. Un arc pentru care extremitatea iniial coincide cu cea final se numete bucl.
Arcele unui graf le mai notm i cu u1, u2,..., iar mulimea arcelor grafului o notm cu U. Se observ c
mulimea U a tuturor arcelor unui graf determin complet aplicaia F, precum i reciproc, aplicaia F
determin mulimea U a arcelor grafului. Un graf G poate fi dat fie prin ansamblul (X,F) fie prin ansamblul
(X,U).
Dou arce se zic adiacente dac sunt distincte i au o extremitate comun. Dou vrfuri se zic adiacente dac
sunt distincte i sunt unite printr-un arc.
Un arc (x,y) se spune c este incident cu vrful x spre exterior i este incident cu vrful y spre interior.
Fie G = (X,F) i x X. Mulimea tuturor arcelor incidente cu x spre exterior (interior) se numete semigradul
exterior (interior) a lui x i se noteaz d+x (d_x). Dac pentru un vrf x, d+x=0 sau d_x=0 atunci el se numete
vrf terminal
u2
x1
u3
x4
u1
u5
x2
x7
u4
x3
u6
u8
x6
x5
u7
Un drum elementar ce trece prin toate vrfurile grafului se numete drum hamiltonian. Un drum simplu ce
conine toate arcele grafului se numete drum eulerian. Un drum finit pentru care vrful iniial coincide cu
vrful terminal se numete circuit.
Graful obinut din graful iniial suprimnd cel puin un vrf al acestuia precum i toate arcele incidente cu el
se numete subgraf. Graful obinut suprimnd cel puin un arc se numete graf parial.
Un graf se numete complet dac oricare ar fi x i y din X exist un arc de la x la y sau de la y la x.
Un graf G = (X,F) se zice tare conex dac pentru orice x, y X (x diferit de y) exist un drum de la x la y sau
c oricare pereche de vrfuri x, y cu x diferit de y se afl pe un circuit.
Fie G = (X,F) i x X. Mulimea Cx format din toate vrfurile xi X pentru care exist un circuit ce trece
prin x i xi se numete component tare conex a lui G corespunztoare vrfului x.
Componentele tari conexe ale unui graf G = (X,F) constituie o partiie a lui X.
Noiunile introduse sunt valabile pentru grafurile orientate.
n cazul n care orientarea arcelor nu are nici o importan graful se va numi neorientat. Arcele se vor numi
muchii, drumul - lan, circuitul - ciclu. La fel se introduce noiunea de lan elementar i simplu, lan Euler i
hamiltonian. Graful tare conex se va numi conex.
Cele dou concepte de graf orientat i graf neorientat se pot sprijini n practic unul pe altul. De la un graf
orientat se poate trece la omologul su neorientat cnd se abordeaz o problem ce nu presupune orientarea i
invers, dac se precizeaz orientarea.
Unui graf orientat simetric i se poate asocia un graf neorientat, legtura dintre dou vrfuri x i y realizat de
cele dou arce (x,y) i (y,x) de sensuri contrarii nlocuindu-se cu muchia [x,y]. De asemenea un graf neorientat
poate fi identificat cu mai multe grafuri orientate nlocuind fiecare muchie cu dou arce orientate n sens opus.
Fie G = (X,U) un graf neorientat i x X. Se numete gradul vrfului x numrul muchiilor care au o
extremitate n vrful x. Se noteaz g(x). Un vrf este izolat dac g(x) = 0.
4.1.2. Numr cociclomatic i numr ciclomatic
Fie G = (X,F) un graf neorientat cu n vrfuri, m muchii i p componente conexe. Numim numr cociclomatic
asociat grafului G numrul
r(G) = n - p
iar numrul ciclomatic numrul
s(G) = m - r(G) = m - n + p.
Se numete multigraf un graf neorientat n care exist perechi de vrfuri unite prin mai multe muchii. Se
numete q - graf un multigraf pentru care numrul maxim de muchii ce unesc dou vrfuri este q.
Teorema. Fie G = (X,U) un multigraf, iar G1 = (X,U1) un multigraf obinut din G adugnd o muchie. Dac x,
y X i [x,y] este muchia care se adaug la mulimea muchiilor grafului G, atunci:
(1) dac x = y sau x i y sunt unite printr-un lan
r(G1) = r(G), s(G1) = s(G) + 1
(2) n caz contrar
r(G1) = r(G) + 1, s(G1) = s(G).
Demonstraia este evident.
Consecin. Numerele cociclomatic i ciclomatic sunt nenegative.
4.1.3. Numr cromatic. Grafuri planare. Arbori
Un graf G = (X,U) se zice ca este graf p-cromatic daca vrfurile lui se pot colora cu p-culori distincte astfel ca
dou vrfuri adiacente s nu fie de aceeai culoare. Cel mai mic numr ntreg i pozitiv pentru care graful este
p-cromatic se numete numr cromatic.
Un graf se zice c este planar dac poate fi reprezentat pe un plan astfel ca dou muchii s nu aib puncte
comune n afar de extremitile lor. Un graf planar determin regiuni numite fee. O fa este o regiune
mrginit de muchii i care nu are n interior nici vrfuri, nici muchii. Conturul unei fee este format din
muchiile care o mrginesc. Dou fee sunt adiacente dac contururile au o muchie comun. S-a demonstrat c
numrul cromatic al unui graf planar este patru.
Cu privire la numrul cromatic s-a demonstrat urmtoarea
UTM, Chiinu, 1998, V.Beliu
Teorema (Knig). Un graf este bicromatic dac i numai dac nu are cicluri de lungime impar.
Se numete arbore oricare graf conex fr bucle i cicluri.
u2
x1
u1
x4
x7
u4
x3
u3
u5
u6
x2
x5
x6
Matricea de inciden;
Matricea de adiacen;
Lista de adiacen (inciden).
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1 - 3, 4, 0
2 - 3, 5, 6, 0
3 - 6, 7, 0
4 7, 0
5-0
6-0
7-0
2
3
^
UTM, Chiinu, 1998, V.Beliu
4.3.3. Stive
Stiva se utilizeaz pentru a realiza algoritmul de prelucrare a elementelor dup principiul "ultimul sosit primul prelucrat" (LIFO).
Operaiile de baz cu stivele sunt urmtoarele:
4.3.4. Arbori
Se va defini o mulime de structuri fiecare din care va consta dintr-un obiect de baz numit vrf sau rdcina
arborelui dat i o list de elemente din mulimea definit, care (elementele) se vor numi subarbori ai arborelui
dat. Arborele pentru care lista subarborilor este vid se va numi arbore trivial, iar rdcina lui - frunz.
Rdcina arborelui se va numi tatl vrfurilor care servesc drept rdcini pentru subarbori; aceste vrfuri se
vor mai numi copiii rdcinii arborelui: rdcina primului subarbore se va numi fiul cel mai mare, iar
rdcina fiecrui subarbore urmtor n list se va numi frate.
Operaiile de baz pentru arbori vor fi:
n cazul utilizrii unei stive pentru pstrarea drumului curent pe arbore, drum care ncepe din rdcina
arborelui i se termin cu vrful vizitat n momentul dat, poate fi realizat un algoritm nerecursiv de forma:
Viziteaz rdcina arborelui i introdu-o n stiva vid S;
WHILE stiva S nu este vid DO
BEGIN
fie p - vrful din topul stivei S;
IF fiii vrfului p nc nu au fost vizitai
THEN viziteaz fiul mai mare al lui p i introduce-l n S
ELSE BEGIN
elimin vrful p din stiva S
IF p are frai THEN viziteaz pe fratele lui p i introduce-l n stiva S
END
END
Acest algoritm poate fi modificat pentru a putea fi utilizat la parcurgerea tuturor vrfurilor unui graf arbitrar.
n algoritmul de mai jos se va presupune c este stabilit o relaie de ordine pe mulimea tuturor
vrfurilor grafului, iar mulimea vrfurilor adiacente cu un vrf arbitrar al grafului este de asemenea
ordonat:
WHILE va exista cel puin un vrf care nu a fost vizitat DO
BEGIN
fie p - primul din vrfurile nevizitate;
viziteaz vrful p i introduce-l n stiva vid S;
WHILE stiva S nu este vid DO
BEGIN
fie p - vrful din topul stivei S;
IF m vrfuri ale lui p sunt vrfuri adiacente nevizitate
THEN BEGIN
fie z primul vrf nevizitat din vrfurile adiacente cu p;
parcurge muchia (p,z), viziteaz vrful z i introduce-l n stiva S;
END
ELSE elimin vrful p din stiva S
END
END
n cazul n care se va lucra cu un graf conex arbitrar cu relaia de ordine lips, nu va mai avea importan
ordinea de parcurgere a vrfurilor. Propunem un algoritm care utilizeaz mai larg posibilitile stivei, cea ce
face programul mai efectiv n sensul diminurii timpului de calcul necesar. De exemplu, acest algoritm n
varianta recursiv este pe larg utilizat n programele de selectare global n subdirectori (cazul programelor
antivirus).
Introdu n stiv vrful iniial i marcheaz-l;
WHILE stiva nu este vid DO
BEGIN
extrage un vrf din stiv;
IF exist vrfuri nemarcate adiacente cu vrful extras
THEN marcheaz-le i introduce-le n stiv;
END
4.4.2. Algoritmul de cutare n lrgime
Parcurgerea grafului n lrgime, ca i parcurgerea n adncime, va garanta vizitarea fiecrui vrf al grafului
exact o singur dat, ns principiul va fi altul. Dup vizitarea vrfului iniial, de la care va ncepe cutarea n
lrgime, vor fi vizitate toate vrfurile adiacente cu vrful dat, apoi toate vrfurile adiacente cu aceste ultime
vrfuri .a.m.d. pn vor fi vizitate toate vrfurile grafului. Evident, este necesar ca graful s fie conex.
Aceast modalitate de parcurgere a grafului (n lrgime sau postordine), care mai este adesea numit
parcurgere n ordine orizontal, realizeaz parcurgerea vrfurilor de la stnga la dreapta, nivel dup nivel.
Algoritmul de mai jos realizeaz parcurgerea n lrgime cu ajutorul a dou fire de ateptare O1 i O2.
Se vor forma dou fire de ateptare vide O1 i O2;
Introduce rdcina n FA O1;
WHILE cel puin unul din firele de ateptare O1 sau O2 nu va fi vid DO
IF O1 nu este vid THEN
BEGIN
UTM, Chiinu, 1998, V.Beliu
s(G)+r(G)=m(G).
Este adevrat urmtoarea afirmaie: orice subgraf a unui graf arbitrar G se conine ntr-un graf de acoperire a
grafului G.
Exist mai muli algoritmi de determinare a grafului de acoperire. Algoritmul de mai jos nu este un algoritmstandard, ci este unul elaborat n baz algoritmului de cutare n lrgime. Esena algoritmului const n aceea
c folosind dou fire de ateptare n unul din care sunt nscrise (pe rnd) numerele vrfurilor adiacente cu
vrfurile din cellalt FA (ca i n cazul cutrii n lrgime), vor fi eliminate muchiile dintre vrfurile unui FA
i toate muchiile n afar de una dintre fiecare vrf al FA curent i vrfurile din FA precedent. n cazul n care
ambele FA vor deveni vide procedura se va termina.
Pentru a nu admite ciclarea i ca s fim siguri c au fost prelucrate toate componentele conexe se va utiliza
marcarea vrfurilor. Dac dup terminarea unui ciclu ordinar nu au mai rmas vrfuri nemarcate procedura ia
sfrit, n caz contrar n calitate de vrf iniial se va lua oricare din vrfurile nemarcate.
Descrierea algoritmului:
1. Se vor declara dou FA (FA1 i FA2) vide.
UTM, Chiinu, 1998, V.Beliu
Fiecrui vrf xj al grafului G se va ataa un numr foarte mare Hj(). Vrfului iniial i se va ataa Ho = 0;
2.
Se vor calcula diferenele Hj - Hi pentru fiecare arc (xi, xj). Sunt posibile trei cazuri:
a) Hj - Hi < Lij,
b) Hj - Hi = Lij,
c)
Hj - Hi > Lij.
Cazul "c" permite micorarea distanei dintre vrful iniial i xj din care cauz se va realiza Hj = Hi + Lij.
Pasul 2 se va repeta atta timp ct vor mai exista arce pentru care are loc inegalitatea c. La terminare,
etichetele Hi vor defini distana de la vrful iniial pn la vrful dat xi.
3.
Acest pas presupune stabilirea secvenei de vrfuri care va forma drumul minim. Se va pleca de la vrful
final xj spre cel iniial. Predecesorul lui xj va fi considerat vrful xi pentru care va avea loc Hj - Hi = Lij.
Dac vor exista cteva arce pentru care are loc aceast relaie se va alege la opiune.
V0(i) = Lin, dac exist arcul (xi, xn), unde xn este vrful final pentru care se caut drumul minim, Lin
este ponderea acestui arc;
V0(i) = , dac arcul (xi, xn) este lips;
V0(i) = 0, dac i = j.
Vk(n) = 0.
Un graf orientat G = (X, U) se numete reea de transport dac satisface urmtoarele condiii:
a)
b)
c)
d)
exist un vrf unic a din X n care nu intr nici un arc sau d_(a)=0;
exist un vrf unic b din X din care nu iese nici un arc sau d+(a)=0;
G este conex i exist drumuri de la a la b n G;
s-a definit o funcie c: UR astfel nct c(u) 0 pentru orice arc u din U.
Vrful a se numete intrarea reelei, vrful b se numete ieirea reelei, iar c(u) este capacitatea arcului u.
O funcie f: UR astfel nct f(u) 0 pentru orice arc u se numete flux n reeaua de transport G cu funcia
de capacitate c, care se noteaz G = (X, U, c), dac sunt ndeplinite urmtoarele dou condiii:
a)
Condiia de conservare a fluxului: Pentru orice vrf x diferit de a i b suma fluxurilor pe arcele care
intr n x este egal cu suma fluxurilor pe arcele care ies din x.
b) Condiia de mrginire a fluxului: Exist inegalitatea f(u) c(u) pentru orice arc u U.
Dac f(u) = c(u) arcul se numete saturat. Un drum se va numi saturat dac va conine cel puin un arc
saturat. Fluxul, toate drumurile cruia sunt saturate se va numi flux complet. Cel mai mare dintre fluxurile
complete se numete flux maxim.
Pentru orice mulime de vrfuri A U vom defini o tietur w_(A) = {(x, y) | x A, y A, (x,yU}, adic
mulimea arcelor care intr n mulimea A de vrfuri.
Prin w+(A) vom nota mulimea arcelor care ies din mulimea A de vrfuri.
Este just afirmaia: suma f(u) pentru u w+(A) este egal cu suma f(u) pentru arcele uw_(A). Aceast valoare
comun se va nota fb.
4.5.2. Algoritmul Ford-Fulkerson
Are loc urmtoarea teorem (Ford-Fulkerson):
Pentru orice reea de transport G = (X, U, c) cu intrarea a i ieirea b valoarea maxim a fluxului la ieire este
egal cu capacitatea minim a unei tieturi, adic:
max fb = min c(w_(A)).
n baza acestei teoreme a fost elaborat urmtorul algoritm de determinare a fluxului maxim (Ford-Fulkerson)
la ieirea b a unei reele de transport G = (X, U, c), unde capacitatea c ia numai valori ntregi:
1. Se definete fluxul iniial avnd componente nule pe fiecare arc al reelei, adic f(u) = 0 pentru orice arc u
U;
2. Se determin lanurile nesaturate de la a la b pe care fluxul poate fi mrit, prin urmtorul procedeu de
etichetare:
a) Se marcheaz intrarea a cu [+];
b) Un vrf x fiind marcat, se va marca:
cu [+x] oricare vrf y nemarcat cu proprietatea c arcul u = (x, y) este nesaturat, adic f(u)<c(u);
cu [-x] - orice vrf y nemarcat cu proprietatea c arcul u = (x, y) are un flux nenul, adic f(u)>0.
Dac prin acest procedeu de marcare se eticheteaz ieirea b, atunci fluxul fb obinut la pasul curent nu este
maxim. Se va considera atunci un lan format din vrfurile etichetate (ale cror etichete au respectiv semnele
+ sau -) care unete pe a cu b i care poate fi gsit uor urmrind etichetele vrfurilor sale n sensul de la b
ctre a.
Dac acest lan este v, s notm cu v+ mulimea arcelor (x, y), unde marcajul lui y are semnul +, deci care
sunt orientate n sensul de la a ctre b i cu v_ mulimea arcelor (x, y), unde marcajul lui y are semnul -,
deci care sunt orientate n sensul de la b ctre a.
Determinm cantitatea:
e = min {min(c(u) - f(u)), min f(u)}. u v+, u v_
UTM, Chiinu, 1998, V.Beliu
2.
3.