Sunteți pe pagina 1din 73

Retele si fluxuri in grafuri.

Un graf fara bucle, G=(V(G),E(G) este o retea de transport, daca :

1. Exista numai si numai daca varful unic s apartine V(G) care nu intra niciun arc (muchie),
numit intrarea retelei, ω-(s)= Ø ,unde arcele ce intra in x, notate ω-(x)={(y,x)|y apartine
V(G),(y,x) apartine E(G)}.
2. Exista numai si numai daca varful unic t apartine V(G) din care nu iese niciun arc(muchie)
numit iesirea retelei, ω+(t)= Ø , unde arcele ies din x, notate ω+(x)={(x,y)|y apartine
V(G), (x,y) apartine E(G)}
3. G este conex si exista drumuri (s,….,t)
4. Se defineste o functie c: E(G) → R+ numita functia capacitate iar c(n) capacitatea arcului
(muchiei) u apartine E(G).

Functia f:E(G) → R+ se numeste flux in reteaua de transport G, daca sunt indeplinite conditiile :

1. Conditia e conservare a fluxului in oricare ar fi x apartine V(G) cu x diferit de s, x diferit de t


suma fluxurilor ce intra in x este egala cu suma fluxurilor ce ies din x, adica Σ f(u)= Σ f(u)
2. Conditia de marginire a fluxului pe arcele retelei : fluxul asociat oricarui arc(muchie) nu
trebuie sa depaseasca capacitatea arcului, adica f(u)<c(u), u apartine E(G).

Pentru orice retea de transport avem fs=ft

Demonstratie: Vom calcula Σ(Σf(u)- Σf(u).POtrivit conditiei de conservare 1. E clar ca suma e 0.

Fluxul pe orice arc u apartine E(G), u=(x,y) cu x,y nu apartine {s,t} apare in suma sub forma f(u)-
f(u), arcul u iesind din x si intrand in y.

Pentru o retea de transport G cu intrarea s si iesirea t consideram A inclus in V(G) astfel incat s nu
apartine A si t apartine A. Multimea ,ω-(A) a arcului pentru care extremitatea initiala nu e in A, dar
multimea finala e in A, se zice taietura de suport A.

Capacitatea taieturii e c(ω-)=Σc(u)

Orice drum ce leaga intrarea s de iesirea t, contine macar un arc dintr-o taietura oarecare ω-(A).

Demonstratie : Daca s nu apartine A si t apartine A => exista doua varfuri vecine ale drumului, x si y
astfel incat x nu apartine A si y apartine A => (x,y) apartine ω-(A).

Pentru orice flux f si taietura ω-(A) dintr-o retea de transport G, exista :

F t= Σf(u) - Σf(u) < c(ω-(A)


Demonstratie : Pentru egalitate folosim reteaua de mai sus calculand in doua moduri suma Σ(Σf(u)-
Σf(u)=0

Pentru inegalitati se majoreaza fluxul pe arcul u apartine ω-(A) prin c(u) si se minoreaza pe arcul u
apartine ω+(A) prin 0.

Arcul u apartine E(G) se zice saturat relative la fluxul f, faca f(u)=c(u) se pune problema fluxului
maxim f in reteaua G astfel incat fluxul la iesirea ft sa aiba valoarea maxima.

Teorema Ford-Fulkerson – Pentru orice retea de transport G valoarea maxima a fluxului la iesire,
adica ft e egala cu capacitatea minima a taieturii:

Max ft= min c(ω-(A))

Algoritmul pentru capacitate din Z+ = N

1. Se construieste fluxul initial f0 ce verifica conservarea pe fiecare varf dar si marginimea pe


fiecare arc, iar pentru usurinta luam f0(u)=0, u=(x,y) oricare ar fi u apartine U.
2. Facem operatii de marcare si vedem daca f0 e maxim . Operatiile de marcare sunt :
a) Se marcheaza extremitatea intrarii cu “+”. Varful neetichetate se marcheaza ca mai jos
b) Daca exista u=(x,y) si x etichetat iar f(u)<c(u) atunci y se noteaza cu [+x]
c) Daca exista v=(y,x) cu x etichetat si f(v)>0 atunci y se eticheteaza cu [-x]

Daca dupa toate marcarile posibile iesirea t nu sa marcat => STOP si are fluxul maxim. Daca t
a fost etichetat se urmaresc etichetele in sesn invers de la t la s, si se reconstituie un lant L
nesaturat pe care fluxul se poate mari cu ε>0 si ε=f’t-ft, cu f’(u)=f(u)- ε la u apartine L- si
f’(u)=f(u) la u care nu apartine L+ U L- cu L+=arcele de la t la s, L=L+ U L- cu noul flux f’ se
merge la punctual 2.

Observatie : Algoritmul are numar finit de pasi deoarece capacitatea arcelor si capacitatea
fluxurilor sunt numere din N iar la fiecare urmarire a fluxului, ft creste cu ε>1, fluxul fiind
marginit si neputand depasi capacitatea minima a taieturii.

Grafuri hamiltoniene si euleriene

Fie G(V(G),E(G) neorientat. Stim ca lantul sau ciclul sunt elementare daca toate varfurile sunt
diferite 2 cate 2.

Def: Lantul sau ciclul elementar care contine toate varfurile grafului se numeste lant(ciclu)
Hamiltonian.

Graful care are macar un ciclu Hamiltonian e graf


Hamiltonian.

Ciclul (1,2,3,4,5,6,7,1) e e Hamiltonian deci graful este


Hamiltonian.
Obs: Avem notiunea si la grafuri orientate.

Teorema: Fie G graf neorientat cu |V(G)|=n>3 astfel incat pentru oricare ar fi x apartine V(G)
avem d(x)> n/2. Atunci G e Hamiltonian.

Def: Lantul sau ciclul care contine toate muchile grafului neorientat G=((V(G),E(G)) se
numeste lant sau ciclu eulerian.

Graful este eulerian daca are macar un ciclu eulerian.

Ciclul eulerian C=(1,2,3,4,5,6,4,3,1)

Obs: Orice graf neorientat ,bipartit, cu numar impar de


varfuri nu e Hamiltonian.

Teorema Bondy-Chvatal-Direc: Fie G graf neorientat, cu V(G)={x1,..,x2}, gradele varfului


verificand relatia d1 apartine d2 apartine…dn. G are un ciclu Hamiltonian daca satisface
oricare ar fi din cele 3 conditii:

i) d1 > n/q (Direc)


j) dp < p si dq<q => dp + dq >n oricare ar fi p diferit de q (Bondy)
k) dk < k < n/q => dn-k > n-k (Chvatal)

Teorema Nosh-wiliams : Orice graf n-regulat cu x=2k si cu 2n+1=4k+1 varfuri e Hamiltonian.

Teorema Jackson: Orice graf 2 conex regulat, de grad k cu n varfuriunde n<3k e Hamiltonian.

Conjuctura: Nosh-Wiliams. Fie G k-regulat cu n varfuri si n<2k+1 are [k/q] cicluri hamiltoniene ce
au cate 2 muchii in comun.

Teorema: Fie G graf neorientat fara varfurile izolate . G e eulerian numai si numai daca G e conex si
orice varf x apartine V(G) are d(x)=2k (par)

Teorema : Fie G conex. Sunt echivalente afirmatiile :

a) G contine un ciclu eulerian


b) Oricare ar fi x apartine V(G), d(x)=2k (par)
c) Multimea E(G) poate fi partitionata in cicluri;

Fie G conex G care un lant eulerian numai si numai daca cel mult doua varfuri ale lui G au grad
impar.

Planaritate

Fie G neorientat cu p varfuri si q muchii. El este realizat sau scufundabil pe o suprafata S daca se
poate sa-i donam p puncte distincte pe S ce corespund varfului lui G si o multime de q arce Jordan ce
au in comun cele p varfuri, q corespunde multimii muchiilor.
Demonstratie:

G e planar daca poate fi realizabil in plan sau pe o sfera

Exemplu : K32 →

Teorema : Euler : Fie G un graf conex si planar cu p varfuri si q muchii si f fete. Atunci p-
q+f=2

Nota: Graful plan e un graf planar scufundabil in plan ( nu sip e o sfera).

Din exemplul de mai sus => p=4, f=3, q=5

ð P-q+f=4-5+3=2 => o fata este infinita (f3)

Teorema : K5 nu e planar. Fie G planar cu p>3, p varf si q muchii. Atunci q<3p-6.

Presupunem ca au K5 planar => q=10<3*5-6=9 => 10<9 fals => K5 nu e planar.

Distante si drumuri minime in grafuri orientate

Fie G=(V(G),E(G)) un graf orientat si fie functia f: E(G) → R+ cu f((xi,xj))>0, care asociaza
arcului (xi,xj), lungimea sa f((xi,xj)). De multe ori , f((xi,xj)) se poate interpreta ca distanta
euclidiana, cat timp asociat sau ca un cost asociat muchii(arcului).

Fie graful

De la x1 la x6 sunt 9 drumuri de lungime diferita care apartin {9,10,11} mai exact:

(x1,x2,x4,x6) cu lungimea l=1+5+5=11


(x1,x2,x4,x5,x6) cu l=1+5+3+1=0

(x1,x2,x5,x6) cu l=10

(x1,x3,x4,x6) cu l=11

(x1,x3,x4,x5,x6) cu l=10

(x1,x3,x5,x6) cu l=10

(x1,x2,x3,x4,x6) cu l=10

(x1,x2,x3,x4,x5,x6) cu l=9

(x1,x2,x3,x5,x6) cu l=9

Observam ca distanta minima de la x1 → x6 e 9, pe ultimele doua drumuri.

Algoritm ROY-FLOYD

Fie G orientat si cu varful(nodurilor) x1,x2…xn si fie lungimea arcului (xi,xj) data prin
elementele unei matrici : aij=l(xi,xj). In general avem :

Dij :

a) l ((xi,xj)) daca exista arcul (xi,xj) in G


b) 0 daca i=j
c) ∞ daca nu apartine (xi,xj)

Pentru graful de mai sus :

D= (0 1 4 ∞ ∞ ∞ )
(∞ 0 2 5 8 ∞ )
(∞ ∞ 0 2 5 ∞)
(∞ ∞ ∞ 0 3 5)
(∞ ∞ ∞ ∞ 0 1)
(∞ ∞ ∞ ∞ ∞ 0)

Algoritmul Roy-Floyd ne da matricea D* a distantelor minime dintre varful grafului.


Elementele sale sunt:
Dij* :
a) 0 daca i=j
b) Dij* daca exista drum minim de la xi la xj
c) ∞ daca nu exista drum minim de la xi la xj

Se pleaca de la D.
Algoritmul propriu-zis:
a) Facem k=1
b) Pentru i=1,n si j=1,n cu i care nu este egal cu k, j care nu este egal cu k si I
care nu este egal cu j, dij→min(dij,dik+dkj)
c) Se repeat b) pentru k=2,3,….n
Obs : 1) La b) elementele dij vor fi cele noi, plecand de la cele din D.
2) Algoritmul se poate da si-n limbaj operatorial ca la alg Kruskall
3) La b) se fac (n-1)2 – (n-1)=(n-1)(n-2) adunari si comparatii. Deci, in total,
avem k=1,n se fac n(n-1)(n-2) adunari si comparatii.
4)Sunt similare cu Roy-Warshall.

Aplicatie Roy-Floyd

A1=(0 1 4 ∞ ∞ ∞)
(∞ 0 2 5 8 ∞)
(∞ ∞ 0 2 5 ∞)
(∞ ∞ ∞ 0 3 5)
(∞ ∞ ∞ ∞ 0 1)
(∞ ∞ ∞ ∞ ∞ 0)

De fapt in A1 copiez linia 1 si coloana 1 ca i nu este egal cu k care este egal


cu 1, j nu este egal cu k care este egal cu 1 precum si dii=0.

K=1, plec de la (0,1,4, ∞,∞,∞)

D11=0 ca i=j=1 si nu schimbam nimic


