Sunteți pe pagina 1din 168

ALGORITMICA GRAFURILOR

10-11
C. Croitoru
saptamana 1
AGENDA
Saptamana aceasta nu se t ine cursul !!!
Problemele pentru seminarul 1 (dencalzire)

1
Seminarul 1
Problema 1. Fie a, b N. Demonstrat i ca
n
a
= O(n
b
) daca si numai daca a b. Demonstrat i
ca n
a
= O(e
n
) si ca nu are loc e
n
= O(n
a
).
Problema 2. Argumentat i o evaluare de tipul
T(n) = (.) pentru timpul de executie a algo-
ritmului:
Suma Tripla (n)
s 0
for i = 1, n do
for j = i, n do
for k = j, n do
s s +1
2
Seminarul 1
Problema 3. Consideram urmatoarele doua
funct ii:
F(n)
if (n = 1) return true
else return G(n 1)
G(n)
if (n = 1) return false
else return F(n 1)
Stabilit i si argumentat i valorile F(2010) si G(2011).
Problema 4. Pentru nmult irea a doua nu-
mere ntregi se poate folosi algoritmul descris
mai jos prin doua exemple. Se observa ca
operat iile efectuate sunt doarnmult irea cu doi,
mpart ireantreaga la doi si adunarea numerelor
ntregi.
3
48 17 29 135
48 17 29 135
24 34 14 270
12 68 7 540
6 136 3 1080
3 272 1 2160
1 544 ==========
============== 3915
816
(se aduna numerele de pe coloana 2
care au pe prima coloana numere impare)
Scriet i o funct ie recursiva pentru produsul a
doua numere ntregi care sa corespunda al-
goritmului de mai sus si demonstrat i-i corec-
titudinea. Stabilit i complexitatea timp T(n)
pentru aceasta funct ie, unde n este numarul
bit ilor necesari reprezentarii binare a ecaruia
dintre cei doi factori.
4
Seminarul 1
Problema 5. a)

Infasuratoarea convexa a n
puncte P
i
(x
i
, y
i
), i = 1, n din plan, este cel mai
mic (n raport cu incluziunea) poligon convex
care cont ine toate cele n puncte. Demonstrat i
ca daca dispunem de un algoritm care sa deter-
mine varfurilenfasuratoarei convexe a n puncte
date cu complexitatea timp T(n) atunci putem
sorta un vector ntreg n-dimensional n timpul
T(n).
b) Dat i doua exemple de algoritmi de sortare.
Ce complexitate au ?
Problema 6. Numim pin un arbore cu macar
trei noduri cu proprietatea ca unicul vecin al
oricarei frunze (nod cu un singur vecin) are ex-
act doi vecini. Pentru un arbore T cu cel put in
trei noduri, notam cu pin(T) subarborele lui T
care este pin si are numar maxim de noduri.
5
Descriet i un algoritm care, pentru T dat, con-
struieste pin(T).
Un pin
Arborele T
Pin(T)
Arborele T
Pin(T)
6
ALGORITMICA GRAFURILOR
10-11
C. Croitoru
saptamana 2
AGENDA
Fisa de descriere a cursului
Interesul pentru grafuri n informatica
Elemente introductive de complexitate
Vocabular al teoriei grafurilor
Problemele pentru seminarul 2

1
Fisa de descriere a cursului
http://thor.info.uaic.ro/croitoru/ag/cs2104-rom.pdf
2
Interesul pentru grafuri n informatica
Structura ierarhica a internetului
3
Interesul pentru grafuri n informatica
Arbore binar cu documente de pe web
4
Interesul pentru grafuri n informatica
Automate celulare
5
Interesul pentru grafuri n informatica
Blogosfera
6
Interesul pentru grafuri n informatica
Ierarhii uriase
7
Interesul pentru grafuri n informatica
Bussines connections
8
Interesul pentru grafuri n informatica
Conuent a
9
Interesul pentru grafuri n informatica
Dreams
10
Interesul pentru grafuri n informatica
Knowledge Representation
11
Interesul pentru grafuri n informatica
Vizualizare de calitate
12
Interesul pentru grafuri n informatica
Interpol
13
Interesul pentru grafuri n informatica
Knowledge map
14
Interesul pentru grafuri n informatica
Large scale network
15
Interesul pentru grafuri n informatica
Madrid Metro
16
Interesul pentru grafuri n informatica
Paris Metro
17
Interesul pentru grafuri n informatica
Ret ele de date
18
Interesul pentru grafuri n informatica
Proteine !!!
19
Interesul pentru grafuri n informatica
Y les
20
Elemente introductive de complexitate
(ag 10-11 allinone.pdf, primul capitol)
P: Clasa problemelor (de decizie) pentru care
exista algoritmi deterministi cu timp polinomial
de rezolvare.
NP: Clasa problemelor (de decizie) pentru
care exista algoritmi nedeterministi cu timp poli-
nomial de rezolvare.
PNP(Incluziune stricta ?)
21
Elemente introductive de complexitate
Problema P se reduce polinomial la problema
Q, daca orice intrare a problemei P se poate
transforma n timp polinomial ntr-o intrare a
problemei Q, astfel ncat rezolvand Q pe aceasta
intrare se obt ine raspunsul (corect) pentru P.
Problema de decizie P se numeste NP-dicila
(NP-hard) daca orice problema din NP se re-
duce polinomial la P.
Problema de decizie P se numeste NP-completa
daca este NP-dicila si n plus apart ine la NP.
22
Vocabular al teoriei grafurilor
(ag 10-11 allinone.pdf pag. 17 )
Mult imi stabile
SM Intrare: G un graf, k N.
Intrebare: Exista S m.stabila n G,
cu |S| k?
NP-completa (Karp, 1972).
Cuplaje
P2 Intrare: G un graf.
Iesire: (G) si un martor:
M cuplaj n G, cu |M| = (G).
Polinomial rezolvabila ( Edmonds, 1965).
23
Vocabular
Colorarea varfurilor
COL Intrare: G un graf, k N.
Intrebare: Admite G o k-colorare?
Este NP-completa chiar pentru k = 3.
Colorarea muchiilor
P4 Intrare: G un graf.
Iesire:

(G) si un martor:
o

(G)-colorare a muchiilor lui G.


Este NP-completa chiar daca e usor aproximabila.
24
Vocabular
Izomorsm
ISO Intrare: G, H grafuri.
Intrebare: G

= H?
??? Nu se stie daca e din P dar nici nu s-a
aratat ca e NP-completa.
25
Problemele pentru seminarul 2
Problema 1, Setul 1
Aceasta e o problema de algoritmica pe matrici; ideea e sa
folosimn loc de caracterele 0,1, caractere matriciale
: matrici binare kk (numarul lor e 2
k
2
). Matricea init iala
0,1 o inlocuim cu una n/k n/k de pointeri la lista carac-
terelor matriciale de mai sus. Trebuie vazut care e locul
elementului (i, j) din matricea init iala n matricea mica
(si indicii asteia trebuie gasiti !) la care trimite pointerul
corespunzator. Si asta n timp constant.
Google Serarch (GS): sparse matrix representation; su-
ucint graph representation
Problema 2, Setul 1
E un exercit iu n care se repeta bfs pe arbori si folosirea
n argumentarea corectitudinii algoritmului propus. Exista
multe solut ii. Atent ie la demonstrat iile prin induct ie.
GS: algorithm tree diameter
Problema 3, Setul 1
Solut ia propusa e cam proasta (este doar un exercit iu de
programare).Putet i propune algoritmi mai buni !
GS: algorithm tree drawing
26
Problemele pentru seminarul 2
Problema 2, Setul 3
Incercat i o solut ie recursiva: plecand de la descompunerea
lui K
2n
construit i descompunerile pentru K
2n+1
si K
2n+2
.
Un pic migalos, dar nu-i greu.
27
ALGORITMICA GRAFURILOR
10 - 11
C. Croitoru
saptamana 3
AGENDA
Vocabular al teoriei grafurilor
(ag 10-11 allinone.pdf pag. 32 - 67)
Problemele pentru seminarul 3

1
Vocabular
Variat ii n denit ia unui graf
Grade
Subgrafuri
Operat ii cu grafuri
Clase de grafuri
Drumuri si circuite
Conexiune
Matrici asociate
Structuri de date
2
Problemele pentru seminarul 3
Acesta este un seminar special, cu probleme foarte usoare, avand
ca singur scop xarea unor not iuni.
Problema 1. Fie G
1
, G
2
, G
3
trei grafuri. Se
stie ca G
1

= G
2
si ca G
2

= G
3
. Rezulta ca
G
1

= G
3
? (justicare)
Problema 2. Sunt cele doua grafuri desenate
mai jos izomorfe ? (justicare)
Problema 3. Demonstrat i ca daca un graf
conex G are exact un circuit atunci |G| = |E(G)|.
3
Problema 4. Determinat i numarul de stabili-
tate al grafului desenat mai jos. (justicare)
Problema 5. Fie G un graf conex cu |G| >
1 si fara vrfuri de grad 1. Demonstrat i ca
|E(G)| n.
Problema 6. Fie G = (V, E) un graf conex cu
|G| 2. Demonstrat i ca exista un varf v
0
V
astfel ncat Gv
0
este conex.
Problema 7. Este posibil ca numarul arbo-
rilor part iali ai unui graf sa e 1? Dar 2 ?
(justicare)
4
Problema 8. Sa se determine L(L(G)), unde
graful G este:
Problema 9. Daca G este graful desenat mai
jos, este L(G) graful reprezentativ al muchi-
ilor sale hamiltonian? (justicare)
Problema 10. Precizat i numarul cromatic
(argumentare) al complementarului grafului de
mai sus.
Problema 11. Precizat i numarul de conexiune
(argumentare) al grafului de la problema 9.
5
Problema 12. Este graful urmator autocom-
plementar ? (argumentare)
Problema 13. Are graful de mai sus doi ar-
bori part iali fara muchii comune? (argumentare)
Problema 14. Stabilit i numarul arborilor part iali
ai complementarului grafului de la problema
12. (argumentare)
Problema 15. Stabilit i cardinalul maxim al
unei multimi stabile din graful K
2
G, unde G
este tot graful de la problema 12.
Problema 16. Daca G este graful desenat mai
jos, este L(G) graful reprezentativ al muchi-
ilor sale hamiltonian? (justicare)
6
Problema 17. Pentru graful G desenat mai
jos sa se determine numarul cromatic (G) (ar-
gumentare).
Problema 18. Este graful de mai sus izomorf
cu complementarul sau ? (justicare)
Problema 19. Determinat i numarul de conex-
iune al grafului de la problema 17. (justicare)
Problema 20. Determinat i diametrul grafului
de la problema 17. (justicare)
Problema 21. Determinat i

(G), indicele cro-


matic al grafului de la problema 17. (justi-
care)
7
ALGORITMICA GRAFURILOR
10-11
C. Croitoru
saptamana 4
AGENDA
Vocabular al teoriei grafurilor
(ag 10-11 allinone.pdf pag. 63 - 67)
Probleme de drumn (di)grafuri
(ag 10-11 allinone.pdf pag. 68 )
Problemele pentru seminarul 4

1
Vocabular
Matrici asociate
Structuri de date
2
Probleme de drum
Parcurgeri
BFS
DFS
Componente conexe, tari conexe !!! (pen-
tru examen; algoritmica usoara !!!)
3
Probleme de drum
Drumuri de cost minim
P1 Date G digraf;a : E(G) R; s, t V (G),s = t.
Sa se determine D

st
D
st
, astfel nct
a(D

st
) = min{a(D
st
) | D
st
D
st
}.
P2 Date G digraf; a : E(G) R; s V (G).
Sa se determine D

si
D
si
i V (G), a..
a(D

si
) = min{a(D
si
) | D
si
D
si
}.
P3 Date G digraf; a : E(G) R.
Sa se determine D

ij
D
ij
i, j V (G), a..
a(D

ij
) = min{a(D
ij
) | D
ij
D
ij
}.
4
Probleme de drum minim
Rezolvarea problemei P2
Teorema. 1. Fie G = (V, E) digraf, V =
{1, . . . , n}, s V si a : E R, astfel nct
(I) C circuit n G, a(C) > 0.
Atunci (u
1
, . . . , u
n
) este o solut ie a sistemu-
lui
()

u
s
= 0
u
i
= min
j=i
(u
j
+a
ji
) i = s.
daca si numai daca
i V , D