D12 = min( d12, (d11+d12) = min (1,1+0) = 1
D13 = min(d13, d11+d13)= min(4,0+4) = 4
D14=min(d14, d11+d14) = ∞ cu d15=∞,d16=∞
D21=min(d12, d21+d11)=min(∞,∞+0)= ∞ cu d22=0
D23=min(d23, d21+d13)=min(2,∞)=2
D24=min(d24, d21+d14)=min(5,∞+∞)=5
D25=min(d25, d21+d15)=min(8, ∞)=8
D25=min(d25, d21+d15)=min(8, ∞)=∞
D26=min(d26, d21+d16)= ∞
D32=min(d32, d31+d12)=min(∞,(∞+1))= ∞
D34=min(d34, d31+d14)=min(2,∞+∞)=2
D35=min(d35, d31+d15)=min(5,∞)=5
………………………

Exemple Roy Floyd


D =(0 ∞ ∞ ∞)
(1 0 4 2)
(2 ∞ 0 2)
(3 ∞ ∞ 0)

K=1 cu I diferit de 1 si j diferit de 1 → se copiaza linia si col 1

D1 =(0 ∞ ∞ ∞)
(1 0 4 2)
(2 ∞ 0 2)
(3 ∞ ∞ 0)

D23 = min(d23,d21+d13)=min(4,1+∞)=4
D24= min(d24,d21+d14)=min(2,1+∞)=2
D32=min(d32,d31+d12)=min(∞,2+∞)=∞
D34=min(d34,d31+d14)=min(2,2+∞)=2
D42=min(d42,d41+d12)=min(∞,3+∞)=∞
D43=min(d43,d41+d13)=min(∞,3+∞)=∞

K=2 → copiez linia 2 si col 2

D2 = (0 ∞ ∞ ∞)
(1 0 4 2)
(2 ∞ 0 2)
(3 ∞ ∞ 0)

D13=min(d13,d12+d23)=min(∞,∞+4)=∞
D14=min(d14,d12+d24)=min(∞,∞+2)=∞
D31=min(d31,d32+d21)=min(2,∞+1)=2
D34=min(d34,d32+d24)=min(2,∞+2)=2
D41=min(d41,d42+d21)=min(3,∞+1)=3
D43=min(d43,d42+d23)=min(∞,∞+4)=∞

K=3 → copiez linia si coloana 3

D3 = (0 ∞ ∞ ∞)
(1 0 4 2)
(2 ∞ 0 2)
(3 ∞ ∞ 0)

D12=min(d12,d13+d32)=min(∞,∞+∞)=∞
D14=min(d14,d13+d34)=min(∞,∞+2)=∞
D21=min(d21,d23+d31)=min(1,4+2)=1
D24=min(d24,d23+d34)=min(2,4+2)=2
D41=min(d41,d43+d31)=min(3,∞+2)=3
D42=min(d42,d43+d33)=min(∞,∞+∞)=∞

K=4 → ramane coloana si linia 4

D4 = (0 ∞ ∞ ∞)
(1 0 4 2)
(2 ∞ 0 2)
(3 ∞ ∞ 0)

D12=min(d12,d14+d42)=min(∞,∞+∞)=∞
D13=min(d13,d14+d43)=min(∞,∞+∞)=∞
D21=min(d21,d14+d41)=min(1,∞+3)=1
D23=min(d23,d24+d43)=min(4,2+∞)=4
D31=min(d31,d34+d41)=min(2,2+3)=2
D32=min(d32,d34+d42)=∞

Deci D4=D*= (0 ∞ ∞ ∞)
(1 0 4 2)
(2 ∞ 0 2)
(3 ∞ ∞ 0)
ð Coincide cu D.

Algoritm Dijkstra

Se foloseste cand extremitatiile initiale si finale ale drumului de lungime minima


cautate, sunt fixate, de exemplu xi six j. Astfel, vrem drumul optim de la xi la xj. Am
nevoie de matricea ponderilor P=(pij) cu pij =

→a) ponderea(valoarea) muchiei(xi,xj) apoi construim o matrice modificata a


ponderilor, respective W=(wij) unde :
Wij={pij, pt I diferit de j→{ponderea daca exista(xi,xj), I diferit de j
{0, pt I = j {0, i=j
{∞, daca nu exista (xi,xj)
→∞, in rest
Observam ca W este (congruent) ≡ cu D

Algoritmul Dijkstra lucreaza cu matricea D definite. Se allege un varf D apartine


V(G). Se sfarseste algoritmul, l(i)= distanta minima de la varful s la varful I, oricare
ar fi I apartine {1,2,….x}. Prin definitie, l(s)=0, Daca la la sfarsitul algoritmului
pentru un varf k, gasim l(k)= ∞, inseamna ca nu exista drum de la s la k.

Arborescenta A a drumurilor minime de la s la celelalte varfuri are n-1 arce ce sunt


perechi ordonate de tipul ( pred(i), i) cu i=1,n si I diferit de s iar pred(i) e mai jos
definit.

Prin arborescenta intelegem graful obtinut dintr-un arbore dupa cum urmeaza :
- Alegem un varf r al arborelui A initial si se orienteaza toate muchiile arborelui ce
devin arce. Orientarea se face in mod
unic astfel incat pentru oricare ar fi varful x diferit de r sa existe un drum de la r
la x. Varful r = radacina arborescenta.

Dupa aplicarea algoritmului se obtine o arborescenta A de radacini cu proprietatea ca


oricare ar fi I apartine V(G), I diferit de s, drumul unic de la s la I e de lungime minima in G.

Pentru constructia arborescentei A folosim functia predecessor notate pred astfel incat
daca (I,j) apartin E(A) => pred(j)=i

Algoritmul eticheteaza fiecare varf I apartine V(G) cu eticheta l(i), care e majorant al
distantei minime de la s la c, in final gasindu-se chiar distanta minima ceruta la fiecare pas,
algoritmul partitioneaza varful in doua multimi : S = cu etichete permanente si Š = compl. lui
S, cu etichete temporare. Etichetele permanente ale varfului I apartine lui S reprezinta
distanta minima de la s la c. Etichetele temporare ale varfului j apartine Š reprezinta
majorari ale ale distantei minime. La orice pas , varful cu eticheta minima a lui Š va fi trecut
in S.

La sfarsitul algoritmului S= multimea vida iat l(i) va reprezenta pentru oricare ar fi I apartine
V(G) distanta minima de la s la i.

Algoritmul propriu-zis Dijkstra:

a) S:=multimea vida, Š := V(G)


b) l(s) :=0 si l(i) := ∞ pentru I diferit de s
c) cand |S| < n, se executa operatiile :
- se selecteaza un varf I apartine Š pentru care l(i)=min{ l(i) / j apartine Š}
- S := S / {i} si Š := Š / {i}
- Pentru oricare arc (I,j) cu extremitatea initiala I apartine S si extremitatea finala j
apartine Š, daca l(j) > l(i)+dij, atunci l(j) := l(i)+dij iar I := pred(j). Distantele
minime se obtin in ordinea apropierii varfului de origine. Aplicand de n ori
algoritml schimband sursele s apartine {1,2….n} gasim distantele si drumurile
minime pentru toate (I,j) cu I diferit de j si 1<I diferit de j <n.

Algoritmul se aplica si pentru graful G neorientat daca inlocuim la 3c) arcul (I,j) cu muchia
(I,j) care are o extremitate in varful I selectat la acel pas al drumurilor minime cu o
extremitate in s.

Complexitatea de timp : Pentru |Š| = k, 1<k<n, determinam minimul lui dintre numarul l(j) cu
j apartine Š necesita k-1 componente. Deoarece exista cel mult k-1 arce (I,j) cu I apartine Š
fixat si j variabila in Š, la componenta lui l(j) cu l(i) + dij se fac cel mult k-1 componente si k-
1 adunari. Deci, numarul de adunari e cel mult 1+2…+(n-1)=(n-1)n/2 si n(n-1) component.

Obs: Daca in graful exista si distante negative, se poate ca unele distante minime intre
varfurile sale sa nu existe. In acest sens avem alg. Doutzig.

Alta forma a algoritmului Roy-Floyd :

1) Dupa construirea lui D construim si vectorul v=(v1,…,vn) cu v1=0,vi=∞ pentru i=2,n


2) Cu i = 1,2,….n se construieste v*=(vi*)i=1,n unde vi*=min(vi,min(vj+dij)
3) Se aplica 2) cat timp exista indicele k, pentru care vk* <vk cand se inlocuieste v cu v*.
4) Daca dij=∞ => daca nu exista drumuri de la xi la xj. Pentru a gasi drumurile de la x1
→ xn se pleaca de la xn. Sa presupunem ca sa determinat partea de la xki la xn, a
drumului, ca fiind (xki, xki-1,….,xk1=xn) Se va lua xki+1, varfuri pentru care avem :
vki+1 + dki+1,ki = vki.
Exemplu :

Vrem l minim (x1,x5) :

D = (0 ∞ 4 ∞ ∞ )
(3 0 ∞ ∞ 7 )
(∞ ∞ 0 7 ∞ )
(∞ 6 ∞ 0 ∞)
(6 ∞ ∞ 9 0 )

A) Construim v=(1, ∞,∞,∞,∞)

I=1 : v1*=min(v1,min(vj + dj1))=min(0, min(∞+5, ∞+3)=min(0, ∞)=0 => v1*=0

(xj,x1) apartine E(G) sunt (x5,x1) si (x2,x1) => j=5 si j=2 => d51=6, d21=3, v5=∞, v2=∞

I=2 : v2*=min(∞,min(6+∞)) = ∞ => v2*=∞

(xj,x2) apartine E(G) sunt (x4,x2) => j=4 => dij=d42=6, v4=∞)

I=3 : v3*=min(∞,min(4+∞))=∞ => v3*=0

(xj,x3) apartine E(G) cand au muchiile (x1,x3)=> j=1=> dij= d13=4, v3=∞)

I=4 : v4*=min(∞,min(∞+9, ∞+7)) =∞ => v4*=∞

(xj,x4) apartine V(G) => (x3,x4),(x5,x4) => j=3 si j=5 => dij => d54=9 si d34=7 => v3=v3=∞

I=5

v5*=min(∞,min(∞+7))= ∞= v5*=∞

(xj,x5) apartine E(G) pentru (x2,x5) => j=2 =>dij=d25=7, v5=∞

La I = 1 au v*=(0, ∞,4, ∞,∞). Deci avem v3*=4 < v3= ∞ => vi=(0, ∞,4, ∞,∞) si continui…….

B) i=1 => v1*=min(v1,min(vi+dij)=min(0,min(∞+3, ∞+6))=0 → [ din v A) ]

=> v1*=0

I=2 => v2*=min(v2,min(∞+6))= ∞ => v2*=∞

I=3 => v3*=min(v3,min(0+4))=4 => v3*=4

(xj,x3) apartineE(G) => (x3,x4) => j=3 => dij=d33=0

I=4 : v4*=min(v4,min(7+4, ∞+9))=min(∞,+11)=11=>v4*=11

(xj,x4) apartine E(G) cand au (x3,x4),(x5,x4)=>j=3,j=5,d34=7,d54=9

I=5=> v5*=min(v5,min(∞,∞+7))= ∞=>v5*+∞


(xj,x5) apartine V(G) pentru (x2,x5) => j=2 => dij=d25=7

Am v*=(0, ∞,4,11,∞) au v4*=11 < v4=∞ => continui cu v=(0, ∞,4,11, ∞)

C) ne ducem la v*=(0,17,4,11, ∞) si v2*=17<v2=∞ => continuam cu v=(0,17,4,11, ∞)

D) ne ducem la v*=(0,17,4,11,∞) si vk* < vk nu e verificat oricare ar fi k = 1,5. Trec la pasul


4. Conditionam ca exista drumul x1 → x5 ca x5=24<∞ si el este (x1,x3,x4,x2,x5) de
lungime 24.

Curs 1

G=(V(G),E(G))

V(G)= {A,B,C,D,a,b,c,d,e,f,g}

E(G)={(Ac),(AC),(Ad),(Ab), AB,Aa,Ae,AD…..

Muchia apare cand printrun pod trec in alta zona.

Def: Fie V(G) o multime discrete de cardinali |V(G)| = n,graful G este o entitate(obiect)
matern format dintro multime V(G) numita a varfurilor sau nodurilor si o alta E(G) a
muchiilor ce unesc diferite varfuri din V(G). Pentru x,y apartin V(G) muchia se noteaza fie
(x,y)  ≡ xy.

Daca muchiile au orientari(sageti) graful este unul orientat iar daca muchiile nu au sageti
graful este neorientat.

Problema lui Euler folosind notiunea de lant si de ciclu in graf.


Def: Daca xy e o muchie E(G) al varfului x si y se zice adiacente iar x sau y se spune ca
sunt incidente. Muchiile xy si yz se zic muchii adiacente in y.

Def lant : O succesiune de muchii adiacente formeaza un lant. Daca lantul porneste si se
termina in acelasi varf fara a trece de 2 ori prin aceasi muchie el se numeste ciclu.

Def: In graf G=(V(G),E(G)) se numeste grad al varfului x exista V(G) numarul tuturor
muchiilor incidente cu x. Se noteaza deg(x)

Exemplu: deg(A)=7 , deg(C)=5 , deg(e)=2 , deg(D)=5 ……

Problema lui Euler enunt

Studiem daca exista un ciclu de la A la D astfel incat sa trecem o singura data prin toate
regiunile si toate podurile.

In general intr un lant fiecare varf are gradul par macar 2 iar varful initial sic el final are grad
impar.

Deoarece in sistemul G Euler exista varfuri in interiorul lanturilor care sa aiba gard impar in
plus fata de varful initial si final => probabilitatea lui Euler este fara solutie deci nu exista un
lant care sa parcurga doar o data orice varf si orice muchie.

Notiuni pregatitoare

Functii

f: x → y e o functie daca pentru oricare ar fi A apartine lui x , exista un unic y care apartine
Y astfel incat f(x)=y.

Def: f: x→y e injectie daca pentru x diferit de y din x => f(x) nu este egal cu f(y) din y.

Echivalent f(x)=f(y) => x=y

Multime discrete – multime formata din puncte

Pentru X,Y finite si discrete injective |x| < |y|

Def: f: x→y e surjectiva daca oricare ar fi y apartine Y exista x apartine X (neunic).

La x,y discrete f surjectiv => |x| > |y|

Def : f: x→y e bijectiv daca este surjectiv si injective. Pentru x,y finite f bijectiv => |x|=|y|

Obs: f: x→y surjectiv daca f(x)=y, f(x) se zice imaginea lui x prin f.
Def: O multime X e discreta atunci cand e formata doar din punctele x={x1,x1,……xn}

O multime X e numarabila saca exista multimea X ~ N.

Echivalent : O multime X e cel mult numarabila daca este finite sau numarabila.

Exemplu : {2,5,9,11,,,} discrete numarabila.

O multime nenumarabila se numeste continua.

Imaginea unei multimi continue este intervalul care e construit din multimea infinita a
punctului sistemului intre 0 si 1.

Numarul tuturor functiilor f: x→y, |{f|f:x→y}| = |y| la puterea |x| daca |x|=n, |{y/y ⊆ x}| = 2 la
puterea n = |P(x)|

Exemplu : x={1,2}

P(x)=| ∅ ,{1},{2},{1,2}| = 2 la puterea 2=4

Def: Cuvinte binare de lungime n : x1,x2,….xn} ca xk apartine {0,1}

Exemplu : 10110 → cuvant binary

Obs: Exista f:S→{x1,x2,….xn} / xk apartine {0,1) cu S ⊆ x cu f(S) = x1,x2,….xn unde :

Xk = → 0, cand k nu apartine S

→1, cand apartine S

Exemplu : n=4 => S={1,2,4} => f(S)=1101

Aranjamente :

X = {x1 x2 ……xn}

Y= {y1 y2 …….yn}

F:y→x

A reprezinta numarul perechilor ordonate de cate m obiecte alese din elementele lui X cu n
obiecte.

A = |f inj / f:y→x|

A= n(n-1)…(m-m+1)/m factori = n! / (n-m)!

Fac n=m , f: y→x sunt bijective iar numarul A se noteaza Pn=n!

Exemplu : X = {1,2,3} => A = (1,2),(1,3),(2,3),(2,1),(3,1),(3,2)

Aranjamentele difera prin tipul elementelor plus oridinea elementelor.

TEMA : Sa se construiasca toate functiile inj de la o multime de 3 elemente la 2 elemente


care dau A3 luate cate 2.
X={1,2,3} => 3! = 3*2*1 =6

Pentru permutari este esential doar ordinea.

Combinari ( C (n>m) reprezinta numarul submultimilor de n elemente. Esential pentru


combinari este tipul elementelor si nu ordinea lor.

X={1,2,3}

C3 luate cate 2= A3 luate cate 2 / P2 = 3*2/1*2 = 3.

ð {1,2} , {1,3} , {2,3} => Cn luate cate m = An luate cate m/Pm = n!/(n-m)!*m!.

Principiul includerii si al excluderii

Fie A1,A2,…An discrete si infinite |A1 U A2 …. U An| = ∑ |Ak| - ∑ Ai ∩ Aj cu 1<i<j<n + ∑ |Ai


∩ Aj ∩ Ak| …+ …+ 1<i<j<k<n + (-1) la puterea (n-1) | A1 ∩ A2…. ∩ An| → inductie
matematica

Obs : | A1 ∩ A2| = |A1| + |A2| - |A1 ∩ A2|

Principilul includerii si excluderii se aplica la numarul functiilor surjective dar este sub
numerele pentru care sunt fundamental probabil discrete.

P(A,U .. U An) = ∑ P(Ak) - ∑ P(Ak ∩ Ae) + … (-1) la puterea n-1 P(A1 ∩ A2 ∩ …. An)

Numarul functiei surjective f: x→y, |x| = n, |y|=m este : m la puterea n – Cm luat cate 1 (n-1)
la puterea n + Cm luat cate 2 (m-2) la puterea n-1 + …. + (-1) la puterea n-1 Cm luat cate
n-1.

Pentru m=n am numarul functiilor bijective (n!) => reprezinta pentru n!

Tipuri de grafuri Curs 2

Def : Grafurile Gi (V(G)), E(G), i=1,2 sunt izomorfe si notam G1 ~ G2 dac exista f: G1 →
G2 bijectiva care pastreaza adiacentele pentru [x,y] apartine V(G) => [f(x) f(y)] apartine
V(G2)

Exemple : G1:

G2:
G3:

F: G1 → G2

F(1)=1

F(2)=3

F(3)=5

F(4)=4

F(5)=2

F(6)=6

Bijectiv => G1 ~ G2

Obs:

1) G1 nu este aproximativ cu G3
G2 nu este aproximativ cu G3
2) Grafurile sunt izomorfe atunci cand au aceasi multime de varfuri si muchii structurate
in acelasi mod
3) Forma grafica a fost introdusa in lege cu prima reprezentare a unei multimi de
numere prin care daca x,y apartine M si x<y => x se deseneaza sub y si apoi
punctele se maresc.

M = {-1,0,5}
Graful G este planar cand nu contine muchii care se intersecteaza ( in desen)

G1,G2,G3 nu sunt planare

Proprietatea gradelor unui graf

Fie G graf V(G), E(G) cu |V(G)| si |E(G)| atunci pentru varful xi apartine V(G), i=1,n avem
:

∑ d(xi)/deg(xi)/grad = 2m

Dem : Xi → Xj => 2 varfuri => oricare ar fi varfurile conteaza de 2 ori => 2m=∑d(xi)

Corolar : In oricare ar fi garful numarul varfului x apartine V(G) cu d(x) = impar este un
numar par ( pentru ca 2m este numar par)

Def : Fie G = (V(G), E(G)) graf neorientat si x un varf x apartine V(G)

Numai gard interior sau de intrare in x, notat di(x) numar muchiilor (care la G orientat se
zice arce) de forma yx = (y, x), Se numeste grad exterior sau de iesire din x, notat de de(x)
= numarul arcelor de tipul xy=(x,y)

Exemplu :

di(1)=1

de(1)=2

di(2)=1

de(2)=1

di(3)=2

de(3)=1

G=({1,2,3},{(1,2),(1,3),(2,3),(3,1)}) => (1,3),(3,1) → orientarile


Obs : Orice graf neorientat poate fi privit va venind dintr-unul orientat in care pentru oricare
ar fi x,y EV(G) avem arcele (x,y) si (y,x) incat putem pune xy = {x,y} ≡ (x,y) ≡ (y,x)

Def : G=(V(G),E(G)) este r – regulat daca orice varf fix x apartine V(G) are gradul d(x)=r.

Exemplu

d(1)=d(2)=d(3)=d(4)=2

→E graf 2 regulat

Daca G=(V(G),E(G) este regulat atunci avem : r < n-1 si n*r=2m adica varful si gradul
oricarui varf este numar par.

∑ d(xi) = 2m <=> n * r = 2m (numar par)

Daca prin absurd r=n atunci => ∑d(xi)=n2 =2m => n2=2m < n(n-1)/2 < 2*n(n-1)/2 => n2 <
n(n-1) => n < n(n-1) → FALS

Garf r regulat au aplicatii directe in muchiia organica pentru clasificarea subst. cu aceeasi
structura.

Graf bipartit

Def : G=V(G),E(G) este bipartite daca exista A si B multimi disjuncte ( A ∩ B = ∅ ) cu A U B


=V(G) oricare muchie xy, are un varf x in A si un varf y in B sau invers.

A={1,2} → A ∩ B=∅

B={3,4,5}

A U B= V(G) = {1,2,3,4,5}

{1,3} {1,5} {2,4} cu 1,2 aparine A si 3,1,5 apartine B


Def : pentru G cu |V(G)|=n si |E(G)|=n spunem ca el este (n.m) garf si ca n este oridinul
grafului.

Obs: Un graf de ordin n, bipartite prin multimile A si B se noteaza

B(|A|,|B|) sau B(|A|,|B|) => B(2,3)

Def : Un graf se zice complet daca toate varfurile sale sunt unite doua cate doua si se

noteaza Kn pentru |V(G)|=n. Exemplu →K4 :

Nu este K4 pentru ca exista (1,3)

Def : Fie G graf bipartite prin A si B cu A ∩ B = ∅ , A U B = V(G). El e bipartite complet


cand oricare varf din A e unit cu oricare ar fi varful din B.

Se noteaza K(|A|,|B|)

Un complet bipartit K2,3

Obs : Construiti K4,4 bipartit complet cu |A| = |B|=4

Def: Graful stea este un complet bipartite de tip


K1,n
K1,4 → Graf stea cu 5 varfuri , mijlocul fiind varful 1

Graf partial

Def : Fie G = (V(G),E(G)). Numai subgraful G, G’ format din V’(G), E’(G) unde V’(G) e
subgraf V(G) iar muchiile lui G’ sunt muchii ale lui G format cu elementele V’(G) adica acele
muchii ce apar dintre cele ale lui G relative la V’(G)

Exemplu :

V(G)=1,2,3,4

V’(G)={1,2}

ð E’(G)={(1,2)} =>
ð G’ subgraf pentru G

Graf complementar

Def : Ġ = (V(Ġ),E(Ġ)) grad complementar al lui G daca are acelasi varf dar muchiile sale
apar din unirea varfurilor x si y, care in G nu dau muchii.

Graf partial

Def : Fie G = (V(G), E(G)) garful P = (V’(G) E(G)) = graf partial G daca multimea varfurilor
coincide la P si G dar E’(G) contine E(G)

Graf conex

Def : G este graf conex daca pentru oricare ar fi x,y apartine V(G) exista un lant L de la x la
y.

Exemplu :
(lantul)

Daca se defineste intre varfurile xy o relatie δ astfel incat δx si δy varfuri doar daca x ≡ y
sau exista L de la x la y. δ este relatia de echivalenta( reflexiva, simetrica, tranzitiva…).
Toate clasele de echivalenta relative la δ componentele conexe ale grafului.
Def : Numarul componentelor conexe ale lui G este c(G)

Obs : G conex => c(G) = 1

Lantul elementar (Euler) trece prin toate varfurile.

Ciclul lantului ce porneste si se termina in acelasi varf fara sa treaca prin acelasi varf.

Obs : La graful orietat ciclul se va numi circuit iar lantul se va numi drum.

Sunt elementare cand trec prin toate varfurile grafului.

Def: Lungimea ciclului este egala cu nr muchiilor din ciclul

Ex:

C1={1,2,4,1} unde lC1=3

C2={2,3,4,2} unde lC2=3

C3={2,3,4,1} unde lC3=4

T. Konng: Un graf e bipartite daca nu are cicluri impare. Adevarat si reciproca.

Def : Arborele este un graf G conex fara cicluri cu 2 varfuri terminale.


1,5,3 Sunt varfuri terminale

Un graf G este padure daca are toate componentele conexe arbori.

SEMINAR
Exercitiul 1)

Exercitiul 2)

Grafurile de mai sus sunt izomorfe atunci cand au multimea de varfuri si muchii de acelasi
cardinal si o bijectie de a pastra adiacenta si au acelasi cardinal la | V(G)| si |E(G)| :

V(G1) = {(1,2) ,3,4,5}