si
D
si
astfel nct a(D

si
) = u
i
si
a(D

si
) = min{a(D) | D D
si
}.
5
Probleme de drum minim
O numerotare aciclica a (varfurilor) digrafu-
lui G = (V, E) este un vector ord[v] v V ,
(cu interpretarea ord[v] = numarul de ordine
al varfului v) a. .
vw E ord[v] < ord[w].
G este un digraf fara circuite daca si numai
daca admite o numerotare aciclica .
Sortare topologica O(n +m).
Rezolvarea sistemului () prin substitut ie.
6
Probleme de drum minim
Algoritmul lui Dijkstra a
ij
0 !!!
1. S {s}; u
s
0; nainte[s] 0;
for i V \ {s} do
{ u
i
a
si
; nainte[i] s }
// dupa aceste init ializari (D) are loc
2. while S = V do
{
determina j

V \ S : u
j

= min{u
j
| j V \ S};
S : S {j

};
for j V \ S do
if u
j
> u
j
+a
j

j
then
{ u
j
u
j
+a
j

j
; nainte[j] j

}
}
Complexitatea timp a algoritmului, n descrierea data
este O(n
2
) .
Este posibila organizarea unor cozi cu prioritate (de
exemplu heap-urile) pentru obt inerea unui algoritm cu
complexitatea O(mlogn) (unde m = |E|) Johnson ,1977).
Cea mai buna implementare se obt ine utilazand heap-
uri Fibonacci, ceea ce conduce la o complexitate timp
de O(m+nlogn) (Fredman si Tarjan, 1984).
7
Problemele pentru seminarul 4
Problema 1. Sa se construiasca o funct ie care sa
recunoasca un turneu. La intrare aceasta va primi un
digraf G = ({1, ..., n}, E) reprezentat cu ajutorul listelor
de adiacent a si va returna true sau false. Stabilit i com-
plexitatea timp a algoritmului folosit.
Problema 2. Sa se construiasca o funct ie care prim-
ind la intrare un digraf G = ({1, ..., n}, E) reprezentat cu
ajutorul listelor de adiacent a sa returneze inversul lui G
reprezentat cu ajutorul listelor de adiacent a. Complexi-
tatea timp a algoritmului folosit trebuie sa e O(n+|E|).
Problema 3. Se considera un graf G = ({1, ..., n}, E)
reprezentat cu ajutorul matricii de adiacent a. Mult imea
de n1 muchii A are proprietatea ca T = (V, A) este ar-
bore part ial al lui G. Construit i un algoritm care sa
listeze cele m n + 1 circuite care se formeaza prin
adaugarea muchiilor din EA la T (|E| = m). Reprezentarea
lui T trebuie sa permita depistarea ecarui astfel de cir-
cuit n timpul O(n).
8
Problema 4. Sa se construiasca o funct ie
care sa determine gradul maxim al unui varf al
unui graf. La intrare aceasta va primi un graf
G = ({1, ..., n}, E) reprezentat cu ajutorul lis-
telor de adiacent a si va returna (G). Stabilit i
complexitatea timp a algoritmului folosit.
Problema 5. Construit i o funct ie care pri-
mind la intrare graful G = (V, E) reprezen-
tat cu ajutorul listelor de adiacent a si k, un
numar ntreg pozitiv, returneaza graful G
(k)
cu
aceeasi mult ime de virfuri ca si G , n care doua
virfuri distincte sunt adiacente daca si numai
daca n graful init ial sunt conectate printr-un
drum de lungime cel mult k. Care este com-
plexitatea timp a construct iei ?
Problema 6. Pentru graful conex G = (V, E)
cu n varfuri si m muchii, se dispune de o repre-
zentare cu ajutorul listelor de adiacent a. Descriet i
un algoritm, cu complexitatea timp O(n +m),
pentru construct ia listelor de adiacent a ale unui
arbore part ial al lui G.
9
Problema 7. Fie G = (V, E) un graf cu ordinul |V | 2
si T = (V, E
T
) un arbore part ial al lui G, reprezentat
cu ajutorul tabloului (p[v])
vV
, unde p[v] este parintele
lui v n T: varful dinaintea lui v de pe drumul unic
de la o radacina xata r, la v, n T ( pentru r avem
p[r] = r). Descriet i un algoritm care sa determine, n
timpul O(|V |), un varf v
0
pendant (frunza) n T si apoi
demonstrat i ca Gv
0
este conex.
Problema 8. Fie G = (V, E) un digraf reprezentat cu
ajutorul listelor de adiacent a. Descriet i un algoritm de
complexitate timp O(|V | +|E|) care sa decida daca se
pot ordona varfurile sale: v
i
1
, . . . , v
i
|V |
, astfel ncat daca
v
i
j
apare n lista de adiacent a a lui v
i
k
atunci k < j.
Problema 9. Fie T = (V, E
T
) un arbore cu mult imea
varfurilor V = {1, . . . , n} (n 2), reprezentat cu ajutorul
tabloului (p[v])
vV
, unde p[v] este parintele lui v n T:
varful dinaintea lui v de pe drumul unic de la o radacina
xata r, la v, n T ( pentru r avem p[r] = r). Descriet i
un algoritm care sa construiasca , n timpul O(n), listele
de adiacent a ale lui T.
10
Problema 10. Se considera un graf G = (V, E) (V =
{1, . . . , n}), izomorf cu graful circuit (cu cel put in 3
varfuri), G

= C
n
. Fiecare muchie e E are asociat
un cost real c(e). Aceste informat ii sunt disponibile n
tablourile dreapta si cost de dimensiune n cu semnicat ia:
dreapta[v] = vecinul din dreapta al lui v, iar costul muchiei
{v, dreapta(v)} este cost[v]. Descriet i un algoritm cat mai
ecient pentru aarea unui arbore part ial al lui G de cost
minim.
Problema 11. Se considera un graf G = (V, E) (V =
{1, . . . , n}), reprezentat cu ajutorul listelor de adiacent a.
Se stie ca graful are gradul minim (G) marginit de o
constanta c N. Descriet i un algoritm cu complexitatea
timp O(n) pentru determinarea lui (G) si a unui varf
v
0
V cu gradul n G egal cu (G).
Problema 12. Se considera un grafurile G
1
si G
2
(
G
i
= (V
i
, E
i
) , V
i
= {1, . . . , n
i
}, (i=1,2)) reprezentate
cu ajutorul matricilor de adiacent a A
1
si A
2
. Scriet i (n
pseudocod) un algoritm pentru construirea listelor de
adiacent a ale grafului G
1
G
2
.
11
Problemele pentru seminarul special 4
Problema 1, Setul 3
Aceasta e o problema foarte interesanta pentru ca ofera
o caracterizare algoritmica a unei clase de grafuri. Utila
pentru nt elegerea dfs.
Problema 3, Setul 4
Exercit iu util. Tripartit ia evident iata la a) poate con-
struita algoritmic ! Rezultatul de la b) e util n recunoasterea
grafurilor cordale.
12
ALGORITMICA GRAFURILOR
10-11
C. Croitoru
saptamana 5
AGENDA
Probleme de drum minim
(ag 10-11 allinone.pdf pag. 98 124)
Probleme de conexiune
ag 10-11 allinone.pdf pag. 125 )
Problemele pentru seminarul 5
Prezentarea temei pentru acasa

1
Probleme de drum minim
Algoritmul lui Dijkstra a
ij
0 !!!
1. S {s}; u
s
0; nainte[s] 0;
for i V \ {s} do
{ u
i
a
si
; nainte[i] s }
// dupa aceste init ializari (D) are loc
2. while S = V do
{
determina j

V \ S : u
j

= min{u
j
| j V \ S};
S : S {j

};
for j V \ S do
if u
j
> u
j
+a
j

j
then
{ u
j
u
j
+a
j

j
; nainte[j] j

}
}
Complexitatea timp a algoritmului, n descrierea data
este O(n
2
) .
Este posibila organizarea unor cozi cu prioritate (de
exemplu heap-urile) pentru obt inerea unui algoritm cu
complexitatea O(mlogn) (unde m = |E|) Johnson ,1977).
Cea mai buna implementare se obt ine utilazand heap-
uri Fibonacci, ceea ce conduce la o complexitate timp
de O(m+nlogn) (Fredman si Tarjan, 1984).
2
Probleme de drum minim
Rezolvarea lui P2 n cazul general.
Algoritmul lui Bellman, Ford, Moore ( 1960)
1. u
1
s
0; for i V \ {s} do u
1
i
a
si
;
// evident (BM) are loc
2. for m := 1 to n 2 do
for i := 1 to n do
u
m+1
i
min

u
m
i
, min
j=i
(u
m
j
+a
ji
)

Complexitatea O(n
3
), daca determinarea min-
imului din pasul 2 necesita O(n) operat ii.
Testarea n O(n
3
) a existent ei unui circuit C
de cost negativ n digraful G !
3
Probleme de drum minim
Rezolvarea problemei (P3).
Daca G nu cont ine circuite de cost negativ, dar
exista si arce de cost negativ, iternd algoritmul
lui Bellman Ford pentru s = 1, n se obt ine un
algoritm de complexitate O(n
4
).
Aratam n continuare ca se poate proceda si
mai ecient.
O(n
3
) Iterarea algoritmului lui Dijkstra, dupa
preprocesare !
Complexitatea O(n
3
logn) cu nmult iri matri-
ciale !!!!
O(n
3
): algoritmul lui Floyd-Warshal
4
Probleme de drum minim
Algoritmul lui Floyd-Warshal
1: for i := 1 to n do
for j := 1 to n do
{ nainte(i, j) i;
if i = j then { a
ii
0;nainte(i, i) 0 }
}
2: for m := 1 to n do
for i := 1 to n do
for j := 1 to n do
if a
ij
> a
im
+a
mj
then
{ a
ij
a
im
+a
mj
;
nainte(i, j) nainte(m, j)
if (i = j a
ij
< 0) then
return circuit negativ
}
5
Probleme de conexiune
Teorema lui Menger
Fie G = (V, E) (di)graf si X, Y V . Atunci
numarul maxim de XY -drumuri disjuncte este
egal cu cardinalul minim al unei mult imi XY -
separatoare.
Fie G = (V, E) un (di)graf si s, t V , astfel
nct s = t, st / E. Exista k drumuri intern
disjuncte de la s la t n G daca si numai daca
ndepartnd mai put in de k vrfuri diferite de s
si t, n (di)graful ramas exista un drum de la s
la t.
6
Probleme de conexiune
Consecint a Un graf G este p-conex daca G =
K
p
sau st E(G) exista p drumuri intern dis-
juncte de la s la t n G.
Determinarea numarului k(G) de conexiune a
grafului G (cea mai mare valoare a lui p pentru
care G este p-conex) se reduce deci la deter-
minarea lui
min
stE(G)
p({s}, {t}; G)
(care se poate obt ine n timp polinomial.)
7
Problemele pentru seminarul 5
Problema 4, Setul 3
Etichetam varfurile arborelui cu perechi de etichete care
rezulta n urma unei parcurgeri oarecare.
Problema 2, Setul 3
Rezultatul e surprinzator, demonstrat ia constructiva e
foarte simpla. Implementarea e instructiv sa o faca ecare
acasa.
Problema 2, Setul 4
Se executa un bfs din s, si se considera muchiile dintre
nivele consecutive n arborele bfs (pina la nivelul lui t); se
obt ine o familie de mult imi st-inevitabile disjuncte. Ine-
galitatea inversa e evidenta!
Problema 3, Setul 5
Consideram o bipartit ie a mult imii varfurilor lui G cu numar
maxim de muchii cross, si rat ionam asupra numarului
vecinilor unui varf oarecare din aceeasi clasa cu el si din
cealalta.
8
ALGORITMICA GRAFURILOR
10 -11
C. Croitoru
saptamana 6
AGENDA
Probleme de conexiune
( ag 10-11 allinone.pdf pag. 125 149 )
Arbori
( ag 10-11 allinone.pdf pag. 150 )
Problemele pentru seminariile 6 si 7

1
Probleme de conexiune
Teorema lui Menger
Fie G = (V, E) (di)graf si X, Y V . Atunci
numarul maxim de XY -drumuri disjuncte este
egal cu cardinalul minim al unei mult imi XY -
separatoare.
Fie G = (V, E) un (di)graf si s, t V , astfel
nct s = t, st / E. Exista k drumuri intern
disjuncte de la s la t n G daca si numai daca
ndepartnd mai put in de k vrfuri diferite de s
si t, n (di)graful ramas exista un drum de la s
la t.
2
Probleme de conexiune
Consecint a Un graf G este p-conex daca G =
K
p
sau st E(G) exista p drumuri intern dis-
juncte de la s la t n G.
Determinarea numarului k(G) de conexiune a
grafului G (cea mai mare valoare a lui p pentru
care G este p-conex) se reduce deci la deter-
minarea lui
min
stE(G)
p({s}, {t}; G)
(care se poate obt ine n timp polinomial.)
3
Probleme de conexiune
Teorema lui Konig
Daca G = (S, R; E) este un graf bipartit, atunci
cardinalul maxim al unui cuplaj este egal cu
cardinalul minim al unei mult imi de vrfuri in-
cidente cu toate muchiile grafului.
Consecint a: Daca G e graf bipartit, atunci :
(G) = |G| (G).
4
Probleme de conexiune
Daca A = (A
i
; i I) este o familie de submult imi
ale lui S, o funct ie r
A
: I S cu proprietatea
ca r
A
(i) A
i
, i I se numeste funct ie de
reprezentare pentru familia A.