E(G1) = {(1,2) (2,3) (3,4) (4,5) (5,1)}

V(G2) = {1’,2’,3’,4’,5’}

E(G2) = {(1’,3’) (3’,5’) (5’,2’) (2’,4’) (4’,1’)}

F: G1→G2 bijectiva =>

F(1)=1’

F(5)=4’

F(2)=3’
F(3)=5’

F(4)=2’

Sunt grafuri du d(x) = 2 oricare ar fi x apartine V(G1), V(G2) si sunt grafuri regulate.

Suplimentar : Sa se transforme graful in 2 grafuri orientate echivalent cu G1 si G2.

G1 neorientat → G1 orientat

Ex. 2)

^ multigraf sau 2 graf

d(4) = 3

d(7) = 3

La graful neorientat x e bucla cand participa la g(G) cu macar 2 unitati (d(dx) >= 2).

Exercitiul 3) G conex daca exista pentru oricare x, y varf lantul L = (x, ..., y)

G = ({1,2,3,4,5,6,7}, {(1,3),(3,1),(2,3),(3,4),(4,4),(6,7),(7,7)}). Graful acesta nu este conex.


G: G1, G2, G3 3 componente conexe c(G) = 3

G1:({1,2,3,4},{(1,3),(3,1),(2,3),(3,4),(4,4)}

G2:({5},{Ø})

G3

Ex. 3)

G este conex ?

G este tare conex ?

G este conex <=> ∀ x, y ∃ lant de la x,y

G este tare conex <=> ∀ x,y ∃ lantul ce contine si (x,y) si (y,x)

Daca intr-un graf orientat exista 2 arce x,y si y,x dar numai ele atunci graful nu poate fi
transformat in unul orientat.

G nu e tare orientat pentru ca nu exista arce de la 1 la 4.

Observam ca ∃ circuitul (1,2,4,5,1) de lungime 4 din lantul (1,3,4,5,1,2,5).

L nu e elementar pentru ca se trece prin acelasi punct de mai multe ori.

Exercitiul 4)

Kn este complet cand are toate cele n varfuri unite intre ele => numarul muchiilor este C n2.

G52 nu este planar

Exercitiul 5) Gasiti definitia echivalenta pentru un arbore.


Arborele este cel mai mic graf conex (minimal) din care daca scoatem o muchie sau
arc daca e orientat devine graf neconex.

Arborele poate fi definit ca un ciclu maximal din care se scoate un arc sau muchie
sau este un graf maximal fara cicluri.

8 varfuri terminale

Care este numarul maxim de componente conexe ce apar prin inlaturarea a doua
muchii ?

Scot (2,3) si (3,4) => 3 componente conexe

∃ si alte 3 componente conexe.

Observatie: Arborele c=(A)=1

Exercitiul 6:

Dati exemple de drumuri elementare de lungime 3,4,5

D = [3,6,5] drum lungime 2

C = (3,6,5,3) ciclu (circuit) de lungime 3


D = [1,2,4,3,6,5] drum elementar de lungime 5

D = [1,5,3,6,5] drum neelementar de lungime 4

D = [1,2,3,6,5] drum elementar de lungime 4

Exercitiul 7)

5 varfuri si 4 muchii

Pentru un arbore n-1 = m

Etichete

Definitie: Etichetele unui graf G=(V(G),E(G)) sunt elementele unei multimi M cu |M| = n care
se asociaza V(G).

In general M={1,2,..,n} si elementele se asociaza celor n varfuri astfel incat ∃ o bijectie f:M -
> V(G) cu f(i) = Vi, i = 1 , n .

Exemplu:

G 1,2,3 etichete = varfurile 1,2,3

Definitie: Grafurile marcate si etichetate sunt in general graful G=(V(G),E(G)) orientate in


care varfurile (nodurile) sunt etichetate, iar arcele sunt notate cu literele a,b,c,... (uneori cu
numere).

etichetat la varfurile 1,2,3,4 si marcat la arce cu a,b,c,d.


Observatie: Pentru un graf arbore care este conex fara cicluri poate fi luata ca definitie
oricare dintre urmatoarele enunturi echivalente:

i) G conex cu macar 2 varfuri terminale (d(x)=1)

ii) G este graf conex maximal (adica inlaturarea unui varf il disconecteaza, ducand la
aparitia a macar 2 componente conexe).

iii) G conex maximal fata de existenta ciclilor, adica adaugarea unei muchii intre varfurile
neterminale duce la aparitia unor cicli.

ii) <=> ii)’ G maximal fara cicli.

Observatie:

G cu bucla in 3

G multigraf ca ∃ 3 muchii de la 1->2.

Propozitie: G conex de tip (n,m) => m >= n-1

Teorema: Un graf G de tip (n,m) e arbore <=> este aciclic si m = n-1

Demonstratie: Presupunem ca G arbore => din definitie ca G conex si fara cicli.

Inductie dupa numarul varfurilor.

Verificarea n = 2

m = 1 = n+1 = 2-1

Presupunem ca G de tip (n,m) are proprietatea m = n-1.

Construiesc un arbore A1 adaugand un nou varf x atunci acest arbore A 1 e graf de tip (n1 =
n+1, m1), A1 = (V(A1),E(A1)) cu |V(A1)| = n1 = n + 1,

|E(A1)| = m1
x varf terminal => la adaugare mai adauga muchii ce intra in numarul m 1.

Construiesc alt arbore A2 = A1\{x}.

A2 are:

- n2 = n (numarul de varfuri din A2)

- m2 = (numarul de muchii din A2)

A2 are n varfuri => m2 = n2 - k <=> m2 = n-1

Vrem sa aratam ca m1 = n1 - 1

Avem m2 = m1

m1 = m2 = n2 - 1 = n - 1 nu ajuta

n1 = n + 1 = m2 + 1 + 1 = m1 + 1 => m1 = n1 - 1

Am G ciclic cu m = n - 1. Vrem G conex.

Presupunem ca G neconex => ∃ k componente conexe.

G1, G2, ..., Gk arbori pentru care am mi = ni - 1, i = 1,k.

G arbore => m = n - 1.

n-1=m= mi = (mi - 1) = ni - k = u - k => k = 1 => ∃ o componenta conexa


=> presupunerea ca ∃ multe componente conexe e falsa => graful e conex.

Algoritmi pentru conexitate si componente conexe ale grafurilor

Fie G = (V(G),E(G))

I) Algoritmul pentru determinarea numarului componentelor conexe c(G).

pas 1) Se alege varful x ∈ V(G) si construim multimea B = {x}


pas 2) Daca B := Ø algoritmul se incheie cu rezultatul:

i) cand E(G) := Ø => G conex

ii) cand E(G) :=! Ø => G nu e conex, iar V(G) - x e o componenta conexa a lui G in care se
afla si x ∈ V(G) de la pasul 1.

pas 3) Se merge la pasul 3 cand B != 0.

Se alege un element y ∈ B.

pas 4) Pentru ∀ z ∈ V(G) \ B cu proprietatea ca multimea (z,y) ∈ E(G), luam B:=B ∪ {z} si
E(G) := E(G) \ {(y,z)=(z,y)|z∈V(G)\B, pentru y∈B fixat(ales)}

pas 5) Se ia noul B:= B \ {y} (cu y ales la pasul 3) si se merge la pasul 2.

Algoritmul se termina dupa un numar finit de pasi deoarece grafurile au numar finit de
varfuri, iar pasii algoritmului functioneaza pana ce se parcurg toate varfurile.

Exemplu:

V(G) = {1,2,3,4,5,6,7}

E(G) = {(1,2),(1,3),(2,3),(1,6),(6,7),(1,5),(4,5)}

Aleg x=6 => (1,6),(6,7)

B = {x}

E(G) := {(1,2),(1,3),(2,3),(1,5),(4,5)} => B := {1,6,7} \ {6} = {1,7}

Aleg y = 7 si nu exista noi muchii adiacente cu 7 => E’(G) ramane la fel B:={1,1}.

Aleg y = 1 => (1,2),(1,3),(1,6),(1,5) => E(G) := {(2,3),(4,5)}

B := {1,2,3,5} \ {1} = {2, 3, 5}

Aleg y = 3 => (1,2),(2,3) => E(G) := {(4,5)}

B := {2,3,4,5} \ {3} = {2,4,5}

Aleg y = 2 => (1,2),(2,3) => E(G) la fel


B := {4,5}

Aleg y = 5 => (1,5),(5,4) => E(G) := Ø

B := {4}

Aleg y = 4 => (5,4) => E(G) la fel si B := Ø => dupa pasul 2 G conex, c(G)=1.

Adaugand primul algoritm in cativa pasi el ne poate determina forma, componenta


componentelor conexe. Algoritmul are 3 pasi in plus.

pas 1) Pornim cu |V(G)| = n, E(G) si k = 0 (initial consideram ca nu am componente


conexe).

pas 2) Daca E(G) = Ø algoritmul se incheie, iar componentele conexe sunt A 1A2...Ak .

Varfurile ce raman in afara lor, date de , sunt varfuri izolate, fiecare in parte
dand cate o noua componenta conexa.

La k = 1 => A1 = V(G).

Daca E(G) != Ø merg la pasul 3.

pas 3) Aleg x ∈ E(G), iar k := k + 1.

Ak = Ø si in plus notez B = {x}.

pas 4) Daca B := Ø trec la pasul 8, iar in caz contrar pentru B != Ø trec la pasul 5.

pas 5) Se alege y ∈ B

pas 6) Pentru ∀ z ∈ V(G) \ B cu proprietatea ca muchia (z,y) ∈ E(G)

E(G) := E(G) \ {(y,z)=(z,y)|z∈V(G)\B pentru y ∈ B fixat (ales)}

pas 7) Se ia noul B := B \ {y} (cu y ales la pasul 5) si A k := Ak ∪ {y} si merg la pasul 4.

pas 8) Eliminam din E(G), ∀ muchie (a,b) cu a,b ∈ A k, apoi merg la pasul 2.

Observatie: Si acest algoritm se termina intr-un numar finit de pasi pentru ca se aplica
grafului cu numar finit de varfuri.

Exemplu:
V(G) = {1,2,3,4,5,6,7}

E(G) = {(1,2),(2,3),(1,3),(1,5),(4,5),(6,7)}

Aleg y = 5 => (1,5),(5,4) => plec cu 5 ∈ V(G),

E(G) := {(1,2),(1,3),(2,3),(6,7)}

Initial pentru V(G) am B = {5} si A1 = Ø

B := {1,4} si A1 := {5} (k := 0+1 = 1)

Aleg y = 4 => (4,5) => E(G) la fel.

B := {1}

A1 := {4,5}

Aleg 1 ∈ B => (1,2),(1,3),(1,5) => E(G) : {(2,3),(6,7)} =>

B := {1,2,3} \ {1} = {3,2} si A1 := {1,4,5}

Aleg 2 ∈ B => (1,2),(2,3) => B := {3}

E(G) := {(6,7)}

A1 := {1,2,4,5}

Aleg 3 ∈ B => (3,2),(3,1) => E(G) la fel

B := Ø si A1 := {1,2,3,4,5}

=> pasul 8: eliminam muchiile formale cu varfurile din A 1 => cu E(G) := {(6,7)} merg la 3 =>
k = 1+1 = 2

A2 := Ø aleg x = 6 => (6,7) => E(G) = Ø, B:= {6,7} \ {6} = {7}

A2 := {Ø}

Aleg y = 7 => nu exista muchii => E(G) := Ø

B := Ø

A2 : {6,7}
Definitie: Pentru G(V(G),E(G)) matricea asociata unui graf neorientat este A G = (ai,j)i,j = 1,n

ai,j ∈ {0,1}

0 daca nu ∃ muchia ai,j

1 daca ∃ muchia ai,j

Observatie:

1) Pentru G orientat elementele ai,j ∈ {-1,0,1} pentru ca

ai,j = { 1 daca exista arc i,j (->)

{ -1 daca exista arc j,i (<-)

{ 0 daca nu exista

2) Daca A este matricea asociata unui graf neorientat ea este una simetrica.

Seminar
1) In orice graf exista 2 varfuri cu acelasi grad.

= 2m, m = |E(G)|, G = (V(G),E(G))

Rezolvarea prin presupunere:

Prin absurd presupunem toate varfurile sunt de grade diferite => d(x 1) != d(x2) != ... != d(xn)

Pot presupune d(xk) = k atunci d(xk) = k = (n(n+1))/2 = 2m

Fie n = 2k
=> k(2k+1) = 2m

k = 1 => 1*3 (impar) = 2m (par)

Prin urmare macar 2 varfuri au acelasi grad.

Rezolvarea prin inductie

Pentru verificare luam n = 2 => d(1) = d(2) = 1

Presupunem pentru G cu |V(G)| = n

∃ macar 2 varfuri de grade egale

Construim pe G’ cu |V(G)| = n + 1,

G’ = G ∪ {x}, x varf nou

i) {x} varf izolat

In G unde sunt n varfuri din inductie stim ca exista macar 2 varfuri de grade egale atunci
proprietatea este valabila si in G.

ii) {x} nu e izolat => ∃ macar o adiacenta cu o muchie => in G’ care are muchiile E(G’) =
E(G) ∪ { ... } a pastrat proprietatea de inductie.

2) Toate grafurile au aproape toate varfurile de grad diferit.

- graf 2 regular

Ø(xi) = 2, ∀ i = 1,4 => grafuri r regulate

- graf complementar neplanar

3 regulat si complet

3) Cate grafuri orientate k3 exista ? Desenati-le.

k3 -> neorientat
la orientate

2C32 = (3*2)/2 * 2 = 6

4) Desenati un arbore cu trei varfuri terminale de ordin 5. Este graful stea un arbore ?
Justificati.

conex

Varfuri terminale 2,3,4 nu este unic !

steaua este arbore pentru ca e conexa si nu contine


cicli.

5) Se da un graf conex G cu n varfuri si m muchii sa se arate ca m >= n - 1

G conex. G de tip (n,m)


Inductie:

I) Verificam m = 2 = G :

|E(G)| = 1; |V(G)| = 2 => m = 1 = 2 - 1 => 1 = 1

II) Presupunem ca pentru G conex de tip (n, m) am m >= n - 1.

Fie G’ graf cu n + 1 varfuri obtinut din G prin adaugarea unui alt varf x astfel incat G’
= G ∪ {x} conex

Construim si un graf G” din G’

G”=G’ minus varful al lui G’ plus muchii adiacente astfel incat G’ conex

|V’(G)”|=n pentru G” conex

Prin inductie |E(G”)|>=|V(G”)|-1

Din 1) si 2) => P(n+1) adevarat.

Daca G graf neorientat AG matrice asociata

AG=(ai,j) i,j=1,n

N=|V(G)|

Ai,j={1 ∃ muchia (i,j)

{0 ! ∃ muchia (i,j)

Exercitiul 6)
A(5,5)=

P( λ)=0 ,  λ1~-> multiplicitate n1

λ2~-> multiplicitate n

λ k~-> multiplicitate nk

Spectrul lui (G)=( λ1 λ2….. λk)

(n1 n2…….….nk)

Exercitiul 7)

A6= det(A- λ i)=


= =

Det(A- λ i)=0 => λ2(λ2-4)=0 =>

- λ 2=0 => λ1=0 => n1=2

- λ2-4=0 => λ2,3=+- 2

Spectrul lui (G) = (-2 0 2)

(1 2 1)

Seminar
λ +1 =0 => λ1= λ2= λ3=-1

(λ-3)=0 => λ4=0

Spectrul (k4)=(-1 3)

(n1=3 n2=1)

Algoritmul pentru conexitate si componente conexe :

G:

V(G)={1,2……9}

E(G)={(1,2),(1,5),(2,5),(2,3),(3,4),(6,7),(7,8),(6,8)}

Aleg 2 V(G)=>(2,1)(2,5)(2,3)=>E(G):{(1,5)(3,4)(6,7)(7,8)(6,8)}

B:{1,3,5} A1:{2}

Aleg 5 =>(1,5)(5,2)=> E(G):={(3,4)(6,7)(7,8)(6,8)}

B:{1,3} A1:={2,5}
Aleg 1 ⊂B =>{(1,2)(1,5)} => E(G):={(3,4)(6,7)(7,8)(6,8)} la fel B:{3}

A1:={2,3,5}

Aleg 3 ⊂B=>(3,2)(3,4)=>E(G):={(6,7)(7,8)(6,8)}=>B:=

A1:={2,3,4}

Aleg 4 =>(3,2)(3,4)=>E(G) lafel =>B:=

A1:={1,2,3,5,4}

B= E(G)!= continuam algoritmul alegand un alt varf din E(G) si scoatem din E(G)
muchiile corespunzatoare lui A1

Aleg 6 => (6,7)(6,8) E(G):={(7,8)}

B:={7,8} si A:=1+1=2 , A2={6}

Aleg 7 =(7,6)(7,8) E(G):=

B:={ } A2={6,7}

Aleg 8 =(6,8)(8,7) => E(G)=

B:= A2={6,7,8}

E(G)= B= algoritmul se incheie varfurile ramase in speta dau o noua componente


conexa A3=9

Numarul componentelor conexe C(G)=3

A1={2,3,4,5}

A2={6,7,8}

A3={9}

Sa se reface algoritmul plecand din trei .

Daca G graf A matrice adiacenta A* e matrice drumurilor unde A i,j=1 nearata ca exista
drumurile la varful Vi la Vj

Algoritmul pentru matricea drumurilor are n pasi pentru ca matricea este una de ordin n.

Pas 1) Pentru k=1 si pentru i si j != 1

Deci pentru i,j ∈ {2,3,4…..n} in matricea de adiacenta A se inlocuieste element a i,j=0 cu noul
element ai,j = minim intre (ai,k,ak,j)

Apare matricea A1 cu elementele construite.


Pas 2) Pentru k=2 construim A 2 cu elementele noi ce apar din a i,j=0 are n inlocuiti
ai,j=min(ai,k,ak,j)

Pas 3) Se face k:= k+1 pana ce se ajunge la k=n cand matricea obtinuta este A* .
Drumurile de la vi~>vj le citim din locurile egale cu 1 ale lui A* .

K=1 => i ∈{2,3} j∈{2,3}

Schimbam in nouamatrice A1 pentru k=1 toate elementele egale cu 0 , dar care nu sunt
pelinia 1 si coloanal 1 pentru ca I si j != 1

a2,2=min(a3,1,a1,2)=min(1,1)=1

a3,3=min(a3,1,a1,3)=min(0,0)=0

a2,2=min(a4,1,a1,4)=min(0,0)=0

k=2 La k2 I si j != 2 copiem linia 2 si coloanal 2 din matrice precum si elementele 1 din


matricea A1

a1,2=min(a1,2,a2,2)=min(0,1)=0

a1,3=min(a3,2,a2,3)=min(1,1)=1
a1,4=min(a1,2,a2,4)=min(1,1)=1

a3,1=min(a3,2,a2,1)=min(1,1)=1

a3,3=min(a3,2,a2,3)=min(1,1)=1

a4,1=min(a4,2,a2,1)=min(1,1)=1

a4,4=min(a4,2,a2,4)=min(1,1)=1

k=3 In A3 se copiaza coloanal si linia 3 si se mai copiaza elementul de 1

Deoarece are toate elementele 1 algoritmul se incheie fara a mai folosi pasul k=4.

=>Exista drumuri din orice varf vi la orice vf vj

Sa gasim multimea drumurilor de lungime 3

Calculam A3 si luam A2

elementul a4,2 =>∃ 3 drumuri de la 4 la 2


Problema : A=? A*=? A3= m drumuri de lungime 3

Fie un graf G fara varfuri izolate si cu 2 varfuri de acelasi grad este el conex ?

Presupunem graful dk k=1,n

Grafele varfului se pun in ordine crescatoare d 1<=d2<=d3<=…….dn

Stim ca 2 varfuri au acelasi grad

 dn<=n-1 => au un varf care e incident cu max n-1 muchii => m=n-1 =>arbore conex

 1+2+….+n-1+n-1 =2m

 (n-1)[n/2+1]=2m n-ajuta

 (n-1)(n+2)=2m

Alte proprietati ale matricii asociate grafului

Observatie: Matricia de tip A(m, n) nod(vf)/arc de la G orientat are proprietatea ca pe orice coloana apare un 1 si un -1, iar
suma tuturor liniilor matricii ne va da doar 0 => toate cele n linii sunt liniar dependente privite ca vectori, deci => oricare numar
de S linii cu S < n prin sumare dau != (diferit) 0 => S < r linii sunt liniar independente => rang matrice A n, m = n - 1 in ipoteza ca
G conex (raza - 1).

Proprietatile legate de rangul matricii nod/arc au rezultat din stududiul proprietatilor curentului electric si sunt datorate lui
Kirchoff (pentru orice graf conex G de tip (n, m) rangul matricii nod/arc este rang A (n, m)=n-1.

Deoarece G nu e conex si are p componente conexe => rang A(n, m) = n-p.

Noi proprietati ale spectrului lui G de tip G = E(G), V(G) neorientat.


G ~~> AG matrice de adiacenta care are urma , AG matrice simetrica. AG ∈ M(n) ({0,1})

Problema) Polinomul caracteristic al unei matrici A ∈ Mn(R), P(λ) = det(A - λI) provine din ecuatia AX = λX cu X vector sau
matrice de tip (n, 1).

Demonstratie:

Observatia 1: Ecuatia matriceala AX=λX apare din algoritmica liniara si defineste pentru vectorul propriu X != 0 valorile
proprii asociate.

Observatia 2: Vectorii si valorile proprii ajuta la aducerea matricii A la o forma canonica care poate fi de forma λ, ... λ
multiplicitate in rest matricea fiind 0 sau de forma Jordan canonica.

Observatia 3: Deoarece A∈Mn simetrica => valorile proprii sunt numere reale λ∈R, A = At.

Demonstratie: A = λx trec la conjugata n-1

Observatie: Demonstram este generala in situatia in care si x este o matrice tot cu n linii si m coloane.

Observatie: A matrice de adiacenta a grafului => P(λ) = det(A-λI)=λ n + c1λn-1+ c2λn-2+ c3λn-3+cn unde ci sunt minorii principali
(relativ la diagonala principala) ai lui A-λI.

Det(A-λI) pot scrie determinant ca suma de doua determinante de ordin n facand descompunerea dupa oricare element de tip
aii-λ.

Dupa a11-λ=>det(A-λI)+Δ1+Δ2

Forma generala a unui polinom caracteristic deci si celui asociat matricii grafului, coeficientii sunt sume de minori de
ordin n-k apar din teoria lui Laplace de dezvoltarea a unui determinant de ordin n.

Proprietati:

Problema: Fie G graf de tip m,n, A matrice de adiacenta si An matrice drum de lungime n atunci sunt adevarate proprietatile:
Demonstratie: Din A=>aii=0 oricare i=1,n; aii2!=0

Deoarece d(xi)>=x2 atunci ar exista muchiile

(xi,xp)(xp,xk)(xk,xj)=>dr. f2(xi,xp,xk)

A3 da drumuri de lungimea 3.

Exista aii3!=0 sunt posibile Δ sau C3

C32(xi,xp,xk,xi) din pot eticheta varfurile cu 1,2,3 => {1,2,3} => 3! Asezari diferite ale elementelor.

Observatie: Am gasit 2 tipuri de evaluari diferite pentru numarul circuitelor C 3 sau a Δ unui graf.

1. Evaluarea e relativa la coeficientul C3 al polinomului caracteristic P(λ).

2. Evaluarea e relativa la puterea a 3-a a matricii de adiacenta ce contine numarul de adiacente la puterea a ii3.

Evaluarea maximului unei valori proprii a grafului

P(λ) = λn+c1λn-1+C2λn-2

Viette => λ1+λ2 + ... +λn=-c1=

λ1λ2+λ1λ3 + ... = c2 =
Aplicarea inegalitatii Cauchy-Buniakovski-Schwarz:

Iau a1=a2...=1 dar in bk=λk, pentru las deoparte pe λ1 si separat λ2,λ3...λn

λ1,λ2...λn=0

λ2+...+λn=-λ1

=>λ12<=(n-1)(2m-λ12) <=> λ12(1+n-1)<=2m(n-1)

λ12<=(2m(m-1))/n

λ1<=√( (2m(m-1))/n )

Pentru graful G cu matricea A si valorile proprii asociate √1,√2,...,√n valorile sunt reale si in plus cea mai mare din valorile
proprii √1>=√2>=√n indeplineste relatia √1<=√( (2m(m-1))/n ), unde m = varful si n = muchii.

Pentru grafuri regulate, acelea cu grad oricare varf = r sunt adevarate proprietatile:

I) r valoare proprie a grafului

II) deoarece G conex multiplicitatea lui p e 1