In acest caz, (r
A
(i); i I) formeaza un sistem
de reprezentant i ai familiei A.
Daca funct ia de reprezentare r
A
este injec-
tiva atunci r
A
(I) S se numeste sistem de
reprezentant i distinct i ai familiei A, sau transver-
sala.
Teorema lui Hall Familia A = (A
i
; i I) de
submult imi ale lui S admite o transversala daca
si numai daca
(H) |A(J)| |J| J I.
5
Probleme de conexiune
Structura grafurilor p-conexe.
Teorema lui Dirac
Daca G = (V, E) este un graf p-conex p 2,
atunci prin orice p vrfuri ale sale trece un cir-
cuit.
Teorema lui Erdos si Chvatal
Fie G un graf p-conex. Daca (G) p atunci
G este hamiltonian.
6
Arbori
Teoreme de caracterizare
Teorema. Fie G = (V, E) un graf.
Urmatoarele armat ii snt echivalente:
(i) G este arbore (este conex si fara circuite).
(ii) G este conex si este minimal cu aceasta
proprietate.
(iii) G este fara circuite si este maximal cu
aceasta proprietate.
Teorema. Urmatoarele armat ii snt echiva-
lente pentru un graf G = (V, E) cu n vrfuri:
(i) G este arbore.
(ii) G este conex si are n 1 muchii.
(iii) G este fara circuite si are n 1 muchii.
(iv) G = K
n
pentru n = 1, 2 si G = K
n
pentru
n 3 si adaugarea unei muchii la G produce
exact un circuit.
7
Arbori
Generarea arborilor part iali ai unui graf
generare-arbori-part iali(int i);
// se genereaza tot i arborii part iali ai lui G
avnd drept prime i 1 muchii,elementele
T(1), . . . , T(i 1)
ale tabloului E (ordonate crescator).
variabile locale:
j {1, . . . m}; S, lista de vrfuri; x V ;
if i = n then
//{T(1), . . . , T(n 1)} formeaza un
arbore part ial ;
prelucreaza T ( listeaza, memoreaza etc.)
8
else
if i = 1 then
for j := 1 to d
G
(v
0
) do
{ T[i] j;
A:
generare-arbori-part iali(i +1);
B:
}
else
for j := T[i 1] +1 to m(n 1) +i do
if

{T[1], . . . , T[i 1]} {j}

G
nu are circuite
then
{ T[i] j;
A:
generare-arbori-part iali(i +1);
B:
}
9
Arbori
Numararea arborilor part iali ai unui graf
Fie G = (V, E) un multigraf cu V = {1, 2, . . . , n}.
Cosideram A = (a
ij
)
nn
matricea de adiacent a a lui G
(a
ij
= multiplicitatea muchiei ij daca ij E, altfel 0).
Fie
D = diag(d
G
(1), d
G
(2), ..., d
G
(n)).
Matricea L[G] = DA se numeste matricea de admitant a
a multigrafului G sau matricea Laplace a lui G.
Teorema (Kircho-Trent; Matrix Tree Theorem)
Daca G este un multigraf cu mult imea de vrfuri {1, . . . , n}
si L[G] matricea Laplace, atunci
|T
G
| = det(L[G]
ii
) i {1, . . . , n}.
L[G]
ij
noteaza minorul lui L[G] obt inut prinndepartarea
liniei i si coloanei j.
Corolar.

T
K
n

= n
n2
(Cayley).
10
Arbori
Arbori part iali de cost minim.
(P1) Date G = (V, E) graf si c : E R (c(e) costul
muchiei e), sa se determine T

T
G
astfel nct
c(T

) = min{c(T) | T T
G
},
unde c(T) =

eE(T)
c(e).
Algoritm generic
Init ial, T
0
= (T
0
1
, T
0
2
, . . . , T
0
n
), T
0
i
= ({i}, ), i = 1, n (am
presupus, ca de obicei ca, V = {1, 2, . . . , n}) .

In pasul general k ( k = 0, n 2), din familia


T
k
= (T
k
1
, T
k
2
, . . . , T
k
nk
) de nk arbori disjunct i astfel nct
V (T
k
i
)
i=1,nk
este partit ie a lui V , se construieste T
k+1
:
- se alege T
k
s
unul din arborii familiei T
k
.
- dintre toate muchiile lui G cu o extremitate n T
k
s
si cealalta n V V (T
k
s
), se alege una de cost minim,
e

= v
s
v
j

unde v
j

V (T
k
j

) j

= s.
- T
k+1
= (T
k
\{T
k
s
, T
k
j

})T, unde T este arborele obt inut


din T
k
s
si T
k
j

la care adaugam muchia e

.
Teorema. Daca G = (V, E) este un graf conex cu V =
{1, 2, . . . , n} atunci T
n1
1
construit de algoritmul descris
mai sus este arbore part ial de cost minim.
11
Problemele pentru seminariile 6 si 7
Grupele care au seminar lunea vor face n seminaul 6 prob-
lemele de mai jos, iar n seminarul 7 problemele din tema 1.
Celelalte grupe, vor face problemele de la tema 1n seminarul
6 si problemele de mai jos n seminarul 7 !!! :)
Problema 3, Setul 13
Observat ia de baza este ca graful care reprezinta inter-
sectiile de intervale nu poate cont ine ca subgraf indus C
4
.
(GS: Berge Mystery Story)
Problema 1, Setul 5
Daca G e bipartit, orice subgraf indus nenul este bipartit
si proprietatea data este evidenta. Daca G satisface pro-
prietatea data si nu-i bipartit, are un circuit impar indus
n care proprietatea nu are loc.
Problema 4, Setul 5
Mult imea stabila S se poate construi considerand mult imi
stabile maximale de pe nivelele impare ale unui arbore bfs.
Inegalitatea rezulta minorand (G) cu |S| si estimand E

.
Problema 1, Setul 6
Hipercubul ! O problema frumoasa (GS) the snake in
the box !
12
ALGORITMICA GRAFURILOR
10 - 11
C. Croitoru
saptamana 7
AGENDA
Arbori
( ag 10-11 allinone.pdf pag. 163 - 182 )
Cuplaje
(ag 10-11 allinone.pdf pag. 183 - )

1
Arbori
Arbori part iali de cost minim.
(P1) Date G = (V, E) graf si c : E R (c(e) costul
muchiei e), sa se determine T