III) cea mai mare valoare proprie indeplineste conditia |λ|<=p

Demonstratie: G r-rang A are r valori=1 pe orice linie => det(A-λI) are r de 1 pe oricare linie => in det(A-λI) adunand toate liniile
la prima apare factorul (r-λ)*|A-λI|=>λ=r

Deoarece este graf conex matricea A are bloc unic din care prin procedeul mentionat iese factorul λ-r deci λ-r are multiplicitatea
1.

Punctul iv) |λ|<=r rezulta din demonstratie ca maximul valorilor proprii pentru un graf e dat de relatia anterioara λ 12<=(n-1)(2m-
λ12) tinand cont ca graful e n regulat.

Avem relatia 2m=u*r pentru ca

Teoria spectrala a grafului dezvoltata in speranta ca polinomul caracteristic ar putea fi un invariant al grafului ce ar putea sa le
descrie doar folosind modul calculului valorilor proprii s-a dovedit ca nu genereaza invariantul sperat.

Acest a => din faptul ca exista graf izomorf cu acele valori proprii cu aceleasi multiplicitati.

Grafurile neizomorfe ce au aceleasi valori proprii si multiplicitati se numesc grafuri cospectrale.


Conexitate si puncte de articulatie intr-un graf

G’ = G1

Unele grafuri conexe se deconecteaza prin scoaterea unui varf x care duce la apritia unui nou graf G x=G-V(x) si care are mai
multe componente conexe ale lui G.

Definitie: Pentru un graf G cu min x ∈ V(G) un punct de articulatie al grafului G, pe acel punct care prin inlaturare duce la aparitia
unui nou graf Gx cu mai multe componente decat G initial.

Problema: Fie graful G conex x∈V(G) e punct articulatie <=>Exista varful v i si vj ∈ V(G) astfel incat toate drumurile de
extremitate vi si vj continue pe x (lant).

“=>” Graful conex x articulat => toate lanturile (drum) (v i ... Vj) ∈ x

X punct articulatie => Gx neconex => deoarece vi e intr-o componenta conexa a lui G x iar vj in alta => nu exista lanturi, nu au
nimic de demonstrat.

Presupunem ca exista vivj in G astfel incat au lanturile (v i...x) si (x...vj) => exista (vi...x...vj) deci reuniunea celor doua lanturi =>
oricare lant (vi...vj) il contine pe x.

Reproca: Toate lanturile (vi,vj) contin x graf conex fara articulatia x ∈ V(G)

Construim Gx=G-x atunci => in Gx din constructie nu exista lantul (vi...vj) pentru ca se rup in x => G’x e neconex => x articulatie.

Definitie: Orice graf care nu contine punctul x de articulatie se numeste 2 conex sau bloc.

Fie G conex cu mai mult de 3 varfuri.

Seminar

1. a) Cate grafuri cu 8 varfuri dintre care 2 formeaza un ciclu de lungime 2 (C 2) si alte 4 formeaza, fara varf comun cu C 2, un ciclu
de lungime 4 (C4) se pot forma ? b) Dar daca graful are un C3 si un C4 ?

Solutie:

a)
2 varfuri se aleg in C82 noduri

din 6 varfuri aleg 4 in C64 = C62

=> C82*C62 grafuri

b) C83*C54=C83*C51

In ipoteza ca ciclurile au varfuri comune

C82*C74

cu 2 varfuri comune

C82*C84

Deoarece ciclurile au varfuri comune:

- caz 1 varf comun => C82*C74

- caz 2 varfuri comune => C82*C64

Numarul cerut de graf se obtine din suma.

3. Fie G graf orientat cu G:

Construiti matricea nod/arc.

Solutie:

4. Fie G un (m,n) graf n>=1, neorientat. Aratati ca d 1, d2, ..., dn e sirul gradelor d(V k) cu Vk ∈ V(G), k=1,n <=> d 1+d2+...+dn =
0(mod 2)

Solutie:

“=>” presupunem d1, ..., dn sunt grade =>


Contrar G cu V(G)={x1,...,xn}

=> exista un numar par de varfuri cu grad impar

V1, v2, ..., v

Seminar
1. <Cuvinte cheie: polinom, aflat, aflare graf>

P(λ) = λ4-5λ2-2

Exista G pentru care P(x).

P(λ) = C0λn+C1λn-2+C2λn-2+...+Cn

C1 = 0 = λ1 + λ2 + ... + λn | 0

C2 = -m = numarul de muchii | 5

C3 = -nrΔ |2

Graful G este unul de ordinul 4 cu 4 varfuri de tip G(4,5).

Graf planar

C1 = {1,2,4,1}

C2 = {2,3,4,2}

Graf neplanar

C1={1,2,4,1}

C2={1,2,3,1}

Cele doua grafuri nu-s izomorfe.

2. P(λ) = λ4-4λ2-3 reprezinta un graf G

Numar varfuri n = 4
Numar muchii m = 4

Circuite = 3

I)

Este exclusa situatia cu circuite fara varfuri comune.

II) 2 circuite au un varf comun

Si situatia in care circuitele au toate 3 un varf comun se exclude pentru ca se depaseste numarul de muchii.

Exclus are 5 muchii. O muchie comuna

III)

2 triunghiuri si 5 muchii cu 4 varfuri

IV)

C1 = (1,2,3,1) |

C2 = (1,3,2,1) | => triunghiuri unice

Exclus

Nu exista G cu P(λ) polinom caracteristic.

Daca are 3 triunghiuri => ∑d(xi)=2m


La un triunghi am d(xi)=6=2m => la un triunghi = C3 am 3 muchii. In general (*) 3 triunghiuri => 9 muchii cand muchiile
difera. La muchii comune as avea:

5 muchii si cu 4 varfuri

Am 2 circuite C3 cu 2 muchi comune, dar n-am 3

Nu exista alta situatie fata de (*).

3. Avem un graf G cu 4 varfuri si 5 muchii.

Determinati cele 4 valori proprii si spectrul.

O valoare proprie este dubla.

O valoare proprie este jumatate.

λ1=λ2

λ3=λ4 / 2

λ1+λ2+λ3+λ4=0

2/
2λ1+(λ4 / 2)+2/λ4=0

( 4λ1+3λ4 ) / 2 != 0 => 4λ1+3λ4=0 }

λ12+λ12+(λ4/2)2+λ42=5 }
4.
Sa se gaseasca numarul circuitelor de lungime 3.

Metoda 1:

Metoda 2:

Din A construim graful:

C3=(1,2,3,1)

C3=(1,2,4,1)

C6=(1,2,3,4,2,1)

Seminar
Deoarece G graf cu varfuri n si m muchii, numarul ciclomatic al grafului este ori ccl(G) sau γ(G)=ccl(G)=n-m+1, iar numarul
ciclomatic notat λ(G) = n-p unde p este numarul componentelor conexe.
Numarul ciclomatic reprezinta numarul vectorilor liniari independenti ce ar exista in ciclurile unui graf, iar numarul ciclomatic al
vectorilor liniari dependenti.

L.i.vect.v1,...,vn l.i. daca λkvk=0=>λ1=λ2=...=λn=0 (scalarii)

Vect. V1,...,vn l.d. Daca lui λkvk=0=>exista scalari λk!=0

Problema 1: Sa se studieze daca exista graf G cu n varfuri si m muchii pentru care numarul ciclomatic γ(G)=2 si numarul
ciclomatic λ(G)=8 si P(λ)=λ4-12λ2-λ+1

^ -C3 - numarul de triunghiuri (Δ)

^ -C2 = nr. muchii

n=m+1=2

n-p=8

P(λ) = A-λI

trA3=1/6*Δ

-C2 = 12 = m

-C3 = 1 = n - 12 + 1 = 2 => n = 11

1-p = 8 => p = 3

Problema 2:

Algoritm pentru gasirea unui arbore de trecere sau arbore partial al unui G(V(G),E(G))

V(G)={1,2,..,7}

E(G)={(1,2),(2,3),(1,4),(4,3),(3,5),(5,6),(5,7),(6,7)}

C1=(1,2,3,4,1)

C2=(5,6,7,5)

Cautam sa desfiintam ciclurile:

C2(1,4)

E(T) = {(1,2),(2,3),(4,3),(3,5),(5,6),(5,7),(6,7)}

=>C1 dispare

C1(5,6)

E(T) = {(5,7),(6,7),(1,2),(2,3),(4,3),(3,5)}

=>C2 dispare
Nu mai exista cicluri in graf => E(T) arbore de trecere.

Problema 3 : Sa se gaseasca numarul minim si maxim de arbori partiali al unui graf simplu conex cu n varfuri si m muchii.

n>=3

n=m=3 n=m>=3 => exista circuit Ck > 3

n=m=4

Ck,k>=3=>Tk operatii eliminand o mochie

Nr. Tk e |Tk|=k∈{3,4,5,...,n}

(numarul minim de arbori apare cand am G cu un C3)

Numarul maxim atunci cand Ck este mare (minim k=4).

Problema 4 : Se dau grafurile ( V(G),E(G) ) multimea Vi =multimea vf. Grad i ∈ {1….n-1}

Vi = {xi|d(xi)=i , i=(de la 1 la n-1) }


( Observam ca V(G)= Vi ca Vi∩Vj=p )

a) Daca V(G) este =V1∪v2∪V3 atunci |V1|-|V3| = 2

b) Daca V = V1 ∪ V2 ∪ V3 atunci |V1|-|V3| =2

c) Daca V = V1 ∪ V2 ∪ V4 => |V1|-2|V4|=2 atunci |v1|-(p-2)|vp|=2

d) Construim cate un graf sa respecte punctul a si altul pentru punctul b .

Xi ∈ V vf.

m=|V|-1, V≡V(G)

V=V1∪V2∪……∪Vn-1

∑i=1n|Vi| i=2[|v|-1]

l) |V1|-|V3|=2 d(xi)=i 1*|V1|+3=2*[|V|-1]

2|V2|+|V1|+3|V3|=2(|v|-1) (1)

V=V1∪V2∪V3 =>|V|=| V1∪V2∪V3 | => |v|= V1+V2+V3 (2)

Din 1 si 2 => |V1|+2|V2|+3|V3| =2[ |V1|+|V2|+|V3|-1 ]

[ |V1|+2|V2|+3|V3| ] -2[ |V1|+|V2|+|V3|]+q=0

-|V1|+|V3|+2=0 => |V3|-|V1|=2  |V1|-|V0|=2

ii) V=V1∪V2∪V4

|V1|-2|V4|=2 vrem

|V1|+2|V2|+4|V4|=2[|V1|+|V2|+|V4|-1]

|V1|+2|V2|+4|V4|-2[|V1|+|V2|+|V4|]+2=0

-|V1|+2|V4|+2=0

2|V4|-|V1|=-2  |V1|-2|V3|-2|V4|=2

|V1|-2|V4|=2
Completare la algoritmul Roy-Warshall pentru grafurile
orientate de tip (n,m)

Se completeaza doar matricea de adiacenta netinand cont de dubla orientare a arcelor (muchii) si nici de matricea

A(n,m) numita matrice nod/arc apoi se urmareste algoritmul stiut de la grafurile neorientate gasinduse matricea A* a
drumurilor . Algoritmul ne poate da numarul de campuri tare conexe ale grafului orientat ,notiunea de tare conexitate
venind de la graf orientat din graf neorientat si deci aceea de conexitate.

Observatie : Pentru a gasi componentele tare conexe se construieste in prealabil multimile S(x i) si P(xi)

S(Xi) – multimea varfurilor ce sunt extremitati terminale ce pleaca dn X i

P(Xi) – multimea varfurilor ce sunt extremitati treminale ale drumului ce pleaca din X i

Multimea S(Xi) se poate citi din matricea A* fiind formata din varful X j pentru care aij*=1 deci ea corespunde coloanelor ce
contin pe 1 in linia i.

Multimea P(Xi) apare tot din A* a drumului , e compusa din varful X j pentru care aij*=1 deci ea corespunde liniilor ce au 1 in
coloanal i.

Exemplu : Aleg ca

sens de parcurs cel corespunzator lui X2 -> X1

Observatii la completarea matricii de adiacenta :


Se alege doar un sens de parcurs al arcelor ,si de aceea pe acest sens iau elementele egale cu 1 , k=1 neschimbat coloana 1
si linia 1 plus toate elementele 1 .

A2,3 min(a2,1,a1,3)=min(1,0)=0

A2,4 min(a2,1,a1,4)=min(1,0)=0