T
G
astfel nct
c(T

) = minc(T) [ T T
G
,
unde c(T) =

eE(T)
c(e).
Algoritm generic
Init ial, T
0
= (T
0
1
, T
0
2
, . . . , T
0
n
), T
0
i
= (i, ), i = 1, n (am
presupus, ca de obicei ca, V = 1, 2, . . . , n) .

In pasul general k ( k = 0, n 2), din familia


T
k
= (T
k
1
, T
k
2
, . . . , T
k
nk
) de nk arbori disjunct i astfel nct
V (T
k
i
)
i=1,nk
este partit ie a lui V , se construieste T
k+1
:
- se alege T
k
s
unul din arborii familiei T
k
.
- dintre toate muchiile lui G cu o extremitate n T
k
s
si cealalta n V V (T
k
s
), se alege una de cost minim,
e

= v
s
v
j

unde v
j

V (T
k
j

) j

,= s.
- T
k+1
= (T
k
\T
k
s
, T
k
j

)T, unde T este arborele obt inut


din T
k
s
si T
k
j

la care adaugam muchia e

.
Teorema. Daca G = (V, E) este un graf conex cu V =
1, 2, . . . , n atunci T
n1
1
construit de algoritmul descris
mai sus este arbore part ial de cost minim.
2
Arbori
Algoritmul lui Prim (implementare Dijkstra )
Arborele T
k
s
va ntotdeauna arborele cu cele mai
multe vrfuri dintre arborii familiei curente.
Rezulta deci, ca la ecare pas k > 0, vom avea un arbore
cu k+1 vrfuri, ceilalt i nk1 avnd cte un singur vrf.
Notam T
s
= (V
s
, E
s
) arborele curent.
Consideram vectorii [1..n] cu componente din V si [1..n]
cu componente reale, cu urmatoarea semnicat ie:
j V V
s
,

= c([j]j) = minc(ij) [ i V
s
, ij E)
1. V
s
: s; (s V , oarecare )
E
s
;
for v V \ s do [v] := s; [v] := c(sv);
// daca ij / E atunci c(ij) = ).
2. while V
s
,= V do
determina j

V \ V
s
a..
[j

] = min[j] [ j V V
s
;
V
s
V
s
j

;
E
s
:= E
s
[j

]j

;
for j V V
s
do
if [j] > c[j

j] then
[j] c[j

j];
[j] : j

Complexitatea algoritmului este O(n


2
).
3
Arbori
Algoritmul lui Kruskal

In metoda generala se va alege la ecare pas drept ar-


bore T
k
s
unul din cei doi arbori cu proprietatea ca
snt unit i printr-o muchie de cost minim printre
toate muchiile cu extremitat ile pe arbori diferit i.
Daca notam cu T = E(T
k
), atunci algoritmul poate
descris astfel:
1. Sorteaza E = (e
1
, e
2
, . . . , e
m
) astfel nct:
c(e
1
) c(e
2
) . . . c(e
m
).
1.2 T ; i 1;
2. while i m do
if T e
i
)
G
nu are circuite then
T T e
i
;
i ++

Pasul 1 necesita O(mlogn) operat ii.


Pentru realizarea ecienta a testului din pasul 2 va
necesar sa reprezentam la ecare pas k, V (T
k
1
), V (T
k
2
), . . . ,
V (T
k
n
) si sa testam daca muchia e
i
curenta are ambele
extremitat i n aceeasi mut ime.
Se vor folosi pentru reprezentarea acestor mult imi, ar-
bori (care nu snt n general subarbori ai lui G).
4
Arbori
Union-Find - Tarjan
Fie pred[1..n] un tablou ntreg cu interpretarea :
tt
pred[v]= vrful dinaintea lui v de pe drumul la v de la radacina
arborelui care memoreaza mult imea la care apart ine v;
pred[v] = 0 v este radacina arborelui. pred[v] < 0 v este
radacina a unui arbore si pred[v] este cardinalul mult imii memorate
n el.
Adaugamn pasul 1 init ializarea 1.3 si modicam pasul 2:
1.3 for v V do pred[v] 1;
2. while i m do
e e
i
= vw;
x find(v); y find(w);
if x ,= y then union(x, y); T T e
i

i ++

Procedura union si funct ia nd sunt:


procedure union(v, w : V );
//v si w sunt radacini, variabila locala ntreaga t
t pred[v] +pred[w];
if pred[v] > pred[w] then pred[v] w; pred[w] t
else pred[w] v; pred[v] t
function find(v : V ); //variabile ntregi locale i, j, k;
i v;
while pred[i] > 0 do i pred[i];
j v;
while pred[j] > 0 do
k pred[j]; pred[j] i; j k;
return i
Complexitatea pasului 2 este O(m (m, n)), unde (m, n) este
inversa funct iei lui Ackermann.
5
Cuplaje
Problema cuplajului maxim
Fie G = (V, E) un (multi)graf. Daca A E si v V , vom
nota d
A
(v) gradul vrfului v n graful part ial < A >
G
.
Denit ie. Se numeste cuplaj (sau mult ime indepen-
denta de muchii) al grafului G, orice mult ime M de
muchii cu proprietatea ca d
M
(v) 1, v V .
Vom nota cu /
G
familia cuplajelor grafului G:
/
G
= M [ M E, M cuplaj n G.
Daca M /
G
atunci un vrf v V cu d
M
(v) = 1
se numeste saturat de cuplajul M. S(M): mult imea
vrfurilor saturate de cuplajul M n graful G.
Daca d
M
(v) = 0, atunci v se numeste expus fat a de
cuplajul M. E(M): mult imea vrfurilor expuse fat a
de cuplajul M.
Problema cuplajului maxim:
P1 Dat G = (V, E) un graf, sa se determine M

/
G
astfel nct [M

[ = max[M[ [ M /
G
.
Vom nota (G) = max[M[ [ M /
G
.
6
Cuplaje
Problema cuplajului maxim
Denit ie. Se numeste acoperire (a vrfurilor cu muchii)
n graful G orice mult ime F E de muchii cu propri-
etatea ca d
F
(v) 1 v V .
T
G
= F [ F E, F acoperire n G noteaza familia
acoperirilor grafului G. T
G
,= G nu are vrfuri izolate
(atunci, macar E este o acoperire).
Problema acoperirii minime este:
P2 Dat G = (V, E) un graf, sa se determine F

T
G
astfel nct [F

[ = min[F[ [ F T
G
.
Teorema. 1. (Norman-Rabin 1959) Fie G = (V, E)
un graf fara vrfuri izolate, de ordin n. Daca M

este
un cuplaj de cardinal maxim n G, iar F

o acoperire de
cardinal minim n G, atunci
[M

[ +[F

[ = n.
Dem. P1 echivalenta polinomial cu P2
7
Cuplaje
Grafuri bipartite
Teorema. (Hall, 1935) Fie G = (R, S; E) un
graf bipartit. Exista un cuplaj care satureaza
vrfurile lui R daca si numai daca
[N
G
(A)[ [A[ A R.
Teorema. (Konig,1930) Fie G = (R, S; E)
un graf bipartit. Cardinalul maxim al unui cu-
plaj este egal cu numarul minim de vrfuri prin
ndepartarea carora se obt ine graful nul:
(G) = n (G)
8
Cuplaje
Cuplaje perfecte
Un cuplaj M n graful G astfel ncat S(M) =
V (G) se numeste cuplaj perfect sau 1-factor.
Pentru un graf oarecare H notam cu q(H) numarul
componentelor conexe de ordin impar ale lui H.
Teorema. (Tutte, 1947) Un graf G = (V, E)
are un cuplaj perfect daca si numai daca
(T) q(GS) [S[ S V.
Berge (1958) a generalizat aceasta teorema
stabilind ca
(G) =
1
2
([V (G)[ max
SV (G)
[q(GS)[S[] ).
9
ALGORITMICA GRAFURILOR
10 - 11
C. Croitoru
saptamana 9
AGENDA
Cuplaje (ag 10-11 allinone.pdf pag. 192 - 211)
Problemele pentru seminar.
Prezentarea temei pentru acasa

1
Cuplaje
Cuplaje perfecte
Un cuplaj M n graful G astfel ncat S(M) =
V (G) se numeste cuplaj perfect sau 1-factor.
Pentru un graf oarecare H notam cu q(H) numarul
componentelor conexe de ordin impar ale lui H.
Teorema. (Tutte, 1947) Un graf G = (V, E)
are un cuplaj perfect daca si numai daca
(T) q(GS) |S| S V.
Berge (1958) a generalizat aceasta teorema
stabilind ca
(G) =
1
2
(|V (G)| max
SV (G)
[q(GS)|S|] ).
2
Cuplaje
Problema cuplajului maxim
Fie G = (V, E) un graf si M M
G
un cuplaj al sau.
Denit ie: Se numeste drum alternat al lui G relativ
la cuplajul M orice drum
P : v
0
, v
0
v
1
, v
1
, . . . , v
k1
, v
k1
v
k
, v
k
a. . i = 1, k 1 {v
i1
v
i
, v
i
v
i+1
} M = .
Vom desemna, n cele ce urmeaza, prin P mult imea
muchiilor drumului P.
Denit ie: Se numeste drum de crestere al lui G relativ
la cuplajul M un drum alternat cu extremitat ile vrfuri
distincte, expuse relativ la cuplajul M.
Teorema. (Berge 1959) Un cuplaj M este de cardinal
maxim n graful G daca si numai daca nu exista n G
drumuri de crestere relativ la M.
Aceasta teorema justica urmatoarea strategie de con-
struire a unui cuplaj de cardinal maxim:
a) e M un cuplaj oarecare a lui G (eventual M = );
b) while P drum de crestere relativ la M do
M MP
3
Cuplaje
Problema cuplajului maxim
Hopcroft, Karp (1973)
0. M ;
1. repeat
Determina P o familie maximala ()
de drumuri minime de crestere;
for P P do M MP
until P = .
Complexitatea O(

nA) unde A este complexitatea de-


terminarii familiei P.
Hopcroft si Karp au aratat cum se poate implementa
pasul 1 pentru un graf bipartit, astfel nct A = O(m+n),
deci s-a obt inut un algoritm de complexitate O(mn
1/2
)
pentru aarea unui cuplaj de cardinal maximntr-un graf
bipartit.
Pentru un graf oarecare, structurile de date necesare
obt inerii aceleeasi complexitat i snt mult mai elaborate
si au fost descrise de Micali si Vazirani 1980.
4
Problemele pentru seminarul (9-1=)8
Problema 4, Setul 7
Sortez (descrescator) muchiile grafului; adaug muchiile
una dupa alta intr-un graf init ial nul (cu aceeasi mult ime
de varfuri) pana cand se obt ine ca s si t sunt n aceeasi
componenta conexa. Analizat i ce se ntampla ! Pentru
implementare se va folosi union-nd ! (GS: bottleneck
extrema !!)
Problema 1, Setul 8
Observam ca n ipoteza a) ecare muchie a unui arbore
part ial de cost minim e unica muchie de cost minim dintr-
o taietura (care?). Se foloseste apoi, ntr-o demonstrat ie
prin reducere la absurd, un rat ionament similar celui din
demonstrat ia schemei generale pentru aarea arborelui
part ial de cost minim.
Problema 4, Setul 8
Nu avem drumuri de crestere. La algoritm se foloseste
faptul ca m = n 1.
Problema 4, Setul 9
Se evalueaza q(G S), numarand muchiile dintre S si
componentele conexe impare ale lui G S; se foloseste
faptul ca nu avem punt i si, de asemenea, ca n orice graf
numarul varfurilor de grad impar e par. (GS Petersen)
5
ALGORITMICA GRAFURILOR
10 - 11
C. Croitoru
saptamana 10
AGENDA
Fluxuri (ag 10-11 allinone.pdf pag. 212 - )
Problemele pentru seminariile 9,10
(saptamanile 10, 11)

1
Fluxuri
Problema uxului maxim
Numim ret ea (de transport) cu intrarea s si
iesirea t, 4-uplul R = (G, s, t, c) unde:
- G = (V, E) este un digraf,
- s, t V ; s = t; d
+
G
(s) > 0; d

G
(t) > 0,
- c : E R
+
; c(e) este capacitatea arcului e.
Vom presupune ca V = {1, 2, . . . , n} (n N

) si ca
|E| = m. Extindem funct ia c la c : V V R
+
prin
c((i, j)) =

c(ij) daca ij E
0 daca ij / E
si vom nota c((i, j)) = c
ij
.
Numim ux n ret eaua R = (G, s, t, c) o funct ie x : V
V R, care satisface
(i) 0 x
ij
c
ij
ij V V
(ii)

jV
x
ji

jV
x
ij
= 0 i V {s, t}.
Daca ij E atunci x
ij
se numeste uxul (transportat)pe arcul ij.
Evident, condit ia (i) cere ca uxul pe orice arc sa e nenegativ
si subcapacitar, iar condit ia (ii) (legea de conservare a uxului)
cere ca suma uxurilor pe arcele care intra n vrful i sa e
egala cu suma uxurilor pe arcele care ies din vrful i.
2
Fluxuri
Problema uxului maxim
Denit ie: Daca x este un ux n ret eaua R = (G, s, t, c),
se numeste valoarea uxului x numarul
v(x) =

jV
x
jt

jV
x
tj
.
v(x) se poate interpreta ca ind uxul net care ajunge
n iesirea ret elei si este egal cu uxul net care iese din
intrarea ret elei.
Problema uxului maxim: Data R = (G, s, t, c) o
ret ea, sa se determine un ux de valoare maxima.
Denit ie. Daca P este un drumn G, multigraful suport
al digrafului G, si e = v
i
v
j
este o muchie a lui P atunci:
daca e corespunde arcului v
i
v
j
al lui G, e se numeste arc
direct al drumului P;
daca e corespunde arcului v
j
v
i
al lui G, atunci e se
numeste arc invers.
3
Fluxuri
Problema uxului maxim
Denit ie. Fie R = (G, s, t, c) si x ux n R.
Se numeste C-drum (n R relativ la uxul x) un drum
D n G cu proprietatea ca ij E(D) :
x
ij
< c
ij
daca ij este arc direct,
x
ji
> 0 daca ij este arc invers.
Daca D este un C-drum si ij E(D), se numeste ca-
pacitatea reziduala a lui ij (relativ la C-drumul D)
numarul
r(ij) =

c
ij
x
ij
daca ij arc direct n D
x
ji
daca ij arc invers n D .
Capacitatea reziduala a drumului D este
r(D) = min
eE(D)
r(e).
Denit ie. Se numeste drum de crestere a uxului x,
n ret eaua R = (G, s, t, c), un C-drum de la s la t.
4
Fluxuri
Problema uxului maxim
Lema. 1. Daca D este un drum de crestere a uxului
x n ret eaua R = (G, s, t, c), atunci x
1
= x

r(D) denit
prin
x
1
ij
=

x
ij
daca ij / E(D)
x
ij
+r(D) daca ij E(D), ij arc direct n D
x
ij
r(D) daca ji E(D), ji arc invers n D
este ux n R si v(x
1
) = v(x) +r(D).
Observam ca daca x admite un drum de crestere
atunci x nu este ux de valoare maxima.
Denit ie. Fie R = (G, s, t, c). Se numeste sect iune n
ret eaua R, o partit ie (S, T) a lui V cu s S si t T.
Capacitatea sect iunii (S, T) este
c(S, T) =

iS

jT
c
ij
(suma capacitat ilor arcelor de la S la T).
5
Fluxuri
Problema uxului maxim
Lema. 2. Daca x este un ux n R = (G, s, t, c) si
(S, T) este o sect iune a ret elei, atunci
v(x) =

iS

jT
(x
ij
x
ji
).
(valoarea uxului este egala cu uxul net ce trece prin
orice sect iune.)
Teorema. 1. (Teorema drumului de crestere)
Un ux x este de valoare maxima ntr-o ret ea R, daca
si numai daca, nu exista drumuri de crestere a uxului
x n ret eaua R.
Teorema. 2. (Teorema uxului intreg)
Daca toate capacitat ile snt ntregi, atunci exista un ux
de valoare maxima cu toate componentele ntregi (ux
ntreg de valoare maxima).
Teorema. 3. ( Ford-Fulkerson, 1956)
Valoarea maxima a unui ux n ret eaua R = (G, s, t, c)
este egala cu capacitatea minima a unei sect iuni a ret elei.
6
Fluxuri
Problema uxului maxim
Algoritmul lui Ford si Fulkerson pentru aarea unui
ux de valoare maxima
Se va folosi un procedeu de etichetare a vrfurilor ret elei, n vederea
depistarii drumurilor de crestere a uxului curent x. Daca nu exista
drumuri de crestere, uxul va de valoare maxima.
Eticheta atribuita unui vrf j V are trei componente (e
1
, e
2
, e
3
)
unde e
1
V {0} ; e
2
{direct, invers} ; e
3
R
+
si au urmatoarea
semnicat ie:
- daca e
2
= direct si e
1
= i atunci un C-drum P de la s la j cu
ultimul arc ij, arc direct si r(P) = e
3
;
- daca e
2
= invers si e
1
= i atunci un C-drum P de la s la j cu
ultimul arc ij, arc invers si r(P) = e
3
.
Init ial, se eticheteaza sursa s cu eticheta (0, ., ). Celelalte vrfuri
primesc eticheta prin cercetarea vrfurilor deja etichetate:
Daca i este un vrf etichetat, atunci j V
Daca j neetichetat, ij E si x
ij
< c
ij
atunci
j se etichet. e = (i, direct, min(e
3
[i], c
ij
x
ij
));
Daca j neetichetat, ji E si x
ji
> 0 atunci
j se etichet. e = (i, invers, min(e
3
[i], x
ji
)).
7
Fluxuri
Problema uxului maxim
Algoritmul lui Ford si Fulkerson
1: Se alege x = (x
ij
) ux init ial (de ex. uxul nul);
Se eticheteaza s cu (0, ., )
2: while ( vrfuri etichetate necercetate) do
{ alege un vrf etichetat si necercetat i;
etichetare(i);
if (t a primit eticheta) then
{ modica uxul pe drumul dat de etichete;
sterge toate etichetele;
eticheteaza s cu (0, ., )
}
}
3: S {i|i V, i are eticheta}
T V S
x este ux de valoare maxima
(S, T) este sect iune de capacitate minima.
Algoritmul are complexitatea O(mv), unde v este val-
oarea uxului maxim iar m = |E|.
8
Fluxuri
Problema uxului maxim
Modicarea lui Edmonds si Karp a algorit-
mului lui Ford & Fulkerson
Numim drum minim de crestere a uxului xn ret eaua
R, un drum de crestere de lungime minima printre
toate drumurile de crestere.
Fie x un ux oarecare n ret eaua R. Denim sirul de
uxuri x
k
n R astfel:
x
0
x;
x
k
x
k1

r(P
k1
), P
k
este drum minim de crestere
relativ la x
k1
; k = 1, 2, . . .
Teorema. 4. (Edmonds, Karp) Daca x = x
0
este
un ux oarecare n ret eaua R, atunci sirul de uxuri
x
1
, x
2
, . . . obt inut din x
0
prin cresteri succesive pe dru-
muri minime de crestere, are cel mult
mn
2
elemente (n
cel mult
mn
2
cresteri succesive, se obt ine un ux care nu
admite drumuri de crestere).
Teorema. 5. (Edmonds- Karp 1972)Daca se modica
algoritmul lui Ford si Fulkerson cu precizarea alegerii bfs
a vrfurilor etichetate n vederea cercetarii, atunci, uxul
maxim se obt ine n timpul O(m
2
n) .
9
Problemele pentru seminariile 9 si 10
Grupele care au seminar lunea vor face n seminaul 9 prob-
lemele de mai jos, iar n seminarul 10 problemele din tema 2.
Celelalte grupe, vor face problemele de la tema 2n seminarul
9 si problemele de mai jos n seminarul 10 !!! :)
Problema 2, Setul 10
lema arcelor colorate (Minty). Imaginat iva interpretarea
rutiera : arc rosu = interzisa circulat ia, arc verde = se
poate circula n ambele sensuri, arc galben = se poate
circula doar n direct ia orientarii;
Problema 4, Setul 10
GS: Knuth, Stable Matching, Gale-Shapley. E o problema
frumoasa de lucru cu liste cu preferint e.
Problema 3, Setul 10
O proprietate remarcabila. Atent ie, demonstrat ia nu-i
chiar asa de simpla.
Problema 3, Setul 11
Modelare !!!
10
ALGORITMICA GRAFURILOR
10 - 11
C. Croitoru
saptamana 11
AGENDA
Fluxuri (ag 10-11 allinone.pdf pag. 239 - 256)

1
Fluxuri
Algoritmi de tip preux
Denit ie. Se numeste preux n ret eaua R, o funct ie
x : E R astfel nct
(i) 0 x
ij
c
ij
ij E
(ii) i = s e
i
=

j:jiE
x
ji

j:ijE
x
ij
0.
Numarul e
i
i V {s, t} se numeste excesul din vrful
i. Daca i V {s, t} si e
i
> 0 atunci i se numeste nod
activ. Daca ij E x
ij
va numit uxul pe arcul ij.
Daca n ret eaua R nu exista noduri active, atunci pre-
uxul x este ux de la s la t n R de valoare e
t
.
Ideea algoritmulor de tip preux: se porneste cu un pre-
uxn R si se transforma prin modicari ale uxului pe
arcentr-un ux care nu admite drumuri de crestere.
Reprezentarea digrafului G cu ajutorul listelor de adiacent a.
Totusi, vom considera ca daca ij E atunci si ji E
(altminteri, adaugam arcul ji cu capacitate 0).
2
Fluxuri
Algoritmi de tip preux
Denit ie: Daca x este un preux n R si ij E, atunci
capacitatea reziduala a arcului ij este
r
ij
= c
ij
x
ij
+x
ji
(reprezentnd uxul adit ional ce poate trimis de la
nodul i la nodul j utiliznd arcele ij si ji).
A trimite ux de la i la j nseamna sa crestem uxul
pe arcul ij sau sa micsoram uxul pe arcul ji.
Se numeste C-drumn R relativ la preuxul x, un drum
al lui G ale carui arce au capacitatea reziduala pozitiva.
Denit ie: Se numeste funct ie de distant a n R relativ la
preuxul x, o funct ie d : V Z
+
care satisface
(D1) d(t) = 0
(D2) ij E, r
ij
> 0 d(i) d(j) +1
Daca P este un C-drum relativ la preuxul x n R de
la i la t atunci d(i) lg(P) (arcele unui C-drum au
capacitate reziduala pozitiva si se aplica (D2)).
Rezulta ca d(i)
i
(lungimea minima a unui C-drum
de la i la t).
3
Fluxuri
Algoritmi de tip preux
Fie x un preux n R si d o funct ie de distant a relativ la
x. Un arc ij E se numeste admisibil daca
r
ij
> 0 d(i) = d(j) +1.
Daca R este o ret ea, consideram init ializare urmatoarea
procedura care construieste n O(m) un preux x si o
funct ie de distant a d corespunzatoare acestuia, astfel:
procedure init ializare;
{
for ij E do
if i = s then x
sj
c
sj
else x
ij
0;
d[s] n; d[t] 0;
for i V {s, t} do d[i] 1
}
Alegerea lui d(s) = n are urmatoarea interpretare: nu
exista C-drum de la s la t n R relativ la x (ntruct,
altminteri, ar trebui ca lungimea acestuia sa e n).
Daca, n algoritmii de tip preux vom pastra acest in-
variant, atunci cnd x va deveni ux, va rezulta ca nu
admite drumuri de crestere si deci x va de valoare
maxima.
4
Fluxuri
Algoritmi de tip preux
procedure pompeaza (i);
// i este un varf diferit de s, t
{
alege ij A(i) ij admisibil;
trimite = min(e
i
, r
ij
) unitat i de ux de la i la j
}
Daca = r
ij
avem o pompare saturata, altminteri
pomparea este nesaturata.
procedure reetichetare (i);
// i este un varf diferit de s, t
{
d(i) min{d(j) +1 | ij A(i) r
ij
> 0}
}
Schema generala a unui algoritm de tip preux este:
{
init ializare;
while noduri active n R do
{ selecteaza un nod activ i;
if arce admisibile n A(i)
then pompeaza(i)
else reetichetare(i)
}
}
5
Fluxuri
Algoritmi de tip preux
Lema. Algoritmul de tip preux, de mai sus, are ca
invariant d este funct ie de distant a relativ la pre-
uxul x. La ecare apel al lui reetichetare(i), d(i)
creste strict.
Lema. Daca pe parcursul algoritmului, i
0
este un nod
activ, atunci exista un C-drum de la i
0
la s, n R, relativ
la preuxul curent x.
Corolar. 1. i V d(i) < 2n.
Corolar. 2. Numarul total de apeluri ale procedurii
reetichetare este mai mic dect 2n
2
.
Corolar. 3. Nr. total de pompari saturate este nm.
Lema. (Goldberg si Tarjan 1986) Numarul pomparilor
nesaturate este cel mult 2n
2
m.
Lema. La terminarea algoritmului x este ux de val-
oare maxima.
6
Fluxuri
Algoritmi de tip preux
Algoritmul lui Ahuja si Orlin (1988) cu o metoda de
scalare, va margini numarul pomparilor nesaturate de
la O(n
2
m) la O(n
2
logU).
Vom presupune ca toate capacitat ile snt ntregi si ca
max
ijE
(1 +c
ij
) = U. Notam log
2
U = K.
Ideia algoritmului:
Se vor executa K+1 etape. Pentru ecare etapa p, cu p
lund succesiv valorile K, K 1, . . . , 1, 0 vor ndeplinite
urmatoarele condit ii:
(a) - la nceputul etapei p, i satisface e
i
2
p
(b) -n timpul etapei p se utilizeaza procedurile pompare-
etichetare n vederea eliminarii nodurilor active cu e
i

(2
p1
, 2
p
].
Din alegerea lui K, n etapa init iala (p = K) condit ia
(a) este satisfacuta si deci, daca (b) va invariant al
algoritmului, dupa K+1 etape, excesele nodurilor vor

1
2
.
Daca, toate transformarile datelor vor pastra integri-
tatea exceselor, va rezulta ca excesul oricarui nod este
0, si, deci, dispunem de un ux de valoare maxima (da-
torita proprietat ilor funct iei distant a d(i)).
7
Fluxuri
Algoritmi de tip preux
Algoritmul Ahuja-Orlin
init ializare;
K log
2
(U) ; 2
K+1
;
for p = K, K 1, . . . , 0 do
{ construieste L(p);

2
while L(p) = do
{ e i primul element din L(p);
parcurge lista A(i) din locul curent pna
se determina un arc admisibil sau se
depisteaza sfrsitul ei;
if ij este arcul admisibil gasit then
{ min(e
i
, r
ij
, e
j
);
e
i
e
i
; e
j
e
j
+;
trimite unitat i de ux de la i la j;
if e
i


2
then sterge i din L(p);
if e
j
>

2
then adauga j ca prim nod n L(p)
}
else // s-a depistat sfrsitul listei
{ sterge i din L(p);
parcurge toata lista A(i) pentru calculul lui
d(i) = min{d(j) +1; ij A(i) r
ij
> 0};
introdu i n L(p) la locul sau (hash);
pune pointerul curent al listei A(i) la nceput
}
}
}
8
Fluxuri
Algoritmi de tip preux
Lema. Numarul pomparilor nesaturate este cel mult
8n
2
n ecare etapa a scalarii, deci O(n
2
logU) n total.
Teorema. (Ahuja-Orlin 1988) Algoritmul de tip pre-
ux cu scalarea exceselor are complexitatea O(nm +
n
2
logU).
9
ALGORITMICA GRAFURILOR
10 - 11
C. Croitoru
saptamana 12
AGENDA
Fluxuri
(ag08-09allinone.pdf pag. 257 - 280)
Problemele pentru seminarul 11(=12-1)

1
Fluxuri
Aplicat ii combinatorii
Determinarea cuplajului maxim si a stabilei
maxime ntr-un graf bipartit.
V
s
t
1
1
1
1
1
1
1
1
1
1
++
++
++
++
++
1
V
2
Daca x = (x
ij
) este un ux cu componente ntregi n R
atunci se observa ca mult imea de arce {ij | i V
1
, j
V
2
x
ij
= 1} induce n graful G bipartit un cuplaj
M(x).

In plus, v(x) este cardinalul cuplajului M(x).
Reciproc, orice cuplaj din G induce o mult ime de arce
neadiacente n G
1
; daca pe ecare astfel de arc ij (i
V
1
, j V
2
) se considera uxul x
ij
egal cu 1 si de asemenea
x
si
= x
jt
= 1, si lund uxul x = 0 pe orice alt arc, atunci
uxul construit are valoarea |M|.
Rezulta ca rezolvnd problema uxului maxim pe ret eaua
R se determina (pornind de la uxul nul) n O(nm +
n
2
logn) un cuplaj de cardinal maxim n graful bipartit
G.
2
Fluxuri
Aplicat ii combinatorii
Determinarea cuplajului maxim si a stabilei
maxime ntr-un graf bipartit.
Fie (S, T) sect iunea de capacitate minima ce se poate
construi, din uxul maxim obt inut, n O(m) operat ii.
Vom avea, c(S, T) = (G), din teorema uxului maxim-
sect iunii minime.
V
s
t
1
1
1
1
1
1
1
1
1
1
++
++
++
++
++
1
V
2
S
T
Cum (G) < , rezulta ca punnd S
i
= SV
i
si T
i
= TV
i
(i = 1, 2), avem: |T
1
| +|S
2
| = (G), iar X = S
1
T
2
este
mult ime stabila n graful G (pentru a avea c(S, T) <
).

In plus, |X| = |V
1
T
1
| +|V
2
S
2
| = n (G).
Rezulta ca X este stabila de cardinal maxim, ntruct
n (G) = (G) (teorema lui K onig).
3
Fluxuri
Aplicat ii combinatorii
Recunoasterea secvent elor digrace.
Date (d
+
i
)
i=1,n
si (d

i
)
i=1,n
, exista un digraf G cu n
vrfuri astfel nct G = ({1, . . . , n}, E) si d
+
G
(i) = d
+
i
si
d

G
(i) = d

i
i = 1, n ?
Evident, va trebui ca 0 d
+
i
n 1 si 0 d

i
n 1
i = 1, n si

i=1,n
d
+
i
=

i=1,n
d

i
= m (unde, m = |E|,
iar d
+
i
, d

i
Z).

In aceste ipoteze, construim ret eaua
bipartita
s
t
1
2
n
1
1
1
2
1
1
n
+
d1
+
+

d2
dn
d1
-
d2
-
dn
-
Raspunsul este da daca si numai daca n aceasta ret ea,
exista un ux ntreg de valoare maxima m.
4
Fluxuri Aplicat ii combinatorii
Determinarea numarului de muchie-conexiune
al unui graf.
Fie G = (V, E) un graf. Pentru s, t V, s = t, denim:
-p
e
(s, t) = numarul maxim de drumuri cu muchii dis-
juncte ce unesc s si t n G.
-c
e
(s, t) = cardinalul minim al unei mult imi de muchii,
prin ndepartarea careia din graf, ntre s si t nu mai ex-
ista drumuri.
Construim din G digraful G
1
, nlocuind ecare muchie a
lui G cu o pereche de arce simetrice. Consideram
c : E(G
1
) Z
+
prin c(e) = 1, e E(G
1
).
Fie x
0
un uxntreg de valoare maximan R = (G
1
, s, t, c).
s
t
s
t
Fluxul pe arcele groase
este 1, pe cele subtiri 0.
Rezulta ca v(x
0
) =
p
e
(s, t). Fie (S, T) o sect iune de capacitate minima;
Rezulta ca avem c(S, T) = v(x
0
) = c
e
(s, t).
Corolar. Daca G este un graf conex
(G) = min
s,tV (G)
s=t
c
e
(s, t). ()
5
Fluxuri
Aplicat ii combinatorii
Determinarea numarului de muchie-conexiune
al unui graf.
Pentru a aa (G) ar trebui sa rezolvam cele
n(n1)
2
probleme de ux din ().
Daca xam un vrf s
0
si rezolvam n1 probleme
de ux cu t V s
0
se va obt inen mod necesar
o pereche s
0
, t
0
pentru care c(s
0
, t
0
) = (G).
Rezulta ca n O(n (nm + n
2
c)) = O(n
2
m) se
pot determina (G) si o mult ime separa-
toare de muchii de cardinal minimn G.
6
Fluxuri Aplicat ii combinatorii
Determinarea numarului de conexiune al
unui graf.
Daca G = (V, E) este un graf si s, t V, s = t, st / E
atunci, notnd
-p(s, t) = numarul maxim de stdrumuri cu mult imile
de vrfuri disjuncte (cu except ia extremitat ilor),
-c(s, t) = cardinalul minim al unei mult imi de vrfuri st
separatoare,
avem, din teorema lui Menger,
p(s, t) = c(s, t) ()
Numarul de conexiune k(G) al grafului G este
k(G) =

n 1 daca G = K
n
min
s,tV
st / E
c(s, t) daca G = K
n
()
Fie G
1
= (V (G
1
), E(G
1
)) digraful construit din G astfel:
-v V consideram a
v
, b
v
V (G
1
) si a
v
b
v
E(G
1
);
- vw E consideram b
v
a
w
, b
w
a
v
E(G
1
).
Denim c : E(G
1
) Z
+
prin
c(e) =

1 daca e = a
v
b
v
altfel.
7
Fluxuri Aplicat ii combinatorii
Determinarea numarului de conexiune al
unui graf.
Consideram ret eaua R = (G
1
, b
s
, a
t
, c). Exemplu:
1 t
s 2
a
b
b
a
a
b
a
b
s
s
t
t
1
1
2
2
Arcele groase au capacitate
infinit, cele subtiri 1.
S
Fie x
0
un uxntreg de la b
s
la a
t
n R de valoare maxima.
Rezulta ca avem v(x
0
) = p(s, t).
Fie (S, T) o sect iune n R astfel nct v(x
0
) = c(S, T).
Rezulta cac(s, t) = |A
0
| = c(S, T) = v(x
0
) = p(s, t), unde
A
0
este o mult ime de vrfuri st separatoare de cardinal
minim.
Pentru a determina k(G) va sucient sa determinam
minimul din (**) prin rezolvarea a |E(G)| probleme de
ux, unde G este graful complementar al lui G.
Se poate construi un algoritm de complexitate
O(m(nm+n
2
logn)).
8
Fluxuri
Flux de cost minim
Fie R = (G, s, t, c) o ret ea si x un ux de la s la t n R.
Consideram a : E R o funct ie de cost care asociaza
ecarui arc ij E a(ij) = a
ij
costul (transportului unei
unitat i de ux) pe arcul ij. Costul uxului x se de-
neste ca ind
a(x) =

i,j
a
ij
x
ij
.
Problema uxului de cost minim
Data R o ret ea, v R
+
si a : E R funct ie de cost, sa
se determine x
0
ux n R astfel nct
a(x
0
) = min{a(x) | x ux n R, v(x) = v}.
Problema simpla a atribuirii Se dispune de n lucratori
si n lucrari. Costul atribuirii lucratorului i la lucrarea j
este a
ij
(i, j {1, . . . , n}). Sa se atribuie ecare dintre
cele n lucrari la cte un lucrator, astfel nct costul
total al atribuirii sa e minim.
9
Fluxuri
Flux de cost minim Problema atribuirii
1
2
i
n
1
2
j
n
s
t
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,a
1,a
1,a
11
n1
ij
Evident, un ux ntreg de valoare n si de cost minim,
reprezinta solut ia problemei atribuirii.
Problema simpla a transporturilor Hitchcock-Koopmans
O marfa disponibilan depozitele D
1
, . . . , D
n
n cantitat ile
d
1
, . . . , d
n
este solicitatan centrele de consum C
1
, C
2
, . . . ,
C
m
n cantitat ile c
1
, c
2
, . . . , c
m
.
Se cunoaste costul a
ij
al transportului unei unitat i de
marfa de la depozitul D
i
la centrul de consum C
j
(i
{1, . . . , n} j {1, . . . , m}).
Se cere sa se stabileasca un plan de transport care
sa satisfaca toate cererile si sa aiba costul total
minim
10
Fluxuri
Flux de cost minim Problema transporturilor
Daca

i=1,n
d
i

j=1,m
c
j
, un ux de cost minim si
de valoare v =

i=1,m
c
i
n ret eaua urmatoare, rezolva
problema.
D1
D2
Di
Dn
C1
C2
Cj
Cm
s
t
o ,a
o ,a
o ,a
11
n1
ij
c , 0
c , 0
c , 0
c , 0
1
m
2
j
d , 0
d , 0
d , 0
d , 0
1
2
i
n
o
o
o
Denit ie. Fie x un ux n R = (G, s, t, c) si a : E R o
funct ie de cost. Daca P este un C-drum n R relativ la
uxul x, atunci costul drumului P se deneste
a(P) =

ijP
ij direct
a
ij

ijP
ij invers
a
ji
.
Daca C este un C-drumnchis, a(C) se calculeaza dupa
aceeasi formula, dupa stabilirea unui sens de parcurgere
a lui C (este posibil ca ambele sensuri de parcurgere ale
lui C sa satisfaca denit ia unui C-drum).
11
Fluxuri
Flux de cost minim
Daca P este drum de crestere relativ la uxul x, atunci
x
1
= x

r(P) este un ux de valoare v(x


1
) = v(x)+r(P)
si de cost a(x) +r(P) a(P).
Daca C este un C-drum nchis relativ la x, atunci x
1
=
x

r(C) este un ux de valoare v(x


1
) = v(x) si de cost
a(x
1
) = a(x) +r(C) a(C).
Daca a(C) < 0 atunci x
1
este un ux de aceeasi
valoare ca si x, dar de cost strict mai mic.
Teorema. Un ux de valoare v este de cost minim
daca si numai daca nu admite C-drumuri nchise de cost
negativ.
Teorema. Daca x este un ux de valoare v si de cost
minim iar P
0
este un drum de crestere, astfel nct
a(P
0
) = min{a(P) | Pdrum de crestere relativ la x},
atunci x
1
= x

r(P
0
) este un ux de valoare v(x
1
) =
v +r(P
0
) si de cost minim.
12
Fluxuri
Flux de cost minim
Algoritm generic de rezolvare a problemei uxului
de cost minim
{
0: Se considera x = (x
ij
) un ux cu valoarea v

v;
{x poate uxul nul sau un ux y determinat
cu ajutorul algoritmului de ux maxim si apoi
considernd x = (
v
v(y)
y)}
1: while ( circuite de pondere < 0 relativ la a
ij
) do
{ determina un astfel de circuit;
modica uxul pe acest circuit
}
2: while v(x) < v do
{ aplica un algoritm de drum minimn raport cu
ponderile a
ij
pentru depistarea unui
C-drum P de cost minim;
x x

min(r(P), v v(x))
}
}
Complexitatea pentru pasul 2 este O(n
3
v), daca se pleaca
de la uxul nul. Se poate dovedi ca pasul 1 se poate im-
plementa astfel ca numarul iterat iilor sa e O(nm
2
logn).
13
Problemele pentru seminarul 11
Sa se determine cu ajutorul algoritmului
lui Ford & Fulkerson un ux de valoare
maxima n ret eua (pe ecare arc este tre-
cuta capacitatea si apoi uxul (init ial)):
s
a
d
b
c t
27
17
15
21 30
20
20,2
,18
,15
,17
,17
,15 ,3
Exercit iu de rutina. Dupa rezolvare va putet i gandi la
implementare !
Problema 1, Setul 11
Problema cont ine toate indicat iile necesare rezolvarii. Modul
de reducere la probleme obisnuite de ux maxim este in-
teresant si poate folosit n aplicat ii.
14
Sa se determine cu ajutorul algoritmilor de
tip preux un ux de valoare maxima n
ret eua (pe ecare arc este trecuta capaci-
tatea ):
t b s
a c d
(21) (2)
(27)
(17)
(15)
(7)
(3)
(20)
15
ALGORITMICA GRAFURILOR
10 - 11
C. Croitoru
saptamana 13
AGENDA
Reduceri polinomiale pentru
probleme de decizie pe grafuri
(ag 10-11 allinone.pdf pag. 281 - 324)
Problemele pentru seminarul 12
Prezentarea temei pentru acasa
1
Reduceri polinomiale
Stabila maxima.
SM
Instant a : G = (V, E) graf si k N.
Intrebare: Exista S mult ime stabila n G a. . |S| k ?
Teorema. (Karp 1972) 3SAT SM.
Exemplu: U = {u
1
, u
2
, u
3
, u
4
};
C = (u
1
u
3
u
4
) (u
1
u
2
u
4
) (u
2
u
3
u
4
);
k = 4 +3 = 7.
1
u u u
u u u u
u
1
2 2
3 3
4 4
-
- - -
a
a
a
a a
a
a
a
a
11
12
13
21
22
31
32
33
23
2
Reduceri polinomiale
Colorarea varfurilor.
COL
Instant a: G = (V, E) graf si p N

.
Intrebare: Exista o p-colorare a varfurilor lui G?
Lema. Fie H graful:
v
v
v
v
1
2
3
4
a) Daca c este o 3-colorare a lui H astfel nct c(v
1
) =
c(v
2
) = c(v
3
) = a {1, 2, 3} atunci c(v
4
) = a.
b) Fie c : {v
1
, v
2
, v
3
} {1, 2, 3} a.. c({v
1
, v
2
, v
3
}) = {a}.
Atunci c poate extinsa la o 3-colorare a lui H cu
c(v
4
) = a.
Vom desemna (pentru simplitate) graful H astfel:
v
v
v
v
1
2
3
4
h
3
Reduceri polinomiale
Colorarea varfurilor.
Teorema. 3SAT COL.
Exemplu: U = {u
1
, u
2
, u
3
, u
4
} ,
C = (u
1
u
2
u
3
) (u
1
u
3
u
4
) (u
2
u
3
u
4
)
Graful G va (p = 3):
u
u
u
u
u u u
1 1
2
2 3 4 4
u
- -
-
-
h h
h
1 2
3
3
a
a
a
1
2
3
a
b
4
Reduceri polinomiale
Probleme hamiltoniene.
Denit ie: Fie G = (V (G), E(G)) un (di)graf. Un cir-
cuit C al lui G se numeste circuit hamiltonian daca
V (C) = V (G).
Un drum deschis D al lui G se numeste drum hamilto-
nian daca V (D) = V (G).
Un (di)graf care are un circuit hamiltonian se numeste
(di)graf hamiltonian.
Un (di)graf care are un drum hamiltonian se numeste
(di)graf trasabil.
Teorema. (Nash-Williams 1969) Problemele urmatoare
snt polinomial echivalente:
CH : Dat G graf. Este G hamiltonian ?
TR : Dat G graf. Este G trasabil ?
DCH: Dat G digraf. Este G hamiltonian ?
DTR: Dat G digraf. Este G trasabil ?
BCH: Dat G graf bipartit. Este G hamiltonian ?
5
Reduceri polinomiale
Probleme hamiltoniene.
CH TR
v
N (v )
G
G
v
N (v )
G
o
o
o
o
x
y
z
H
TR CH
G
G+K
1
DCH CH
x
v
w
a
b
D
b
b
b
b
b
a
a
a
a
a
x
x
v
v w
w
a
a
b
b
G
6
Reduceri polinomiale
Probleme hamiltoniene.
Teorema. (Karp 1972) SM CH.
Pentru orice muchie a grafului G (intraren SM) asociem
graful
e
(v,e,1) (v,e,6) (v,e,2) (v,e,3) (v,e,4) (v,e,5)
(u,e,1)
(u,e,6) (u,e,5) (u,e,4) (u,e,3) (u,e,2)
v
u
Singurele posibilitat i de traversare de catre un circuit
hamiltonian al lui H a vrfurilor din G

e
snt (a) (b) si (c)
indicate n gura urmatoare (orice alta parcurgere lasa
un vrf netraversat):
a
b
c
7
Reduceri polinomiale
Probleme hamiltoniene.
e
e
e
u
v
v
v
1
2
p
1
2
p
(u,e ,1)
(u,e ,6)
(u,e ,1) (u,e ,6) (u,e ,1)
(u,e ,6)
1
2
p u
u
u u
u
u
a a
1 k
p
1
2
Exemplu:
a
a
1
2
1
2
3
4
1
1
2
2
2
2
4 4
3
3
4
4
8
Problema comisului voiajor
Algoritmi de aproximare.
CV Dat n Z
+
(n 3) si d : E(K
n
) R
+
, sa se
determine H
0
circuit hamiltonian n graful complet K
n
cu d(H
0
) minim printre toate circuitele hamiltoniene ale
lui K
n
.
Algoritmi A, care pentru datele unei probleme CV vor
oferi n timp polinomial (n raport cu n) un circuit hamil-
tonian H
A
, care va aproxima solut ia optima H
0
.
Masuri ale ecient ei unei astfel de euristici A pot
considerate numerele:
R
A
(n) = sup
d:E(K
n
)R
+
d(H
0
)=0
d(H
A
)
d(H
0
)
R
A
= sup
n3
R
A
(n).
Teorema. Daca exista un algoritm aproximativ A cu
timp de lucru polinomial pentru CV, astfel nct R
A
< ,
atunci CH se poate rezolva n timp polinomial.
Daca P =NP, atunci nu exista un algoritm aproximativ
A polinomial si cu R
A
< .
9
Problemele pentru seminarul 12
Problema 4, Setul 11
Fie G o instant a a lui 3COL. Se poate presupune (G) >
1. Fiecare varf v de grad mai mic decat (G) se face
de grad (G) prin adaugarea unui numar corespunzator
de varfuri noi de grad 1, ecare unit printr-o muchie cu
v. Graful H obt inut este instant a lui 3GCOL si are pro-
prietatea ca varfurile din G au acelasi grad si-s primele n
orice D-ordonare.
Problema 2, Setul 11
Cazurile particulare cerute sunt cele ale arborelui part ial
de cost minim si ale unui drum minim. Pentru b) se
demonstreaza dubla inegalitate. Pentru c) se pot neglija
nodurile pendante care nu-s din A (costuri pozitive !) si
de asemenea se elimina varfurile de grad 2 observand ca c
satisface inegalitatea triunghiulara. Se evalueaza n doua
moduri suma gradelor.
Problema 1, Setul 7
Problema este mult mai serioasa decat pare la prima
vedere.
10
ALGORITMICA GRAFURILOR
10 - 11
C. Croitoru
saptamana 14
AGENDA
Abordari ale unor probleme NP-dicile
pe grafuri (ag 10-11 allinone.pdf 326 - 332, 343-353)
Grafuri planare (ag 10-11 allinone.pdf 354 )
Problemele pentru seminariile 13,14
(saptamanile 14, 15)

1
Abordari ale problemelor NP-dicile
Colorarea varfurilor unui graf
Algoritmul greedy de colorare
Fie G = (V, E), cu V = {1, 2, . . . , n} si o permutare a
lui V (ce corespunde unei ordonari a mult imii varfurilor).
Algoritmul construieste colorarea c ce utilizeaza (G, )
culori, c : {1, 2, . . . , n} {1, 2, . . . , (G, )}.
- c(
1
) 1; (G, ) 1; S
1
{
1
};
- for i 2 to n do
- { j 0;
- repeat
- j j +1;
- determina primul varf (conform ordonarii
- ), v din S
j
a. .
i
v E(G);
- if v exista then
- first(
i
, j) v
- else
- { first(
i
, j) 0;
- c(
i
) j;
- S
j
S
j
{
i
};
- }
- until first(
i
, j) = 0 or j = (G, );
- if first(
i
, j) = 0 then
- { c(
i
) j +1;
- S
j+1
{
i
};
- (G, ) j +1;
- }
- }
2
Abordari ale problemelor NP-dicile
Colorarea varfurilor unui graf.
Algoritmul Dsatur { Degree of Saturation}
Acest algoritm ( Brelaz, 1979 ) este o metoda secvent iala
dinamica de colorare.
Ideea este de colora varfurile pe rand, alegand de ecare data varful
cu un numar maxim de constrangeri privitoare la culorile disponi-
bile acestuia.Aceasta abordare este ntr-un fel opusa primeia (cea
geedy) deoarece se aleg varfuri care formeaza clici mari n raport
cu varfurile deja alese (spre deosebire de mult imi stabile mari n
cazul greedy).
Daca G este un graf si c o colorare part iala a varfurilor
lui G, denim gradul de saturat ie al unui varf v, notat
d
sat
(v), ca ind numarul de culori diferite din vecinatatea
acestuia.
- ordoneaza varfurile n ordinea descrescatoare a gradelor lor;
- atribuie unui varf de grad maxim culoarea 1;
- while exista varfuri necolorate do
- { alege un vf. necol. cu gr. de satur. maxim; daca acesta
- nu-i unic, alege un vf. de grad maximn subgr.necolorat;
- coloreaza varful ales cu cea mai mica culoare posibila;
- }
Algoritmul DSatur garanteaza gasirea numarului cro-
matic pentru grafurile bipartite.
3
Abordari ale problemelor NP-dicile
Problema comisului voiajor
O alta euristica populara pentru problemele n care funct ia de
distant a satisface inegalitatea triunghiulara, este data de Christodes.
Spre deosebire de cazul general cand am demonstrat ca nu se poate
spera la o euristica polinomiala A cu R
A
nita, daca P = NP, n
acest caz se poate demonstra urmatoarea
Teorema. ( Christodes,1973) Fie CV cu d satisfacnd
v, w, u V (K
n
) distincte d(vw) d(vu) +d(uw).
Exista un algoritm aproximativ A pentru CV care satisface R
A
=
3
2
si are timp de lucru polinomial.
1
0
. Se determina T
0
mult imea muchiilor unui arbore part ial de
cost minimn K
n
(costul muchiei e ind d(e) ). Problema se
rezolva n timp polinomial cu algoritmul lui Prim.
2
0
. Se determina M
0
un cuplaj perfect n subgraful indus de
vrfurile de grad impar ale arborelui T
0
si de cost minim.
Problema se rezolva n timpul O(n
3
) utiliznd algoritmul lui
Edmonds.
3
0
. Se considera multigraful obt inut din < T
0
M
0
>
K
n
, prin
duplicarea muchiilor din T
0
M
0
.

In acest multigraf exista un
parcurs Eulerian nchis, ale carui vrfuri snt (v
i
1
, v
i
2
, . . . , v
i
1
).
Eliminnd orice aparit ie multipla a unui vrf n acest sir cu
except ia primului si ultimului vrf, se obt in vrfurile unui circuit
hamiltonian H
A
n K
n
cu muchiile H
A
= (v
j
1
v
j
2
, v
j
2
v
j
3
, . . . , v
j
n
v
j
1
)
(Acest pas necesita O(n
2
) operat ii).
4
Abordari ale problemelor NP-dicile
Metode care imita natura
Metaeuristica simulated annealing.
Inspirata din termodinamica , inventata independent de Kirkpatrick,
Gelatt si Vechi n 1983 si de

Cerny n 1985.
Probabilitatea de crestere a energiei scade odata cu temperatura:
Pr(E +dE) = Pr(E) e

dE
kT
Calirea simulata este o metoda computat ionala care imita modul
natural de determinare a unei congurat ii care minimizeaza energia
unui sistem.
Atunci cnd se doreste minimizarea unei funct ii f : D R, vom
interpreta domeniul de denit ie al funct iei, D, ca ind mult imea
congurat iilor posibile ale sistemului, iar funct ia f ca ind energia
acestuia.
O variabila ctiva T, asociata procesului de cautare, va juca rolul
temperaturii iar constanta lui Bolzmann va considerata 1.
5
Algoritm de calire simulata
1. Se considera un plan de calire:
- temperatura init iala T
start
- congurat ia init iala x
start
D
- temperatura nala T
min
- o funct ie de reducere lenta a temperaturii
decrease (T)
- nr. maxim de ncercari de mbunatat ire a solut iei
la ecare prag de temperatura attempts
- nr. maxim de schimbari ale solut iei
la ecare prag de temperatura changes.
2. T T
start
; x
old
x
start
while T > T
min
do
{ na 0; nc 0
while na < attempts and nc < changes do
{ genereaza o solut ie noua x
new
; na ++;
E f(x
old
) f(x
new
);
If E < 0 then { x
old
x
new
; nc ++}
else
{ genereaza q (0, 1) un nr. aleator
if q < e

E
T
then { x
old
x
new
; nc ++}
}
}
decrease(T)
}
3. return x
old
Pentru aplicarea calirii simulate pentru rezolvarea problemei comisu-
lui voiajor, se porneste cu un tur ales aleator, iar trecerea de la o
solut ie curenta la o solut ie vecina n spat iul solut iilor se realizeaza
de obicei cu ajutorul unei 2-move.
Se poate lua T
start
= O(

n), attempts = 100n, changes =


10n, decrease(T) = 0.95T si T
min
= O(1).
6
Grafuri planare
Proprietat i de baza.
Denit ie. Fie G = (V, E) un graf si S o suprafat a n
R
3
. Spunem ca G este reprezentabil pe S daca exista
G

= (V

, E

) un graf astfel nct:


a) G

= G

.
b) V

e o mult ime de puncte distincte din S.


c) Orice muchie e

este o curba simpla cont inuta


n S care uneste cele doua extremitat i.
d) Orice punct al lui S este sau vrf al lui G

, sau prin el
trece cel mult o muchie a lui G

.
G

se numeste reprezentare a lui Gn S.


Daca S este un plan atunci G se numeste planar iar G

o reprezentare planara a lui G.


Daca S este un plan si G

este un graf care satisface b)


c) si d) de mai sus atunci G

se numeste graf plan.


7
Grafuri planare Proprietat i de baza.
Lema. Un graf este planar daca si numai daca este
reprezentabil pe o sfera.
proiect ia stereograca !
Denit ie. Fie G un graf plan. Dacandepartam punctele
lui G (vrfurile si muchiile sale) din plan se obt ine o
reuniune de regiuni conexe (orice doua puncte se pot uni
printr-o curba simpla cont inuta n regiune) ale planului,
care se numesc fet ele lui G.
Evident, orice graf plan are un numar nit de fet e, din-
tre care una singura este nemarginita si se numeste fat a
exterioara a lui G.
1
5
2
3 4
6
8
7
6
8 7
1
5
2
4
3
1
6
2
3 7
5
4 8
f1
f2
f3
f4
f5 f1
f2
f3
f4
f5
f1
f2
f3
f4
f5
8
Grafuri planare Proprietat i de baza.
Lema. Orice reprezentare planara a unui graf poate
transformata ntr-o reprezentare diferita astfel nct o
fat a specicata a sa sa devina fat a exterioara.
Teorema. (Formula lui Euler) Fie G = (V, E) un graf
plan conex cu n vrfuri, m muchii si f fet e. Atunci
f =mn +2
Din punct de vedere algoritmic, teorema are drept consecint a ime-
diata faptul ca orice graf planar este rar, numarul muchiilor este
de ordinul numarului de vrfuri. Va rezulta ca orice traversare n
ordinul O(|V | +|E|) a lui G este de fapt n O(|V |) operat ii.
Corolar. 1. Fie G un graf planar, conex, cu n( 3)
vrfuri si m > 2 muchii. Atunci
m 3n 6.
Graful K
5
nu este planar !
9
Grafuri planare Proprietat i de baza.
Corolar. 2. Daca G este un graf bipartit, conex si
planar cu m > 2 muchii si n vrfuri, atunci m 2n 4.
Graful K
33
nu este planar.
Corolar. 3. Daca G este un graf planar conex, atunci
G are un vrf de grad cel mult 5.
Fie G = (V, E) un graf si v V (G) astfel nct d
G
(v) = 2
si vw
1
, vw
2
E, w
1
= w
2
.
Consideram h(G) = (V \ {v}, E \ {vw
1
, vw
2
} {w
1
w
2
}).
Se observa ca G este planar daca si numai daca h(G)
este planar.
Vom nota cu h

(G) graful obt inut din G aplicndu-i repetat


transformarea h, pna cnd graful curent nu mai are
vrfuri de grad 2. Din observat ia anterioara rezulta ca
G este planar, daca si numai daca h

(G) este planar.


Denit ie. Doua grafuri G
1
si G
2
se numesc homeomorfe
daca si numai daca h

(G
1
)

= h

(G
2
).
Teorema. (Kuratowski 1930) Un graf este planar daca
si numai daca nu are subgrafuri homeomorfe cu K
5
sau
K
33
.
10
Problemele pentru seminariile 13 si 14
Grupele care au seminar lunea vor face n seminaul 13 prob-
lemele de mai jos, iar n seminarul 14 problemele din tema 3.
Celelalte grupe, vor face problemele de la tema 3n seminarul
13 si problemele de mai jos n seminarul 14 !!! :)
Problema 4, Setul 15
Problema 1, Setul 11
Problema 3, Setul 12
Problema 2, Setul 14
11
ALGORITMICA GRAFURILOR
10 - 11
C. Croitoru
saptamana 15 ultima
AGENDA
Grafuri planare (ag 10-11 allinone.pdf 365 394 )
Despre examen !!!!

1
Grafuri planare Proprietat i de baza.
Corolar. 2. Daca G este un graf bipartit, conex si
planar cu m > 2 muchii si n vrfuri, atunci m 2n 4.
Graful K
33
nu este planar.
Corolar. 3. Daca G este un graf planar conex, atunci
G are un vrf de grad cel mult 5.
Fie G = (V, E) un graf si v V (G) astfel nct d
G
(v) = 2
si vw
1
, vw
2
E, w
1
= w
2
.
Consideram h(G) = (V \ {v}, E \ {vw
1
, vw
2
} {w
1
w
2
}).
Se observa ca G este planar daca si numai daca h(G)
este planar.
Vom nota cu h

(G) graful obt inut din G aplicndu-i repetat


transformarea h, pna cnd graful curent nu mai are
vrfuri de grad 2. Din observat ia anterioara rezulta ca
G este planar, daca si numai daca h

(G) este planar.


Denit ie. Doua grafuri G
1
si G
2
se numesc homeomorfe
daca si numai daca h

(G
1
)

= h

(G
2
).
Teorema. (Kuratowski 1930) Un graf este planar daca
si numai daca nu are subgrafuri homeomorfe cu K
5
sau
K
33
.
2
Grafuri planare Desenarea unui graf planar.
Fary 1948 ( independent Wagner si Stein):
Orice graf planar are o reprezentare planara cu toate
muchiile segmente de dreapta (reprezentarea Fary).
Existent a unei reprezentari Fary cu vrfuri n puncte de
coordonate ntregi si, n acelasi timp, aria suprafet ei
ocupate de reprezentare sa e polinomiala n raport cu
numarul n de vrfuri ale grafului !
Teorema. (Fraysseix, Pach, Pollack (1988))
Orice graf planar cu n vrfuri are o reprezentare planara
cu vrfuri de coordonate ntregi n [0, 2n 4] [0, n 2]
si cu muchii segmente de dreapta.
Demonstrat ia evident iaza un algoritm de complexitate
O(nlogn) pentru obt inerea acestei reprezentari.
Vom demonstra teorema 4n ipoteza suplimentara ca G este maxi-
mal planar : orice muchie i s-ar adauga se obt ine un graf neplanar
(sau multigraf).
Sa observam ca orice fat a a unui graf maximal planar este un C
3
(altminteri n reprezentarea lui G cu fat a exterioara marginita de
un C
n
cu n 4 se pot introduce muchii fara a pierde planaritatea
grafului).
Ipoteza nu este restrictiva: de la o reprezentare a lui G ca o harta
planara (ce se obt ine aplicnd de exemplu algoritmul de testare a
planaritat ii) se trece la o harta cu toate fet ele triunghiului prin
insert ia n timp liniar de corzi n circuite. La desenarea grafului
obt inut, muchiile ctive introduse nu se vor trasa.
3
Grafuri planare
Grafuri plane - versiunea combinatoriala.

In versiunea combinatoriala un graf este un triplet


G = (E, ,

), unde
E este o mult ime de cardinal par,

este o involut ie pe
E (permutare de ordin 2) fara puncte xe, si este o
permutare pe E.
Elementele lui E sunt gandite ca arce; o muchie (neori-
entata) este reprezentata ca o pereche e, e E de arce,
inverse unul altuia. Aplicat ia

inverseaza direct ia.
Se doreste ca aplicat ia sa dea o orientare a muchiilor
din jurul unui varf (n sens contrar acelor de ceasornic).
Varfurile sunt ciclii permutarii . (Un ciclu al per-
mutarii este o submult ime nevida a lui E nchisa n
raport cu si minimala cu aceasta proprietate).
Daca notam cu V mult imea ciclilor permutarii atunci
denim
t : E V prin t(e) = unicul ciclu al lui ce cont ine
e (extremitatea init iala a arcului e)
h : E V prin h(e) = unicul ciclu al lui ce cont ine
e (extremitatea nala a arcului e)
Se observa ca e t(e) = h(e) si h(e) = t(e).
Daca vom considera permutarea

: E E denita de

(e) = (e),
atunci o fat a a lui G este un ciclu al permutarii

.
Intuitiv, pentru a calcula

(e), inversam e pentru a obt ine e si apoi


ne rotim (n sensul acelor de ceasornic) n jurul extremitat ii init iale
a lui e. Numarul fet elor lui G se noteaza cu f.
4
Grafuri planare
Grafuri plane - versiunea combinatoriala.
O componenta conexa a lui G este o orbita a lui E
n grupul de permutari generat de si

: o mult ime
nevida minimala cu proprietatea ca este nchisa la
si

.
Fie G un graf cu m =
1
2
|E| muchii (neorientate), n = |V |
varfuri, f fet e, si c componente conexe. Caracteristica
Euler a lui G se deneste ca ind
(G) = 2c +mn f.
Un graf G se numeste graf plan daca (G) = 0.
Se poate demonstra ca pentru un graf conex n denit ia
tradit ionala, cele doua not iuni de grafuri plane coincid
(graful neorientat construit asa cum am descris mai sus
atasat unui graf n forma combinatoriala este graf plan
conform denit iei tradit ionale si invers,
daca pentru un graf tradit ional plan conex se construieste
conform unei orientari inverse acelor de ceasornic a
muchiilor si

corespunzatoare, graful combinatorial
obt inut este plan n noua denit ie).
5
Grafuri planare
Teorema Separatorului.
Teorema. (Tarjan & Lipton, 1979)
Fie G un graf planar cu n varfuri. Exista o partit ie a lui
V (G) n clasele disjuncte A, B, S astfel ncat:
1. S separa A de B n G: GS nu are muchii cu o
extremitate n A si cealalta n B.
2. |A|
2
3
n, |B|
2
3
n.
3. |S 4

n.
Aceasta partit ie se poate aa n timpul O(n).
Demonstrat ie. Consideram graful conex si de asemenea
consideram ca dispunem de o reprezentare planara.
Alegem un varf s si executam o parcurgere bfs din s
numerotand varfurile (n ordinea ntalnirii lor n aceasta
parcurgere) si atribuind ecarui varf v nivelul sau n ar-
borele bfs construit.
Vom nota cu L(t), 0 t l +1 mult imea varfurilor de
pe nivelul t (nivelul l +1 va introdus n scopuri tehnice
si este vid, ultimul nivel este de fapt l).
Fiecare nivel este un separator n G (avem muchii doar
ntre nivele consecutive).
Fie t
1
nivelul de la mijloc, adica nivelul ce cont ine varful
numerotat bfs cu numarul de ordine
n
2
. Mult imea L(t
1
)
are o parte din proprietat ile separatorului pe carel cautam:

t<t
1
L(t)

<
n
2

t>t
1
L(t)

<
n
2
.
Daca si L(t
1
) 4

n, teorema are loc.


6
Grafuri planare
Teorema Separatorului.
Lema. Exista nivelele t
0
t
1
si t
2
> t
1
a. ncat |L(t
0
)|

n, |L(t
2
)|

n si t
2
t
0


n.
Se alege t
0
cel mai mare numar cu proprietat ile t
0
t
1
si |L(t
0
)|

n (exista un astfel de nivel pentru ca |L(0)| = 1). La fel, exista t


2
un cel mai mic numar astfel nc at t
2
> t
1
si |L(t
2
)|

n (de aceea
s-a luat |L(l +1)| = 0). Orice nivel strict ntre t
0
si t
2
are mai mult
de

n varfuri deci numarul acestor nivele este mai mic decat

n,
altfel am avea mai mult de n varfuri n graf.
Consideram
C =
t<t
0
L(t), D =
t
0
<t<t
2
L(t), E =
t>t
2
L(t).
C
D
E
s
t
t
t
0
1
2
7
Grafuri planare
Teorema Separatorului.
Daca |D|
2
3
n atunci teorema are loc cu S = L(t
0
)
L(t
2
), A mult imea cu cele mai multe elemente dintre
C, D, E si B reuniunea celorlalte doua (nu uitam ca C si
E au cel mult
n
2
elemente).
Consideram deci ca n
1
= |D| >
2
3
n.
Daca vom gasi un separator de tipul
2
3

2
3
pentru D cu
cel mult 2

n varfuri, atunci
l vom adauga la L(t
0
) L(t
2
) pentru a obt ine un sepa-
rator de cardinal cel mult 4

n,
reunim mult imea cu cel mai mare numar de elemente
dintre C si E cu partea mica ramasa din D pentru a
obt ine A,
iar partea mare ramasan D o reunim cu cealalta mult ime
(mica ) dintre C si E pentru a obt ine B.
Construct ia separatorului pentru D. Vom sterge toate varfurile
grafului care nu-s n D cu except ia lui s pe care-l unim cu toate
vrfurile de pe nivelul t
0
+1 (primul nivel ramasn D). Graful obt inut
l notam cu D si este evident planar si conex.

In plus are un arbore
part ial T de diametru cel mult 2

n (orice varf este accesibil din s


pe un drum de lungime cel mult

n asa cum am aratat n lema).
Acest arbore se parcurge dfs si se construieste separatorul dorit.
8
Grafuri planare
Teorema Separatorului. Aplicat ie
Consideram problema testarii daca un graf planar dat
admite o 3-colorare a varfurilor (problema cunoscuta ca
ind NP-completa).
Pentru grafuri cu put ine varfuri (un numar constant c)
se poate testa n timpul O(3
c
) = O(1) daca graful are o
3-colorare.
Pentru grafuri planare cu numarul n de varfuri mai mare
decat c, construim n timp liniar O(n), asa cum ne
asigura teorema separatorului, partit ia A, B, C a mult imii
varfurilor sale cu |A|, |B|
2n
3
si |C| 4

n.
Pentru ecare din cele 3
|C|
= 2
O(

n)
funct ii posibile def-
inite pe C si cu valori n {1, 2, 3} se testeaza daca este
3-colorare a subgrafului indus de C si daca poate ex-
tinsa la o 3-colorare a subgrafului indus de ACn G si la
o 3-colorare a subgrafului indus de BC n G (recursiv).
Timpul de lucru al acestui algoritm, T(n), va satisface
recurent a
T(n) =

O(1) daca n c;
O(n) +2
O(

n)
(O(

n) +2T(
2n
3
)) daca n > c.
Se obt ine T(n) = 2
O(

n)
, destul de bun pentru probleme
de dimensiuni rezonabile.
Este posibil nsa ca notat ia O(.) sa ascunda constante
mari !
9
Descompuneri
Denit ie O t-descompunere a unui graf G =
(V (G), E(G)) este o pereche ({X
i
|i V (T)}, T),
unde
{X
i
|i V (T)} este o familie de submult imi ale
lui V (G) si T este un arbore, astfel ncat:
1.
iV (T)
X
i
= V (G);
2. vw E(G) i V (T) astfel ncat v, w X
i
;
3. v V (G) mult imea varfurilor {i|v X
i
} in-
duce un subarbore n T .
Lat imea unei t-descompuneri {X
i
|i V (T)} se
deneste ca ind max
iV (T)
(|X
i
| 1).
t-lat imea unui graf G este lat imea minima a
unei t-descompuneri a lui G si se noteaza cu
tw(G).
10
Descompuneri
Denit ie O b-descompunere a unui graf G =
(V (G), E(G)) este o pereche (T, ), unde T
este un arbore cu varfurile de gradul 1 sau 3
si este o biject ie de la mult imea varfurilor
pendante ale lui T la E(G).
Ordinul unei muchii e a lui T este numarul
varfurilor v V (G) astfel ncat exista varfurile
pendante t
1
, t
2
ale lui T n componente conexe
diferite ale lui T e cu (t
1
) si (t
2
) incidente
cu v.
Lat imea b-descompunerii (T, ) este ordinul
maxim al unei muchii a lui T.
b-lat imea unui graf G este lat imea minima
a unei b-descompuneri a lui G si se noteaza
cu bw(G). (daca |E(G)| 1 se deneste b-
lat imea lui G ca ind 0; grafurile nule nu au
b-descompuneri; daca |E(G)| = 1 atunci G are
o b-descompunere care consta dintr-un arbore
cu un nod, a carui lat ime se considera 0).
11
Descompuneri si grafuri planare
Teorema. (Robertson & Seymour, 90) Pentru orice graf conex
G cu E(G) 3 avem
bw(G) tw(G) +1
3
2
bw(G).
Teorema. (Fomin & Thilikos, 2003) Pentru orice graf
planar G avem
bw(G)

4.5|V (G)| 2.122

|V (G)|.
Teorema. (Fomin & Thilikos, 2003) Fie o prob-
lema de optimizare care este rezolvabila pe grafuri cu b-
lat imea cel mult l si ordinul nn timpul f(l)g(n). Atunci
pe grafurile planare de ordin n problema este rezolv-
abila n timpul O(f(2.122

n)g(n) +n
4
).
Demonstrat ia rezulta utilizand teorema anterioara si un algoritm
de complexitate O(n
4
) dat de Robertson & Seymour pentru deter-
minarea unei b-descompuneri optimale a unui graf.
De exemplu, se stie ca problema determinarii unei mult imi
stabile de cardinal maxim ntr-un graf cu t-lat imea l se
poate rezolva n timpul O(2
l
n). Deci, pentru grafuri cu
b-lat imea cel mult l se poate rezolva n O(2
3
2
l
n).
Obt inem ca problema determinarii unei mult imi stabile
de cardinal maxim ntr-un graf planar se poate rezolva
n timpul O(2
3.182

n
n +n
4
).
Timpii obt inut i sunt mai buni decat metodele bazate pe
teoremele de separare !
12
Despre examen.
Exemple de subiecte teza !!!! :
croitoru/id
13