A2,5 min(a2,1,a1,5)=min(1,0)=0

A2,6 min(a2,1,a1,6)=min(1,0)=0

A3,2 min(a3,1,a1,2)=min(1,0)=0

A3,3 min(a3,1,a1,3)=min(1,0)=0

Se continua pasii pentru k=2 , k=3 , k=4 , k=5 si se stabilizeaza matricea

Obervatie : Cum aii =1 => exista ciclu de la Xi la Xi ∀ i ∈ {1…..7}

Componentele tare conexe

S(X1)={x1,x2,x3} x1 deci a1,1* si coloanal 1 corespund

P(X1)={x1….x7} X2 deci a1,2* si coloanal 2 corespund

X3 deci a1,3* si coloanal 3 corespund

La intervalul x1 …x7 avem scoase deci liniile (1,….,7) in care au elementele 1

S(X1) ∩ P(X ) ={x ,x ,x }


1 1 2 3 -> o component tare conexa => C1={x1,x2,x3}

S(x4)={x1…….x7}

P(x4)={x4……x7}
S(x4) ∩ P(x ) ={X …..X }
4 4 7 A 2-A component tare conexa C2={X4,X5,X6,X7}

Definitie : Fie un graf G orientat fara bucle fara arce multiple de tip (m,n) ce are n vafuri (noduri) si nu arce(muchii).

Graful este autosimetric atunci cand daca exista arcul x ixj nu mai exista arcul xjxi .

Exemplu : Un graf autosimetric este dat de graful turneu ce modeleaza un poc sportiv in care orice concurrent joaca cu
ceilalti concurenti .

Graf turneu cu 4 jucatori este unul ce provine din K4

Algoritmul lui Kruscal de determinare a unui arbore maximal de cost minim al unui graf.

Definitie : Fie graful G =V(G),E(G) si o functie f:E(G)->R +*=(0, ∞) cu f(n)>0.


f->functie cost asociata grafului

Definitie: Fie G graf si subgraful H = V(H) = V(G), E(H) = E(G) cu H subgraf partial. Spunem ca H e de cost minim daca

Pentru un graf G si subgraf H al lui G avem proprietatea: H e de cost minim cand este arbore partial in ipoteza G conex,
iar H graf partial conex.

Demonstratie: Presupunem prin absurd H subgraf partial nu ar fi arbore partial, deci cum H nu e arbore => H contine un
ciclu C.

Alegem o muchie m din C si consideram H’ = (V(G), E(H) \ {e}), V(G) = V(H).


Algoritmul Kruskal

Pas 1: Presupunem ca avem |V(G)| = n, m muchii

|G| = m construiesc vectorul L ce are atatea componente cate varfuri exista, componentele lui initial fiind L i = i, ∀i = 1,n (initial L
= (1,2,...,n); 1,2,...,n varfuri)

Mai construim multimea M a muchiilor grafului unde ∀ element din M se noteaza M(j), j=1,m si unde in M muchiile M(j)
se scriu in ordinea crescatoare a costurilor.

Pas 2: Pentru k >= n-1 stop, iar muchiile lui M(H) dau arborele partial de cost minim H. Cand k < n-1 merg la pas 3.

Pas 3: Aleg o muchie de tipul M(j) si presupunem ca initial M(j) = (p,q).

Pas 4: Cand Lp = Lq => j ~~> j+1 si merg la pas 3.

Daca Lp != Lq merg la pas 5.

Pas 5: E(H) = E(H) ∪ (p,q) => k ~~> k+1 si multimea muchiilor.

Pas 6: Daca Lp < Lq inlocuiesc in coordonatele L toate valorile Lq prin valorile Lp iar in caz contrat cand Lp > Lq inlocuiesc in L
toate coordonatele (valorile) Lp prin Lq.

Pas 7: j ~~> j+1 si se merge la pas 2.

L = (1,2,3,4,5,6)

M = E(G) = {(1,2);(1,6);(1,5);(2,4);(2,3);(2,6);(3,6);(3,4);(3,5);(4,5)}

k = 0, n-1 = 6-1 = 5

0 <= 5

Aleg (1,5) si am L1 = 1 != L5 = 5.

Pas 5 si aleg E(H) = {(1,5)}=>L=(1,2,3,4,1,6)

k = 1 => 1 <= 6-1 = 5 => alta iteratie

Aleg (3,6) => L3 = 3 != L6 = 6 => 3 < 6 => L = (1,2,3,4,1,3) si E(G) = {(1,5);(3,6)}, j ~~> 3, k = 2, 2 <= 5 => iteratie

Aleg (2,4) => L2 = 2 != L4 = 4 => 2 < 4 => L = (1,2,3,2,1,3)

E(H) = {(1,5);(3,6);(2,4)}

j ~~> j+1 = 4, k = 3, 3 <= 5 => iteratie

Aleg (3,5) => L3 = 3 != L5 = 5 => 3 > 1 => L = (1,2,3,1,2,1,1), E(H) = E(H) ∪ (3,5), j ~~> 5, k = 4, 4 <= 5 iteratie

Aleg (1,6) => L1 = L6 = 1 => j ~~> j + 1 = 6, E(H) = {(1,5);(3,6);(2,4);(3,5)}

Aleg (2,3) => L2 = 2 != L3 = 1 => 2 > 1, L = (1,1,1,1,1,1), j ~~> j + 1 = 7, k = 5

K = n - 1 = 5 algoritmul se opreste.
E(H) = {(1,5);(3,6);(2,4);(2,3)} =>

Seminar
Algoritmul Kruskal

E(G) = M = {(1,2);(3,4);(2,5);(2,3);(4,5);(3,5)}

L = (L(1),L(2),L(3)) initial L(i) = i

Li = (1,2,3,4,5)

n=5

m=6

n - 1 = 4 (contor de la care se porneste k - iteratia de lucru)

k = 0 >= n - 1 = 4 fals => aleg o muchie M(1) = (1,2) =>

L(1) = 1 < L(2) = 2 => L(2) se inlocuieste cu 1 => L = (1,1,3,4,5); E(H) = {(1,2)}

Costul minim => atunci cand L = (1,1,1,1,1) costul se calculeaza dupa valoarea muchiilor din E(H).

Algoritmul Kruskal

L = (1,2,3,4,5)

Ordonam crescator muchiile dupa cost in multimea M(j) = E(G) = {(1,2);(2,3);(1,3);(3,4);(3,5);(4,5)}


Pentru k = 0, k = contor pana la k >= n - 1; k >= 5 - 1 = 4 parcurgem algoritmul si alegem prima muchie din M(j) = (1,2) => L 1 =
1, L2 = 2, daca este inegalitate se inlocuiesc valorile mai mari cu cele mici.

Atunci L = (1,1,3,4,5), E(H) = Ø => E(H) = {(1,2)}, k = 1 != k >= 4 => alegem (2,3) => L 2 = 1 < L3 = 3 => L3 = 1,

L = (1,1,1,4,5); E(H) = {(1,2);(2,3)}

k = 2 => k < 4 => aleg (2,4) => L2 = 1 < L4 = 4

L = (1,1,1,1,5)

E(H) = {(1,2);(2,3);(2,4)}

k = 3 => k < 4 => aleg (1,3) => L1 = 1 = L3 = 1

L = (1,1,1,1,5)

E(H) = {(1,2);(2,3);(2,4);(1,3)}

k = 4 => k >= 4 STOP

Curs
Roy Warshall

Observatie: Merge si pentru graful orientat in G, se alege un singur sens de parcurs al muchiilor astfel incat se completeaza A de
adiacenta in functie de sensul ales.

Definitie: Un graf orientat e antisimetric daca are proprietatea ca exista arcele (corespunzatoare muchiilor) (x,y) duce la
excluderea arcului.

Exemplu: G graf complet orientat

Antisimetric daca ar exista (x4,x1) nu ar fi un graf.

-graful paternitatii

-graful pentru competitia turneu cand ( ∀ sportive are meci cu oricare altul)
Roy-Warshall la orientat da numarul componentelor tare conexe (coresp. De la graful orientat pentru componentele conexe)

S(Xi) ∩ P(Xi) , S(Xi) = multimea varfurilor (nodurilor) teminale ale drumurilor ce pleaca din X

P(Xi)=multimea varfurilor (nodurilor) din care pornesc drumurile ce ajung in X;

S(Xi)=contine varful Xi corepondente elementelor aij=1 , mai exact se impart coloanei ce corespunde liniilor in care se

afla elemental 1.

P(Xi)= contine varful Xi correspondent elementului aij=1 , deci se iau liniile ce corespund coloanei in care se afla

elementele egale cu 1.

Exemplu : folosim graful antisimetric turneu

Aleg sensul 1->2

K=3

A3=A2

S(Xi)={X2,X4}

P(X1)={X3} => P(Xi) ∩S(Xi)= Ø

S(X2)={X4} => =Ø
P(X2)={X1,X3}

P(X3)= Ø =>={Ø}

S(X4)= Ø =>{Ø}

Nu exista componente tare conexe.

Exemplu : Kruskal – arbore cost minim

L=(1,2,3,4,5)

E(G)={(X1,X2)(X3,X4)(X2,X5)(X2,X3)(X4,X5)(X3,X5)}

K=0 ≠ K>n-1 = 4

Aleg (1,2) => L1=1<L2=2 L=(1,1,3,4,5)

E(H)={(1,2)}

K=1 ≠ K>n-1=4

Aleg (3,4) L3 =3<L4 =4 => L=(1,1,3,3,5)

E(H)={(1,2)(3,4)}

K=2 ≠ K>N-1=4

Aleg (2,5) L2=1 < L5=5 => L=(1,1,3,3,1) E(H)={(1,2)(3,4)(2,5)}

K=3 ≠ K>n-1=4

Aleg (2,3) L2=1 < L3=3 => L=(1,1,1,3,1) E(H)={(1,2)(3,4)(2,5)(2,3)}

K=4 = K>n-1=4 STOP!!!

Arbore de trecere
Algoritmul se putea opri la K=4 numai ca arborele partial era o padure si pentru a gasi un arbore efectiv am adaugat

Iteratia pentru K=5

K>n-1=4

V(G)m-n+p= Numarul ciclomatic si cociclomatic al grafului si legatura cu spatiile vectoriale .

Stim numarul ciclomatic al lui G ccl(G)=V(G)=m-n+p

Definitie : Numarul cociclomatic al lui G este μ(G)=n-p , vom arata ca in spatial vectorial generat de cele m muchii ale

unui graf exista multimer de vectori corespondenti lui V(G) si o alta corespondenta numarului μ(G) ,cele 2 muchii

ducand printr-o suma directa la generarea lui Rm .

Suma directa in V spatiu vetorial V=S1⊕S2 daca S1∩S2 =Ø si

S1 -> V

 subspatii vectoriale

S2 -> V

Ideea reprezinta lui Rm a venit pentru construirea de grafuri orientate.

Iau circuit (in graf neorientat ciclu)

C=(X1, X2, X3 ,X5 ,X4 ,X3 ,X1) pe varf , pe muchii (arce).

C=(1,5,8,9,6,3)

Aleg vectorul μ cu numarul componentelor =m

μ=( μ1, μ2,…. μn)

Propozitie : Orice ciclu al unui graf se poate scrie ca o suma de cicluri elementare .

Definitie : Fie G=(V(G),E(G)) si A ⊂ V(G) se numeste cociclu al lui G perechea ordonata a lui

C (ω+(A), ω-(A)) unde ω+(A), ω-(A) sunt multimile urmatoare ω+(A) = multimea arcelor incidente lui A (elementele din A),

Catre exterior iar ω-(A)= multimea arcelor incidente lui A catre interior.

Exemplu : A={X1,X3,X5}

Exista ~~> ω+
X1 ---------1

----------2 este inutil la X3(nu conteaza)

----------3

X3 ~~>3 doar intra

X5 ~~>8 intra in X3

ω+(A)={1,4}

ω-(A)={5,6,7,9}

(0,0,0,0,1,-1,1,0,1)

Un cociclu este elementar daca sunt indeplinite conditiile :

1) Toate arcele cociclului sunt in aceeasi componenta conexa.

2) Subgraful generat de G(A) si subgraful complementar G(A negat )=C A este si conex si nevid.

Exemplu : A={X1,X3,X5} – generator de 2 cocicluri elementare

G(A negat ): A={X1,X5} generator de un cociclu elementar

Multimea A={X1,X2} => ω(A)=({2,4,5,7}{3})

Propozitie : Orice ciclu in G e o suma de cocicluri elementare fara muchii conexe.

ω2({X2})=({5,7},{1})=(-1,0,0,0,1,0,1,0,0)

ω3({X3}=({6,9,},{4})=? Vector

ω4({X4}= ({3},{2,5,6,8})=?

ω5({X1}=…

Definitie : O multime de cicluri sau cocicluri este linia independent daca se respecta conditia de linia independent a

Vectorului

Observatie : Notiunea de linear dependent de cicluri si cocicluri se ia de la vector.

{ μ1,…. μn} e o baza -liniar independenta

-sistem generator
Teorema : In Rm exista baze constituite din cicli l.i si cocicli f.i si ℝ= Λ ⊕ Ω unde

Δ={ μ1, μ2….. μn} ; Ω={ ω1, ω2….. ωn}

Seminar

1) Se da G(n,m) neorientat

V|G|=3 λ|G|=2

P(λ)= λ4-m λ2-2 λ+6

Sa se determine spectrul lui (G).

Solutie : m-n+p=3

 m-2=3 => m=5

n-p=2

P(λ)=>n=5

n-p=2=>p=C(G)=2

Nr. C3=2

λ 4-5 λ2-2 λ+6=0


λ 4-5 λ2-2 λ+6=0 ~~>restul radacinii sunt iteratii

f(λ)= λ3+ λ2-4 λ-6

f”(λ)=3 λ2+2 λ-4=0

λ1,2=-1 ± √1+12 = 1±√13

f(1+3√13)=(1+√13)3+(1+√13)2-4(1+√13)-6= 1+3√13+39+13√3+1+2√13+13-2+4√13=52+22√13=>

=>f(1-√13)=52=22√13

Variatia semnelor ∃| λ2 <- (1-√13,1+√14) iar λ3, λ4 ∈ ℂ conjugat

Spectrul G= ( 1 λ2 λ3 λ4 )

( 1 1 α+iβ α-iβ )

2) Arbore de cost minim pentru graful :

Solutie :

V(G)={X1….X8}

E(G)=(X1,X3) (X3,X4) (X6,X7) (X1,X2) (X4,X8) (X2,X3) (X4,X5) (X4,X6) (X5,X6) (X6,X8) , j=1,10 (cu bara sus,negat)

n=8 , m=10 , k=contor lucru

k=0 k>n-1 ? 0<7 , L=(1,2,3,4,5,6,7,8,9,10)

k<7 aleg (X1,X3) => L1=1 < L3=3

k=1 L=(1,2,1,4,5,6,7,8,9,10)

E(H)={(X1,X3)}

K=1 K>n-1 ? 0

2<7 aleg (X3,X4) L3=1<L4=4

L=(1,2,1,1,5,6,7,8,9,10) => E(H)={(X 1,X2)(X3,X4)} => K->K+1=3


j->j+1=3

K=3<7=>aleg(X6,X7) =>L6=6<L7=7

L=(1,2,1,1,5,6,6,8,9,10)

E(H)={(X1,X2)(X3,X4)(X6,X7)} k -> k+1=4

J -> j+1=4

K=4 <7 =>aleg(X1,X2)=>L1=1 < L2=2

L=(1,1,1,1,5,6,6,8,9,10)

E(H)=( )={(X1,X2)(X3,X4)(X6,X7)(X1,X2)} k -> k+1=5

J -> j+1=5

K=5<7 =>aleg (X4,X8) => L4=1<L8=8

L=(1,1,1,1,5,6,6,1,9,10)

E(H)={ )={(X1,X2)(X3,X4)(X6,X7)(X1,X2)(X4,X8)} k ->k+1=6

J ->j+1=6

K=6<7 => aleg(X2,X3)L2=1=L3=1

K=6

j->j+1=7

k=6<7 =>aleg(X1,X5) L1=1<L5=5

L=(1,1,1,1,1,6,6,1,10)

E(H)={(X1,X3)(X3,X4)(X6,X7)(X1,X2)(X4,X8)(X4,X5)} k->k+1=7

j->j+1=8

K=7>=7 DA! =>H arbore partial dar este padure

Aleg(X4,X6) L4=1<L6=6

L=(1,1,1,1,1,1,6,1,9,10)

E(H)=E(H) ∪(X4,X6) k->k+1=8 STOP!!


3) G orientat :

Muchii etichetate

Sa se arate ca o baza a ciclurilor e data de B={ μ1 , μ2 , μ3 , μ4 , μ5}

Unde μ1=(1,5,3)

μ 2=(8,9,6) μ3=(2,3) μ4=(2,6,4) μ6=(7,8,5)

i)Daca in loc de μ4 cu μ5= μ1-μ3+ μ4 ramane B baza ?

ii)Daca se dau cociclurile ω4=({X4})=({3}{2,5,8,6})

Solutie :

μ1=(1,0,1,0,1,0,0,0,0)

μ2=(0,0,0,0,0,1,1,-1,-1)

μ3=(0,1,1,0,0,0,0,0,0)

μ4=(0,1,0,-1,0,-1,0,0,0)

μ6=(0,0,0,0,-1,0,1,1,0)

baza -Li independent

- sistem generator

α1μ1+α4μ2+α3μ3+α4μ4+α6μ6=0

(α1,0, α1,0, α1,0,0,0,0) +

(0,0,0,0,0, α2, α2, -α2, -α2)

(0, α3, α3,0, 0, 0, 0, 0, 0)

(0, α4,0,-α4,0, -α4, 0, 0, 0)

(0,0,0,0, -α6, 0, α6, α6,0)

(α1,α3+α4,α1+α3,-α4,α1+,(-α6),α2-α4, α6, α6- α2,- α2)=0

α 1=0

α3+ α4=0

α1+ α3=0

- α4=0
α 1- α6=0

α6- α2=0

α6=0

α4=0

α2=0

=> toti scalarii nuli =>

sistemult de genetarori ∀ μ

μ= α1μ1+α2μ2+α3μ3+α4μ4+α6μ6 =>sistemul Cramer cu solutia :

Pentru L independent se pun vectorii pe coloanal (stiva) si calculam rangul A.

(ex: max 5)

Daca randul A =vectorul 5 => vectorii sunt liniari independenti.

Tot pe matrice se vede sistemul generator cand rang A este egal cu numarul de vectorii si egal cu dimensiunea spatiului

Vectorial al vectorilor.

La noi spatiul vectorial 9 si merge cu definitia.

La noi pentru sistemul de gen determinat de la sistemul Cramer numitorul este nenul.

ω5({x1})=({1,2,4}{3})=

A={x1} m referinta varf

=(1,1,-1,1,0,0,0,0,0)

Algoritmul pentru determinarea arborelui de cost minim .


Prim.

Este similar algoritmul Kruskal de determinarea unui arbore partial de cost minim .

Spre deosebire de Kruskal algoritmul lui Prim selecteaza muchii (arce) orient de cost max si foloseste iteratii facute

dupa varfuri in loc de iteratii dupa arce (muchii orientate) in plus trebuie sa tinem cont ca daca se ajunge la un
arbore intermediar si daca avem un y ∈ G dar y Ti atunci distingem y la Ti/d(y,Ti) este minim din lungimea

muchiei .

f(Xi,y)=f(y,Xi)|Xi ∈ V(Ti)}

d(y,Ti) bine definit ca G conex si Ti arbore comun => ∃ y ∈ V(G) care sa se lege printr-un drum la Xi

Algoritmul Prim

Pas 1: Aleg X varful din V(G) si defines /constrang arborele Ti={V(T1)}={x};T1=(V(T1),E(T1))

E(T1)= Ø deci T1 pat izolat.

Pas 2: Construim arborele T2,m V(T2)={x}∪{y1} y1 e cel mai aproape de x(varful definit intr-un ….)

Pas 3: Presupunem ca s-a construit Ti atunci pentru a construi Ti+1 , plec de la TI si aleg un nod

(vf)y∈V(G) dar y V(Ti) astfel incat sa fiu la distanta minima de Ti (in mod concret adica in Ti sa intre si muchia n,de ,lungime
minima ce uneste pe y la varful lui Ti).

Pas 4: Pentru y∈ V(G) ce nu e nod(varf) in Ti construit ca la 3 si care nu mai poate fi recontruit pentru un alt arbore T i+2 , com
incheia provedeul dupa n pasi (corespondent numarului varfurilor=noduri)

gasim arborele.

Arborescente :

Consideram arborele orientat care sa fie corespunzator unui arbore neorientat daca se renunta la orientari. Prin

urmare la un graf orientat notiunea de arbore se transforma in arborescenta.

Definitie : Arborescenta A=(V(A),E(A)) este un graf orientat ce are un varf X 0 ∈ V(A) , cu d-(X0)=0 si macar un varf X∈V(A)
astfel incat d+(X0)=1

X2,X3,X4 sunt pe acelasi palier de lungime 2 fara de X0


Pentru Arborescenta numim nivelului palierului al lui X lungimea drumului de la radacina X 0 la x notata cu f(X0,X) cu 8 de la
nivelul 2 varfului x si y sunt pe acelasi palier atunci cand f(X 0,X).

Definitie : Fie arborescenta A=(V(A),E(A) si arcul (x,y) ∈ E(A) , x se zice tatal sau ascendentul lui y iar y fiul sau descendentul lui
x .Cand exista grafuri relative la mai multe generatii cand drumul (x....y) spunem ca x este ascendentul lui y sau stramosul iar
y este urmasul lui x.

Definitie : Arborescenta se spune ca e binara daca are cel mult 2 descendeti si se zice ca e complet binara daca are

strict 2 descendenti sau 0.

Teorema : Fundamentul arborilor binari

Pentru orice numar natural n exista A(V(A),E(A)) arborescenta binara astfel incat numarul varful terminatl al lui A =n

Adica |{x∈V(A)|d+(X)=0|=u

Demonstratie : Prin inductie matematica dupa n natural verificam pentru n=1 aleg arborescenta a cu V(A)={x 0}

E(A)= Ø ∃! Arce = d+(X0)=0

=|{X0}|=|{X∈V(A)d+(X)=0}|=1

Iau n =2 si V(A)={X1,X2} mai consideram

V”(A)={X1,2} Construim E”(A)={(X1,2,X1),(X1,2,X2)}

E”(A) are doar un element => arbore prim cu 1 element =1

Luam A”=V(A) ∪ V”(A),E(A) ∪E”(A) CU E(A) corespondent lui V(A)

Presupunem ca proprietatea e adecvata pentru un numar natural n si arata ca e adevarat si pentru numar +1

Se impune a fi studiate 2 cazuri dupa paritatea lui n+1.

Presupunem proprietatea adevarata fn si o aratam pentru n+1

Caz 1: n+1=2p par

Plec de la V(A)-{X1…..X2p=n+1} si iau V(A)={X1,2…. X2p-1,2p}

|V”A|=p => exista arbore binary A”=(V”(A)E”(A)) (p<n) cu p noduri terminate.

X1,2 , X3,4, ………. X2p-1 ,, 2p =>A”=(V(A) ∪ E(A),E(A) ∪ E”(A)) => 2p=2n+1 noduri terminale.

Caz 2: n+1=2p+1 impar


V(A)={X1……X2PX2P+1) , V(A)=(X1,2….X2P=1,2P}

E(A)=(X1,2,X1)(X1,2,X2)

V”(A)= V”(A) ∪ {X2p+1} are p+1 elemente <n => A’=(V’(A) ∪ {X2P+1} , E’(A) e arbore binar cu p+1 noduri terminale

=>A’’=(V(A) ∪V’(A) ∪{X2p+1} , E(A) ∪ E’(A) e arbore binary cu 2p+1 noduri terminale.

O consecinta a teriei arborescentei apare in calculul arcelor . Astfel avem proprietatea : Fie A=b(A)V(A) arbore binar

Complementar in care teorema |{x ∈V(A)|d+(X)}

Definitie : Pentru arborescenta consideram multimea distantei de la radacina arborelui binar R la varful termenului T ele

vor fi definite prin d(r,t)={D ∈ N| ∃ x ∈V(A) cu d+(x)=0 si f(X0……..x)=s}

Daca diferenta dintre max d(r,t)-min d(r,t) zicem ca arborele binar echivalent

Echilibru de nivel s=3

Definitie : Fie arbore binar atunci sunt echivalente afirmatiile :

a) este arbore echilibrat pentru orice varf x terminal d +(x)=0]

daca |E(A)|=2m nivelul este f(X0……X) iar daca 2m < |V(A)|<2n+1 => f(X0……X)

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