Professional Documents
Culture Documents
GRAFURILOR
C. Croitoru
2012-2013
0. Probleme,Algoritmi,Complexitate
Vom considera o problema (computat ionala)
ca ind o aplicat ie
1 : I O,
(I mult imea intrarilor problemei, mult imea instant elor
problemei; O mult imea iesirilor, raspunsurilor, solut iilor)
care pentru ecare intrare i I ofera o iesire
1(i) O.
Daca O = da, nu atunci 1 se va numi prob-
lema de decizie, 1(i) da, nu va raspunsul
(la ntrebarea pusa de 1), iar forma uzuala de
prezentare a problemei va :
1 Intrare: i I.
Intrebare: descriere ... ?
Exemplu:
Compus Intrare: n N n 2.
Intrebare: Exista p, q N p, q 2 si n = pq?
1
Un alt tip de probleme care apar frecvent sunt
cele de cautare : mult imea O cont ine pentru
ecare i I macar o solut ie acceptabila n ra-
port cu un anumit criteriu precizat, iar pro-
blema cere gasirea unei astfel de solut ii.
O clasa speciala de astfel de probleme este
cea a problemelor de optimizare, care sunt de
maximizare sau minimizare.
Exemple:
Drum Intrare: G un graf, a, b doua varfuri ale lui G.
Iesire: P un drumn G de la a la b (daca ).
DrMin Intrare: G graf, a, b varfuri n G,
o funct ie de lungime a muchiilor lui G.
Iesire: P
un drumn G de la a la b cu suma
lungimilor muchiilor minima, printre
toate drumurile de la a la b n G.
MaxCut Intrare: G graf,
o funct ie de lungime a muchiilor lui G.
Iesire: O bipartit ie (S, T) a mult imii varfurilor
grafului G cu suma lungimilor muchiilor
dintre cele doua clase maxima.
2
Oricarei probleme de optimizare i se poate aso-
cia o problema de decizie (care ne va da informat ii
asupra dicultat ii ei computat ionale). Pentru cele
doua probleme de optimizare de mai sus, avem:
DrMin-D Intrare: G graf, a, b varfuri n G, k N,
o funct ie de lungime a muchiilor lui G.
. Lungimea cuvantului w se va
nota cu [w[. Orice mult ime de cuvinte peste ,
deci o submult ime a lui
se numeste limbaj
(peste ).
Problemele de decizie au forma Dat un anu-
mit obiect, are el o anumita proprietate? Cum
obiectele le reprezentam cu ajutorul cuvintelor,
nseamna ca problema se reduce la ntrebarea:
Dat un cuvant, are el o anumita proprietate?
Vom considera problema de decizie o funct ie
P :
da, nu.
Limbajul asociat problemei P este
P
1
(da) = w[w
si P(w) = da.
4
Vom considera ca un algoritm este o funct ie
A :
si A(w) = da.
Limbajul L
algoritmul A evalueaza
A(w) = da, daca w L si A(w) = nu, daca
w , L, n timpul C([w[
k
).
= L
si nu e dicil sa
se arate si incluziunea inversa, deci P = P
.
2. Se verica usor ca daca P P atunci si
\ P P.
6
Vericare n timp polinomial.
Un algoritm de vericare este o funct ie
A :
si y
a. . A(w, y) = da.
Clasa de complexitate NP:
NP =L
[ A algoritm de vericare
cu timp de lucru polinomial a..
L =x
[ y
, k N a. .
[y[ = C([x[
k
) si A(x, y) = da
.
Daca P e o problema de decizie, atunci ea este
problema (din) NP daca limbajul L = P
1
(da)
satisface L NP.
7
Observat ie. NP este mnemonic pentru Nede-
terminist Polinomial si nu pentru NePolinomial.
Un argument ca nu e bine sa asimilam NP cu
nepolinomial este si faptul ca P NP.
Justicarea este imediata: Daca L P, atunci exista A :
. Se vede
usor ca L este vericat de A
n timp polinomial.
Din denit iile de mai sus ar fost mai normal sa notam
VP (vericabil polinomial). Sintagma Nedeterminist
Polinomial se justica daca am considera algoritmi nede-
terministi n care controlul execut iei este astfel ncat
dupa ecare pas este posibil sa se execute unul oare-
care dintre pasii specicat i ntr-o mult ime nita de pasi
succesori. Un astfel de algoritm accepta un cuvant de
intrare daca este posibila o execut ie care sa conduca
la rezultatul da. Se poate arata ca aceasta denit ie
a acceptarii nedeterministe este echivalenta cu cea de
vericare data mai sus, n care certicatul este utilizat
pentru efectuarea alegerilor corecte ale pasilor urmatori
ai unei execut ii a algoritmului nedeterminist.
8
NP noteaza clasa problemelor de decizie pen-
tru care raspunsurile armative au certicate
care pot folosite pentru a demonstra succint
(n timp polinomial) corectitudinea lor.
Intuitiv, NP este clasa tuturor problemelor de
decizie pentru care se poate verica un raspuns
pozitiv (da) rapid daca ni se da o solut ie.
De exemplu, pentru problema MaxCut-D un raspuns
armativ are drept certicat o partit ie (S
, T
) a mult imii
varfurilor grafului (iar proprietatea ca suma lungimilor
muchiilor cu o extremitate n S
si cealalta n T
nu
depaseste pragul k se face n timp polinomial). Deci,
MaxCut-D NP.
Daca am considera urmatoarea problema de
decizie:
UnDrumIntrare: G un graf, a, b doua varfuri ale lui G.
\ L NP.
O problema de decizie P co-NP daca
L = P
1
(da) co-NP (echivalent, L = P
1
(nu) NP).
Exemplu de problema din co-NP:
NeHam Intrare: G un graf.
. Spunem ca L
1
se reduce poli-
nomial la L
2
, si notam aceasta prin L
1
L
2
,
daca exista f :
o funct ie polinomial
calculabila astfel ncat w
: w L
1
daca
si numai daca f(w) L
2
.
f se numeste funct ie de reducere si algoritmul polinomial
F care calculeaza f, algoritm de reducere polinomiala.
Observat ii. 1. Daca L P si L
L, atunci L
P.
Fie A un algoritm polinomial care decide L si F un al-
goritm de reducere polinomiala a lui L
la L. Atunci,
A
.
(x , A
; A
NP are loc L
L.
Limbajul L
NP are loc P
P.
Problema de decizie P este NP-completa daca
P NP si P este NP-dicila.
Folosind observat ia 1 si faptul ca P NP rezulta urmatoarea
Teorema Daca P o problema oarecare NP-
completa satisface P P atunci P = NP.
Rezulta ca problemele NP-complete formeaza submult imea lui NP
care cont ine cele mai dicile probleme. Daca gasim un algoritm
polinomial pentru una dintre ele, putem construi un algoritm poli-
nomial pentru oricare alta problema din NP. Din pacate, desi nu
exista o demonstrat ie, oamenii cred ca, de fapt, aceste probleme
nu admit algoritmi polinomiali de rezolvare. Diagrama urmatoare
sugereaza relat iile care se crede ca existantre aceste clase de com-
plexitate:
12
P
NP
NP-hard
NP-complete
Se obisnuieste sa se spuna ca o problema de optimizare
este NP-dicila, daca problema de decizie asociata este
asa.
Pentru ca sa ne aliniem la denit iile precedente, vom
spune ca o problema oarecare P (nu neaparat de decizie)
este NP-dicila daca existent a unui algoritm polinomial
pentru P implica P = NP.
Comentariu metaforic: Saying that a problem is NP-hard is
like saying If I own a dog, then it can speak uent English. You
probably dont know whether or not I own a dog, but youre prob-
ably pretty sure that I dont own a talking dog. Nobody has a
mathematical proof that dogs cant speak English. Nevertheless,
no sane person would believe me if I said I owned a dog that spoke
uent English. So the statement If I own a dog, then it can speak
uent English has a natural corollary: No one in their right mind
should believe that I own a dog! Likewise, if a problem is NP-
hard, no one in their right mind should believe it can be solved in
polynomial time. [Je Erickson, Univ. of. Illinois]
13
Singura clasa de complexitate pentru care nu am sugerat
un exemplu este cea a problemelor NPcomplete. Primul
om care a demonstrat existent a unei astfel de probleme
este Cook, care n 1971 a aratat ca SAT NP, unde
SAT
Instant a: U = u
1
, . . . , u
n
o mult ime nita de variabile
booleene.
C = C
1
C
2
. . . C
m
o formula n forma
conjunctiva peste U:
C
i
= v
i
1
v
i
2
. . . v
i
k
i
i = 1, m, unde
i
j
1, . . . , n astfel ncat
v
i
j
= u
sau v
i
j
= u
.
Intrebare: Exista o atribuire t : U A, F a. .
t(C) = A ?
Evaluarea lui t(C) se bazeaza pe formulele uzuale din
calculul boolean:
A A = A, F A = F F = A F = F,
F F = F, F A = A F = A A = A,
F = A, A = F, (F) = F,(A) = A,
si e clar ca se poate face n timp polinomial.
14
Apartenent a lui SAT la NP e clara, un certi-
cat pentru raspunsul da este o atribuire t
0
care
poate vericata n timp polinomial.
O demonstrat ie ca orice limbaj din NP se reduce poli-
nomial la SAT necesita o abordare formala not iunilor de
algoritm si timp de execut ie (pe care le-am considerat
aici la nivel intuitiv) si o omitem.
3SAT este restrict ia lui SAT n care ecare
clauza C
i
are exact trei literali (k
i
= 3), un
literal v
i
j
ind, asa cum este descris mai sus, o
variabila sau negat ia ei.
Se poate arata usor ca SAT 3SAT si deci se
obt ine ca 3SAT este NP-completa (apartenent a
la NP e clara ind o restrict ie a lui SAT care e
din NP, iar tranzitivitatea relat iei mpreuna
cu teorema lui Cook termina demonstrat ia).
15
Schit a de demonstrat ie de mai sus este uzuala
n demonstrat iile de NP-completitudine si o ex-
plicitam:
Pentru a arata ca o problema de decizie P este
NP-completa se procedeaza astfel:
1. Se arata ca L = P
la L.
4. Se demonstreaza ca F e algoritm de reducere.
5. Se arata ca F este algoritm polinomial.
Pentru pasul 2 se poate consulta
http://www.nada.kth.se/~viggo/problemlist/
16
I. Vocabular al Teoriei grafurilor
1. Denit ia unui graf
Un graf este o pereche G = (V (G), E(G)),
unde
- V (G) este o mult ime nita nevida, iar
- E(G) este o submult ime a mult imii 1
2
(V (G))
a part ilor cu doua elemente ale lui V (G).
V (G) se numeste mult imea vrfurilor grafului
G si numarul elementelor sale
V (G)
E(G)
, este dimen-
siunea grafului G.
Atunci cnd nu exista posibilitatea confuziilor,
vom nota simplu, G = (V, E).
17
Daca e = u, v E(G) este o muchie a gra-
fului G vom nota e = uv (pentru simplicarea
scrierii) si vom spune ca:
muchia e uneste vrfurile u si v;
vrfurile u si v sunt adiacente n G;
muchia e este incidenta cu vrfurile u si v;
vrfurile u si v sunt vecine n G;
vrf. u si v sunt extremitat ile muchiei e.
Daca v V (G), atunci mult imea
N
G
(v) = w[w V (G), vw E(G)
se numeste vecinatatea vrfului v n G.
Se mai noteaza N
G
(v) =
G
(v).
18
Remarcam faptul ca graful G poate denit
(n mod echivalent) ca o pereche
_
V (G),
G
_
unde,
G
: V (G) 1
_
V (G)
_
asociaza ecarui vrf vecinatatea sa, si sat-
isfacand condit iile: v V (G) : v ,
G
(v) si
u, v V (G) u
G
(v) v
G
(u).
Doua muchii e si e
pentru
care G admite o p-colorare.
24
Exemplu:
In graful G desenat mai jos, sunt
evident iate 2 colorari una cu 5 culori si una cu
4 culori. Se poate argumenta ca (G) = 4.
5-colorare
rosu= culoarea 1
galben= culoarea 2
verde=culoarea 3
albastru=culoarea 4
negru=culoarea 5
4-colorare
Problema urmatoare apare n diverse situat ii
practice (de exemplu n problemele de orar,
saun problemele de acoperire din wireless net-
works):
P3 Intrare: G un graf.
Iesire: (G) si un martor:
o (G)-colorare a lui G.
25
Din problema P1 stim ca mult imile stabile ale
grafului sunt greu de stapanit, si cum prob-
lema P3 cere de fapt sa partit ionam mult imea
de varfuri a grafului ntr-un numar cat mai mic
de mult imi stabile, este normal ca si aceasta
problema sa e NP-dicila. Problema de de-
cizie
COL Intrare: G un graf, k N.
Intrebare: Admite G o k-colorare?
este NP-completa chiar daca o restrict ionam
la cazul particular k = 3. Exista nsa restrict ii
ale problemei pentru care avem apartenent a la
P (de exemplu, daca G este un graf perfect).
O pcolorare a muchiilor lui G este o aplicat ie
c : E(G) 1, . . . , p cu proprietatea ca c
1
(i)
este un cuplaj al lui G, i 1, . . . , p.
Indicele cromatic al grafului G, notat
(G),
este cea mai mica valoare a lui p N
pentru
care G admite o p-colorare a muchiilor.
26
Exemplu: In graful de mai jos
este evident iata o 3-colorare a muchiilor; este
clar ca este si optima, ntrucat muchiile inci-
dente n acelasi varf trebuie sa aiba culori dis-
tincte. Problema
P4 Intrare: G un graf.
Iesire:
(G) si un martor:
o
este
digraful obt inut din D prin nlocuirea ecarui
arc vw cu opusul sau wv.
Daca D este un digraf, atunci nlocuind ecare
arc cu mult imea de vrfuri care l formeaza,
obt inem, n general, un graf general M(D).
Graful suport al acestuia se numeste graful
suport al digrafului D.
35
Daca M(D) este graf atunci D se numeste graf
orientat (poate gndit ca obt inut prin ori-
entarea ecarei muchii a grafului M(D)).
Un digraf complet simetric este un digraf n
care ecare pereche de vrfuri este unita prin
exact o pereche de arce simetrice.
Un turneu este un digraf n care orice doua
vrfuri snt unite prin exact un arc.
0
1
2
3
4
Dinamo
Rapid
Petrolul
Stiinta
Steaua
36
d) Grafurile innite se obt in prin nlaturarea
condit iei de nitudine a mult imii de vrfuri si
(sau) muchii. Acestea se considera a numarabile,
iar tratarea lor utilizeaza instrumente care nu
sunt neaparat combinatorii ( de exemplu, mecan-
isme generative). Un graf G local nit este
un graf innit n care N
G
(v) este nita pentru
orice vrf v.
e) Hipergrafurile se obt in renunt and la condit ia
ca muchiile pot avea cel mult doua varfuri,
( se obt in astfel hipermuchiile). Ele se mai
numesc sisteme nite de mult imi si vom arata
ca pot studiate via grafurile bipartite, desi
exista rezultate combinatorii importante si cu
aplicat ii directe (de exemplun bazele de date)
n formalismul care urmeaza extinderea tratarii
grafurilor (din punct de vedere combinatoriu
sau algebric).
37
3. Grade
Daca G = (V, E)este un graf si v V un vrf
al sau, atunci valent a sau gradul lui v n G,
notat d
G
(v) sau
G
(v) este
[e [ e E, e incidenta cu v[.
Un vrf de grad 0 se numeste izolat; un vrf
de grad 1 se numeste pendant. Daca toate
vrfurile lui G au aceeasi valent a atunci G
se numeste graf valent sau regulat. Un
graf 0valent se numeste graf nul. Un graf
3valent se numeste graf trivalent sau cu-
bic. Un exemplu de graf trivalent este graful
lui Petersen:
Gradul maxim al unui varf al grafului G se
noteaza cu (G), iar gradul minim (G) .
38
Concepte analoage se pot deni si pentru di-
grafuri. Daca v este un vrf al digrafului D
atunci valent a interioara sau gradul interior
notat
in
(v) sau
D
(v) sau d
D
(v), este numarul
arcelor incidente cu v spre interior; valent a
exterioara sau gradul exterior notat
out
(v)
sau
+
D
(v) sau d
+
D
(v), este numarul arcelor in-
cidente cu v spre exterior.
De exemplu, n digraful D desenat mai jos avem
d
D
(v) = 1, d
+
D
(v) = 2;
d
D
(u) = 3, d
+
D
(u) = 0;
d
D
(w) = 1, d
+
D
(w) = 3;
v
u
w
39
4. Subgrafuri
Un subgraf al grafului G = (V (G), E(G))este
un graf H = (V (H), E(H)) care satisface:
V (H) V (G) si E(H) E(G).
Dacan plus, V (H) = V (G) atunci H se numeste
graf part ial al lui G (n limba engleza, span-
ning subgraph).
Daca A V (G) atunci [A]
G
= (A, 1
2
(A)
E(G)) se numeste subgraf indusn G de mult imea
de vrfuri A (se mai noteaza si G[A]).
E(G) atunci E
)
G
= (V (G), E
) este
graful part ial sect ionat de E
n G. G E
)
G
, iar G e =
Ge (e E(G)). Pentru G graful din gura
precedenta si E
)
G
este graful G
:
2
1 3
6 5 4
7 8
9
10
G
Concepte similare se pot deni n mod analog
pentru multigrafuri, grafuri generale sau digra-
furi.
41
5. Operat ii cu grafuri
Daca G = (V (G), E(G))este un graf, atunci :
-complementarul sau este graful G cu
V (G) = V (G) si E(G) = 1
2
_
V (G)
_
\ E(G).
Graful initial Complementarul
Graful complet
-graful reprezentativ al muchiilor lui G este
graful L(G) cu V (L(G)) = E(G) si
E(L(G)) =ee
[ e, e
E(G), e si e
adiacente n G.
a
e
f
g
h
b
c
d
Graful initial Line-graful sau
a
b
c
h
g
f
d
e
42
-graful total al grafului G este graful T(G)
cu V (T(G)) = V (G) E(G) si
E(T(G)) = xy[x, y V (G) E(G), x si y
adiacente sau incidente n G.
a
b
c
d
1
2
3
4
Graful initial
d
a
2
b
3
c
4
1
Graful total
-graful obt inut din G prin insert ia unui vrf
(z) pe o muchie (e = vw) este graful G
= (V (G)
z, E(G) \ vw vz, zw) (z / V (G), e E(G)).
v
w
v
z
w
Doua grafuri obt inute prin insert ii succesive de vrfuri
pe muchiile aceluiasi graf se numesc homeomorfe.
43
-graful obt inut din G prin contract ia muchiei
e = vw E(G) este graful G[e =
(V (G) \ v, w z, E([V (G) \ v, w]
G
)
yz [ yv sau yw E(G)).
v w
z
G|e
G
Daca H se poate obt ine prin contract ii suc-
cesive de muchii din graful G, se spune ca
G este contractibil la H.
Fie G = (V (G), E(G))si G
= (V (G
), E(G
))
doua grafuri.
- Daca V (G) = V (G
)),
G G
)).
44
1
5
2
3 4
1
5
4
2
3
G
G
Intersectia Reuniunea
-Daca V (G)V (G
) = atunci G G
= (V (G)
V (G
), E(G)E(G
)) se numeste reuniunea
disjuncta a grafurilor G si G
. Reuniunea
disjuncta a k grafuri izomorfe cu G se noteaza kG.
1
5
2
3 4
a
e
d
b
c
G
G
Reuniunea disjuncta
-Suma a doua grafuri G si G
este graful
G+G
= G G
.
45
G
G
G+G
-Produsul cartezian al grafurilor G si G
este
graful GG
cu V (GG
) = V (G)V (G
)
si
E(GG
) = (v, w)(v
, w
)[v, v
V (G), w, w
V (G
)
v = v
si ww
E(G
)sau
w = w
si vv
E(G)
G:
G
G x G
46
6. Clase de grafuri
Graful complet de ordin n : K
n
cu
V (K
n
)
= n si E(K
n
) = 1
2
_
V (K
n
)
_
.
K1 K2 K3 K4 K5
Graful nul de ordin n : N
n
= K
n
.
N2 N3 N4 N5 N1
47
Circuitul de ordin n (n 3) : C
n
cu V (C
n
) = 1, . . . , n si
E(C
n
) = 12, 23, . . . , n 1n, n1.
C4 C5 C6 C7 C3
Drumul de ordin n : P
n
P
1
= K
1
, P
2
= K
2
;
n 3 : P
n
= C
n
e (e E(C
n
)).
P2 P3 P4 P5 P1
48
Un subgraf complet (de ordin q) al unui graf G
se numeste clica ( q-clica) a lui G.
Cardinalul maxim al unei clici a lui G se numeste
numarul de clica sau numarul de densitate
al lui G si se noteaza (G). Cum, evident
(G) = (G), rezulta ca determinarea numarului
de clica al unui graf si a unei clici de cardinal
maxim este problema P1 cu intrarea G.
Exemple:
omega
2
omega
4
omega
2
omega
5
omega
3
Un graf bipartit este un graf G cu propri-
etatea ca V (G) se poate partit iona n doua
mult imi independente n G.
Daca S si T satisfac S T = V (G), S T =
si S, T snt independente si nevide n G, atunci
graful bipartit G se noteaza G = (S, T; E(G)).
49
Deci, daca G = (S, T; E(G)) este un graf bi-
partit, atunci e E(G) are o extremitate n S
si cealalta n T.
Daca v S si w T vw E(G), atunci
graful bipartit G = (S, T; E(G)) se numeste
graf bipartit complet si se noteaza K
s,t
unde
s = [S[ si t = [T[.
K2,2 K1,3 K2,3 K3,3 K1,1
Pentru orice hipergraf H = (V, c), se poate
asocia un graf bipartit G
H
= (V, c; E(G
H
)),
unde v V , F c vF E(G
H
) v F.
F3
G
2
3
4
5
7 6
1
F1
F2
Hipergraful H
1
2
3
4
5
6
7
F1
G
F2
F3
Graful bipartit
asociat lui H
50
O construct ie inversa evidenta, ne arata ca si
pentru orice graf bipartit se poate asocia un
hipergraf.
Un graf G = (V (G), E(G))se numeste planar
daca poate reprezentat n plan astfel nct
ecarui vrf sa-i corespunda un punct al planu-
lui, iar muchiilor le corespund curbe simple ce
unesc punctele corespunzatoare extremitat ilor
lor si n plus aceste curbe se interesecteaza
(eventual) numai n vrfuri. Un graf care nu-i
planar se numste neplanar. Exemple minimale
de grafuri neplanare snt grafurile K
5
si K
3,3
.
Planar Planar
K5 neplanar Planar
51
Desi problema
PLAN Intrare: G un graf.
Intrebare: Este G planar ?
pare mult mai dicila decat problema stabilei
maxime (P1 din cursul trecut), ea subsumand
not iuni de topologie, s-a dovedit ca este din P
( Hopcroft & Tarjan , 1972, O(n +m)).
O modalitate uzuala de a deni clase de gra-
furi este de a interzice aparit ia unor subgrafuri
induse, pentru grafurile acelei clase.
Daca T este o mult ime de grafuri, atunci un
graf G se numeste T-liber (sau T-free) daca
G nu are ca subgraf indus pe niciunul din-
tre grafurile lui T. De exemplu, clasa grafu-
rilor nule poate denita ca ind clasa gra-
furilor K
2
-free; clasa grafurilor ale caror com-
ponente conexe sunt subgrafuri complete este
clasa grafurilor P
3
-free;
clasa grafurilor triangulate (sau cordale) este
clasa grafurilor (C
k
)
k4
-free.
52
7. Drumuri si circuite
Fie G = (V (G), E(G))un graf.
Se numeste mers (walk) de lungime r de la
v la w n G un sir de vrfuri si muchii
(v =)v
0
, v
0
v
1
, v
1
, . . . , v
r1
, v
r1
v
r
, v
r
(= w);
v si w se numesc extremitat ile mersului.
Daca muchiile mersului snt distincte atunci
mersul se numeste parcurs (trail) n G de la v
la w.
Daca vrfurile snt distincte atunci mersul se
numeste drum (path) de la v la w.
2
1
6
8
9
4
3
5
1
2 8 2 3 6 5
8
9
8 2 1 9 8 4
5
M:
T:
6
3 2 8 9
4
P:
mers
parcurs
drum
53
Daca v = w atunci mersul (parcursul) se numeste
nchis.
Daca ntr-un mers toate vrfurile snt distincte,
cu except ia extremitat ilor, atunci mersul se numeste
circuit (sau drumnchis).
Un circuit este par sau impar dupa cum lungimea
sa (numarul muchiilor) este para sau impara.
2
1
6
8
9
4
3
5
2
1
9
4
8
9
4
8
circuite
impare :
1 9
8 2
circuit par :
Lungimea celui mai scurt circuit al grafului G
(daca G are circuite) se numeste grat ia (girth)
grafului G si se noteaza cu g(G); lungimea celui
mai lung circuit al lui G se numeste
circumferint a lui G si se noteaza c(G).
54
Daca v si w snt vrfuri ale lui G, lungimea
celui mai scurt drum de la v la w n G se
numeste distant an G de la v la w si se noteaza
d
G
(v, w).
Diametrul grafului G, notat d(G) este d(G) =
maxd
G
(v, w)[v, w V (G).
d(G)=3
d(G)=4
69
Evident:
- S = v V [label(v) 0;
- v V label(v) = d
G
(s, v);
- variabila parent deneste arborele bfs aso-
ciat cautarii din s: daca G e graf atunci acesta
este arbore part ial al componentei conexe a
lui G la care apart ine s; daca G este digraf
atunci acesta este o arborescent a (arbore ori-
entat cu toate varfurile accesibile prin drumuri
din radacina);
- deoarece ecare lista de adiacent a a unui varf
din mult imea S este traversata exact o data,
complexitatea timp a lui bfs(s) este O(n
S
+
m
S
), unde n
S
= [S[ iar m
S
= [E([S]
G
)[;
ijE(D
ij
)
a
ij
.
In particular, a(D
ii
) = 0.
74
Principalele probleme de drum (de cost) minim
care apar n aplicat ii practice (sau snt utile n
rezolvarea altor probleme de optimizare com-
binatorie) snt:
P1 Date G digraf;a : E(G) R; s, t V (G),s ,= t.
Sa se determine D
st
T
st
, astfel nct
a(D
st
) = mina(D
st
) [ D
st
T
st
.
P2 Date G digraf; a : E(G) R; s V (G).
Sa se determine D
si
T
si
i V (G), a..
a(D
si
) = mina(D
si
) [ D
si
T
si
.
P3 Date G digraf; a : E(G) R.
Sa se determine D
ij
T
ij
i, j V (G), a..
a(D
ij
) = mina(D
ij
) [ D
ij
T
ij
.
Observat ii:
1. Cu convent ia folosita n reprezentarea ma-
tricilor de cost adiacent a, se poate considera
ca T
ij
,= i, j V .
75
Daca a(D
ij
) < atunci D
ij
este drum (adevarat)
n G de la i la j, iar daca a(D
ij
) = , atunci D
ij
este drumn digraful complet simetric obt inut
din G prin adaugarea arcelor lipsa, cu costul
.
Rezulta ca toate mult imile pe care se con-
sidera minimelen problemele precedente, snt
nevide si, cum digrafurile considerate snt -
nite, rezulta ca aceste mult imi snt nite (n
ecare drum vrfurile snt distincte), deci min-
imele considerate exista.
2. Algoritmii de rezolvare a problemei (P1)
se obt in din algoritmii de rezolvare a proble-
mei (P2) adaugndu-li-se un test suplimentar
(evident) de oprire.
3. Problema (P3) se poate rezolva iternd un
algoritm de rezolvare a problemei (P2). Snt
posibile nsa solut ii mai eciente.
76
Aplicat ii. Vom schit an continuare trei aplicat ii
practice posibile ale acestor probleme.
a) G = (V, E) reprezinta o ret ea de comunicat ie
cu nodurile V si rutele directe ntre noduri
formnd mult imea E.
Daca a(e) reprezinta lungimea arcului e, atunci
cele trei probleme de mai sus reprezinta prob-
leme naturale, care se pun n astfel de ret ele:
determinarea drumurilor celor mai scurte.
Daca p
ij
(0, 1] este probabilitatea de funct ionare
a arcului ij E atunci, presupunnd ca arcele
funct ioneaza independent unele de altele, prob-
abilitatea de funct ionare a drumului D este
p(D) =
ijE(D)
p
ij
.
Considernd a
ij
= logp
ij
, problema drumului
de cost minim de la s la t semnica deter-
minarea drumului cel mai sigur de la s la t.
77
b) Ret ele PERT (Project Evaluation and Re-
view Technique).
Fie P = A
1
, . . . , A
n
mult imea activitat ilor atom-
ice ale unui proiect de anvergura (n este mare).
P este o mult ime part ial ordonata cu relat ia de
ordine
A
i
< A
j
activitatea A
j
nu poate ncepe
dect dupa terminarea activitat ii A
i
.
Se cunoaste, pentru ecare activitate A
i
tim-
pul de execut ie t
i
.
Se cere sa se determine un plan de orga-
nizare a proiectului astfel nct timpul to-
tal de execut ie sa e minim. (Notam ca
problemele practice snt mai complexe datorita
restrict iilor de utilizare concurenta a resurselor
- oameni, utilaje, etc. - de catre diversele ac-
tivitat i).
Ideea generala pe care se bazeaza pachetele
soft care rezolva astfel de probleme este de
a asocia proiectului un digraf aciclic (ret eaua
PERT) astfel:
78
Fiecarei activitat i A
l
i se asociaza arcul i
l
j
l
de
cost a(i
l
j
l
) = t
l
.
Nodul i
l
reprezinta evenimentul de nceput al
activitat ii A
l
, iar nodul j
l
reprezinta evenimen-
tul de sfrsit al activitat ii A
l
.
Daca activitatea A
k
poatencepe imediat dupa
terminarea activitat ii A
l
, se introduce n digraf
arcul j
l
i
k
( activitate ctiva) de cost 0.
Se asociaza un eveniment s (START) unit prin
arce de cost 0 cu elementele minimale ale lui
(P, <) si un eveniment t (END) de care vor
unite prin cte un arc ecare element maximal
al lui P.
i=1
p
i
x
i
[
n
i=1
a
i
x
i
b, x
i
0, 1i = 1, n
_
.
Problema, desi interesanta n unele aplicat ii
(de exemplu la ncarcarea vapoarelor ntr-un
port) a fost aleasa pentru a pune n evident a
legatura dintre metoda programrii dinamice (dis-
crete) si problemele de drum minimntr-un di-
graf.
Consideram G = (V, E) un digraf cu
V = s V
1
V
2
. . . V
n
t, unde
V
i
= i
0
, i
1
, . . . , i
b
este asociat obiectului i, i =
1, n.
Arcele lui G snt:
81
s1
0
si s1
a
1
cu a(s1
0
) = 0 si a(s1
a
1
) = p
1
.
( se pune obiectul 1 n rucsac si se obt ine protul
p
1
, ajungandu-se la nivelul a
1
de umplere, sau nu se
pune obiectul 1 n rucsac, protul ind 0 si nivelul
de umplere ramanand 0).
i = 2, n j = 0, b:
(i 1)
j
i
j
cu a((i 1)
j
i
j
) = 0;
(daca decidem sa nu introducem obiectul i n ruc-
sac, atunci de la ncarcarea rucsacului cu primele
i 1 obiecte se trece la o ncarcare cu primele i
obiecte n care nu este selectat obiectul i, deci se
ramane pe acelasi nivel de ncarcare j, iar protul
ce se va adauga este 0).
Daca j a
i
0 atunci avem si arcul
(i 1)
ja
i
i
j
cu a
_
(i 1)
ja
i
i
j
_
= p
i
.
(se poate ajunge la o ncarcare j prin introducerea
obiectului i de volum a
i
la o ncarcare a primelor
i 1 obiecte de nivel j a
i
).
j = 0, b: n
j
t cu a(n
j
t) = 0.
82
Figura urmatoare ilustreaza construct ia aces-
tui digraf.
0
0
0
0
0
0
0
0
p1
0
p2
p2
1:b 2:b n:b
t
2:a2 n:2
1:1 2:1 n:1
s 1:0 2:0 n:0
1:a1 2:a1
2:a1+a2
83
Se observa din construct ie, ca orice drum de
la s la t n G corespunde unei submult imi de
obiecte cu suma volumelor mai mica sau egala
cu b si de prot egal cu costul acestui drum.
Reciproc, oricarei mult imi de obiecte cu suma
volumelor nedepasind b i corespunde un drum
de la s la t n G.
Rezulta ca daca n digraful G se determina un
drum de cost maxim de la s la t se rezolva
problema rucsacului.
Notam ca descrierea (statica) a digrafului G
poate usor transformata n una procedurala
astfel nct digraful sa reprezinte doar ilustrarea
unei metode de programare dinaminca (prospec-
tiva) pentru rezolvarea problemei rucsacului.
Atent ie ! Problema rucsacului este referita uzual
ca una din problemele NP-dicile. Solut ia polinomiala
descrisa mai sus conduce la un digraf aciclic cu O(nb)
varfuri, care nu-i dimensiunea intrarii !!!
84
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 sistemului
()
_
_
u
s
= 0
u
i
= min
j,=i
(u
j
+a
ji
) i ,= s.
daca si numai daca i V , D
si
T
si
astfel
nct a(D
si
) = u
i
si a(D
si
) = mina(D) [ D
T
s
i.
Demonstrat ie: Fie D
si
( i V ) solut ii
ale problemei (P2) cu a(D
si
) = mina(D) [ D
T
si
. Notam cu u
i
= a(D
si
) (i V ).
85
Ipoteza (I) asigura faptul ca u
s
= 0, adica
prima ecuat ie a sistemului (*) este vericata.
Pentru i ,= s drumul D
si
are un penultim vrf
j. Daca D
sj
este drumul de la s la j determi-
nat pe D
si
de vrful j, avem: u
i
= a(D
si
) =
a(D
sj
) +a
ji
a(D
sj
) +a
ji
= u
j
+a
ji
.
Aratam ca u
i
= u
j
+a
ji
.
Presupunem ca u
i
> u
j
+ a
ji
, adica a(D
sj
) >
a(D
sj
). Avem doua cazuri posibile:
1. i , V (D
sj
). Atunci D
1
= D
sj
(j, ji, i) T
si
si a(D
1
) = a(D
sj
)+a
ji
< a(D
sj
)+a
ji
= a(D
si
),
ceea ce contrazice alegerea drumului D
si
(vezi
gura urmatoare).
s
j
i
D
sj
D
sj
*
86
2. i V (D
sj
). Fie D
sj
= D
si
D
ij
cele doua
drumuri determinate pe D
sj
de vrful i. Atunci
circuitul C = D
ij
(j, ji, i) are costul a(C) =
a(D
ij
) +a
ji
= a(D
sj
) a(D
si
) +a
ji
= u
j
+a
ji
a(D
si
) u
j
+a
ji
a(D
si
) = u
j
+a
ji
u
i
< 0, con-
trazicnd ipoteza (I) (vezi gura urmatoare).
s
j
i
D
sj
D
sj
*
C
D
ij
Deci am demonstrat ca i ,= s u
i
= u
j
+a
ji
.
Daca u
i
nu satisface (*), atunci ar exista j
1
astfel ncat u
i
> u
j
1
+a
j
1
i
. Atunci, ca mai sus,
se poate construi un drum de cost mai mic
decat u
i
de la s la i.
87
Rezulta ca sucient a teoremei este demonstrata.
Notam ca de fapt am dovedit mai sus ca a(D
sj
) =
a(D
sj
) adica, daca j este vrful dinaintea lui i
pe un drum de cost minim de la s la i atunci
si port iunea de drum de la s la j este drum de
cost minim de la s la j. Inductiv, rezulta :
(Principiul optimalitat ii al lui Bellman) daca
D
si
este drum de cost minim de la s la i atunci
j V (D
si
), daca D
si
= D
sj
D
ji
atunci D
sj
(respectiv D
ji
) snt drumuri de cost minim de
la s la j (respectiv de la j la i).
. Dovedim ca daca (u
1
, . . . , u
n
) este o
solut ie a lui (*) atunci
(a) D
si
T
si
: u
i
= a(D
si
), i V.
(b) i V u
i
= mina(D) [ D T
si
(= a(D
si
)).
88
(a) Daca i = s, atunci u
s
= 0 si drumul D
ss
satisface a(D
ss
) = 0 = u
s
.
Daca i ,= s, consideram urmatorul algoritm:
v i; k 0;
while v ,= s do
determina w astfel nct u
v
= u
w
+a
wv
;
// w pentru ca u
v
satisface (*)
i
k
v; k ++; v w
i
k+1
s
Sa observam ca algoritmul determina drumul
D : (s =)i
k+1
, i
k+1
i
k
, . . . , i
1
, i
1
i
0
, i
0
(= i)
cu D T
si
satisfacnd a(D) = a(i
k+1
i
k
)+ +
a(i
1
i
0
) = (u
i
k
u
i
k+1
) + (u
i
k1
u
i
k
) + +
(u
i
0
u
i
1
) = u
i
0
u
i
k+1
= u
i
u
s
= u
i
.
Nu este posibil ca ntr-o iterat ie oarecare w
i
0
, . . . , i
k1
, caci atunci s-ar obt ine un circuit
C de cost total 0, contrazicnd ipoteza (I).
89
Din construct ie, se observa ca u
i
= u
i
1
+a
i
1
i
.
(b) Fie u
i
= a(D
si
) i V . Conform primei
part i a demonstrat iei u
i
, i = 1, n, satisfac sis-
temul (). Presupunem ca u = (u
1
, . . . , u
n
) ,=
u = (u
1
, . . . , u
n
). Cum u
s
= u
s
= 0, rezulta ca
exista i ,= s astfel nct u
i
,= u
i
si j V (D
si
),
j ,= i, u
j
= u
j
, unde D
si
este drumul construit
la (a) pentru u
i
. Atunci avem:
u
i
> u
i
= u
i
1
+a
i
1
i
= u
i
1
+a
i
1
i
(din alegerea lui i)
u
i
pentru ca u
i
satisface (*).
Contradict ia gasita arata ca u = u, deci ca u
i
reprezinta costuri de drumuri minime.
90
Observat ii 1. Din demonstrat ie rezulta ca pen-
tru rezolvarea problemei P2 este sucient sa
obt inem o solut ie a sistemului (). Drumurile
corespunzatoare se obt in ca la (a).
Algoritmii pe carei vom prezenta se vor ocupa
de rezolvarea sistemului (). Totusi, daca avem
u
i
= u
k
+a
ki
atunci asa cum am vazut, k este
vrful dinaintea lui i de pe drumul minim de la
s la i de cost u
i
.
Rezulta ca dacan algoritmul de rezolvare a lui
() construim un tablou nainte[1..n] cu com-
ponente din V 0, cu interpretarea nala
nainte[i]=vrful dinaintea lui i de pe drumul
minim de la s la i, atunci vrfurile acestui drum
pot determinate n O(n) construind sirul i,
nainte[i], nainte[nainte[i]],. . . pna se depis-
teaza vrful s.
2. Daca algoritmii de rezolvare a lui () vor
evita (prin modul de actualizare a vectorului
nainte) aparit ia circuitelor de cost total 0, atunci
se observa ca,
91
desi nu mai are loc unicitatea solut iei sistemu-
lui (), problema (P2) este rezolvata. Rezulta
ca acesti algoritmi vor rezolva problema (P2)
n condit ia
(I
) C circuit n G, a(C) 0.
3.
In cazul grafurilor, rezolvarea problemelor
(P1)-(P3) corespunzatoare se poate face uti-
liznd algoritmii pentru digrafuri, prinnlocuirea
ecarei muchii cu o pereche de arce simet-
rice de acelasi cost ca si muchia pe care o
nlocuiesc.
Dicultatea unei astfel de abordari rezulta din
introducerea pentru muchii de cost negativ a
unor circuite de lungime 2 de cost negativ.
Deci, n cazul grafurilor, algoritmii pentru
digrafuri snt valabili doar daca toate cos-
turile snt nenegative.
92
4. Avnd n vedere ca mult imile T
ij
snt nite,
se pot considera probleme analoge problemelor
(P1)-(P3) nlocuind min cu max.
Utilizarea ideii uzuale,
max
xA
x = (min
xA
(x))
prin nlocuirea costurilor a
ij
cu a
ij
este posi-
bila doar n cazul digrafurilor n care pentru
orice circuit C avem a(C) 0.
G
(v
0
) = 0
(altfel, datorita nitudinii digrafului, se poate
construi un circuit); punem ord[v
0
] 1, con-
sideram G G-v
0
si repetam rat ionamentul
(proprietatea de a nu avea circuite se trans-
mite la subdigrafuri induse).
Aarea unei numerotari aciclice a unui digraf
se numeste si sortare topologica ntrucat se
sorteaza mult imea V ntr-un mod compatibil
cu topologia digrafului.
Vom presupune ca digraful este reprezentat
cu ajutorul listelor de adiacent a. Dimensiunea
problemei este O(n +e).
Vom construi un algoritm care sa rezolve prob-
lema n timp O(n +e).
Acest lucru este posibil datorita unei utilizari
judicioase a structurilor de date.
Linia algoritmului:
95
- determinam gradele interioare ale vrfurilor,
parcurgand toate listele de adiacent a (lantalnirea
lui w n lista de adiacent a a unui varf oarecare
v se executa d
G
(w)++ ;
- Parcurgem vectorul d
G
si vrfurile de grad in-
terior 0 le memoramntr-o stiva S
0
;
(a)- scoatem vrful din topul stivei S
0
si-l nu-
merotam;
(b)- scadem 1 din gradele interioare ale vrfurilor
din lista de adiacent a a vrfului tocmai numero-
tat(l scoatem din digraf) ;
(c)-n modicarea anterioara, crearea unui vrf
de grad interior 0 va implica memorarea lui n
stiva S
0
;
(d)- reluam secvent a (a) (c) pna cnd stiva
devine vida.
Daca nu s-au numerotat toate vrfurile rezulta
ca digraful cont ine circuite; n cazul epuizarii
vrfurilor, s-a obt inut numerotarea aciclica dorita
(sortarea topologica).
96
Revenim la rezolvarea problemei P2.
i V \ S u
i
= mina(D
si
) [ D
si
T
si
, V (D
si
) \ S = i
Daca se reuseste construirea lui S astfel nct
S = V , atunci problema e rezolvata.
Init ial, se va considera S = s si n n 1 pasi
se adauga la S cte un nou vrf din V .
98
Algoritmul lui Dijkstra
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
= minu
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
la S nu contrazice (D).
Deci trebuie dovedit ca daca u
j
= minu
j
[ j
V \ S atunci u
j
= mina(D
sj
) [ D
sj
T
sj
.
99
Presupunem ca exista D
1
sj
T
sj
astfel nct
a(D
1
sj
) < u
j
.
Cum S satisface (D), avem
u
j
= mina(D
sj
) [ D
sj
T
sj
, V (D
sj
) \ S =
j
. Rezulta ca V (D
1
sj
) \ S ,= j
.
Fie k primul vrf al drumului D
1
sj
(n parcurg-
erea sa din s) astfel nct k / S.
Atunci a(D
1
sj
) = a(D
1
sk
) +a(D
1
kj
).
Din alegerea lui k, avem V (D
1
sk
) \ S = k si
cum (D) are loc, avem a(D
1
sk
) = u
k
. Obt inem
u
j
> a(D
1
sj
) = u
k
+a(D
kj
) u
k
(costurile snt
nenegative), ceea ce contrazice alegerea lui j
.
Contradict ia obt inuta arata ca, dupa atribuirea
S := S j
) avem
mina(D
sj
) [ D
sj
T
sj
, V (D
sj
) \ (S j
) =
j = min
_
mina(D
sj
) [ D
sj
T
sj
, V (D
sj
) \
S = j, mina(D
sj
) [ D
sj
T
sj
, V (D
sj
) \ S =
j, j
_
.
100
Cum (D) are loc, primul din cele doua minime
de mai sus este u
j
. Fie
j
valoarea celui de-
al doilea minim si e D
1
sj
drumul pentru care
se realizeaza. Cum j
V (D
1
sj
), avem
j
=
a(D
1
sj
) +a(D
1
j
j
).
Intruct S j
j
).
Daca drumul D
1
j
j
este de lungime 1 atunci
avem
j
= u
j
+a
j
j
.
Altfel, considernd k vrful dinaintea lui j de
pe drumul D
1
sj
avem k ,= j
, k S si
j
=
a(D
1
sk
) + a
kj
. Cum S j
satisface prima
parte a lui (D), obt inem
j
= u
k
+a
kj
.
j
< u
j
, situat ie testata
n ciclul for al pasului 2.
Rezulta ca (D) are loc pe tot parcursul algo-
ritmului si deci valorile nale ale variabilelor
u
i
reprezinta solut ia sistemului (). Evident,
tabloul nainte este actualizat pentru memo-
rarea implicita a drumurilor de cost minim.
Complexitatea timp a algoritmului, n de-
scrierea data este O(n
2
) datorita selectarii min-
imelor din pasul 2.
Este posibila organizarea unor cozi cu priori-
tate (de exemplu heap-urile) pentru a memora
valorile u
i
, i U = V \S, astfel nct extragerea
minimului sa se faca n O(1), iar actualizarile
necesare n pasul 2 sa se faca n timpul to-
tal de O(mlogn) unde m = [E[ (executandu-
se O(m) descresteri de valori u
i
, ecare nece-
sitand O(logn) operat ii; Johnson ,1977).
102
Cea mai buna implementare se obt ine utilazand
heap-uri Fibonacci, ceea ce conduce la o com-
plexitate timp de O(m + nlogn) (Fredman si
Tarjan, 1984).
Opadure cu radacini ( rooted forest) este un
digraf aciclic D = (V, A) cu proprietatea ca
ecare varf are gradul interior cel mult 1.
Varfurile de grad interior 0 sunt radacinile lui
D, iar cele cu grad exterior 0 sunt frunzele lui
D.
Daca uv A atunci u este parintele lui v iar v
este copilul lui u.
Daca padurea are o singura radacina, atunci
ea este un arbore cu radacina.
O padure Fibonacci este o padure cu radacini
F = (V, A) n care copiii ecarui varf v pot
ordonat i astfel ncat copilul numarul i are la
randul sau cel put in i 2 copii.
103
Teorema.
Intr-o padure Fibonacci F = (V, A)
ecare varf are cel mult 1 +2log[V [ copii.
Dem. Notam cu (v) numarul varfurilor acce-
sibile din vn F (ordinul subarborelui cu radacina
v).
Aratam ca (v) 2
(d
+
(v)1)/2
, care va implica
prin logaritmare armat ia din enunt ul teore-
mei.
Se observa ca inegalitatea precedenta are loc
pentru v frunza, asa ca utilizam un rat ionament
inductiv.
Fie k = d
+
(v) si e v
i
copilul numarul i al lui
v (i = 1, . . . , k).
Avem, (v
i
) 2
(d
+
(v
i
)1)/2
2
(i1)/2
, ntrucat
d
+
(v
i
) i 2.
Deci (v) = 1+
k
i=1
(v
i
) 1+
k
i=1
2
(i3)/2
2
(k1)/2
, si teorema e demonstrata.
104
Un heap Fibonacci cont inand valorile reale
(u
j
; j U) este o padure Fibonacci F = (U, A)
(ecare varf j are ordonat i copii astfel ncat
copilul numarul i are cel put in i2 copii)n care
este precizata o mult ime T U astfel ncat:
( i) daca jk A atunci u
j
u
k
;
(ii) daca h este copilul numarul i al lui j si h , T
atunci h are cel put in i 1 copii;
(iii) daca j
1
si j
2
sunt doua radacini distincte
atunci d
+
(j
1
) ,= d
+
(j
2
).
Teorema anterioara ne asigura ca numarul
radacinilor nu va depasi 2 +2log[U[.
Heapul Fibonacci va reprezentat cu ajutorul
urmatoarei structuri de date:
- cate o lista dublu nlant uita C
j
a copiilor
ecarui j U;
-funct ia p : U U, unde p(j) = parintele lui j
(daca j e radacina p(j) = j);
105
-funct ia d
+
: U N;
-funct ia b : 0, . . . , t U (cu t = 1+2log[U[)
cu proprietatea ca b(d
+
(j)) = j pentru ecare
radacina j;
-funct ia l : U 0, 1 cu l(j) = 1 daca si nu-
mai daca j T.
Teorema. Pentru gasirea si stergerea de n ori
a unui j care minimizeaza u
j
si descresterea de
m ori a unei valori u
j
, structura de date poate
actualizatan timpul O(m+p+nlogp), unde
p este numarul de varfuri din padurea init iala.
Dem. Pentru gasirea unui j care minimizeaza
u
j
este sucient sa parcurgem u
b(i)
pentru i =
0, . . . , t, deci n O(logp). Un astfel de element
j (cu u
j
minim) se poate sterge astfel:
-e v
1
, . . . , v
k
copii lui j;
-stergem j si arcele ce ies din j din padure;
-acum v
1
, . . . , v
k
au devenit radacini, iar condit iile
(i) si (ii) nu-s afectate;
106
-pentru repararea condit iilor (iii) se executa
pentru ecare r = v
1
, . . . , v
k
:
repara(r): daca s radacina cu d
+
(r) = d
+
(s)
atunci: daca u
r
u
s
, adauga s ca ultim copil
al lui r si repara(r), altfel ( u
r
> u
s
), adaua r
ca ultim copil al lui s si repara(s).
n algoritm ast-
fel: u
j
+g(j
) = minu
j
+g(j) [ j V \ S.
Algoritmul ramne valabil (demonstrat ia este
identica situat iei g(i) = 0 i si se foloseste (ii)
repetat).
Avantajul este acela ca se vor introduce n S
vrfuri care sa ne apropie de t.
else if u
j
> u
i
+a
ij
then
u
j
u
i
+a
ij
nainte(j) i
if NEXT ,= then
determina d = minu
i
[ i NEXT;
transfera i NEXT cu u
i
= d n NOW
112
Rezolvarea problemei (P2) n cazul gen-
eral.
Daca exista ij E astfel nct a
ij
< 0, algorit-
mul lui Dijkstra nu mai este valabil n general
(introducerea lui j
Inainte=(nainte(i,j))
nn
cu elementele avnd
semnicat ia
nainte(i,j)=vrful dinaintea lui j de pe drumul
de cost minim de la i la j n G.
Sa observam ca daca a
ij
0 ij, atunci, iternd
algoritmul lui Dijkstra pentru s 1, . . . , n, se
obt ine un algoritm de complexitate O(n
3
).
117
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.
Solut ia I
a
.
Fie : V R a. . ij E (i) +a
ij
(j).
Consideram a : E R
+
data de
a
ij
= a
ij
+(i) (j), ij E.
Avem a
ij
0 si, n plus, oricare ar D
ij
T
ij
,
(2) a(D
ij
) = a(D) +(i) (j).
Rezulta ca se poate itera algoritmul lui Dijkstra
pentru obt inerea drumurilor de cost a minim si
din relat ia (2) se observa ca un drum este de
cost a minim daca si numai daca este drum de
cost a minim. Rezulta urmatorul algoritm:
118
1. Determina si construieste A.
2. Rezolva (P3) pt. A construind U si
Inainte.
3. Determina U (u
ij
:= u
ij
(i) +(j) ij).
Pasul 2 al algoritmului necesita O(n)
3
) operat ii
prin iterarea algoritmului lui Dijkstra.
Pasul 1 se poate realizan timpul O(n
3
), xnd
s V si rezolvnd (P2) cu alg. Bellman-Ford.
In adevar, daca (u
i
, i V ) este solut ie a lui
(P2), atunci (u
j
, j V ) este solut ie a sistemu-
lui () u
j
= min
i, =j
u
i
+ a
ij
, adica ij E
u
j
u
i
+a
ij
, sau, a
ij
+u
i
u
j
0.
Deci, se poate considera (i) = u
i
i V .
Solut ia a II
a
.
Fie
u
m
ij
= mina(D
ij
) [ D
ij
T
ij
, V (D
ij
) \ i, j
1, 2, . . . , m1 i, j 1, 2, . . . , n, m = 1, n +1.
119
Atunci, evident u
1
ij
= a
ij
i, j V (presupunem
matricea A avnd elementele diagonale egale
cu 0).
In plus,
u
m+1
ij
= minu
m
ij
, u
m
im
+u
m
mj
i, j V, m = 1, . . . , n.
Aceasta ultima relat ie se poate justica induc-
tiv: un drum de cost minim de la i la j care nu
are vrfuri interioare m poate sa nu cont ina
vrful m, si atunci are costul u
m
ij
, sau poate
cont ine vrful m, si atunci, din principiul op-
timalitat ii al lui Bellman si ipoteza inductiva,
este u
m
im
+u
m
mj
.
Evident, daca se obt ine u
m
ii
< 0 atunci digraful
cont ine un circuit de cost negativ C care trece
prin vrful i, cu V (C) \ i 1, . . . , m1.
Aceasta solut ie a problemei (P3) este cunos-
cuta ca algoritmul lui Floyd-Warshal si poate
descris astfel:
120
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
In gura alaturata, D
1
: a, v, u, t, c si D
2
: a, d
sunt singurele XY -drumuri ce pornesc din a :
a
b
c
d
v
u
t
X
Y
Vom nota cu T(X, Y ; G) mult imea tuturor XY -
drumurilor n G.
Sa observam ca daca x X Y atunci drumul
de lungime 0 D = x este XY -drum.
125
Vom spune ca drumurile D
1
si D
2
snt disjuncte
daca V (D
1
) V (D
2
) = .
Probleme practice evidente, din ret elele de co
municat ie, dar si unele probleme legate de conex-
iunea grafurilor si digrafurilor, necesita deter-
minarea unor mult imi de XY -drumuri disjuncte
si cu numar maxim de elemente.
Vom nota cu p(X, Y ; G) numarul maxim de
XY -drumuri disjuncte n (di)graful G.
Teorema care precizeaza acest numar a fost
stabilita de Menger n 1927 si constituie unul
din rezultatele fundamentale din teoria grafu-
rilor.
Denit ie. Fie G = (V, E) un digraf si X, Y
V . Numim mult ime XY-separatoare n G o
mult ime Z V astfel nct D T(X, Y ; G)
V (D) Z ,= .
126
Notam cu
S(X, Y; G) = Z [ Z XY -separatoare n G
si cu
k(X, Y; G) = min[Z[; Z S(X, Y ; G).
Din denit ie, rezulta urmatoarele proprietat i
imediate ale mult imilor XY -separatoare:
(a) Daca Z S(X, Y ; G) atunci D T(X, Y ; G)
D nu este drumn GZ.
(b) X, Y S(X, Y ; G).
(c) Daca Z S(X, Y ; G) atunci A astfel nct
Z A V avem A S(X, Y ; G).
(d) Daca Z S(X, Y ; G) si T S(X, Z; G) sau
T S(Z, Y ; G) atunci T T(X, Y ; G).
127
Proprietatea (d) este esent iala pentru obt inerea
teoremei urmatoare si este evident iata mai jos
X
Y
T
Z
Teorema. 1. Fie G = (V, E) (di)graf si X, Y
V . Atunci
p(X, Y ; G) = k(X, Y ; G).
Demonstrat ie: 1
0
. Daca p = p(X, Y ; G) si
D
1
, D
2
, . . . , D
p
snt XY -drumuri disjuncte n G,
atunci Z S(X, Y ; G) avem Z V (D
i
) ,= si
cum D
i
snt disjuncte (i = 1, p):
[Z[ [Z
p
i=1
V (D
i
)[ =
i=1,p
[Z V (D
i
)[
i=1,p
1 = p.
Deci Z S(X, Y ; G) [Z[ p; n particular
k(X, Y ; G) p(X, Y, G).
128
2
0
. Aratam prin induct ie dupa a(G) = [V [ +[E[
ca G = (V, E) X, Y V
() k(X, Y ; G) XY -drumuri disjuncte n G.
(Evident, din () rezulta ca
p(X, Y ; G) k(X, Y ; G) si deci, mpreuna cu
1
0
, teorema e demonstrata).
Cum () se verica pentru (di)grafuri G cu
a(G) = 1, 2, consideram n pasul inductiv ca
() are loc pentru orice (di)graf G
si orice
X
, Y
V (G
), cu a(G
= G e. Avem a(G
, X si Y .
Daca k(X, Y ; G
) < k, atunci n G
exista Z
XY -separatoare cu [Z
[ < k).
Singurele XY -drumuri pe care Z nu le inter-
secteaza snt cele care au drept prima muchie
(arc) pe e.
Din denit ia lui k, rezulta ca x / Z
, y / Z
si
[Z
x[ = [Z
y[ = k.
Din alegerea lui x si y avem Z
x ,= Y si
Z
y ,= X.
Din ipoteza cazului 2, rezulta atunci ca
Z
x = X si Z
y = Y .
Cele k drumuri din () snt n acest caz
z
zZ
si (x, xy, y).
x y
Z
e
X
Y
Cu acestea, teorema este demonstrata.
133
Observat ii: 1
0
. Egalitatea min-max din enunt ul
teoremei este interesanta si conduce, asa cum
vom vedea, la rezultate importante, n cazuri
particulare.
2
0
Teorema se poate demonstra si algoritmic
ca o consecint a a teoremei uxului maxim-
sect iunii minime, asa cum vom arata n capi-
tolul relativ la probleme de ux.
Forma echivalenta n care a fost enunt ata si
demonstrata init ial de Menger (1927) teorema
1 este:
Teorema. 1. 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 graful G
daca si numai daca ndepartnd mai put in de k
vrfuri diferite de s si t, n graful ramas exista
un drum de la s la t.
134
Notam ca doua drumuri snt intern disjuncte
daca nu au vrfuri comune cu except ia extremitat ilor.
Se observa ca daca se considera X = N
G
(s) si
Y = N
G
(t) (respectiv, N
+
G
(s) si N
G
(t) n cazul
digrafurilor) teorema 1 se obt ine imediat din
teorema 1.
s t
X
Y
Reciproc, o construct ie inversa celei de mai sus
asupra tripletului G, X, Y din teorema 1, arata
ca teorema 1 se obt ine din teorema 1.
135
Am denit un graf G p-conex (p N
) daca
G = K
p
sau daca [G[ > p si G nu poate
deconectat prin ndepartarea a mai put in de p
vrfuri. Utiliznd teorema 2 obt inem
Corolar. 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)
problema care vom dovedi ca se poate rezolva
n timp polinomial.
Un caz particular interesant al teoremei 1, se
obt ine atunci cnd G este un graf bipartit iar X
si Y snt cele doua clase ale bipartit iei:
136
Teorema. 2. (Konig, 1931) 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 incidente cu
toate muchiile grafului.
Demonstrat ie: Evident, cardinalul maxim al
unui cuplaj n G este
p(S, R; G), care este egal, conform teoremei 1,
cu k(S, R; G).
Teorema rezulta imediat daca observam ca o
mult ime de vrfuri este SR-separatoare daca si
numai daca este incidenta cu orice muchie a
grafului.
O aplicat ie, fundamentala n numeroase rat ionamente
combinatorii, a acestei teoreme este teorema lui Hall
(1935).
Denit ie: Fie I si S mult imi nite nevide. Nu-
mim familie de submult imi ale lui S (indexata
dupa I) orice aplicat ie , : I 2
S
. Vom nota
familia , = (A
i
; i I) si vom folosi notat ia
funct ionala uzuala
,(J) =
jJ
A
j
(pentru J I).
137
Daca , = (A
i
; i I) este o familie de submult imi
ale lui S, o funct ie r
,
: I S cu proprietatea
ca r
,
(i) A
i
, i I se numeste funct ie de
reprezentare pentru familia ,.
In acest caz, (r
,
(i); i I) formeaza un sistem
de reprezentant i ai familiei A.
Daca funct ia de reprezentare r
,
este injec-
tiva atunci r
,
(I) S se numeste sistem de
reprezentant i distinct i ai familiei ,, sau transver-
sala.
Problema centralan teoria transversalelor este
aceea de a caracteriza familiile , care admit
transversale (eventual cu anumite proprietat i).
Prima teorema de acest tip a fost stabilita de
Hall n 1935:
138
Teorema. 3. Familia , = (A
i
; i I) de submult imi
ale lui S admite o transversala daca si numai
daca
(H) [,(J)[ [J[ J I.
Demonstrat ie: Necesitatea este evidenta: daca
, admite o funct ie r
,
de reprezentare injectiva
atunci J I r
,
(J) ,(J) si deci [,(J)[
[r
,
(J)[ [J[ (ntruct r
,
este injectiva).
Sucient a. Consideram graful bipartit G
,
=
(I, S; E) unde am presupus I S = (altfel,
se considera copii izomorfe disjuncte) iar E =
is [ i I, s S s A
i
. Se observa ca
N
G
,
(i) = A
i
si ca , are o transversala daca
si numai daca G
,
are un cuplaj de cardinal
[I[.
In ipoteza ca (H) are loc, aratam ca orice
mult ime de vrfuri incidenta cu toate muchiile
lui G
,
are macar [I[ elemente,
139
ceea ce dovedeste existent a cuplajului de car-
dinal [I[ (utiliznd teorema 2).
Fie X = I
) S
, adica ,(I I
) S
. Atunci, [X[ =
[I
[ +[S
[ [I
[ +[,(I I
[ +[,(I
I
)[ [I
[ +[I I
[ = [I[.
I
S
I
S
140
O alta teorema celebra care poate obt inuta
ca o consecint a imediata a teoremei 2 este teo-
rema lui Dilworth, 1950.
Preferam totusi, o demonstrat ie directa, pen-
tru a evident ia asemanarea cu cea a teoremei
1. Fie (P, ) o mult ime nita part ial ordonata
( este o relat ie de ordine pe P ).
Daca x, y P, spunem ca x si y snt compara-
bile daca x y sau y x.
Un lant n (P, ) este o submult ime L a lui P
cu proprietatea ca orice doua elemente ale sale
snt comparabile.
Un antilant n (P, ) este o submult ime A a lui
P cu proprietatea ca x, y A x y x = y.
Teorema. 4. (Dilworth, 1950) Daca (P, )
este o mult ime part ial ordonata nita, atunci
numarul minim de lant uri a caror reuniune (dis-
juncta) este P este egal cu cardinalul maxim
al unui antilant .
141
Demonstrat ie. Fie a(P, ) cardinalul maxim al
unui antilant al lui (P, ).
Aratam prin induct ie dupa [P[, ca exista a(P, )
lant uri a caror reuniune este P (inegalitatea
inversa este imediata).
Dcaa [P[ = 1, armat ia este triviala, deci pre-
supunem, n pasul inductiv, ca teorema are loc
pentru orice mult ime part ial ordonata cu mai
put in de [P[ 2 elemente.
Fie L un lant maximal (n raport cu incluzi-
unea) al lui P.
Daca a(P L, ) = a(P, )1, atunci teorema
are loc din ipoteza inductiva.
Deci, presupunem can P L exista un antilant
A = a
1
, a
2
, . . . , a
m
cu m = a(P, ). Fie
P
= x [ x P, a
i
A : x a
i
P
+
= x [ x P, a
j
A : a
j
x.
Se observa ca P = P
P
+
, P
P
+
= A si ca
[P
[, [P
+
[ < [P[ [ elementul maximal (minimal
) al lui L nu apart ine lui P
(respectiv, P
+
)].
142
L
a
a
a
1
2
m
A
P
-
P
+
Se poate, deci, aplica ipoteza inductiva pentru
a scrie
P
=
i=1,m
L
i
L
i
lant a
i
L
i
i = 1, m
P
+
=
i=1,m
L
+
i
L
+
i
lant a
i
L
+
i
i = 1, m.
In plus, a
i
este element maximal n L
i
si ele-
ment minimal n L
+
i
.
Rezulta ca (L
i
L
+
i
)
i=1,m
snt cele a(P, )
lant uri a caror reuniune este P.
143
Structura grafurilor p-conexe.
Lema. 1. Fie G = (V, E) p-conex, [V [ p+1,
U V [U[ = p si x V U. Exista n G p xU-
drumuri cu singurul vrf comun x.
Demonstrat ie: Consideram graful G
= (V
z, E
), unde E
= E zy [ y U.
x
z
U
G
G
este p-conex.
In adevar, A cu [A[ p 1
G
A) ).
Lema rezulta, aplicnd teorema 1 grafului G
si perechii x, z.
144
Lema. 2. Daca G = (V, E) este un graf p-
conex p 2, atunci oricare ar doua muchii
e
1
si e
2
si p 2 vrfuri x
1
, x
2
, . . . , x
p2
exista un
circuit n G care le cont ine.
Demonstrt ie: Induct ie dupa p.
Daca p = 2, trebuie sa dovedim can orice graf
2-conex, prin orice doua muchii trece un cir-
cuit. Consideram G
) (E
In adevar, daca T
G
,= , atunci exista un arbore
part ial T = (V, E
152
Se observa ca T
k
este arbore k = 1, n
(inductiv, daca T
k
este arbore, atunci din construct ie
T
k+1
este conex si nu are circuite)
si, n plus, se verica imediat ca:
[V (T
k
)[ = k iar [E(T
k
)[ = k1 k = 1, 2, . . . , n.
Aceasta demonstrat ie aplicata unui arbore G
cu n vrfuri dovedeste ca G are n 1 muchii.
Proprietatea obt inuta poate folosita pentru
completarea teoremei 1 cu alte caracterizari ale
arborilor:
Teorema. 1. 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.
153
2. Numararea si enumerarea arborilor part iali
Familia T
G
a arborilor part iali ai unui (multi)graf
are proprietat i interesante. Vom prezenta o
metoda (tip backtrack) de generare a ele-
mentelor lui T
G
, problema de interes practic
n multe aplicat ii (de exemplu, n chimie).
Fie G = (V, E), V = 1, 2, . . . , n, [E[ = m.
Reprezentam E printr-un tablou E[1..m, 1..2]
cu componente din V cu semnicat ia ca daca
v = E[i, 1] si w = E[i, 2], atunci vw este muchia
i a grafului G ( i = 1, m ).
Vom presupunen plus, ca primele d
G
(v
0
) muchii
din tabloul E satisfac E[i, 1] = v
0
unde v
0
V
este un vrf oarecare. Exemplu:
1
4
5
6
2
3
a b
d c
1
2
3
4
5
6
c
c
c
a
a
b
a
d
b
d
b
d
E
154
Un arbore part ial T T
G
va identicat cu
mult imea indicilor ce reprezinta muchiile sale
n tabloul E (submult ime a lui 1, . . . , m de
cardinal n 1).
Pe tot parcursul generarii dispunem de un vec-
tor global T[1..n1] cu componente din mult imea
1..m si de un indicator i avnd semnicat ia: n
arborele curent care se construieste, primele
i 1 muchii snt
T[1] < T[2] < . . . < T[i 1] (i 1, . . . , n).
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.)
155
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:
159
(n cuvinte, arborele cu radacina x se uneste
cu arborele cu radacina rad[w]; se salveaza n
S vrfurile arborelui cu radacina x).
Dupa apelul lui generare-arbori-part iali(i + 1)
trebuie refacut vectorul rad la valoarea dinainte
de apel, deci se va nlocui B: cu
for u S do rad[u] := x;
Numarul elementelor lui T
G
, problema intere-
santa chiar si numai pentru analiza algorit-
mului precedent, se poate determina ecient.
Prezentamn continuare una din solut iile posi-
bile.
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)).
160
Matricea L[G] = D A se numeste matricea
de admitant a a multigrafului G sau ma-
tricea Laplace a lui G.
Sa observam ca n L[G] suma elemetelor de pe
ecare linie si ecare coloana este 0.
Teorema. 2. (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 prin
ndepartarea liniei i si coloanei j.
Demonstrat ia (pe care o omitem) se bazeaza
pe regula clasica de dezvoltare a unui determi-
nat dupa o linie, dupa descompunerea lui T
G
n
arborii care cont in o muchie xata si cei care
nu cont in aceeasi muchie.
161
Corolar.
T
K
n
= n
n2
(Cayley).
In adevar,
L[K
n
] =
_
_
_
_
_
n 1 1 . . . 1
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 1
1 . . . 1 n 1
_
_
_
_
_
si (dupa un simplu calcul):
det(L[K
n
]
11
) =
n 1 1 . . . 1
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 1
1 . . . 1 n 1
= n
n2
.
(Daca n = 4, caz ilustrat n gura precedenta, se obt ine
T
K
4
= 4
2
= 16, adica au fost generat i tot i arborii !)
Observat ie. Teorema ofera un algoritm poli-
nomial de determinare a lui [T
G
[.
162
3. Arbori part iali de cost minim.
Consideram urmatoarea problema:
(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).
Algoritmii cunoscut i pentru rezolvarea proble-
mei (P1) au la baza urmatoarea ideie:
Se considera init ial, familia T
0
= (T
0
1
, T
0
2
, . . . , T
0
n
)
de arbori disjunct i T
0
i
= (i, ) i = 1, n (am
presupus, ca de obicei ca V = 1, 2, . . . , n) .
= v
s
v
j
unde v
j
V (T
k
j
) j
,= s.
- T
k+1
= (T
k
\ T
k
s
, T
k
j
la care adaugam
muchia e
.
T
s
k
T
j*
k
v
s
v
j*
Se verica imediat ca noua familie este formata
din arbori disjunct i care partit ioneaza mult imea
de vrfuri ale grafului G. Daca alegerea muchiei
e
).
) va implica T
n1
1
= T
(cei
doi arbori avnd acelasi numar de muchii, rezulta
ca incluziunea are loc cu egalitate) si teorema
e demonstrata.
Pentru k = 0, armat ia este trivial adevarata:
E(T
0
) = si din conexiunea grafului G, T
G
este nevida deci exista T
solut ie a problemei
P1.
165
Daca armat ia este adevarata pentru 0 k
n 2, atunci avem E(T
k
) E(T
) (T
arbore
part ial de cost minim) si
E(T
k+1
) = E(T
K
) e
.
Daca e
E(T
/ E(T
). Atunci T
+
e
= v
s
v
j
. Cum v
j
/ V (T
k
s
) rezulta
ca C va cont ine o muchie e
1
,= e
cu o ex-
tremitate n V (T
k
s
) si cealalta n V \ V (T
k
s
).
Din alegerea muchiei e
, avem c(e
) c(e
1
) si
e
1
E(T
) \ E(T
k
).
T
s
k
v
s
v
j*
C
T*
166
Fie T
1
= (T
+e
) e
1
.
T
1
T
G
(este conex si are n-1 muchii).
Din construct ie, avem ca E(T
k+1
) E(T
1
).
In plus, c(T
1
) = c(T
) + c(e
) c(e
1
) c(T
)
deci c(T
1
) = c(T
), adica T
1
este de cost minim
si teorema e demonstrata.
Observat ii:
1
0
Demonstrat ia anterioara ramne valabila pen-
tru funct ii de cost c : T
G
R astfel nct:
T T
G
, e E(T), e
/ E(T)
c(e
) c(e) c((T +e
) e) c(T).
2
0
In algoritmul descris nu s-a precizat modul
de alegere al arborelui T
k
. Vom considera, n
continuare doua strategii de alegere a acestui
arbore.
167
Algoritmul lui Prim(1957) (implementarea
este datorata lui Dijkstra, 1961).
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 n k 1
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:
(S)
j V V
s
,
_
j
= c([j]j) = minc(ij) [ i V
s
, ij E.
T
s
v
u
w
x
alfa(u)
alfa(w)
alfa(v)
beta(v)
beta(w)
beta(u)
beta(x)=+infinit
Descrierea algoritmului:
168
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
i ++
172
Complexitatea algoritmului va depinde de modul
de implementare a funct iei find si procedurii
union.
Solut ia I
a
. Consideram tabloul rad[1..n] cu
componente din V cu semnicat ia
rad[v] =radacina arborelui ce memoreaza
mult imea la care apart ine vrful v.
Adaugam pasului 1, init ializarea
1.3 for v V do rad[v] v;
care corespunde familiei T
0
. Funct ia find are
n acest caz complexitatea O(1) si este:
function find(v : V );
return rad[v]
173
Procedura union necesita O(n) operat ii:
procedure union(v, w : V );
variabila locala i : V ;
for i V do
if rad[i] = rad[v] then rad[i] := rad[w]
Pasul 2 al algoritmului necesita O(m) apeluri
ale funct iei find (exact m asa cum l-am descris,
sau O(m) daca se introduce si un test asupra
cardinalului mult imii T curente).
i ++
175
Deci, procedura union va apelata numai pen-
tru argumente reprezentnd radacini de arbori
diferit i:
procedure union(v, w : V );
pred[v] w
Evident, complexitatea procedurii union este
O(1). Funct ia, find esten acest caz mai com-
plicata:
function find(v : V );
variabila locala i : V ;
i v;
while pred[i] > 0 do i pred[i];
return i
Complexitatea lui find(v) este O(h(v)) unde
h(v) este lungimea drumului (din arbore) de la
vrful v la radacina arborelui care-l cont ine pe
v.
176
Daca graful G este K
1,n1
desenat mai jos, si
lista ordonata a muchiilor E = 12, 13, . . . , 1n,
atunci execut ia algoritmului provoaca urmatorul
sir de apeluri ale procedurii union(U) si funct iei
find(F):
F(1), F(2), U(1, 2), F(1), F(3), U(2, 3), . . . , F(1), F(n),
U(n 1, n).
1 2 3 n
F(1) F(n) U(n-1,n)
n
1
3 1 2 3 n
2 1 2 3 n
1 2 3 n
F(1) F(2) U(1,2)
F(1) F(4) U(3,4)
4
4
4 n-1
F(1) F(3) U(2,3)
Apelurile F(i)(i > 1) si U(i, i + 1) i 1 nece-
sita n total O(n) operat ii. Sirul de F(1) nece-
sita nsa O(1) +O(2) + +O(n1) = O(n
2
)
operat ii.
Este deci posibil ca pasul 2 al algoritmului n
aceasta implementare sa e de complexitate
(n
2
) chiar daca graful este rar.
177
Decient a acestei implementari este datorata
posibilitat ii ca n procedura union sa declaram
radacina noua pentru cei doi arbori pe cea a
celui cu mai put ine vrfuri, ceea ce are ca efect
posibilitatea ca h(v) sa devina mare (O(n)) pe
parcursul algoritmului.
Acest defect poate evitat daca, la execut ia
lui union t inem seama de cardinalul celor doua
mult imi.
Se poate memora cardinalul unei mult imi n
componenta tabloului pred corespunzatoare rada
cinii arborelui care memoreaza acea mult ime.
Mai precis, consideram init ializarea
1.3 for v V do predd[v] 1;
si modicam procedura union astfel nct sa
asiguramndeplinirea condit iei
pred[v] < 0 v este radacina a unui arbore
si pred[v] este cardinalul mult imii memo-
rate n el.
178
Procedura union are, n acest caz, tot com-
plexitatea O(1), dar selecteaza drept noua radacina
pe cea care corespunde arborelui cu mai multe
vrfuri:
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
Cu aceasta implementare a funct iei find si pro-
cedurii union, pe tot parcursul algoritmului are
loc:
() v V pred[find(v)] 2
h(v)
(reamintim ca h(v) noteaza lungimea drumu-
lui de la v la radacina find(v) a arborelui ce
memoreaza v ).
179
Dupa init ializarea 1.3, v V h(v) = 0 si
find(v) = v iar pred[v] = 1, deci (*) are loc
cu egalitate.
Daca, naintea unei iterat ii din pasul 2, (*) are
loc, atunci, daca n acea iterat ie nu se executa
union, nu se modica tabloul pred si deci (*)
ramne valabila si dupa execut ie.
Presupunem prin urmare ca se apeleaza
union(x, y) si ca se executa pred[y] := x.
Aceasta nseamna ca naintea acestei iterat ii
avem pred[x] pred[y]. Sa observam ca
singurele vrfuri v carora li se modica h(v)
dupa execut ia iterat iei curente snt cele care
naintea iterat iei satisfaceau find(v) = y, pen-
tru care aveam pred[y] 2
h(v)
.
Dupa execut ia iterat iei avem h
(v) = h(v) +
1 iar find
[x] 2
h
(v)
. Avem pred
[x] =
pred[x] pred[y] 2 (pred[y]) 2 2
h(v)
=
2
h(v)+1
= 2
h
(v)
.
180
Rezulta ca (*) are loc pe tot parcursul algorit-
mului, deci, prin logaritmare obt inem
v V h(v) log(pred[find[v]]) logn.
Complexitatea pasului 2 va deci O(n 1 +
2mlogn) = O(mlogn) si deci tot algoritmul
are complexitatea O(mlogn) ceea ce-l face su-
perior algoritmului lui Prim pentru grafuri rare.
Solut ia a III
a
. Complexitatea pasului 2, cu
implementarea precedenta, este datorata apeluri
lor succesive ale lui find.
Tarjan (1976) a propus ca ecare apel al lui
find care necesita parcurgerea unui drum de
lungime mai mare dect 1, sa distruga acest
drum, aducndu-i vrfurile drept descendent i imedi
at i ai radacinii, cu scopul ca apelurile viitoare
ale lui find pentru aceste varfuri sa nu mai
consume timp. Mai precis, avem
181
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
Daca A : NxN N este funct ia lui Ackermann data
de:
A(i, o) = 0 i 0;
A(i, 1) = 2 i 1;
A(0, x) = 2x x 0;
A(i +1, x +1) = A(i, A(i +1, x)) i 0 x 1,
atunci, considernd m n > 0
(m, n) = minz [ A
_
z, 4m/n
_
logn, z 1
avem:
Complexitatea pasului 2, utiliznd union din solut ia
a II-a si find descris mai sus, este O(m (m, n)).
Notam ca (m, n) creste extrem dencet (pentru valorile
practice ale lui n, (m, n) 3) si deci se poate presupune
ca aceasta ultima implementare este practic liniara (n
raport cu m).
182
IV. Cuplaje (de cardinal maxim).
Fie G = (V, E) un (multi)graf. Daca A E si
v V , vom nota cu
d
A
(v) = [e [ e A, e incidenta cu v[,
adica gradul vrfului v n graful part ial < A >
G
.
Denit ie. Se numeste cuplaj (sau mult ime
independenta 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.
Se observa ca /
G
satisface proprietat ile:
i) /
G
.
ii) M /
G
, M
M M
/
G
.
Daca M /
G
atunci un vrf v V cu d
M
(v) =
1 se numeste saturat de cuplajul M. Mult imea
S(M) a vrfurilor saturate de cuplajul M n
graful G, satisface [S(M)[ = 2[M[.
183
Daca d
M
(v) = 0, atunci v se numeste ex-
pus fat a de cuplajul M . Mult imea E(M) a
vrfurilor expuse fat a de cuplajul M satisface
E(M) = V S(M) si [E(M)[ = [V [ 2[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 cu (G) = max[M[ [ M /
G
).
Problema cuplajului maxim este strns legata
de problema acoperirii minime.
Denit ie. Se numeste acoperire (a vrfurilor
cu muchii) n graful G orice mult ime F E de
muchii cu proprietatea 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).
184
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
[ +[F
[ = n.
Demonstrat ie: a) Fie M
un cuplaj de cardinal
maxim. Consideram urmatorul algoritm:
F M
;
for v E(M) do
determina v
S(M
) astfel nct vv
E;
F F vv
185
Sa observam ca pentru v E(M
), cum G nu
are vrfuri izolate, exista o muchie incidenta cu
v, si cum M
[ +[E(M
)[ = [M
[ +n 2[M
[ = n [M
[.
Rezulta ca [F
[ [F[ = n [M
[.
b) Fie F
while v V : d
M
(v) > 1 do
determina e M incidenta cu v;
M M e
,
186
atunci d
M
(v
se poatenlatura
muchia e si sa obt inem tot o acoperire, con-
trazicnd alegerea lui F
).
Deci daca M este cuplajul construit de algoritm
avem: [F
[ = n [M[ n [M
[.
Din (a) si (b) rezulta concluzia teoremei.
Demonstrat ia facuta arata, chiar mai mult, ca
problemele (P1) si (P2) snt polinomial echiva-
lente, cuplajul M si acoperirea F construite -
ind si ele solut ii optime respectiv pentru cele
doua probleme.
187
Daca vom considera matricea de incident a
(vrf - muchie) a grafului G cu n vrfuri si m
muchii B = (b
ij
)
nm
cu b
ij
= 1 daca vrful i
si muchia j snt incidente si b
ij
= 0 altminteri
(ntr-o ordonare xata a vrfurilor si muchiilor),
si daca notam cu e
p
vectorul p-dimensional cu
toate componentele 1, atunci cele doua prob-
leme se scriu analitic astfel
P1 maxe
T
m
x[Bx e
n
, x 0, x
i
0, 1 i = 1, m
P2 mine
T
m
x[Bx e
n
, x 0, x
i
0, 1 i = 1, m
si teorema 1 ofera o egalitate min-max intere-
santa.
) maxe
m
x [ Bx e
n
, x 0
se constata ca solut iile optime pot sa nu e
cu componente ntregi si, chiar mai mult, val-
oarea maxima determinata de (LP1) sa e su-
perioara lui (G).
Cel mai simplu exemplun acest sens este G =
C
2n+1
. Evident, (C
2n+1
) = n si totusi x
i
=
1
2
i = 1, 2n + 1 este o solut ie optima a lui
(LP1) corespunzatoare, cu valoarea optima
n +
1
2
> n.
1 / 2
1 / 2
1 / 2
1 / 2
1 / 2
189
Rezulta ca existent a circuitelor imparen graful
G poate provoca dicultat i n rezolvarea prob-
lemei (P1). Mai precis, avem urmatoarea teo-
rema:
Teorema. 2. (Balinski 1971) Vrfurile poli-
topului Bx e
n
, x 0, x R
m
, au coordo-
natele 0, 1 si
1
2
. Coordonatele
1
2
apar daca si
numai daca G are circuite impare.
Rezulta de aici ca, n cazul grafurilor bipartite, problema
(P1) este usor de rezolvat: se apeleaza la problema de
programare (LP1) si solut ia gasita este solut ie optima
pentru problema P1 (reprezentnd vectorul caracteristic
al unui cuplaj). Adaptarea combinatorie a algoritmu-
lui simplex din programarea liniara, direct pe graful bi-
partit considerat (n scopul unei economii de memorie,
tablourile simplex snt reprezentate implicit) a condus la
asa numita metoda ungara de rezolvare a problemei
(P1) pentru grafurile bipartite. Nu vom prezenta acest
algoritm, prefernd descrierea unuia mai performant da-
torat lui Hocroft si Karp (1973).
190
Totusi teorema de dualitate din programarea
liniara, precum si integritatea solut iilor optime,
pot oferi demonstrat ii instantanee pentru teo-
reme de caracterizare a solut iilor optime ale
problemei (P1) n cazul grafurilor bipartite:
Teorema. 3. (Hall, 1935) Fie G = (R, S; E)
un graf bipartit. Exista un cuplaj care sat-
ureaza vrfurile lui R daca si numai daca
[N
G
(A)[ [A[ A R.
Teorema. 4. (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)
191
Revenind la problema (P1) cu G un graf oare-
care si observnd ca (G)
1
2
[V (G)[, rezulta
ca este interesant de caracterizat grafurile cu
proprietatea ca admit un cuplaj M astfel nct
S(M) = V (G). Un astfel de cuplaj se numeste
cuplaj perfect sau 1-factor.
Este evident ca un graf care are un cuplaj perfect are n
orice componenta conexa un numar par de vrfuri. Mai
mult, daca S V (G) atunci, n ipoteza ca G are un
cuplaj perfect, va trebui ca pentru ecare componenta
conexa cu un numar impar de vrfuri a grafului GS sa
existe o muchie n cuplajul perfect cu o extremitate n
S si cealalta n componenta conexa impara. Rezulta ca
numarul componentelor conexe impare ale grafului GS
nu poate depasi [S[.
192
Daca pentru un graf oarecare H notam cu
q(H) numarul componentelor conexe impare
ale lui H, atunci observat ia anterioara arata
ca o condit ie necesara pentru ca G sa aiba un
cuplaj perfect este ca q(GS) [S[ S V (G).
Sa observam ca atunci cnd S = condit ia
anterioara cere ca orice componenta conexa a
lui G sa aiba un numar par de vrfuri. Condit ia
este si sucienta, asa cum rezulta din urmatoarea
teorema.
Teorema. 5. (Tutte, 1947) Un graf G =
(V, E) are un cuplaj perfect daca si numai daca
(T) q(GS) [S[ S V.
Demonstrat ie. Aratam, prin induct ie dupa n =
[V [, ca, daca G = (V, E) satisface (T), atunci
G are un cuplaj perfect.
193
Cum teorema se verica imediat pentru n =
1, 2, vom presupune n pasul inductiv ca orice
graf G
cu [G
= [D
i
]
G
satisface (T).
Fie S D
i
. Daca q(G
S) = [S
0
[ +q(G
S) > [S
0
[ +[S[ = [S
0
S[, contrazicnd faptul
ca G satisface (T).
Avem q(G
S) [S[ si deci G
satisface T.
b) Fie H = (S
0
, C
1
, . . . , C
m
; E
) graful bipartit
avnd o clasa a bipartit iei S
0
, cealalta clasa,
mult imea componentelor conexe impare ale lui
G S
0
, iar mult imea muchiilor E
formata din
perechile sC
i
(s S; i = 1, m) cu proprietatea
ca exista v C
i
cu sv E(G).
196
C1
C2
C3
sm
s3
Cm
s2
s1
Acest graf are un cuplaj perfect.
In adevar,
este sucient sa aratam ca H satisface condit ia
lui Hall de existant a a unui cuplaj M
0
ce sat-
ureaza vrfurile lui C
1
, . . . , C
m
:
A C
1
, . . . , C
m
, [N
H
(A)[ [A[
si cum [S
0
[ = m va rezulta ca M
0
este cuplaj
perfect n H.
Fie A C
1
, . . . , C
m
.
Observam ca B = N
H
(A) S
0
si din denit ia
lui H, n graful G nu avem muchii de la un
vrf v S
0
B la un vrf v C
i
cu C
i
A.
Deci componentele conexe impare C
i
din A ale
grafului GS
0
vor ramne componente conexe
impare si n GB.
197
Rezulta ca q(G B) [A[. Pe de alta parte
G satisface condit ia lui Tutte (T) deci [B[
q(G B). Am obt inut deci [B[ [A[ adica
[N
H
(A)[ [A[.
Cum A a fost aleasa arbitrar, rezulta ca H are
un cuplaj perfect M
0
= s
1
v
1
, s
2
v
2
, . . . , s
m
v
m
cu S
0
= s
1
, . . . , s
m
si v
i
C
i
i = 1, m.
c) Pentru orice i 1, . . . , m graful G
= [C
i
v
i
]
G
are un cuplaj perfect.
Folosind ipoteza inductiva, armat ia va rezulta
daca dovedim ca G
satisface (T).
Fie S C
i
v
i
. Daca q(G
=
S
0
v
i
S, avem [S
[ q(G S
) = q(G
S
0
) 1 + q(G
S) = [S
0
[ 1 + q(G
S)
[S
0
[ 1 +[S[ + 2 = [S
[, adica q(G S
) = [S
[
ceea ce contrazice alegerea lui S
0
caci S
0
S
.
Rezulta ca S
C
i
v
i
q(G
S) [S[ deci G
= PM = (P
M)(MP) este un cuplaj n G. (Construct ia
lui PM revine la interschimbarea muchiilor
lui M P si P M pe drumul P).
In plus,
[M
un
cuplaj de cardinal maxim. Vom arata ca [M
[ =
[M[, ceea ce demonstreaza teorema.
Fie G
= (V, MM
).
Evident, d
G
(v) 2 v V si deci componen-
tele conexe ale lui G
si
cele subt iri, din M):
a
b
c
d
e
Situat ia b) nu poate avea loc, pentru ca reprezinta un
drum de crestere relativ la M
si
cu m
M
(C) numarul corespunzator, de muchii
din M
avem m
M
(C) = m
M
(C). Rezulta ca
[MM
[ =
C
m
C
(M) =
C
m
C
(M
) = [M
M[
(suma se face dupa toate componentele conexe
C ale grafului G
) si deci, [M[ = [M
[.
Aceasta teorema justica urm
toarea strategie
de construire 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
La ecare iterat ie a ciclului while, cuplajul curent creste
(cardinalul sau se mareste cu o unitate) si deci n cel
mult
n
2
iterat ii se obt ine un cuplaj de cardinal maxim,
care nu va admite drumuri de crestere.
203
Neajunsul acestui algoritm este acela ca tes-
tul de oprire a ciclului - inexistent a drumu-
lui de crestere - poate conduce la un numar
exponent ial de operat ii.
Primul care a demonstrat posibilitatea imple-
mentarii acestui algoritm astfel nct numarul
total de operat ii sa e polinomial n raport cu
numarul de vrfuri ale grafului G, a fost Ed-
monds (1965), obt innd astfel unul din primele
rezultate ale teoriei complexitat ii (cantitative)
a algoritmilor.
.
Denim pentru ecare i 1, . . . , p
(C
i
) = [E(C
i
) N[ [E(C
i
) M[.
Observam ca:
(C
i
) 1, 0, 1 (M, N cuplaje, C
i
snt dru-
muri sau circuite);
(C
i
) = 1 daca si numai daca C
i
este un drum
de crestere relativ la M.
In plus,
i=1,p
(C
i
) = [N M[ [M N[ = s r.
Rezulta ca exista macar s r C
i
cu (C
i
) = 1,
adica exista macar sr drumuri de crestere dis-
juncte ca vrfuri (deci si ca muchii) cont inute
n MN.
205
Lema. 2. Daca (G) = s si M /
G
[M[ =
r < s, atunci exista n G un drum de crestere
relativ la M de lungime 2r/(s r) +1.
Demonstrat ie. Fie N /
G
cu [N[ = s =
(G). Conform lemei precedente, vor exista
s r drumuri de crestere disjuncte pe muchii,
cont inute n MN. Acestea au mpreuna cel
mult r muchii din M. Rezulta ca exista unul
care cont ine cel mult r/(s r) muchii din M,
a carui lungime este deci 2r/(s r) +1.
Denit ie Daca M /
G
, se numeste drum
minim de crestere al lui M n G , un drum
de crestere cu numar minim de muchii printre
toate drumurile de crestere ale lui M n G.
Lema. 3. Fie M /
G
, P drum minim de
crestere relativ la M, si P
drum de crestere al
lui MP. Atunci, [P
[ [P[ +2[P P
[.
206
Demonstrat ie: Fie N = (MP)P
.
Avem MN = PP
[ [P
1
[+[P
2
[
2[P[ deci [P[ +[P
[ 2[P P
[ 2[P[.
Consideram urmatorul algoritm ():
M
0
;
M
i+1
M
i
P
i
( P
i
dr. minim de crest. rel. la M
i
; i 0.)
Se obt ine sirul de drumuri minime de crestere
P
0
, P
1
, . . . , P
(G)1
.
Lema. 4.
a) i = 1, (G) 2 [P
i
[ [P
i+1
[;
[P
i
[ = [P
i+1
[ P
i
si P
i+1
snt disjuncte ca
vrfuri.
b) i < j < (G) 1 [P
i
[ = [P
j
[, implica P
i
si
P
j
snt disjuncte ca vrfuri.
207
Demonstrt ie: a) Considernd P = P
i
si P
=
P
i+1
n lema 3 se obt ine [P
i+1
[ [P
i
[ + 2[P
i
P
i+1
[ [P
i
[. Egalitatea are loc daca si nu-
mai daca P
i
si P
i+1
snt disjuncte ca muchii,
condit ie care, avnd n vedere alternant a dru-
murilor, implica faptul ca nu au vrfuri comune.
b) rezulta aplicnd succesiv a).
Teorema. 7. (Hopcroft, Karp 1973) Fie
G un graf si (G) = s. Numarul ntregilor
distinct i din sirul [P
0
[, [P
1
[, . . . , [P
s1
[, construit
n algoritmul de mai sus este cel mult 2
s +
2.
Demonstr atie: Fie r = s
s. Atunci [M
r
[ =
r si [P
r
[ 2r/(s r) + 1 = 2s
s/(s
s
s) +1 < 2
s +1.
Rezulta ca oricare ar i < r, [P
i
[ este unul din
cei
s + 1 ntregi impari 2
s + 1.
In
subsirul [P
r
[, . . . , [P
s1
[ mai snt cel mult sr
s +2 ntregi distinct i.
208
Daca algoritmul () se descompune n etape,
astfel nct la ecare etapa se determina o
mult ime maximala de drumuri minime de crestere
disjuncte ca vrfuri, din lema 4, rezulta ca, n
etapa urmatoare, lungimea drumurilor minime
de crestere utilizate va creste strict (altfel s-
ar contrzice maximalitatea mult imii de drumuri
alese).
Utiliznd teorema 7, rezulta ca numarul fazelor
nu va depasi 2
_
(G) +2.
Rezulta ca urmatorul algoritm pentru aarea
unui cuplaj maxim, ntr-un graf cu macar o
muchie:
0. M ;
1. repeat
Determina 1 o familie maximala ()
de drumuri minime de crestere;
for P 1 do M MP
until 1 = .
209
are complexitatea O(
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
.
212
Denit ie: Numim uxn 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.
Observat ii
1
0
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 intran vrful
i sa e egala cu suma uxurilor pe arcele
care ies din vrful i.
Se putea cere ca uxul sa e denit numai pe arcele
ret elei, dar cu convent ia facuta la extensia funct iei de
capacitate, se observa ca pentru perechile (i, j) care nu
snt arce n ret ea condit ia (i) impune ca uxul sa e 0,
si evident cele doua denit ii snt echivalente.
O preferam pe cea data, pentru simplitatea notat iilor,
desi n implementari, structurile de date folosite vor ig-
nora perechile (i, j) care nu snt arce n ret ea.
213
2
0
Daca se sumeaza relat iile (ii) (pentru i
V s, t) se obt ine:
0 =
i, =s,t
_
jV
x
ji
jV
x
ij
_
=
i, =s,t
j,=s,t
x
ji
i, =s,t
j,=s,t
x
ij
+
i, =s,t
x
si
+
i, =s,t
x
ti
i, =s,t
x
is
i, =s,t
x
it
=
i
x
is
i
x
si
_
i
x
it
i
x
ti
_
, adica
jV
x
jt
jV
x
tj
=
_
jV
x
js
jV
x
sj
_
.
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 sau (conform egalitat ii
obt inute mai sus) uxul net care iese din in-
trarea ret elei.
214
j
x
ji
j
x
ij
= 0, i ,= s, t
j
x
js
j
x
sj
= v
j
x
jt
j
x
tj
= v
0 x
ij
c
ij
ij
Particularitat ile combinatorii ale problemei, numarul mare
de restrict ii si mai ales dicultat ile legate de restrict iile
de integritate ce s-ar putea impune variabilelor, care un-
eori n practica snt esent iale, au condus la dezvoltarea
de metode specice de rezolvare.
215
Denit ie. Daca P este un drum n G, multi-
graful 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.
P
G
G
--
arc direct
arc invers
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 Dn G cu proprietatea ca ij E(D) :
x
ij
< c
ij
daca ij este arc direct,
x
ji
> 0 daca ij este arc invers.
216
Daca D este un C-drumsi ij E(D), se numeste
capacitatea 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).
Exemplu: Fie ret eaua de mai jos, n care pe arce este
precizata mai nti capacitatea si apoi uxul:
1
2
3
4
5
6
2,2
1,0
2,2
1,1
2,1
3,2
s
2,1
3,1
t 1,0
Atunci D : 1, 12, 2, 24, 4, 45, 5, 56, 6 este un C-drum de la
s la t cu arcele directe 12(x
12
= 1 < c
12
= 3); 24(x
24
=
1 < c
24
= 2); 56(x
56
= 1 < c
56
= 2) si arcul invers
45(x
54
= 1 > 0). Capacitatea reziduala a lui D este
r(D) = min(min(2, 1, 1), 1) = 1.
217
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.
Lema. 1. Daca D este un drum de crestere
a uxului x n ret eaua R = (G, s, t, c), atunci
x
1
= x
_
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).
Demonstrat ie. Denit ia lui r(D) implica
ndeplinirea de catre x
1
, a condit iilor (i).
Condit iile (ii) vericate de x, nu snt afectate
pentru niciun vrf i / V (D).
Daca i ,= s, t este un vrf al drumului D, i este
incident cu exact doua arce ale lui D,e ele li
si ik.
Avem urmatoarele cazuri posibile:
218
a) li si ik arce directe:
j
x
1
ji
j
x
1
ij
=
j,=l
x
ji
j,=k
x
ij
+x
1
li
x
1
ik
=
j,=l
x
ji
j,=k
x
ij
+x
li
+r(D) x
ik
r(D) =
j
x
ji
j
x
ij
= 0.
b) li direct ik invers:
j
x
1
ji
j
x
1
ij
=
j,=l,k
x
ji
j
x
ij
+x
1
li
+x
1
ki
=
j,=l,k
x
ji
j
x
ij
+ x
li
+ r(D) + x
ki
r(D) =
j
x
ji
j
x
ij
= 0.
c) li invers, ik direct: similar cu b).
d) li invers, ik invers: similar cu a).
Valoarea uxului x
1
se obt ine considernd lt
unicul arc al lui D incident cu t:
Daca lt direct atunci
v(x
1
) =
j
x
1
jt
j
x
1
tj
=
j,=l
x
jt
j
x
tj
+x
1
lt
=
j,=l
x
jt
j
x
tj
+x
lt
+r(D) = v(x) +r(D).
Daca lt invers atunci
v(x
1
) =
j
x
1
jt
j
x
1
tj
=
j
x
jt
j,=l
x
tj
x
1
tl
=
j
x
jt
j,=l
x
tj
(x
tl
r(D)) = v(x) +r(D).
Deci lema are loc.
219
Pentru exemplul anterior, uxul x
1
= x
r(D)
de valoare 4 este precizat pe arce:
1
2
3
4
5
6
2,2
1,0
2,2
1,0
2,2
3,2
s
2,2
3,2
t 1,0
Observat ii: 1
0
Aceasta lema justica denu-
mirea de drum de crestere, precum si cea de
capacitate reziduala.
2
0
Din denit ie, daca D este drum de crestere,
r(D) > 0 si deci avem v(x
iS
jT
c
ij
(suma capacitat ilor arcelor de la S la T).
Lema. 2. Daca x este un uxn 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.)
s
t
+
-
S
T
221
Demonstrat ie:
v(x) = (
j
x
jt
j
x
tj
) 0
= (
j
x
js
j
x
sj
)
iS,i,=s
(
j
x
ji
j
x
ij
)
=
iS
(
j
x
ij
j
x
ji
)
=
iS
jS
(x
ij
x
ji
)+
iS
jT
(x
ij
x
ji
)
=
iS
jT
(x
ij
x
ji
).
Lema. 3. Daca x este un uxn R = (G, s, t, c)
si (S, T) este o sect iune, atunci v(x) c(S, T).
Demonstrat ie:
v(x) =
iS
jT
(x
ij
x
ji
) (lema 2)
iS
jT
(c
ij
x
ji
) (x
ij
c
ij
)
iS
jT
c
ij
(x
ji
0).
222
Observat ii:
1) Daca x este un uxn R = (G, s, t, c) si (S, T)
o sect iune astfel nct v(x) = c(S, T), atunci x
ux n R v(x) c(S, T) = v(x), deci x este ux
de valoare maxima.
2)
In exemplul dat, x
1
este ux de valoare
maximantruct v(x
1
) = 4 = c(1, 2, 3, 4, 5, 6).
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.
Demonstrat ie: O implicat ie este deja stabilita.
Reciproc, e x un ux n R care nu admite
drumuri de crestere. Consideram S = i [ i
V D C-drum n R de la s la i.
Evident s S (exista D de lungime 0) si t / S
(nu exista C-drumuri de la s la t). Fie T =
V S. Rezulta ca (S,T) este o sect iune.
223
Sa observam ca i S si j T avem:
daca ij E atunci x
ij
= c
ij
si
daca ji E atunci x
ji
= 0
(altminteri C-drumul de la s la i se poate ex-
tinde la un C-drum de la s la j).
Deci, conform lemei 2, v(x) =
iS
jT
(x
ij
x
ji
) =
iS
jT
(c
ij
0) = c(S, T) si prin ur-
mare x este ux de valoare maxima.
Teorema. 2. (Teorema uxului intreg)
Daca toate capacitat ile snt ntregi, atunci ex-
ista un ux de valoare maxima cu toate compo-
nentelentregi (uxntreg de valoare maxima).
Demonstrat ie: Fie algoritmul
1: x
0
0; i 0;
2: while (P
i
drum de crestere relativ la x
i
) do
x
i+1
x
i
r(P
i
);
i ++
224
Se observa ca x
i
are componente ntregi
este un invariant al algoritmului (din denit ia
lui r(P
i
), daca toate capacitat ile snt ntregi,
rezulta ca r(P
i
) este ntreg n ipoteza ca x
i
e
ntreg) si ca la ecare iterat ie a pasului 2 val-
oarea uxului curent creste cu macar o unitate,
deci pasul 2 se repeta de cel mult c(s, V
s) Z
+
ori. Fluxul nal obt inut este, con-
form teoremei 1, de valoare maxima.
Observat ie. Algoritmul, descris mai sus, este
nit si n cazul capacitat ilor rat ionale.
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.
Demonstrat ie: Daca dispunem de un algoritm
care, pornind de la un ux init ial x
0
(x
0
exista
ntotdeauna, de exemplu x
0
= 0), construieste
ntr-un numar nit de pasi un ux x, care nu
admite drumuri de crestere, atunci sect iunea
construitan demonstrat ia teoremei 1 satisface
mpreuna cu x enunt ul teoremei.
225
Pentru cazul capacitat ilor rat ionale algoritmul
descris n demonstrat ia teoremei 2, satisface
aceasta condit ie.
Pentru cazul capacitat ilor reale vom prezenta,
mai trziu, un astfel de algoritm, datorat lui
Edmonds si Karp (1972).
Observat ii: i)
r(P
k1
), P
k
este drum minim de crestere
relativ la x
k1
; k = 1, 2, . . .
Vom dovedi ca sirul de uxuri astfel construit
este nit.
Notam, pentru i V si k = 0, 1, 2, . . .
k
i
= lungimea minima a unui C-drum de la s la i n R
relativ la uxul x
k
.
k
i
= lungimea minima a unui C-drum de la i la t n R
relativ la uxul x
k
.
232
Lema. 4. Pentru i V si k = 0, 1, 2, . . .
avem
k+1
i
k
i
si
k+1
i
k
i
.
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 drumuri 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).
Demonstrat ie: Daca P este un drum de crestere
relativ la un ux n ret eaua R, cu capacitatea
reziduala r(P), vom numi arc critic n P orice
arc e P cu r(e) = r(P).
In x
k
i
+
k
i
=
k
j
+
k
j
.
Cum ij este critic n P
k
, n x
k+1
nu va putea
folosit n aceeasi direct ie ca n P
k
. Prima
oara cnd uxul pe arcul ij se va modica, el
va apare ntr-un drum de crestere P
l
cu l > k
relativ la x
l
si va folosit n direct ie opusa.
Avem, deci, doua cazuri:
i) ij direct n P
k
. Atunci
k
j
=
k
i
+1.
In P
l
ij
va arc invers, deci
l
i
=
l
j
+1.
s t
i j
P
k
s
t i
j
P
l
Rezulta,
l
i
+
l
i
=
l
j
+1 +
l
i
k
j
+ 1 +
k
i
=
k
i
+
k
i
+2 (s-a folosit lema 1 ). Am obt inut
ca lg(P
l
) lg(P
k
) +2.
234
ii) ij arc invers n P
k
. Atunci
k
i
=
k
j
+1.
In
P
l
ij va arc direct, deci
l
j
=
l
i
+1.
s t i
j
P
k
s
t
i
j
P
l
Rezulta
l
j
+
l
j
=
l
i
+ 1 +
l
j
k
i
+ 1 +
k
j
=
k
j
+
k
j
+2 Deci, lg(P
l
) lg(P
k
) +2.
Deci orice drum minim de crestere n care
arcul ij este critic este cu macar doua arce
mai lung dect precedentul n care ij a fost
critic.
Cum, un drum n G are cel mult n 1 arce,
rezulta ca un arc xat nu poate critic n pro-
cesul de crestere mai mult de
n
2
ori.
Cum orice drum de crestere are cel put in un
arc critic, rezulta ca nu putem avea mai mult
de
mn
2
drumuri minime de crestere, n sirul
construit. Deci, dupa cel mult mn/2 cresteri,
se obt ine un ux care nu admite drumuri de
crestere.
235
Corolar. Daca R = (G, s, t, c) este o ret ea,
atunci exista un ux care nu admite drumuri
de crestere.
Observat ii: 1
0
Rezulta de aici, ca demonstrat ia
teoremei 3 este completa.
2
0
S-ar putea pune ntrebarea daca nu cumva,
alegerea drumurilor minime de crestere, mareste
complexitatea algoritmului de ux maxim ?
Raspunsul este nsa banal:
Lema. 5. Daca, n pasul 2 al algoritmului lui
Ford si Fulkerson, alegerea vrfurilor etichetate
n vederea cercetarii se face dupa regula primul
etichetat - primul cercetat, atunci drumurile
de crestere care se depisteaza snt cu numar
minim de arce.
Demonstrat ie: Fie P un drum de crestere depi-
stat si e P
).
236
Fie
P : si
1
, i
1
i
2
, . . . , i
k1
i
k
, i
k
i
k+1
, i
k+1
i
k+2
, . . . , i
k+l1
t si
P
: si
1
, i
1
i
2
, . . . , i
k1
i
k
, i
k
j
k+1
, j
k+1
j
k+2
, . . . , j
k+l
1
t.
Deci, lg(P) = k +l, lg(P
) = k +l
, au primele
k arce comune si l
< l.
Conform regulii de etichetare, i
k+1
va primi
eticheta naintea lui j
k+1
, dar j
k+1
va primi
etichetanaintea lui i
k+2
; j
k+2
va primi eticheta
naintea lui i
k+3
si asa mai departe; obt inem in-
ductiv ca t primeste etichetanaintea lui i
k+l
+1
,
deci t primeste eticheta pe drumul P
, nainte
de a primi eticheta pe drumul P, absurd.
Observat ie: Regula primul etichetat - primul
cercetat corespunde unei explorari bfs a vr
furilor etichetate, ceea ce se poate realiza, uti-
liznd o coada pentru memorarea lor. Aceasta
nu afecteaza complexitatea algoritmului, care
va necesita tot O(m) operat ii pentru ecare
crestere a uxului , si din teorema 4 obt inem
237
Teorema. 5. (Edmonds- Karp 1972)
Daca se modica algoritmul lui Ford si Fulker-
son cu precizarea alegerii bfs a vrfurilor etichetate
n vederea cercetarii, atunci, uxul maxim se
obt ine n timpul O(m
2
n) .
Exercit iu. Aplicat i algoritmul lui Ford & Fulk-
erson modicat pentru obt inerea unui ux de
valoare maxima n ret eaua de mai jos (n care
este precizat un ux init ial de valoare 55 ).
238
Algoritmi de tip preux.
Fie R = (G, s, t, c) o ret ea.
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.
239
Observat ii: 1
0
. Daca n ret eaua R nu exista
noduri active, atunci preuxul x este ux de
la s la t n R de valoare e
t
.
2
0
. Ideea algoritmulor de tip preux este: se
porneste cu un preux n R si se transforma
prin modicari ale uxului pe arcentr-un ux
care nu admite drumuri de crestere.
3
0
.
In denit ia unui preux, nu am mai utilizat
convent ia ca vom introduce toate perechile de
arce din digraful complet simetric de ordin n,
ntruct n analiza algoritmilor pe care i vom
prezenta va esent iala reprezentarea digrafu-
lui G cu ajutorul listelor de adiacent a. Totusi,
vom considera ca daca ij E atunci si
ji E (altminteri, adaugam arcul ji cu ca-
pacitate 0).
240
Denit ie: Daca x este un preuxn 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).
i
j
cij, xij
cji , xji
trimite
a=dir+inv
pe arcul ij
i
j
cij
, xij+dir
cji, xji - inv
e
i
e
j
e - a
e + a
i
j
Observat ie. Peste tot, n cele ce urmeaza, a
trimite ux de la i la j nseamna sa crestem
uxul pe arcul ij sau sa micsoram uxul pe
arcul ji.
Denit ie: Se numeste C-drum n R relativ la
preuxul x, un drum al lui G ale carui arce au
capacitatea reziduala pozitiva.
241
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
j i
i
i
d( j )
0 d( j ) - 1
d( j ) + 1
t i
s
d(s)
Observat ii: 1
0
. Daca P este un C-drum relativ
la preuxul xn 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).
242
2
0
. Vom nota cu A(i), pentru orice vrf i, lista
sa de adiacent a, care cont ine arcele ij E.
Denit ie. Fie x un preuxn 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 construiesten O(m)
un preux x si o funct ie de distant a d core-
spunzatoare 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
243
Observat ii: 1
0
. Dupa execut ia acestei proceduri,
sj A(s) avem r
sj
= 0, deci alegerea lui d(s) = n
nu afecteaza condit ia D2. Pentru arcele cu capacitate
reziduala pozitiva de forma js D2 este evident vericata.
d( j )=1
d( t )=0
t
j
s
d(s) = n
j
r =0
sj
r >0
js
1=d(j)<n+1=d(s)+1
r >0
jt
1=d(j)=0+1=d(t)+1
2
0
. Alegerea lui d(s) = n are urmatoarea in-
terpretare: 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 invariant, atunci cnd x va deveni ux,
va rezulta ca nu admite drumuri de crestere si
deci x va de valoare maxima.
244
Consideram urmatoarele proceduri
procedure pompeaza (i);
// i este un varf diferit de s, t
Daca = r
ij
avem o pompare saturata, alt-
minteri pomparea este nesaturata.
procedure reetichetare (i);
// i este un varf diferit de s, t
245
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)
(j) = d
254
Operat iile care domina complexitatea timp, n
cazul cel mai nefavorabil, snt pomparile nesat-
urate. Toate celelalte operat ii snt dominate
de O(nm).
Lema. 8. Numarul pomparilor nesaturate
este cel mult 8n
2
n ecare etapa a scalarii,
deci O(n
2
logU) n total.
Demonstrat ie: Fie
F(p) =
iV i, =s,t
e
i
d(i)
2
p
.
La nceputul etapei p, F(p) <
iV
2
p
(2n)
2
p
= 2n
2
.
Daca n etapa p, atunci cnd se analizeaza nodul activ
i, se apeleaza reetichetare, nseamna ca nu exista arce
ij admisibile.
Operat ia de reetichetare mareste d(i) cu 1 unitat i,
ceea ce conduce la o crestere a lui F cu cel mult unitat i.
Cum pentru ecare i, cresterea lui d(i) pe parcursul
ntregului algoritm este < 2n rezulta ca F va creste pna
la cel mult valoarea 4n
2
, la sfrsitul etapei p.
255
Daca, pentru un nod i se executa pompare,
atunci aceasta se executa pe arcul ij cu r
ij
> 0
si d(i) = d(j) +1.
Cum numarul unitat ilor de ux pompat este
2
p1
, dupa pompare F(p) va avea valoarea
F
(p), unde
F
(p) = F(p)
d(i)
2
p
+
d(j)
2
p
= F(p)
2
p
F(p)
2
p1
2
p
= F(p)
1
2
.
Rezulta ca aceasta situat ie nu poate aparea
mai mult de 8n
2
(ntruct F(p) poate creste
cel mult la 4n
2
).
Cu att mai mult, pomparile nesaturate nu vor
depasi 8n
2
.
Sumariznd toate rezultatele anterioare obt inem
Teorema. 6. (Ahuja-Orlin 1988) Algoritmul
de tip preux cu scalarea exceselor are com-
plexitatea O(nm+n
2
logU).
256
2. Aplicat ii (combinatorii) ale problemei
uxului maxim.
A. Determinarea cuplajului maxim si a sta-
bilei maxime ntr-un graf bipartit.
Fie G = (V
1
, V
2
; E) un graf bipartit cu n vrfuri
si m muchii.
Consideram ret eaua R = (G
1
, s, t, c), unde
- V (G
1
) = s, t V
1
V
2
;
- E(G
1
) = E
1
E
2
E
3
. E
1
= sv
1
[ v
1
V
1
,
. E
2
= v
2
t [ v
2
V
2
,
. E
3
= v
1
v
2
[ v
1
V
1
, v
2
V
2
, v
1
v
2
E;
- c : E(G
1
) Z
+
denita prin
c(e) =
_
_
_
1 daca e E
1
E
2
daca e E
3
(vezi gura urmatoare).
257
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 ast-
fel 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
maximn graful bipartit G.
258
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
= T V
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 Konig).
259
B. 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 ?
(Problema poate aparen proiectarea circuitelor
integrate).
Evident, va trebui ca 0 d
+
i
n1 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).
11
, 22
, . . . , nn
t, j 1, . . . , n.
Funct ia de capacitate va c(si) = d
+
i
i =
1, n, c(j
t) = d
j
j = 1, n si c(ij
) = 1.
260
Daca n aceasta ret ea, exista un ux ntreg de valoare
maxima m, atunci din orice vrf i 1, . . . , n vor pleca
exact d
+
i
arce pe care uxul este 1, de forma ij
si n
ecare vrf j
j
arce pe care uxul este
1, de forma ij
.
s
t
1
2
n
1
1
1
2
1
1
n
+
d1
+
+
d2
dn
d1
-
d2
-
dn
-
Considernd mult imea de vrfuri 1, . . . , n si introducnd
toate arcele ij astfel nct x
ij
i
)
i=1,n
. Reciproc, daca acest digraf exista,
atunci procednd invers ca n construct ia anterioara, se
obt ine un ux ntreg n ret eaua R de valoare m (deci
maxim). Rezulta ca recunoasterea secvent elor digrace
(si construct ia digrafului n cazul raspunsului armativ)
se poate face n O(nm+n
2
logn) = O(n
3
).
261
C. Determinarea nr. 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
disjuncte 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 exista drumuri.
Teorema. 7. p
e
(s, t) = c
e
(s, t).
Demonstrat ie: 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 ux ntreg de valoare maxima n
R = (G
1
, s, t, c). Fluxul x
0
se poate scrie ca
o suma de v(x
0
) uxuri x
k
ntregi de valoare 1,
nlocuind, eventual, uxul pe unele circuite cu
0.
262
s
t
s
t
Fluxul pe arcele groase
este 1, pe cele subtiri 0.
Fiecare astfel de ux x
k
induce un drum de la
s la t n G
1
(considernd arcele pe care uxul
este nenul), si deci, si n G.
Rezulta ca v(x
0
) = p
e
(s, t), ntruct orice mult ime
de drumuri disjuncte pe muchii, genereaza un
ux de la s la t n R de valoare egala cu numarul
acestor drumuri.
Fie (S, T) o sect iune de capacitate minima;
avem c(S, T) = v(x
0
), din teorema uxului maxim-
sect iunii minime.
263
Pe de alta parte, c(S, T) este numarul arcelor
cu o extremitaten S si cealaltan T, deoarece
c(e) = 1, e E(G
1
). Aceasta mult ime de arce
genereaza n G o mult ime de muchii de acelasi
cardinal si cu proprietatea ca deconteaza, prin
ndepartare, s si t .
Rezulta ca avem c(S, T) = v(x
0
) = p
e
(s, t)
muchii n G care deconecteaza, prinndepartare,
s si t. Deci c
e
(s, t) p
e
(s, t).
Cum, inegalitatea c
e
(s, t) p
e
(s, t) este evi-
denta, rezulta ca teorema este demonstrata.
Corolar. Daca G este un graf conex (G) (val-
oarea maxima a lui p Z
+
astfel nct G este
pmuchie-conex) este
min
s,tV (G)
s,=t
c
e
(s, t). ()
264
Rezulta ca, pentru a aa (G), rezolvam cele
n(n1)
2
probleme de ux, descrisen demonstrat ia
teoremei.
Totusi, sa observam ca pentru o pereche xata
s si t avem: daca (S, T) este sect iunea de ca-
pacitate minima, atunci
v S si w T c
e
(v, w) c(S, T) ().
_
n 1 daca G = K
n
min
s,tV
st / E
c(s, t) daca G ,= K
n
()
266
Vom arata ca egalitatea (*) rezulta si din teo-
rema uxului maxim-sect iunii minime pe o ret ea
convenabil aleasa.
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
).
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
Denim c : E(G
1
) Z
+
prin
c(e) =
_
_
_
1 daca e = a
v
b
v
altfel.
267
Consideram ret eaua R = (G
1
, b
s
, a
t
, c).
Fie x
0
un ux ntreg de la b
s
la a
t
n R de
valoare maxima.
In vrfurile b
v
(v V ) intra exact un arc de ca-
pacitate 1 si din vrfurile a
v
(v V ) pleaca exact
un arc de capacitate 1. Rezulta ca, pentru ca
sa e satisfacuta legea de conservare a uxului,
x
0
ij
0, 1 ij E(G
1
).
Aceasta nseamna ca x
0
se poate descompune
n v(x
0
) uxuri x
k
, ecare de valoare 1, si astfel
nct arcele pe care x
k
snt nenule corespund la
v(x
0
) drumuri disjuncte de la b
s
la a
t
n G
1
,
care induc o mult ime de v(x
0
) drumuri intern
disjuncte de la s la t n G.
Cum, pe de alta parte, dintr-o mult ime de p
drumuri intern disjuncte de la s la t n G, se
pot construi p drumuri intern disjuncte de la b
s
la a
t
n G
1
pe care se poate transporta cte o
unitate de ux, rezulta ca avem
: v(x
0
) = p(s, t).
268
Fie (S, T) o sect iune n R astfel nct v(x
0
) =
c(S, T).
Cum v(x
0
) este nit, rezulta ca i S, j T
cu ij E(G
1
),avem c(ij) < , deci c(ij) = 1,
adica u V astfel nct i = a
u
si j = b
u
.
Deci sect iunii (S, T) i corespunde o mult ime
de vrfuri A
0
V astfel nct, c(S, T) = [A
0
[ si
evident A
0
este st separatoare.
Cum, pe de alta parte, A stseparatoare, [A[
p(s, t) = v(x
0
) rezulta ca
c(s, t) = [A
0
[ = c(S, T) = v(x
0
) = p(s, t).
Demonstrat ia de mai sus, arata ca pentru a
determina k(G) va sucient sa determinam
minimul din (**) prin rezolvarea a [E(G)[ prob-
leme de ux, unde G este graful complementar
al lui G.
Deci algoritmul va avea complexitatea
O
_
(
n(n 1)
2
m)(nm+n
2
logn))
_
.
269
O simpla observat ie ne conduce la un algoritm
mai ecient. Evident,
k(G) min
vV
d
G
(v) =
1
n
(n min
vV
d
G
(v))
1
n
(
vV
d
G
(v)) =
2m
n
.
Daca A
0
este o mult ime de articulat ie n G cu
[A
0
[ = k(G) atunci G A
0
este neconex si se
poate partit iona V A
0
= V
V astfel nct,
v
, v V avem p(v
, v) = k(G).
Rezulta ca, rezolvnd o problema de ux cu
s
0
V
si t
0
V va rezulta ca p(s
0
, t
0
) =
valoarea uxului maxim = k(G).
Vom siguri ca depistam o astfel de pereche,
daca procedam astfel:
consideram l =
2m
n
+1 , alegem l vrfuri oare-
care din G, si pentru ecare astfel de vrf v
rezolvam toate problemele p(v, w) cu vw / E.
Se vor rezolvan total O(nl) = O(n(
2m
n
+1)) =
O(m) probleme. Deci complexitatea ntregului
algoritm va O(m(nm+n
2
logn)).
270
3. Fluxuri 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 deneste 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
) = mina(x) [ x ux n R, v(x) = v.
Observam ca, daca v nu depaseste valoarea
uxului maxim n ret eaua R, atunci problema
are ntotdeauna solut ii, a(x) ind liniara, iar
mult imea uxurilor de valoare data v ind margi
nita si nchisa n R
m
.
271
Exemple.
1
0
. Se dispune de n lucratori si n lucrari. Cos-
tul 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. (Problema simpla a atribuirii).
Consideram ret eaua descrisa mai jos, unde pe
ecare arc este trecuta mai nti capacitatea si
apoi costul. Deci c
ij
= 1, c
si
= 1, a
si
= 0, c
jt
=
1, a
jt
= 0 i, j 1, . . . , n.
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.
272
Notam can mod similar se poate rezolva orice
problema de cuplaj perfect de pondere minima
ntr-un graf bipartit.
2
0
.O marfa disponibilan depozitele D
1
, . . . , D
n
n cantitat ile d
1
, . . . , d
n
este solicitata n cen-
trele 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 trans-
port care sa satisfaca toate cererile si sa
aiba costul total minim (problema simpla a
transporturilor Hitchcock-Koopmans).
Evident, problema are solut ie numai daca
i=1,n
d
i
j=1,m
c
j
.
273
ijP
ij direct
a
ij
ijP
ij invers
a
ji
.
Daca C este un C-drum nchis, a(C) se cal-
culeaza 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).
Observat ii: 1
0
Din denit ia data, rezulta ca
daca P este drum de crestere relativ la uxul
x, atunci x
1
= x
) = min(x, x
) [ x
) = [ij [ x
ij
,= x
ij
[.
Daca (x, x
) = 0 rezulta x = x
si deci x este
de cost minim.
Daca (x, x
ij
. Presupunem 0 x
ij
< x
ij
c
ij
(altfel,
rat ionamentul este similar). Din legea de con-
servare a uxurilor rezulta ca
jk E astfel nct 0 x
jk
< x
jk
c
jk
, sau
kj E astfel nct 0 x
kj
< x
kj
c
jk
.
276
j
i
x < x
x < x
x < x
x < x
*
*
*
C
*
ij
ij
k
jk
jk
t
tk
tk
v
vj
vj
Repetnd acest rat ionament, deoarece numarul
vrfurilor este nit, se va obt ine C, un C-drum
nchis relativ la x n R.
Considernd sensul invers de parcurgere pe C
se obt ine un C-drum C
, nchis relativ la x
.
Deoarece a(C) 0 din ipoteza, iar a(C
) =
a(C), rezulta, din necesitatea teoremei (x
cu (C
) pe C
, unde
(C
) = min
_
min
kj direct n C
x
kj
x
kj
, min
kj invers n C
jk
x
jk
_
se obt ine un ux x
cu v(x
) = v(x
) = v,
a(x
) = a(x
) +(C
) a(C
) = a(x
), deci de
277
cost minim, dar, cu (x, x
) < (x, x
),
contradict ie.
Deci (x, x
) = 0, si demonstrat ia estencheiata.
Teorema. 9. 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
) = mina(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.
Linia demonstrat iei este urmatoarea :
presupunnd prin reducere la absurd ca x
1
nu
este de cost minim, atunci x
1
admite un C-
drumnchis C de cost negativ. Cum x era ux
de cost minim rezulta ca E(C) E(P
0
) ,= .
Daca ij E(C) E(P
0
), atunci va rezulta ca
P
0
C ij cont ine un drum de crestere relativ
la x de cost mai mic dect P
0
.
278
Un drum de crestere de cost minim poate de-
pistat cu ajutorul algoritmilor de drum minim.
Daca x este un ux n R si a : E R este
funct ia de cost atunci considernd a
ij
=
daca ij / E (caz n care x
ij
= 0), construim
a
ij
=
_
_
a
ij
daca x
ij
< c
ij
si x
ji
= 0,
mina
ij
, a
ji
daca x
ij
< c
ij
si x
ji
> 0,
a
ji
daca x
ij
= c
ij
si x
ji
> 0,
+ daca x
ij
= c
ij
si x
ji
= 0.
Un drum de pondere minima de la s la t n
raport cu ponderile a
ij
corespunde unui drum
minim de crestere n R relativ la uxul x.
Un circuit de pondere negativa n raport cu
ponderile a
ij
corespunde unui C-drumnchis n
R relativ la x, de cost negativ.
Rezulta, urmatorul algoritm pentru rezolvarea
problemei uxului de cost minim, obt inut prin
combinarea mai multor algoritmi clasici
(Klein,Busacker,Gowan, etc.).
279
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
min(r(P), v v(x))
sau v
i
j
= u
.
Intrebare: Exista o atribuire t : U A, F a. . t(C) = A ?
3SAT este cazul particular al lui SAT n care
ecare clauza C
i
are exact trei literali (k
i
= 3),
un literal v
i
j
ind, asa cum este descris mai
sus, o variabila sau negat ia ei.
Problema SAT este celebra datorita teoremei
lui Cook (1971): SAT este NPcompleta.
282
1. Mult imi stabile
SM
Instant a: G = (V, E) graf si k N.
Intrebare: Exista S mult ime stabila n G a. . [S[ k ?
Teorema. 1. (Karp 1972) 3SAT SM.
Demonstrat ie: Fie U = u
1
, u
2
, . . . , u
n
,
(n N
), C = C
1
. . . C
m
(m N
) cu
C
i
= v
i
1
v
i
2
v
i
3
i = 1, m, (unde v
i
j
1, . . . , n astfel nct v
i
j
= u
sau v
i
j
= u
),
reprezentnd datele unei instant e oarecare a
problemei 3SAT.
Vom construi n timp polinomial n raport cu
m + n, un graf G si k N astfel nct ex-
ista o atribuire t a valorilor de adevar sau fals
pentru variabilele booleene din U care sa faca
adevarata formula C, daca si numai daca exista
o stabila S n graful G astfel nct [S[ k.
283
Graful G va construit astfel:
(1) Pentru orice i 1, . . . , n consideram gra-
furile disjuncte T
i
= (u
i
, u
i
, u
i
u
i
).
(2) Pentru orice j = 1, m consideram grafurile
disjuncte
Z
j
= (a
j1
, a
j2
, a
j3
, a
j1
a
j2
, a
j2
a
j3
, a
j3
a
j1
) .
(3) Pentru orice j = 1, m consideram mult imea
de muchii
E
j
= a
j1
v
j1
, a
j2
v
j2
, a
j3
v
j3
unde v
j1
v
j2
v
j3
este factorul C
j
.
Consideram V (G) =
n
i=1
V (T
i
)
m
j=1
V (Z
j
) si
E(G) =
n
i=1
E(T
i
)
m
j=1
(E(Z
j
) E
j
).
Evident, construct ia este polinomiala n raport
cu m + n (G are 2n + 3m vrfuri si n + 6m
muchii).
Consideram k = n +m.
284
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
Sa presupunem ca raspunsul la problema
SM pentru instant a G si k astfel construite
este da. Deci S S
G
astfel nct [S[ k.
Cum orice mult ime stabila poate avea cel mult
un vrf din orice V (T
i
) si din orice V (Z
j
) (i =
1, n , j = 1, m) rezulta ca avem [S[ = k si deci
[S V (T
i
)[ = 1, [S V (Z
j
)[ = 1 i = 1, n si
j = 1, m.
285
Consideram t : U A, F prin
t(u
i
) =
_
_
_
A daca S V (T
i
) = u
i
F daca S V (T
i
) = u
i
.
Atunci, j = 1, m avem t(C
j
) = A (si deci
t(C) = A).
In adevar, j = 1, m daca C
j
= v
j1
v
j2
v
j3
si
S V (Z
j
) = a
jk
(k 1, 2, 3) atunci, deoarece
a
jk
v
jk
E rezulta ca v
jk
/ S.
Daca v
jk
= u
, atunci u
/ S deci u
S si din
denit ia lui t avem t(u
) = A, adica t(v
jk
) = A
ceea ce implica t(C
j
) = A.
Daca v
jk
= u
, atunci u
/ S implica u
S, deci t(u
) = A, adica t(v
jk
) = A, ceea ce
implica t(C
j
) = A.
Reciproc, daca raspunsul la problema 3SAT
este da, atunci exista o atribuire t : U A, F
astfel nct t(C
j
) = A j = 1, m.
286
Consideram n graful G mult imea stabila S
1
,
S
1
=
i=1,n
V
i
, unde
V
i
=
_
_
_
u
i
daca t(u
i
) = A
u
i
daca t(u
i
) = F .
Atunci, j = 1, m, cum t(C
j
) = A, rezulta
ca exista k
j
1, 2, 3astfel nct t(v
jk
j
) = A.
Consideram S
2
=
j=1,m
a
jk
j
.
Evident, S
2
este stabila n G. Am construit
S
1
S
G
cu [S
1
[ = n, S
2
S
G
cu [S
2
[ = m.
Consideram S = S
1
S
2
. Evident, [S[ = n +
m = k (deci [S[ k) si n plus S este mult ime
stabila n G (deci raspunsul la SM pentru
intrarea G, k este da).
Faptul ca S este mult ime stabila n G rezulta
astfel: daca v, w S astfel nct vw E(G)
atunci o extremitate este din S
1
si cealalta din
S
2
.
287
Presupunnd v S
1
avem doua cazuri de con-
siderat
a) v = u
, w = a
jk
j
1, . . . , n , j
1, . . . , m , k
j
1, 2, 3 si v
jk
j
= u
. Cum
t(v
jk
j
) = A rezulta t(u
) = A deci u
/ S
1
,
contradict ie.
b) v = u
, w = a
jk
j
1, . . . , n , j
1, . . . , m , k
j
1, 2, 3 si v
jk
j
= u
. Cum
t(v
j
k
j
) = A, rezulta t(u
) = A deci t(u
) = F
ceea ce implica u
/ S
1
, contradict ie.
Cu aceasta teorema este complet demonstrata.
Sa observam ca reducerea lui SAT la SM este
complet similara, singura deosebire ind ca gra-
furile Z
i
sunt grafuri complete cu k
i
varfuri.
288
2. Colorarea varfurilor.
COL
Instant a: G = (V, E) graf si p N
.
Intrebare: Exista o p-colorare a varfurilor lui G?
Teorema. 2. 3SAT COL.
Aceasta teorema evident iaza complexitatea prob-
lemelor de colorare a vrfurilor unui graf.
Vom demonstra chiar mai mult: xnd p = 3
n enunt ul lui COL, reducerea polinomiala a lui
3SAT este nca posibila !
289
Lema. 1. 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 n
mod necesar c(v
4
) = a.
b) Daca c : v
1
, v
2
, v
3
1, 2, 3 satisface
c(v
1
, v
2
, v
3
) ,= a atunci c poate extinsa
la o 3-colorare c a lui H cu c(v
4
) ,= a.
Demonstrat ia lemei se poate face examinnd
lista 3-colorarilor lui H.
290
) si C =
C
1
C
2
. . . C
m
(m N
sau v
i
j
= u
.
Vom construi un graf G, astfel nct, considernd
p = 3n COL, vom obt ine ca G este 3-colorabil
daca si numai daca raspunsul la 3SAT este da,
adica exista t : U A, F, astfel nct t(C) =
A.
In plus, construct ia lui G se va face n timp
polinomial, parcurgnd urmatoarele etape:
291
1. i = 1, n consideram grafurile disjuncte
(V
i
, E
i
) unde V
i
= u
i
, u
i
si E
i
= u
i
u
i
.
2. j = 1, m, pentru C
j
= v
j
1
v
j
2
v
j
3
, con-
sideram grafurile:
v
v
v
a
1
2
3
j
h
j
j
j
j
unde v
j
k
(k = 1, 3) snt vrfurile de la pasul 1,
corespunzatoare literalilor v
j
k
, grafurile h
j
snt
disjuncte si a
j
snt vrfuri distincte.
3. Consideram a, un vrf diferit de toate cele
construite n pasii 1 si 2 si unim a cu vrfurile
a
j
j = 1, m.
4. Consideram b un vrf nou, unit cu u
i
si u
i
i = 1, n si de asemenea, cu vrful a.
292
Graful G astfel construit are un numar liniar de
vrfuri n raport cu n +m.
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 :
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
Presupunem ca raspunsul la 3SAT este da.
Deci t : U A, F astfel nct t(C) = A, deci
t(C
j
) = A j = 1, m.
Construim o 3-colorare C a grafului G.
293
Denim mai nti c(u
i
) si c(u
i
) i = 1, n astfel:
c(u
i
) = 1 si c(u
i
) = 2, daca t(u
i
) = A si
c(u
i
) = 2 si c(u
i
) = 1, daca t(u
i
) = F.
Se observa ca daca v este un literal (u
sau
u
din 2H:
u
1
u
2
2. n > 2 H
n
se construieste astfel:
299
-consideram n copii izomorfe disjuncte ale lui
2H, 2H
i
i = 1, n, avnd perechile de muchii
libere (x
i
, y
i
), (x
i
, y
i
), (u
i
, u
i
).
-pentru i = 1, n1 identicam perechile (u
i
, u
i
)
(x
i+1
, y
i+1
).
-identicam (u
n
, u
n
) (x
1
, y
1
).
x
x
x
x
y
y
y
y
1
1
2
2
3
3
4
4
H
n
are n perechi de intrare (x
i
, y
i
) i = 1, n, si
este construit din 2n componente H.
300
1
) (din lema 2 si
construct ia lui 2H), c(x
2
) = c(y
2
) (din iden-
ticarea de la construct ia lui H
n
) c(x
2
) =
c(y
2
) (lema 2) c(u
2
) = c(u
2
) . . . c(x
n
) =
c(y
n
) .
b) c(x
1
) ,= c(y
1
) c(x
1
) ,= c(y
1
) (lema 2)
c(u
n
) ,= c(u
n
)(din identicarea de la construct ia
lui H
n
) c(x
n
) ,= c(y
n
)(din lema 2, prin re-
ducere la absurd) c(x
n
) ,= c(y
n
) c(u
n1
) ,=
c(u
n1
) . . . c(x
2
) ,= c(y
2
).
Rezulta de aici can orice 3-colorare a muchi-
ilor lui H
n
(n 2) toate perechile de muchii
de intrare reprezinta aceeasi valoare de adevar.
Pentru n = 1 se poate construi H
1
cu o singura
pereche de intrare, care sa poata reprezenta
oricare din cele 2 valori de adevar. Am dovedit
301
Lema. 3. Pentru orice n N
se poate con-
strui n timp polinomial graful H
n
avnd n perechi
de muchii de intrare, cu proprietatea ca n
orice 3-colorare a muchiilor lui H
n
, toate cele
n perechi reprezinta aceeasi valoare de adevar
(sau, n orice pereche de intrare cele doua muchii
au culori diferite, sau, n orice pereche de in-
trare cele doua muchii snt la fel colorate).
Lema. 4. Fie F graful
a d
b
c
1
2
3
(n N
), C = C
1
. . . C
m
(m N
), C
i
=
v
i
1
v
i
2
v
i
3
cu v
i
j
literali (v
i
j
= u
sau v
i
j
= u
)
reprezentnd datele unei probleme 3SAT.
Vom construi un graf 3-regulat G cu propri-
etatea ca
si reprezinta intrarea
cu numarul y a variabilei u
atunci perechea de
intrare cu numarul y din H
x
se identica cu
perechea de intrare numarul i din componenta
F
j
.
Daca v
j
i
este u
, si se identica
corespunzator intrarile lui H cu cele precizate
mai sus.
304
4. Graful obt inut la 1-3 are anumite muchii
pentru care nu s-a precizat o extremitate. Con-
sideram o copie izomorfa disjuncta a sa si iden-
ticam perechile corespunzatoare de astfel de
muchii, din cele doua grafuri. Se obt ine un
graf G 3-regulat.
Construct ia lui G si lemele 3 si 4 simuleaza
algoritmul de calcul al valorii de adevar a lui
C ntr-o atribuire t xata si deci G admite o
3-colorare daca si numai daca C este sat-
isabila.
305
4. Probleme hamiltoniene
Denit ie: Fie G = (V (G), E(G)) un (di)graf.
Un circuit C al lui G se numeste circuit hamil-
tonian daca V (C) = V (G).
Un drum deschis D al lui G se numeste drum
hamiltonian 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. 4. (Nash-Williams 1969) Prob-
lemele 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 ?
306
Demonstrat ie:
CH TR
Fie G un graf si v
0
V (G) un vrf xat al
sau. Construim (n timp polinomial) un graf H
astfel nct G este hamiltonian daca si numai
daca H este trasabil.
Fie V (H) = V (G) x, y, z si E(H) = E(G)
xv
0
, yz wy [ w V (G) wv
0
E(G).
v
N (v )
G
G
v
N (v )
G
o
o
o
o
x
y
z
H
Se observa ca H este trasabil daca si numai
daca are un drum hamiltonian D cu extremitat ile
x si z (care au gradul 1 n H). D exista n H
daca si numai daca n G exista un drum hamil-
tonian cu o extremitate v
0
si cealalta un vecin
al lui v
0
, deci daca si numai daca G este hamil-
tonian.
307
TR CH
Fie G un graf. Consideram H = G + K
1
. H
este hamiltonian daca si numai daca G are un
drum hamiltonian.
G
G+K
1
Echivalent a problemelor DCHsi DTR de demon-
streaza n mod similar.
CH DCH
Fie G un graf. Fie D digraful obt inut din G
nlocuind ecare muchie cu o pereche de arce
simetrice. Orice circuit hamiltonian n G in-
duce un circuit hamiltonian n D si reciproc.
308
DCH CH
Fie D = (V (D), E(D)) un digraf. Pentru orice
vrf v V (D) asociem un drum de lungime 3,
P
v
cu extremitat ile a
v
si b
v
P
v
= (a
v
, c
v
, d
v
, b
v
, a
v
c
v
, c
v
d
v
, d
v
b
v
).
Pentru orice arc vw E(D) consideram muchia
b
v
a
w
. Fie G graful cu V (G) =
vV (D)
V (P
v
)
si E(G) =
vV (D)
E(P
v
) b
v
a
w
[ vw E(D).
Evident, G se poate construi n timp polinomial
n raport cu numarul de vrfuri ale lui D.
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
Se observa ca orice circuit C al lui D induce un circuit
n G si reciproc orice circuit al lui D este generat de un
circuit al lui G. Rezulta: D este hamiltonian daca si
numai daca G este hamiltonian.
309
Sa observam ca daca C este un circuit al lui
G, acesta este generat de un circuit C
al lui D
si n plus lungimea circuitului C, l(C) satisface
l(C) = 3l(C
)+l(C
) = 4l(C
e
= (V
e
, E
e
) cu
V
e
= (w, e, i); w u, v, i = 1, 6 si
E
e
= (w, e, i)(w, e, i +1); w u, v, i = 1, 5
(u, e, 1)(v, e, 3), (u, e, 6)(v, e, 4), (v, e, 1)(u, e, 3),
(v, e, 6)(u, e, 4).
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
Graful G
e
a fost ales astfel nct, daca este sub-
graf al unui graf hamiltonian H si niciunul din
vrfurile (w, e, i) cu w u, v si i = 2, 5 nu are
alt vecin n H dect cele din G
e
,
311
atunci 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
Deci, daca circuitul hamiltonian intra n G
e
printr-un vrf de tip u, ((u, e, 1) sau (u, e, 6))
atunci, va iesi tot printr-un vrf corespunzator
lui u.
312
(iii) Pentru ecare vrf u V , se considera,
( ntr-o ordine oarecare) toate muchiile lui G
incidente cu u: e
u
1
= uv
1
, e
u
2
= uv
2
, . . . , e
u
p
=
uv
p
, unde, p = d
G
(u).
Fie E
u
= (u, e
u
i
, 6)(u, e
u
i+1
, 1); i = 1, p 1 si
E
u
= a
i
(u, e
u
1
, 1), a
i
(u, e
u
p
, 6); i = 1, k.
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
Graful H va avea
V (H) = A
eE
V
e
si
E(H) =
eE
E
e
uV
(E
u
E
u
).
Avem [V (H)[ = k +12 [E[; [E(H)[ = 14 [E[ +
2k [V
0
[+2 [E[[V
0
[ , unde V
0
V este mult imea
vrfurilor neizolate din G; deci H se poate con-
strui n timp polinomial n raport cu [V [.
313
Exemplu:
G k=2
a
a
1
2
1
2
3
4
1
1
2
2
2
2
4 4
3
3
4
4
1. Daca H este hamiltonian, atunci exista C
un circuit hamiltonian n H. Cum A este o
mult ime stabila n H, A va descompune cir-
cuitul Cn exact k drumuri disjuncte (cu except ia
extremitat ilor): D
a
i
1
a
i
2
, D
a
i
2
a
1
3
, . . . , D
a
i
k
a
i
1
.
Fie D
a
i
j
a
i
j+1
un astfel de drum (j + 1 = 1 +
(j(mod k)) ).
Din construct ia lui H, rezulta ca primul vrf
care urmeaza lui a
i
j
pe acest drum va (v
i
j
, e
v
i
j
1
, 1)
sau (v
i
j
, e
v
i
j
p
, 6) unde p = d
G
(v
i
j
) v
i
j
V .
314
In continuare, D
a
i
j
a
i
j+1
va intran componenta
G
e
1
sau G
e
p
din care va iesi tot printr-un vrf
corespunzator lui v
i
j
. Daca vrful urmator nu
este a
i
j+1
, se intra ntr-o componenta core-
spunzatoare urmatoarei muchii incidente cu v
i
j
si va iesi din aceasta, tot printr-un vrf core-
spunzator lui v
i
j
.
a
a
1
2
1
2
3
4
1
1
2
2
2
2
4 4
3
3
4
4
315
Rezulta ca drumului D
a
i
j
a
i
j+1
i se poate
asocian mod unic vrful v
i
j
V si ca prima si
ultima muchie a acestui drum snt a
i
j
(v
i
j
, e
v
i
j
t
, x),
a
i
j+1
(v
i
j
, e
v
i
j
t
, x
) cu t = 1 si t
= d
G
(u), x = 1,
x
= 6 sau t = d
G
(u), t
= 1, x = 6, x
= 1.
Aceasta implica faptul ca v
i
j
snt distincte.
Fie V
= v
i
1
, v
i
2
, . . . , v
i
k
. Cum C este hamil-
tonian n H, rezulta ca e E exista un drum
D
a
i
j
a
i
j+1
care trece prin G
e
deci exista v V
incident cu e. Rezulta ca S = V V
este sta-
bilan G si [S[ = j. Deci am obt inut ca daca H
este hamiltonian, n G exista o mult ime stabila
de cardinal j, prin urmare raspunsul la SM este
da.
2. Presupunem ca raspunsul la SM este da,
deci n G exista S
0
stabila cu [S
0
[ j. Exista
atunci S S
0
stabila cu [S[ = j.
316
Fie V
= V S = v
1
, v
2
, . . . , v
k
. Consideram
n H pentru ecare muchie e = uv E:
- cele doua drumuri din G
e
situat ia (a), daca
u, v V
,
- drumul din G
e
situat ia (b) daca u V
, v / V
- drumul din G
e
situat ia (c) daca u / V
, v V
.
Daca la reuniunea acestor drumuri adaugam
muchiile
a
i
(v
i
, e
v
i
1
, 1),
(v
i
, e
v
i
1
, 6)(v
i
, e
v
i
2
, 1), . . . , (v
i
, e
v
i
p1
, 6)(v
i
, e
v
i
p
, 1),
(v
i
, e
v
i
p
, 6)a
i+1
, (cu p = d
G
(v
i
)) pentru i = 1, k,
se obt ine un circuit hamiltonian n H.
317
5. Problema comisului voiajor.
Dat G = (V, E) un graf si o funct ie de pon-
dere d : E R
+
, sa se determine un circuit
hamiltonian H
0
n G astfel nct suma ponder-
ilor muchiilor lui H
0
sa e minima.
Daca graful G reprezinta ret eaua rutiera ntre
o mult ime V de localitat i, iar funct ia d avnd
interpretarea d(uv) = distant a pe ruta directa
dintre localitat ile u si v, si se xeaza un cen-
tru v
0
V , atunci circuitul hamiltonian H
0
reprezinta cel mai economic mod de vizitare
a localitat ilor din V de catre un comis voiajor
ce pleaca din centrul v
0
si se ntoarce n acelasi
loc, dupa ce a vizitat ecare localitate exact o
data.
Problema este interesanta, nu pentru rezolvarea acestei
aplicat ii, mai mult sau mai put in importanta, ci pentru
ca ea apare n numeroase probleme de optimizare dis-
creta, motivate, de exemplu, de construirea circuitelor
integrate pe scara mare.
318
, 2
, . . . , n
, 22
, . . . , nn
.
Fixand ordinea 1, 1
, 2, 2
, . . . , n, n
algoritmul va
obt ine colorarea c cu c(1) = c(1
) = 1, c(2) =
c(2
) = 2, . . . , c(n) = c(n
) = n avand deci n
culori; nsa, cum G este bipartit, (G) = 2.
328
1
5
1
5
2
2
3
3
4 4
pi: 1, 1, 2, 2, 3, 3, 4, 4, 5, 5
Este usor de vazut ca, pentru orice graf G,
exista totusi permutari pentru care algoritmul
ofera o colorare optimala.
Intr-adevar daca S
1
, S
2
, . . . , S
(G)
sunt clasele
de colorare corespunzatoare unei colorari opti-
male, atunci pentru orice permutare care
pastreaza ordinea claselor (adica daca i < j,
v S
i
si w S
j
atunci v se aa naintea lui w
n permutare), executand algoritmul greedy, se
vor obt ine (G) culori.
329
Teorema. 1. Daca pentru orice vw E si
orice j < minc(v), c(w) astfel ncat first(v, j) <
first(w, j) (n ordonarea ) avem ca vfirst(w, j)
E atunci (G, ) = (G).
Condit ia din enunt poate vericata n timp
liniar n raport cu numarul de muchii ale gra-
fului si poate reprezenta un ultim pas al algo-
ritmului.
first (j ,v)
first (j ,w)
S
j
v
w
S
c (v)
S
c (w)
, 2
.
De asemenea, un tur cu n varfuri este optimal
daca si numai daca este n-optimal.
335
Numarul operat iilor necesare testarii tuturor
-schimbarilor posibile creste rapid pentru n
mare.
Intr-o implementare naiva, testarea unei
-schimbari necesita O(n
si
(b) x
i
,= y
s
pentru tot i s < i
If T
si goto 2;
7. Alege y
i
= t
2i
t
2i+1
, T a..
(a) G
i
> 0,
(b) y
i
,= x
s
pentru tot i s < i si
(c) x
i+1
exista.
If y
i
exista then goto 5;
8. If mai alte alegeri pt. y
2
then i 2 si goto 7;
9. If mai alte alegeri pt. x
2
then i 2 si goto 6;
10 If mai alte alegeri pt. y
1
then i 1 si goto 4;
11 If mai alte alegeri pt. x
1
then i 1 si goto 3;
12 If mai alte alegeri pt. t
1
then goto 2;
13 Stop (sau goto 1).
339
E
kT
, unde k este constanta lui Bolz-
mann.
350
dE
kT
,
adica probabilitatea de crestere a energiei scade
odata cu temperatura.
Calirea simulata este o metoda computat ionala
care imita modul natural de determinare a unei
congurat ii care minimizeaza energia unui sis-
tem. 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.
351
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
352
Planul de calire se stabileste adeseori prin ex-
perimente (tuning ) asupra clasei de probleme
la care se aplica. Modul n care se permite,
la un anumit nivel de temperatura , ca unele
solut ii noi care nu micsoreaza valoarea funct iei
sa e considerate (cu scopul parasirii minimelor
locale) poarta denumirea inventatorului : schema
Metropolis.
Pentru aplicarea calirii simulate pentru rezolvarea
problemei comisului voiajor, se porneste cu un
tur ales aleator, iar trecerea de la o solut ie
curenta la o solut ie vecinan spat iul solut iilor se
realizeaza de obicei cu ajutorul unei 2-move.
Se poate lua T
start
= O(
= (V
, E
.
b) V
,
sau prin el trece cel mult o muchie a lui G
.
G
se
numeste graf plan.
354
Lema. 1. Un graf este planar daca si numai
daca este reprezentabil pe o sfera.
Demonstrat ie. Fie G planar si G
o reprezentare
planara a sa n planul . Consideram un punct
x al lui si S o sfera tangenta la n x.
Fie y punctul diametral opus al lui x pe sfera.
Denim : S considernd pentru orice
punct M al planului , (M) cel de-al doilea
punct de intersect ie al dreptei My cu sfera S.
Evident este o biject ie si deci (G
) este
reprezentarea lui G pe sfera ( este proiect ia
stereograca).
x
y
pi
S
G
355
Reciproc, daca G este reprezentabil pe o sfera
S: se alege un punct y pe sfera, se considera
punctul x diametral opus lui y pe sfera, se con-
struieste un plan tangent sferei S n punctul
x si se deneste : S considernd pen-
tru orice punct M al sferei, (M) intersect ia
dreptei yM cu planul . Imaginea prin a
reprezentarii lui G pe sfera va o reprezentare
planara a lui G.
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, dintre care una singura este nemarginita
si se numeste fat a exterioara a lui G.
356
Frontiera unei fet e este mult imea muchiilor lui
G cont inute n nchiderea acestei fet e.
Orice circuit al lui Gmparte punctele planului
n doua regiuni conexe, deci orice muchie a
unui circuit al grafului G se aa n frontierele
a doua fet e.
Un graf plan, mpreuna cu mult imea fet elor
sale se numeste harta planara (uneori, n aceasta
denit ie se impune ca graful sa e 2-conex;
atunci fet ele hart ii planare se numesc t ari si
doua t ari snt vecine daca frontierele lor au
macar o muchie comuna; aceasta corespunde
aspectelor intuitive de la hart ile geograce).
Unui graf planar i se pot asocia reprezentari
planare diferite.
In gura alaturata snt desen-
ate trei reprezentari planare diferite ale aceluiasi
graf:
357
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
Un instrument util n caracterizarea si recunoasterea
grafurilor planare este urmatoarea observat ie:
Lema. 2. 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.
Demonstrat ie: Fie G
. Consideram G
0
o reprezentare pe sfera
a lui G
.
358
Este aproape evident ca orice doua reprezentari
planare ale aceluisi graf au acelasi numar de
fet e. Acest lucru este mai bine precizat de
urmatoarea teorema.
Teorema. 1. (Formula lui Euler) Fie G =
(V, E) un graf plan conex cu n vrfuri, m muchii
si f fet e. Atunci
f = mn +2
Demonstrat ie: Induct ie dupa numarul fet elor
lui G. Daca f = 1, atunci G nu are circuite
si cum este si conex, rezulta ca G este arbore,
deci m = n 1 si prin urmare teorema are loc.
o reprezentare planara
a lui G. Daca G
este arbore, m = n1 (G
F fat a n G
F
3 = 3f = 3(mn +2),
inegalitate, evident, echivalenta cu cea din enunt .
Corolar. 2. Daca G este un graf bipartit,
conex si planar cu m > 2 muchii si n vrfuri,
atunci m 2n 4.
Demonstrat ie: Acelasi rat ionament ca mai sus,
cu observat ia ca orice circuit are macar 4 muchii
pentru ca, graful ind bipartit, numarul muchi-
ilor oricarui circuit este par.
Corolar. 3. Daca G este un graf planar conex,
atunci G are un vrf de grad cel mult 5.
363
Demonstrat ie: Daca G are mai mult de 2 muchii
aplicam consecint a 1 astfel: e G
o reprezentare
planara a lui G cu n vrfuri si m muchii; notam
cu n
i
numarul vrfurilor de grad i (1 i
n 1) din G
; atunci
n1
i=1
i n
i
= 2m 2(3n 6) = 6(
i
n
i
) 12,
deci
i
(i 6)n
i
+12 0
Cum pentru i 6 tot i termenii sumei snt
nenegativi, rezulta ca exista i
0
, 1 i
0
5,
astfel nct n
i
0
> 0, ceea ce trebuia demon-
strat.
Observat ie: Grafurile K
5
si K
33
nu snt planare.
Primul graf violeaza inegalitatea din corolarul
1, cel de al doilea pe cea din corolarul 2.
364
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.
(Daca w
1
w
2
/ E(G) atunci pe curba simpla ce
uneste w
1
si w
2
ntr-o reprezentare planara a lui
h(G) se introduce un nou vrf v; daca w
1
w
2
E(G), n una din fet ele reprezentarii planare a
lui h(G) se plaseaza sucient de aproape de
curba w
1
w
2
un vrf nou v si se uneste cu
w
1
si w
2
. Reciproc, n reprezentarea planara
a lui G stergem punctul v si cele doua muchii
vw
1
si vw
2
le nlocuim cu reuniunea lor. Daca
w
1
w
2
E(G) atunci se sterge si curba w
1
w
2
).
Vom nota cu h
(G
1
)
= h
(G
2
).
Teorema. 2. (Kuratowski 1930) Un graf este
planar daca si numai daca nu are subgrafuri
homeomorfe cu K
5
sau K
33
.
Necesitatea teoremei este evidenta: daca un
graf este planar atunci orice subgraf al sau este
planar. Daca ar exista un subgraf G
al lui G
homeomorf cu K
33
sau K
5
, cum aceste doua
grafuri am aratat ca nu snt planare si cum
h
(G
este
planar rezulta ca G
o reprezen-
tare planara a sa. Daca C
este un circuit al
lui G
) atunci
exista w V (C
) astfel nct w ,= u, v si w nu
este extremitatea nici unei corzi interioare a lui
C
.
368
Demonstrat ie: Fie v
1
, v
2
, ..., v
n
vrfurile circuit-
ului C
ntr-o parcurgere a sa de la u la v
(v
1
= u, v
n
= v). Daca C
si
ji = minkl [ k > l+1, v
k
v
l
E(G
), v
k
v
l
coarda interioara .
Atunci v
i+1
nu e incident cu nici o coarda in-
terioara (v
i+1
v
p
cu i + 1 < p < j nu e coarda
interioara caci s-ar contrazice alegerea perechii
(ij) si v
i+1
v
l
cu l < i sau l > j, nu este coarda
interioara datorita existent ei coardei v
i
v
j
si a
planaritat ii).
v =u
1
v
v
v
i
j
i+1
v = v
n
369
Vom demonstra teorema 4 n ipoteza supli-
mentara ca G este maximal planar : orice
muchie i s-ar adauga se obt ine un graf nepla-
nar (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.
Lema. 4. Fie G maximal planar cu n 4
vrfuri si G
o reprezentare planara a sa cu
fat a exterioara u, v, w. Exista o etichetare a
vrfurilor lui G
: v
1
, v
2
, ..., v
n
astfel nct v
1
=
u, v
2
= v, v
n
= w si pentru orice k, 4 k n
avem:
370
( i) subgraful G
k1
= [v
1
, . . . , v
k1
]
G
, este
2-conex si fat a sa exterioara este determinata
de circuitul C
k1
ce cont ine uv.
(ii) n subgraful G
k
, vrful v
k
este n fat a ex-
terioara a lui G
k1
si N
G
k
(v
k
) v
1
, . . . , v
k1
k1
\ uv.
Demonstrat ie: Fie v
1
= u, v
2
= v, v
n
= w, G
n
=
G, G
n1
= Gv
n
. Sa observam ca N
G
n
(v
n
) este
un circuit ce cont ine uv (este sucient, pen-
tru a demonstra aceasta sa ordonam N
G
(w)
dupa abscisele vrfurilor si sa folosim planari-
tatea maximala).
v =u
1
v =w
n
v =v
2
v
k
C
k - 1
Rezulta ca pentru k = n (i) si (ii) au loc.
371
Daca v
k
a fost ales (k n) atunci n G
k1
=
G
v
n
, . . . , v
k
vecinii lui v
k
determina un cir-
cuit C
k1
ce cont ine uv si margineste fat a ex-
terioara a lui G
k1
. Din lema 3, rezulta ca
exista v
k1
pe C
k1
astfel nct v
k1
nu este
incident cu o coarda interioara a lui C
k1
.
Din construct ie, rezulta ca v
k1
nu este in-
cident nici cu corzi exterioare lui C
k1
si cu
aceasta alegere, se observa ca G
k2
va cont ine
un circuit C
k2
cu proprietat ile (i) si (ii).
Notam ca etichetarea precizata n lema 4 se
poate construi n O(n) considernd o reprezentare
a lui G cu liste de adiacent a ordonate circular,
prin xarea vrfurilor v
1
, v
2
si v
n
si apoi con-
sidernd pentru ecare k k 3 un vrf v
k
cu
proprietatea ca arcele cu o extremitate v
k
si
cealalta n v
1
, . . . , v
k1
formeaza un segment
continuun lista circulara a lui A(v
k
) (existent a
unui asemenea vrf ind asigurata de lema 4 ).
372
Demonstrat ia teoremei 4. Asa cum am mai
observat, se poate presupune G maximal pla-
nar cu n( 4) vrfuri. Fie G
o reprezentare
planara a lui G, cu vrfurile v
1
, v
2
, . . . , v
n
, fat a
exterioara u, v, w si etichetarea vrfurilor satis-
face condit iile din lema 4.
Vom construi o reprezentare Fary a lui G cu
vrfurile puncte de coordonate ntregi.
k+1
. Fie w
p
, w
p+1
, . . . , w
q
vecinii
lui v
k+1
n G
k+1
(cf. lemei 4) 1 p < q m.
w =
1
v =u
1
v =v
2
w =
m
w
w
w
w
w
w
w
w
2
3
p
p+1
p+2
q-2
q-1
q
P
374
Paralela prin w
p
la prima bisectoare intersecteaza
paralela prin w
q
la a doua bisectoare, ntr-un
punct P. Daca din punctul P se pot trasa
segmentele Pw
i
p i q astfel nct ele sa
e distincte, atunci putem lua v
k+1
= P si
obt inem reprezentarea Fary pentru G
k+1
cu
vrfuri de coordonatentregi, satisfacnd condit iile
(1) (2) si (3).
Daca segmentul w
p
w
p+1
este paralel cu
prima bisectoare, atunci translam cu o unitate
la dreapta toate vrfurile grafului G
k
, care au
abscisa x
w
p+1
. Efectuam apoi o translat ie
cu o unitate la dreapta a tuturor vrfurilor cu
abscisa x
w
q
. Sa observam ca acum toate
segmentele P
w
i
cu p i q snt distincte, seg-
mentele w
i
w
i+1
cu i = q, m1 au pantele 1 si
de asemenea w
p
P
si P
w
q
(unde P
este punc-
tul obt inut prin intersect ia paralelelor la prima
(respectiv a doua) bisectoare, duse prin w
p
si
w
q
). Luam v
k+1
= P
: E E denita de
.
Intuitiv, pentru a calcula
= (V
, E) unde V
se
obt in din muchiile grafului G, asociindu-i ecarei
muchii e E cele doua fet e n frontira carora
se afla e.
G
G
*
Lema. 1. Fie G = (V, E) este un graf plan
maximal conex , G
= (V
, E) dualul sau si
E
E. Atunci (V, E
, E E
) este arbore
part ial al lui G
.
379
Teorema. 1. (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 reprezen-
tare planara (obt inute cu un algoritm liniar).
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 arborele bfs construit.
380
Vom nota cu L(t), 0 t l + 1 mult imea
varfurilor de pe nivelul t (nivelul l +1 va in-
trodus n scopuri tehnice si este vid, ultimul
nivel este de fapt l).
Evident, ecare 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 pro-
prietat ile separatorului pe care l cautam:
t<t
1
L(t)
<
n
2
t>t
1
L(t)
<
n
2
.
Daca si L(t
1
) 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 ramasa n
D o reunim cu cealalta mult ime (mica ) dintre
C si E pentru a obt ine B.
Ne ocupam de 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 ramas
n 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).
383
Acest arbore se construieste simplu pornind de
la ultimul nivel si adaugand pentru ecare varf
o muchie incidenta cu el si cu cealalta extrem-
itate pe nivelul precedent (nivelul 0 cont ine
doar s).
Putem presupune ca D este triangulat (altfel
se triangularizeaza n timp liniar). Construim
dualul sau D
al lui D
si consideram muchiile
lui T
(ce se deter-
mina numarand vecinii). Atunci:
- I(e) = 0;
- [c(e)[ = 3 (D e triangulat);
- c(e) = [u, x, v].
Cazul 2.
u v
c (e )
e
u
= u
v, e este
un t ep n acelasi triunghi ca si e
si u
este pe circuitul
c(e); ac. rezulta testand daca u nu-i pe lista c(e
).
Atunci:
385
- I(e) = I(e
);
- [c(e)[ = c(e
) +1;
- c(e) = [u] c(e
).
Cazul 3.
u v
e
u
e
=
u
si
u
). Atunci:
- I(e) = I(e
) +1;
- [c(e)[ = c(e
) 1;
- c(e
).
Cazul 4.
u v
e
e
y
p
x
e"
c (e )
c (e )
"
Avem calculata informat ia pentru t epii e
= uy
si e = yv iar e este un t ep n acelasi triunghi
ca si e
, e.
386
Fie p drumul comun al lui c(e
) si c(e) si e x
celalalt capat al lui p n afara de y. Atunci:
- I(e) = I(e
) = c
[x] c unde c
este c(e
) cu p sters
si c este c(e) cu p sters.
Calculul lui [p[ si reprezentarea lui c(e) se obt in
scanand c(e
)+[c(e
)[+1 <
n
1
3
+1
2n
1
3
(pentru n
1
3).
3. I(e) +c(e) = I(e
) +c(e
) +I(e
) +[p[ 1 +c(e
) +
c(e
) 2[p[ +1 <
2n
1
3
[p[ <
2n
1
3
.
Cu aceasta teorema separatorului este complet
demonstrata.
Ilustram cum poate folosita teorema separa-
torului mpreuna cu o metoda de divide & im-
pera pentru a obt ine algoritmi exact i cu com-
portare subexponent iala pentru probleme NP-
hard pe grafuri planare.
388
Consideram problema testarii daca un graf pla-
nar dat admite o 3-colorare a varfurilor (prob-
lema cunoscuta ca ind NP-completa).
Pentru grafuri cu put ine varfuri (un numar con-
stant 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, construimn timp liniar O(n),
asa cum ne asigura teorema separatorului, parti-
t 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 denite pe C si cu valori n 1, 2, 3
se testeaza daca este 3-colorare a subgrafului
indus de C si daca poate extinsa la o 3-
colorare a subgrafului indus de AC n G si la
o 3-colorare a subgrafului indus de B C n G
(recursiv).
389
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 !
Exista si alte abordari pentru obt inerea de al-
goritmi performant i pentru problemele dicile
pe grafuri planare. Descriemn continuare una
din ele.
390
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).
391
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).
392
Teorema. 2. (Robertson & Seymour, 90)
Pentru orice graf conex G cu E(G) 3 avem
bw(G) tw(G) +1
3
2
bw(G).
Teorema. 3. (Fomin & Thilikos, 2003)
Pentru orice graf planar G avem
bw(G)
_
4.5[V (G)[ 2.122
_
[V (G)[.
Teorema. 4. (Fomin & Thilikos, 2003)
Fie o problema de optimizare care este re-
zolvabila 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 rezolvabila
n timpul O(f(2.122
n)g(n) +n
4
).
Demonstrat ia rezulta utilizand teorema ante-
rioara si un algoritm de complexitate O(n
4
) dat
de Robertson & Seymour pentru determinarea
unei b-descompuneri optimale a unui graf.
393
De exemplu, se stie ca problema determinarii
unei mult imi stabile de cardinal maximntr-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 maximntr-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 !
E N D
394
Seminarii
Setul de probleme 1
Problema 1. Un graf G se numeste rar daca numarul
sau de muchii m este mai mic decit
n
2
logn
, unde n reprezinta
numarul de virfuri. O justicare este aceea ca matricea
de adiacent a A a grafului, care ocupa n
2
locat ii de mem-
orie, poate intotdeauna reprezentata folosind O(
n
2
logn
),
locat ii de memorie astfel incit raspunsul la o intrebare
A(i, j) = 1 ? sa se faca in O(1). Descriet i o astfel de
schema de reprezentare. (4 puncte)
Problema 2. Diametrul unui graf este lungimea
maxima a unui drum de lungime minima intre doua vir-
furi ale grafului. Doua virfuri care sunt extremitat ile
unui drum minim de lungime maxima in graf se numesc
diametral opuse. Demonstrat i ca urmatorul algoritm
determina o pereche de virfuri diametral opuse intr-un
arbore T:
dintr-un virf oarecare se executa o parcurgere BFS a
lui T; e u ultimul virf vizitat;din virful u se executa o
395
parcurgere BFS a lui T; e v ultimul virf vizitat;
return u,v.
Este valabil algoritmul pentru un graf conex oarecare ?
(4 puncte)
Problema 3. Fie T un arbore un arbore binar cu
radacina. Un algoritm simplu de desenare a lui T poate
descris recursiv dupa cum urmeaza.
- Folosim ca suport o grila (liniatura unui caiet de mate);
virfurile se plaseaza in punctele de intersect ie ale grilei.
- Desenam subarborele sting; Desenam subarborele drept.
- Plasam cele doua desene unul linga altul la distant a
pe orizontala doi si cu radacinile la aceeasi inalt ime.
- Plasam radacina cu un nivel mai sus la jumatatea
distant ei pe orizontala dintre cei doi copii.
- Daca avem doar un copil plasam radacina cu un nivel
mai sus la distant a 1 fat a de copil (la stinga sau la
dreapta dupa cum este acesta).
Descriet i cum se poate asocia pentru ecare nod v al ar-
borelui T (folosind algoritmul de mai sus) coordonatele
(x(v), y(v)) reprezentind punctul de pe grila unde va
desenat.(3 puncte)
396
Problema 4. Intr-o sesiune de examene s-au inscris n
student i care trebuie sa sust ina examene dintr-o mult ime
de m discipline. Intrucit examenele se sust in in scris, se
doreste ca tot i student ii care dau examen la o disciplina
sa faca acest lucru simultan. De asemenea, regulamen-
tul de desfasurare a examenelor interzice ca un student
sa dea doua examene in aceeasi zi. Pentru ecare stu-
dent se dispune de lista disciplinelor la care doreste sa
e examinat.
Sa se descrie construct ia unui graf G care sa ofere raspunsul
la urmatoarele doua intrebari prin determinarea unor
parametri asociat i (care se vor preciza):
- care e numarul maxim de examene ce se pot organiza
in aceeasi zi ?
- care e numarul minim de zile necesare organizarii tu-
turor examenelor? (3 puncte)
397
Setul de probleme 2
Problema 1. Fie G = (S, T; E) un graf bipartit si
X S, T. Graful G se numeste X-lant daca varfurile
mult imii X pot ordonate X = x
1
, x
2
, . . . , x
p
(unde
p = [X[) astfel ncat N
G
(x
1
) N
G
(x
2
) . . . N
G
(x
p
).
a) Demonstrat i ca G este X-lant daca si numai daca
este X-lant , unde X = S, T X. (2 puncte)
b) Daca G (bipartit) este reprezentat cu ajutorul listelor
de adiacent a , are ordinul n si dimensiunea m, descriet i
un algoritm cu timpul O(n +m) care sa testeze daca G
este S-lant . (2 puncte)
Problema 2. Un graf G se numeste autocomplemen-
tar daca este izomorf cu complementul sau : G G.
a) Demonstrat i ca un graf autocomplementar este conex
si ca ordinul sau este multiplu de 4 sau multiplu de 4
plus 1.(2 puncte)
b) Demonstrat i ca pentru orice graf G exista un graf
autocomplementar H astfel incit G este subgraf indus
in H. (2 puncte)
c) Determinat i toate grafurile autocomplementare cu
cel mult 7 virfuri. (2 puncte)
398
Problema 3. O echipa de doi programatori L(azy)
si T(hinky) primeste ca sarcina sa determine un drum
intre 2 noduri date, care sa satisfaca anumite cerint e,
intr-un graf G dat, despre care se stie ca este rar :
[E(G)[ = O([G[). Programatorul L propune ca solut ie
generarea (cu backtracking) a tuturor drumurilor dintre
cele doua noduri si selectarea celui convenabil, motivand
ca intr-un astfel de graf nu pot exista prea multe dru-
muri intre doua noduri xate (sunt put ine muchii si deci
put ine posibilitat i de ramicare; de ex., intr-un arbore
exista exact un drum intre orice doua noduri xate).
Programatorul T nu-i de acord si da urmatorul con-
traexemplu: se considera graful H = K
2
P
n1
(n un
intreg mare); o pereche de virfuri de grad 2 adiacente
din H se uneste cu un virf nou x, iar cealalta pereche
de virfuri de grad 2 adiacente din H se uneste cu un virf
nou y; graful obt inut, G, are proprietat ile din problema
de rezolvat si totusi numarul drumurilor de la x la y in G
este prea mare. Ajutat i-l pe L sa int eleaga contraexem-
plul, desenind graful G, aratind ca este rar si estimind
numarul drumurilor de la x la y. (2 puncte)
399
Problema 4. Presupunem ca un turneu (di-
graf cu proprietatea ca orice 2 virfuri sunt unite
exact printr-un arc) are un circuit C de lungime
n 4.
Aratat i ca pentru orice virf x al lui C se pot
determina in timpul O(n), inca doua virfuri ale
lui C y si z astfel incit (x, y, z) este un circuit
de lungime 3. (2 puncte)
400
Setul de probleme 3
Problema 1. Fie G = (V, E) un graf cu n virfuri, m
muchii si cu matricea de adiacent a A. Dintre cele 2
m
orientari posibile ale muchiilor sale consideram una oare-
care si cu ajutorul ei construim matricea de incident a
virf-arc Q 0, 1, 1
nm
denita prin :
(Q)
ve
= 1, daca v este extremit. init iala a arcului e,
(Q)
ve
= 1, daca v este extremitatea nala a arcului e
(Q)
ve
= 0 in toate celelalte cazuri.
Demonstrat i ca matricea A+QQ
T
este o matrice diago-
nala si precizat i semnicat ia combinatorie a elementelor
ei. (3 puncte)
Problema 2. Fie G un graf oarecare si notam cu b(G)
graful obt inut din G prin inserarea cite unui nou nod pe
ecare muchie. Demonstrat i ca b(G) este un graf bipar-
tit. (2 puncte)
Demonstrat i ca G si H sunt izomorfe daca si numai
daca b(G) este izomorf cu b(H). Deducet i ca testarea
izomorsmului a 2 grafuri oarecare se reduce polino-
mial la testarea izomorsmului a 2 grafuri bipartite (2
puncte)
401
Problema 3. Graful paianjen cu n virfuri
este graful care se obt ine unind unul din vir-
furile de grad 1 ale grafului P
3
cu toate virfurile
unui graf oarecare cu n 3 virfuri, disjunct de
P
3
(n este un intreg pozitiv mare).
Daca G este un graf cu n virfuri reprezen-
tat prin matricea de adiacent a, aratat i ca se
poate testa daca este graf paianjen folosind
doar O(n) probe ale matricii de adiacent a.
(o proba este un acces la un element oarecare
al matricii, fara a-l memora explicit pentru uti-
lizari ulterioare). (4 puncte)
402
Problema 4. Asociem unui arbore binar T de ordin
n cu radacina r un drum P
3n
orientat procedind astfel:
ecarui nod v al lui T i se asociaza trei noduri cu acelasi
nume v pe care le desemnam prin v
1
, v
2
, v
3
; daca v nu
are in T descendent sting, atunci se introduce arcul v
1
v
2
in P
3n
; daca v nu are in T descendent drept, atunci se
introduce arcul v
2
v
3
in P
3n
; daca descendentul sting al
lui v in T este w, atunci se introduc in P
3n
arcele v
1
w
1
si w
3
v
2
; daca descendentul drept al lui v in T este w,
atunci se introduc in P
3n
arcele v
2
w
1
si w
3
v
3
.
Daca se parcurge drumul P
3n
de la extremitatea init iala
r
1
la extremitatea nala r
3
si se listeaza numele virfurilor
in ordinea parcurgerii lor se obt ine un sir in care numele
ecarui virf al lui T apare exact de trei ori.
Demonstrat i ca :
daca din acest sir se ret ine doar prima aparit ie a ecarui
nume se obt ine parcurgerea pre-order a arbrelui T;
daca din acest sir se ret ine doar a doua aparit ie a ecarui
nume se obt ine parcurgerea in-order a arbrelui T;
daca din acest sir se ret ine doar a treia aparit ie a ecarui
nume se obt ine parcurgerea post-order a arbrelui T.
(3 puncte)
403
Setul de probleme 3
Problema 1. Fie G = (V, E) un graf de ordin n si di-
mensiune m. O ordonare V = v
i
1
, . . . , v
i
n
a varfurilor lui
G se numeste d-marginita daca n digraful G
, obt inut
din G prin nlocuirea ecarei muchii v
i
j
, v
i
k
cu arcul
(v
i
minj,k
, v
i
maxj,k
), avem v V d
+
G
(v) d.
a) Descriet i un algoritm care primind la intrare G reprezen-
tat cu ajutorul listelor de adiacent a si d N
, testeaza
n timpul O(n + m) daca G are o ordonare d-marginita
(se vor argumenta corectitudinea si complexitatea). (2 puncte)
b) Utilizat i algoritmul de la punctul a) pentru a deter-
mina n timpul O(mlogn) parametrul
o(G) = mind N[ G are o ordonare d-marginita . ( 2 puncte)
c) Aratat i ca orice graf G admite o colorare a varfurilor
cu o(G) +1 culori. (2 puncte)
Problema 2. Demonstrat i algoritmic ca mult imea
muchiilor oricarui graf complet K
n
(n 2) poate
partit ionata n
n
2
submult imi, ecare dintre acestea
reprezentand mult imea muchiilor unui arbore (subgraf
al lui K
n
). Exemplu. K
5
,
5
2
= 3 :
(4 puncte)
404
Problema 3. Pentru un graf conex G se
executa urmatorul algoritm:
- Se init ializeaza o coada Q cu graful G.
- Cat timp coada Q nu-i vida:
- se extrage n H graful din capul cozii,
- se determina o mult ime de articulat ie A
V (H), minimalan raport cu incluziunea (nici o
submult ime proprie nu-i mult ime de articulat ie
n H), si daca V
1
, . . . , V
k
(k 2) sunt mult imile
de varfuri ale componentelor conexe ale grafu-
lui H A, atunci
- se adauga la Q grafurile [A V
1
]
H
, . . . , [A V
k
]
H
.
Se observa ca daca graful curent este complet atunci nu se adauga
nimic n coada Q.
a) Aratat i ca ecare graf introdus n coada
este conex.(2 puncte)
b) Demonstrat i ca numarul total al grafurilor
introdusen coada Q nu depaseste [G[
2
. (2 puncte)
405
Setul de probleme 3
Problema 1. Fie ( clasa grafurilor G cu pro-
prietatea ca orice arbore dfs al lui G este un
drum (pentru orice ordonare a varfurilor lui G
si orice ordonare a listelor de adiacent a aso-
ciate acestor varfuri, orice aplicare a unui dfs
genereaza un drum hamiltonian n G).
Demonstrat i ca
( = K
1
, K
2
n3
K
n
, C
n
, K
n,n
.
(1+3 puncte)
Problema 2. Fie D = (V, E) un digraf (fara bucle) de
ordin n cu mult imea varfurilor V = 1, 2, . . . , n. Con-
sideram urmatorul algoritm:
1. SK ;
for i = 1 to n do \\ stanga dreapta
if (,j SK astfel ncat ji E) then SK SK i;
2. for i = n to 1 do \\ dreapta stanga
if i SK (j SK astfel ncat ji E) then SK SK \ i;
3. output SK.
406
Demonstrat i ca SK este un seminucleu n D: SK este
nevida, stabila n G[D] (graful suport al digrafului D) si
orice varf din v V \ SK e accesibil n D, dintr-un varf
al lui SK, pe un drum de lungime cel mult 2.
Indicat i structurile de date si modul de folosire a aces-
tora pentru o implementare a algoritmului de mai sus n
timpul C(n +m) (m ind [E[).
(2+2 puncte)
Problema 3. Aratat i ca daca G = (S, T; E) este un
graf bipartit cu urmatoarele proprietat i:
- [S[ = n; [T[ = m (n, m N
);
- t T [N
G
(t)[ > k > 0;(pentru un k oarecare mai
mic decat n);
- t
1
, t
2
T daca t
1
,= t
2
atunci N
G
(t
1
) ,= N
G
(t
2
);
- t
1
, t
2
T daca t
1
,= t
2
atunci [N
G
(t
1
) N
G
(t
2
)[ = k,
atunci are loc inegalitatea m n. (2 puncte)
Problema 4.
Pentru n N
denim graful G
n
= (V, E) astfel:
V = (i, j)[1 i n, 1 j n,
(i, j)(k, l) E (pentru doua varfuri (i, j) si (k, l) dis-
tincte din V ) daca si numai daca i = l sau j = k.
Demonstrat i ca G
n
este universal pentru familia arborilor
de ordin n:
oricare ar T un arbore de ordin n exista A V astfel
ncat T
= [A]
G
n
.
(2+2 puncte)
407
Setul de probleme 4
Problema 1. Prezentat i (pe cel mult o pagina ) o
problema interesanta din domeniul IT care sa necesite
rezolvarea ecienta a unei probleme de drum minim intr-
un digraf asociat problemei init iale. (3 puncte)
Problema 2. Fie G = (V, E) un graf, s V un virf
oarecare al lui G iar t un alt virf, accesibil in G printr-
un drum din s. O mult ime A de muchii se numeste
st-inevitabila daca exista S V astfel incit s S, t , S
si A = e E[e = uv, u S v , S. Aratat i ca numarul
maxim de mult imi st-inevitabile disjuncte doua cite doua
este egal cu distant a in G de la s la t si ca se poate de-
termina o familie de astfel de mult imi cu ajutorul unui
bfs a lui G din s. (3 puncte)
Problema 3. Fie G = (V, E) un graf conex si v un
virf al sau cu proprietatea ca N
G
(v) ,= V v. Daca
pentru A V notam cu N
G
(A) =
aA
N
G
(a) A, se
observa ca exista mult imi de virfuri A care satisfac pro-
prietat ile : v A, [A]
G
este conex, N = N
G
(A) ,= si
R = V (A N) ,= (de exemplu, A = v).
408
a) Demonstrat i ca daca se considera o mult ime
A maximala (in raport cu incluziunea) satisfacind
proprietat ile enunt ate, atunci orice virf din R
este adiacent cu orice virf din N.(2 puncte)
b) Daca, in plus, graful G este C
k
k4
-free,
atunci mult imea N de la punctul a) are propri-
etatea ca este clica in graful G.(2 puncte)
c) Deducet i ca singurele grafuri C
k
k4
-free,
regulate si conexe sunt grafurile complete.(2
puncte)
Problema 4. Aratat i ca se poate utiliza
o parcurgere dfs pentru a determina un cir-
cuit par intr-un graf 3-regulat oarecare. (2
puncte)
409
Setul de probleme 4
Problema 1. Fie T = (V, E) un arbore cu macar doua
varfuri reprezentat cu ajutorul listelor de adiacent a. Se
declara un varf oarecare r V radacina si se noteaza
cu d(v) (pentru orice varf v V ) lista descendent ilor
imediat i ai lui v n parcurgerea bfs din r (varfurilor pen-
dante le corespund liste vide). Consideram urmatorul
algoritm:
1. Se construiesc tablourile de intregi a[v] si b[v] (v V )
astfel: daca d(v) este vida, atunci a[v] 1 si b[v] 0;
daca d(v) este nevida si toate varfurile u din d(v) au
a[u] si b[u] calculate, atunci a[v] 1 +
ud(v)
b[u] si
b[v]
ud(v)
max(a[u], b[u]).
2. Se returneaza x max(a[r], b[r]).
Descriet i n pseudocod algoritmul de mai sus, argumentat i
complexitatea timp de O([V [) si demonstrat i ca valoarea
returnata x este numarul de stabilitate (T) al arborelui
T. (1+1+2 = 4 puncte)
Problema 2. Fie G = (V, E) un graf d-regulat de
ordin n care satisface urmatoarea proprietate:
exista > 0 astfel ncat pentru orice mult ime de varfuri
S V cu proprietatea ca [S[
n
2
, numarul muchiilor cu
o extremitate n S si cealaltan V S este cel put in [S[.
410
a) Grafurile complete au proprietatea de mai sus ?
(argumentat i raspunsul)
b) Daca si d sunt constante (nu depind de n), demonstrat i
ca diametrul lui G satisface
d(G) =C(logn).
(1+3 = 4 puncte)
Problema 3. Muchiile grafului conex G = (V, E) se
coloreaza arbitrar rosu si albastru.
a) Demonstrat i ca exista n G un parcurs Euleian nchis
fara muchii consecutive de aceeasi culoare daca si numai
daca pentru ecare varf v V al lui G numarul muchi-
ilor rosii incidente cu v este egal cu numarul muchiilor
albastre incidente cu v.
b) Daca graful G este complet si x, y, z sunt trei varfuri
distincte ale sale demonstrat i ca daca exista n G un
drum fara muchii consecutive de aceeasi culoare de la
x la y trecand prin z, atunci exista un drum cu aceeasi
proprietate care are ca prima muchie pe xz sau ca ultima
muchie pe zy. (1+1+2 = 4 puncte)
Problema 4. Fie G un graf si (G) gradul minim al
unui varf al sau. Descriet i un algoritm care, pentru
un arbore dat T cu k (G) muchii, sa construiasca
(n timp polinomial) un subgraf H al lui G astfel ncat
H
= T. (2 puncte)
411
Setul de probleme 5
Problema 1. Sa se arate ca un graf G este bipartit
daca si numai daca orice subgraf indus H al lui G satis-
face proprietatea 2(H) [H[ (3 puncte)
Problema 2. Demonstarat i ca intr-un graf bipartit G
cu n virfuri si m muchii avem inegalitatea 4m n
2
. (2
puncte)
Descriet i un algoritm care sa testeze daca un graf cu n
virfuri si m muchii este complementarul unui graf bipar-
tit in timpul O(n +m) (3 puncte)
Problema 3. Aratat i ca orice graf G cu m muchii
are un graf partial H bipartit si cu cel put in
m
2
muchii.(3
puncte)
Problema 4. Demonstrat i ca in orice graf conex G =
(V, E) exista o mult ime stabila S astfel incit graful bipar-
tit H = (S, V S; E
= E1
2
(V S)
. Deducet i ca (G)
[G[1
(G)
pentru orice graf conex G.
(3 puncte)
412
Setul de probleme 6
Problema 1. Pentru d N
se considera graful G
d
=
K
2
K
2
... K
2
. .
d factori
.
Sa se determine ordinul, dimensiunea si diametrul lui G
d
.
(2 puncte)
Sa se arate ca G
d
este bipartit si sa se determine (G
d
).
(2 puncte)
Problema 2. Un graf cu cel put in trei virfuri se
numeste condent ial conex daca pentru orice trei virfuri
distincte a, b, c ale grafului exista un drum de la a la
b astfel incit niciunul dintre virfurile interne ale acestui
drum (daca exista astfel de virfuri) nu este c sau un
vecin al lui c. Un exemplu banal de graf condent ial
conex este graful K
n
cu n 3.
Demonstrat i ca un graf conex G = (V, E), cu cel put in
trei virfuri si care nu-i complet, este condent ial conex
daca si numai daca au loc urmatoarele doua condit ii :
1. Pentru orice virf v mult imea N(v) = w V [w ,=
v, vw , E este nevida si induce un graf conex.
2. Orice muchie a grafului este cont inuta intr-un C
4
indus in graf sau este muchia din mijlocul unui P
4
indus in graf.
(4 puncte)
413
Problema 3. In Problema 2-SAT se dau : o mult ime
de variabile boolene U = x
1
, x
2
, ..., x
n
si o mult ime de
clauze C = C
1
, C
2
, ..., C
m
, unde ecare clauza C
i
este
disjunct ia a doi literali C
i
= v
i
w
i
, literalii reprezentind
variabile sau negat iile acestora. Problemei i se asociaza
un digraf G cu V (G) = x
1
, x
2
, ., x
n
, x
1
, x
2
, ...., x
n
(adica
tot i literalii posibili) si in care pentru ecare clauza C
i
=
v
i
w
i
se adauga arcele v
i
w
i
si w
i
v
i
(folosind, evident,
convent ia referitoare la dubla negare). Demonstrat i ca
exista o atribuire a valorilor de adevar si fals pentru
variabilele booleene, astfel incit ecare clauza sa e
adevarata, daca si numai daca digraful G are poprietatea
ca pentru orice i 1, ..., n x
i
si x
i
apart in la compo-
nente tari conexe diferite. (4 puncte)
Argumentat i complexitatea timp de O(n + m) pentru
testarea proprietat ii de mai sus. (2 puncte)
414
Setul de probleme 7
Problema 1. Gossip Problem. Intr-un grup de n
doamne, ecare cunoaste o parte dintr-o birfa pe care
celelalte n-o cunosc. Ele comunica prin telefon si orice
apel telefonic intre orice doua doamne are ca efect fap-
tul ca ecare din ele va aa tot ce cunoaste cealalta.
(a) Descriet i o schema de a da telefoanele astfel incit
intr-un numar minim f(n) de apeluri telefonice, ecare
doamna va aa tot ce stiu celelalte.
Indicat ie: Aratat i ca f(2) = 1, f(3) = 3, f(4) = 4 si
pentru n > 4 f(n) = 2n 4 (usor, indicind scheme de
telefonare cu aceste numere de apeluri). Incercat i sa
argumentat i ca 2n 4 este chiar numarul minim.
(2 puncte pentru descrierea schemei, 1 punct pentru
demonstrarea optimalitat ii)
(b) Modelat i problema in limbajul teoriei grafurilor: schemei
de telefonare ii va corespunde un sir de muchii iar cunoasterea
comuna se va exprima printr-o conditit ie referitoare la
existent a unor drumuri speciale cu elemente din sirul
considerat (1 punct)
415
Problema 2. Fie D un digraf si doua funct ii denite
pe multimea arcelor sale, a : E(D) R
+
si b : E(D)
R
+
. Descriet i un algoritm ecient pentru determinarea
unui circuit C
in D astfel incit
a(C
)
b(C
)
= min
a(C)
b(C)
; C circuit in D
(4 puncte)
Problema 3. Fie A
1
, A
2
, ..., A
n
submult imi distincte
ale unei mult imi de n elemente S. Demonstrat i ca exista
un element x in mult imea S astfel incit A
1
x, A
2
x, ..., A
n
x sa e si ele distincte. (2 puncte)
Problema 4. Fie G un graf si c : E(G) R
+
o
funct ie de capacitate a muchiilor. Oricarui drum din
graf cu macar o muchie i se asociaza locul ingust ca
ind muchia sa de capacitate minima . Descriet i un
algoritm ecient care sa determine pentru doua virfuri s
si t distincte ale grafului drumul cu locul ingust cel mai
mare (dintre toate drumurile de la s la t in graful G).
(4 puncte)
416
Setul de probleme 7
Problema 1. Fie G = (V, E) un digraf de ordin n, a : E R
+
o funct ie de cost nenegativa, si s ,= t doua varfuri xate. Pentru
rezolvarea problemei P1 (a determinarii unui drum de cost a minim
de la s la t n G) se propune urmatorul algoritm:
1. for each i V do p
i
0;
i s;nainte(s) s;
2. while i ,= t do
if j V astfel ncat p
i
p
j
= a
ij
then
nainte(j) i; i j;
else
p
i
min
ijE
(a
ij
+p
j
); i nainte(i) ;
3. Costul unui drum de cost minim de la s la t este p
s
p
t
si un drum de cost minim se obt ine din:
t, nainte(t), nainte(nainte(t)), . . . , s.
a)Demonstrat i ca daca pasul 2 se termina atunci armat iile din
pasul 3 sunt corecte.(2 puncte)
b)Stabilit i complexitatea timp a algoritmului(2 puncte)
Problema 2. Fie T = (V, E) un arbore si w : V R
+
o funct ie de pondere nenegativa. Pentru orice subarbore
T
al lui T se deneste ponderea sa, w(T
), ca ind suma
ponderilor varfurilor sale.
Aratat i ca exista un varf v
0
V astfel ncat nici unul
din subarborii lui T v
0
nu are ponderea mai mare decat
1
2
w(T).(1 punct)
Descriet i un algoritm cu timpul O([V [) pentru gasirea lui
v
0
. (2 puncte)
417
Problema 3. Daca G si H sunt doua gra-
furi, notat ia G H semnica faptul ca exista
f : V (G) V (H) astfel ncat uv E(G)
avem ca f(u)f(v) E(H) (exista un morsm
de grafuri de la G la H).
Justicat i corectitudinea unui algoritm care sa
raspunda n timpul O(1) la ntrebarea: Are
loc C
n
C
m
? (n, m N, n, m 3; C
k
este
graful circuit de ordin k). (3 puncte)
Problema 4. Daca H este un graf, atunci
q(H) noteaza numarul componentelor conexe
de ordin impar ale lui H, iar (H) cardinalul
maxim al unui cuplaj al lui H . Demonstrat i ca
pentru orice graf G are loc relat ia:
max
SV (G)
(q(GS) [S[) = [V (G)[ 2(G) .
(Se presupune cunoscuta teorema lui Tutte)(4 puncte)
418
Setul de probleme 7
Problema 1. Determinat i numarul cuplajelor perfecte
ale grafului:
1 2 3 2n-1
2n
(3 puncte)
Problema 2.
a) Fie D = (V, E) un digraf aciclic cu n varfuri si m arce
si A, B V doua mult imi disjuncte, stabilen G(D) (gra-
ful suport al digrafului). Fie d(A, B) := mind(a, b)[a
A, b B (d(x, y)=distant a n D de la x la y = lungimea
celui mai scurt drum dintre x si y, daca acesta exista).
Descriet i un algoritm de complexitate C(n +m) pentru
aarea unei mult imi maximale 1 de drumuri disjuncte
(cu mult imile de varfuri disjuncte) de la A la B, ecare
de lungime d(A, B) (maximalitatea lui 1 este n raport
cu incluziunea, adica nu mai exista un alt drum de la A
la B care sa aiba lungimea d(A, B) si sa e disjunct de
orice drum din 1).
b) Aratat i cum poate folosit algoritmul de la a) pen-
tru implementarea algoritmului lui Hopcroft & Karp de
aare a unui cuplaj de cardinal maxim ntr-un graf bi-
partit.
(3+2 puncte)
419
Problema 3. Fie D = (V, E) un digraf cu mult imea de
varfuri V = 1, . . . , n si mult imea arcelor E =e
1
, . . . , e
m
.
Fie A = (a
ij
) /
nm
(1, 0, 1) matricea de incident a
a lui D (daca arcul e
j
iese din i atunci a
ij
= 1, daca arcul
e
j
intra n i atunci a
ij
= 1, altfel a
ij
= 0). Aratat i ca
pentru orice submatrice patrata B a lui A are loc:
det(B) 1, 0, 1.
(2 puncte)
Problema 4.
Intr-un graf fara varfuri izolate se con-
struieste un drum P astfel: se pleaca dintr-un varf oare-
care de start si apoi, din varful curent n care ne aam,
alegem un vecin diferit de varfurile deja vizitate. Atunci
cand nu mai este posibila nici o alegere, construct ia
lui P se ncheie. Evident, lungimea drumului P este
cel put in 1 si ea depinde de structura grafului si de
alegerile facute. Proprietarul grafului solicita o plata
pentru folosirea acestuia n procesul de construct ie a
drumului P. Aceasta plata se poate facenaintea ecarei
alegeri si, daca se plateste 1 RON se obt ine dreptul de
a face aceasta alegere, iar daca se platesc T >> 1 RONi
atunci se obt ine dreptul de a face gratuit toate alegerile
urmatoare. Dupa terminarea construct iei se poate com-
para suma platita, Apriori(P), cu cea care s-ar facut
daca s-ar cunoscut drumul P, notata Posteriori(P).
Gasit i o strategie de plata astfel ncat pentru orice graf
si orice drum construit P sa avem Apriori(P) (2
1/T)Posteriori(P).
(4 puncte)
420
Setul de probleme 8
Problema 1. Fie G un graf conex si o funct ie de cost
c : E(G) R. Vom numi taietura orice mult ime A
de muchii ale lui G cu proprietatea ca exista o bipartit ie
(S, V (G) S) a mult imii virfurilor lui G astfel incit A
este mult imea muchiilor lui G cu extremitat ile in clase
diferite ale bipartit iei.
a) Aratat i ca daca funct ia de cost are proprietatea ca
orice taietura are o unica muchie de cost minim, atunci
exista un unic arbore part ial de cost minim. (2 puncte)
b) Deducet i ca, daca funct ia de cost c este injectiva,atunci
G are un unic arbore part ial de cost minim. (1 punct)
c) Sunt adevarate reciprocele armat iilor a) si b) ? (1
punct)
Problema 2. Consideram o numerotare xata a
celor m > 0 muchii ale unui graf conex G = (V, E) de
ordin n. Pentru orice submult ime de muchii A con-
sideram x
A
GF
m
vectorul m-dimensional cu elemente
0,1 denit prin x
A
i
= 1 e
i
A (vect. caracteristic).
GF
m
este spat iul vectorial peste corpul GF (cu elem. 0
si 1, si operat iile de adunare si inmult ire modulo 2).
421
a) Demonstrat i ca mult imea vectorilor caracteristici ai
tuturor taieturilor grafului G, la care adaugam si vectorul
nul, formeaza un subspat iu vectorial X al lui GF
m
.(1
punct)
b) Demonstrat i ca vectorii caracteristici ai mult imilor
muchiilor circuitelor grafului G genereaza un subspat iu
vectorial U al lui GF
m
ortogonal pe X. (1 punct)
c) Aratat i ca dim(X) n 1 (1 punct)
d) Aratat i ca dim(U) mn +1(1 punct)
e) Deducet i ca dim(X) = n1 si ca dim(U) = mn+1.
(1 punct)
Problema 3. Aratat i ca orice arbore cu gradul maxim
t > 0 are cel put in t virfuri pendante. (2 puncte)
Problema 4. Fie T = (V, E) un arbore cu radacina r
(un virf oarecare) si cu parent(v) parintele nodului v V,
v ,= r. Un cuplaj M al lui T se numeste propriu daca
orice virf expus v (relativ la M ) in T are un frate w
(doua virfuri sunt frat i daca au acelasi parinte) astfel
incit w parent(v) M. a)Demonstrat i ca orice cuplaj
propriu este de cardinal maxim. (1 punct)
b)Aratat i ca pentru orice arbore cu n virfuri, dat prin
listele de adiacent a, se poate construi in timpul O(n) un
cuplaj propriu. (2 puncte)
422
Setul de probleme 8
Problema 1.
O procedura naiva de creare a unei ret ele sociale G =
(V, E) este urmatoarea:
Init ializare
G = (v, ) // v este creatorul ret elei
Aderarea la G (a unui nou membru v , V (G))
V V (G) v; E E(G)
if v has a friend in V (G) then E E vw[w V (G)
G (V, E)
a) Descriet i un algoritm ecient care, pentru un graf
dat G, sa decida daca este o ret ea sociala naiva (a fost
creat cu algoritmul de mai sus).
b) Administratorul ret elei a observat ca pentru orice
doi useri v si w ai ret elei G = (V, E) (v ,= w V ), se
poate raspunde n timp constant la o ntrebare vw E?
astfel: se asociaza grafului o valoare ntreaga pozitiva
x(G) si cate o valoare ntreaga pozitiva y(v) pentru
ecare varf v, astfel ncat pentru orice doua varfuri dis-
tincte v si w are loc vw E y(v) + y(w) > x(G).
Modicat i algoritmul de mai sus pentru a realiza aceasta
noua reprezentare a grafului (se ntret in doar mult imea
varfurilor V , x(G) si lista (y(v))
vV
).
(2+2 = 4 puncte)
423
Problema 2. Consideram urmatoarea euristica pentru
determinarea unui cuplaj de cardinal maximntr-un graf
bipartit G = (S, T; E):
function MMB(G = (S, T; E))
M =
while E ,= do
if u varf de grad 1 then e muchia incidenta cu u
else e o muchie incidenta cu un varf de grad maxim
M M e
se sterg extremitat ile muchiei e din G
return M
a) Demonstrat i ca algoritmul returneaza cuplajul de car-
dinal maxim daca G este arbore.
b) Demonstrat i ca daca G are un unic cuplaj perfect
M
0
, atunci algoritmul returneaza M
0
.
c) Aratat i ca pentru cuplajul M returnat are loc
[M[
(G)
2
. (2+2+2 = 6 puncte)
Problema 3. Fie G = (V, E) un graf conex si c : E R
o funct ie de cost cu valori reale asociate muchiilor.
a) Fie T
0
un arbore part ial al lui G cu proprietatea ca
pentru orice muchie e E(T
0
) exista un arbore part ial de
cost minim T
). Rezulta ca
T
0
este arbore part ial de cost minim al lui G? (argumentat i
raspunsul)
424
(b) Pentru T T
G
denim b(T) = max
eE(T)
c(e). Se
doreste aarea unui arbore T
0
T
G
astfel ncat b(T
0
) =
min
TT
G
b(T). Daca aplicam algoritmul lui Prim pen-
tru aarea unui arbore part ial de cost minim T
, este
acesta o solut ie pentru problema data? (argumentat i
raspunsul)
(2+2 = 4 puncte)
425
Setul de probleme 9
Problema 1. Fie G = (S, T; E) un graf bipartit. Utilizat i
teorema lui Hall pe un graf convenabil pentru a demon-
stra ca pentru orice intreg k, cu 0 k [S[, graful G
are un cuplaj de cardinal cel put in [S[ k daca si numai
daca A S [N
G
(A)[ [A[ k. (2 puncte)
Problema 2. Numim cuplaj de grad maxim in graful
G, un cuplaj M cu suma gradelor virfurilor saturate de
M maxima printre toate cuplajele grafului.
a) Aratat i ca un cuplaj de grad maxim este de cardinal
maxim (2 puncte)
b) Dem. ca exista in graful G un cuplaj care sat-
ureaza toate virfurile de grad maxim daca si numai daca
orice cuplaj de grad maxim are aceeasi proprietate. (2
puncte)
c) Demonstrat i ca daca mult imea virfurilor de grad maxim
ale grafului G induce un graf bipartit, atunci G are un
cuplaj care satureaza toate virfurile de grad maxim. (2
puncte)
d) Deducet i ca mult imea muchiilor unui graf bipartit G
poate partit ionata in (G) cuplaje.(2 puncte)
426
Problema 3. Consideram urmatoarea prob-
lema de decizie:
Instant a: G = (V, E) un graf, k N, b N
.
Intrebare : Exista in G un subgraf H cu b
muchii, fara virfuri izolate si cu ordinul lui H
cel put in k ?
Aratat i ca problema se poate rezolva in timp
polinomial. (2 puncte)
Problema 4. Aratat i, utilizind teorema lui
Tutte, ca orice graf 2-muchie conex 3-regulat
are un cuplaj perfect. (2 puncte)
427
Setul de probleme 10
Problema 1. Fie G un graf conex cu n virfuri si T
G
familia arborilor sai part iali. Se considera graful H =
(T
G
, E(H)) unde T
1
T
2
E(H) [E(T
1
)E(T
2
)[ = 2.
a) Demonstrat i ca H este conex si are diametrul cel mult
n 1. (2 puncte)
b)Demonstrat i ca pentru orice funct ie de cost c pe mult imea
muchiilor grafului G, mult imea arborilor part iali de cost
c minim induce un subgraf conex in H. (2 puncte)
Problema 2. Fie H = (V, E) un digraf si ts E un arc
xat al sau. Se coloreaza toate arcele lui H cu galben,
rosu si verde arbitrar, cu singura condit ie ca arcul ts sa
e galben (se poate intimpla ca sa nu avem arce rosii
sau verzi). Demonstrat i algoritmic ca are loc exact una
din urmatoarele situat ii:
i) exista un circuit in graful G(H) (nu se t ine seama de
orientare) cu arce galbene sau verzi care cont ine arcul
ts si toate arcele galbene ale sale au aceeasi orientare.
ii) exista o partit ie (S, T) a lui V astfel incit s S, t T,
toate arcele de la S la T sunt rosii si toate arcele de la
T la S sunt rosii sau galbene.
(2 puncte)
428
Problema 3. Fie G = (V, E) un graf. O mult ime de
virfuri A V se numeste m-independenta daca exista un
cuplaj M al lui G astfel incit A S(M). Demonstrat i ca
daca A si B sunt mult imi m-independente si [A[ < [B[,
atunci b B A : A b este m-independenta
(mult imile m-independente maximale au acelasi cardi-
nal).(4 puncte)
Problema 4. Cuplaje stabile in grafuri bipartite
Fie graful complet bipartit K
n,n
= (B, F; E), unde B =
b
1
, b
2
, ..., b
n
si F = f
1
, f
2
, ..., f
n
. Daca M este un cuplaj
perfect in K
n,n
(ecare b este cuplat cu exact un f), vom
folosi notat ia : b
i
f
j
M f
j
= M(b
i
) b
i
= M(f
j
).
Vom presupune ca
b B are o ordonare a preferint elor sale pe F :
f
i
1
<
b
f
i
2
<
b
... <
b
f
i
n
si
f F are o ordonare a preferint elor sale pe B :
b
i
1
<
f
b
i
2
<
f
... <
f
b
i
n
.
Un cuplaj perfect M al lui K
n,n
se numeste stabil daca :
b B daca f <
b
M(b), atunci M(f) <
f
b si, de aseme-
nea,
f F daca b <
f
M(f), atunci M(b) <
b
f .
Sa se arate ca pentru orice ordonari ale preferint elor ex-
ista un cuplaj stabil si sa se construiasca unul in C(n
3
).
(4 puncte)
429
Setul de probleme 11
Problema 1. Se dispune de un algoritm care primind
la intrare un graf G si o funct ie de pondere nenegativa
pe mult imea muchiilor acestuia, returneaza un cuplaj
perfect in graful G de pondere minima (printre toate
cuplajele perfecte ale grafului; daca G nu are cuplaj per-
fect se anunt a acest lucru). Aratat i case poate utiliza
acest algoritm pentru determinarea ecienta a cuplaju-
lui de cardinal maxim intr-un graf oarecare. (3 puncte)
Problema 2. Aratat i ca se poate determina, intr-o
matrice cu elemente 0 si 1 data, o mult ime de cardinal
maxim de elemente egale cu 0 si care sa nu se gaseasca
pe aceeasi linie sau coloana, cu ajutorul unui algoritm de
ux maxim (pe o ret ea convenabil denita). (3 puncte)
Problema 3. Digraful G = (V, E) descrie topologia in-
terconectarii intr-o ret ea de procesoare. Pentru ecare
procesor v V se cunoaste incarcarea sa load(v) R
+
.
Se cere sa se determine (cu ajutorul unei probleme de
ux maxim) un plan de echilibrare statica a incarcarii
procesoarelor : se va indica pentru ecare procesor ce
cantitate de incarcare va trimite si la ce procesor ast-
fel incit, in nal, toate procesoarele sa aiba aceeasi
incarcare. (4 puncte)
430
Problema 4. Sa se determine uxul de valoare maxima
in reteaua din gura de mai jos (explicind funct ionarea
algoritmului lui Edmonds-Karp):
4
3
1
4
3
5
10
3
6
a c
t
s
b
d
(Etichetele arcelor reprezinta capacitat ile)
(4 puncte)
431
Setul de probleme 11
Problema 1. Consideram urmatoarele prob-
leme de decizie:
PERF Instant a: G un graf.
Intrebare: Are G un cuplaj perfect?
3PERF Instant a: G un graf cu gradul ecarui varf 3.
Intrebare: Are G un cuplaj perfect?
Demonstrat i ca PERF se reduce polinomial la
3PERF (4 puncte)
Problema 2. Demonstrat i ca nu exista nici
o permutare e
1
, e
2
, . . . , e
10
a muchiilor grafu-
lui complet K
5
, astfel ncat pentru orice i
1, . . . , 9 muchiile e
i
si e
i+1
nu sunt adiacente
n K
5
si, de asemenea, e
1
si e
10
nu sunt adia-
cente n K
5
. (2 puncte)
432
Problema 3. Un organizator al unei conferint e trebuie sa asigure
fet e de masa (curate) pentru ecare din cele D zile cat dureaza
conferint a.
Se cunoaste numarul M
i
al meselor de care e nevoie n ziua i a
conferint ei (i = 1, D). Se considera ca toate cele M
i
fet e de masa
se murdaresc la sfarsitul zilei i (i = 1, D).
Organizatorul are de alesntre a cumpara fet e de masa noi, la pret ul
unitar p, sau, n dimineat a zilei i, sa trimita la curat at fet e de masa
murdare (din zilele precedente; i 2). Curat atoria are doua tipuri
de servicii: serviciul rapid, prin care se returneaza fet ele de masa
curate la nceputul zilei i + 1 la un cost unitar c
1
, si serviciul lent
prin care returneaza fet ele de masa curate la nceputul zilei i +2 la
un cost unitar c
2
. Desigur, p > c
1
> c
2
.
Problema pe care si-o pune organizatorul este de a face o plani-
care a modului de cumparare si trimitere la curat atorie a fet elor de
masa, astfel ncat sa satisfaca toate cererile pe durata conferint ei,
la un pret minim.
(Se presupune ca nu exista fet e de mese n stoc, la nceputul
conferint ei, si ca valoarea acestora dupa terminarea conferint ei e
neglijabila).
Sa se formuleze problema organizatorului ca o problema de ux de
cost minim (justicare). (4 puncte)
Problema 4. O euristica naturala pentru colorarea varfurilor unui
graf G = (V, E) este urmatoarea:
a) Se alege o D-ordonare a lui G, adica o ordonare V = v
i
1
, v
i
2
, . . . , v
i
n
astfel ncat d
G
(v
i
1
) d
G
(v
i
2
) . . . d
G
(v
i
n
).
b) Se coloreaza greedy varfurile: lui v
i
1
i se atribuie culoarea 1 si
apoi pentru ecare varf v
i
j
, cu j = 2, . . . , n, se atribuie cea mai mica
culoare posibila (cel mai mic numar natural p cu proprietatea ca nu
a fost atribuit drept culoare unuia dintre vecinii sai deja colorat i).
433
Consideram urmatoarea problema de decizie:
3GCOL Instant a: G un graf.
Intrebare: Exista o D-ordonare a varfurilor lui G astfel ncat
euristica de mai sus da o 3-colorare a lui G ?
Demonstrat i ca problema
3COL Instant a: G un graf.
Intrebare: Admite G o 3-colorare ?
se reduce polinomial la 3GCOL. (4 puncte)
434
Setul de probleme 11
Problema 1. Fie R = (G, s, t, c) o ret ea (G digra-
ful suport, s V (G) intrarea, t V (G), t ,= s iesirea
si c : E(G) R
+
funct ia de capacitate). Presupunem
(fara a restrange generalitatea !) ca st si ts nu sunt arce
n G. Se dispune si de o funct ie de marginire inferioara
m : E(G) R
+
, satisfacand m(e) c(e) pe orice arc
e al lui G. Numim ux legal n R orice ux x n R cu
proprietatea ca x(e) m(e) e E(G).
a) Demonstrat i ca pentru orice ux legal x si orice
sect iune (S, T) n R are loc
v(x)
iS,jT,ijE(G)
c(ij)
iS,jT,jiE(G)
m(ji).
b) Se construieste din R ret eaua R astfel:
- se adauga la G o intrare noua s si o iesire noua t;
- pentru v V (G) se adauga arcul sv de capacitate
c(sv) =
uvE(G)
m(uv);
- pentru v V (G) se adauga arcul vt de capacitate
c(vt) =
vuE(G)
m(vu);
- se adauga arcele st si ts de capacitate c(st) = c(ts) =
;
- se deneste c pe arcele ij ale lui G ca ind c(ij) =
c(ij) m(ij).
435
Demonstrat i ca exista un ux legal n ret eaua R daca si
numai daca exista un ux de valoare M =
eE(G)
m(e)
n ret eaua R = (G, s, t, c) (G este digraful construit mai
sus, c este funct ia de capacitate denita mai sus).
c) Utilizand un ux legal de start (care se poate obt ine
ca la b)), indicat i cum se poate adapta algoritmul lui
Ford & Fulkerson pentru a obt ine un ux legal de valoare
maxima ntr-o ret ea n care pe ecare arc este precizata
capacitatea si marginea inferioara.
(2+2+2 puncte)
Problema 2. Daca H este un graf conex, A V (H)
o mult ime nevida de varfuri ale sale si w : E(H) 1
+
,
atunci se numeste arbore Steiner corespunzator tripletei
(H, A, w) un arbore T(H, A, w) = (V
T
, E
T
), subgraf al lui
H, cu proprietatea ca A V
T
si suma costurilor muchiilor
sale, s[T(H, A, w)] =
eE
T
w(e), este minima printre tot i
arborii subgrafuri ale lui H care cont in A.
a) Justicat i ca determinarea lui T(H, A, w) se poate
face n timp polinomial pentru cazul cand A = V (H)
sau [A[ 2.
436
b) Fie G = (V, E) un graf conex cu mult imea de varfuri
V = 1, . . . , n si A V . Pe mult imea muchiilor lui G
este data o funct ie de cost c : E 1
+
.
Consideram si graful complet K
n
cu mult imea de varfuri
V si cu funct ia de cost c : E(K
n
) 1
+
data de c(ij) =
min
[ P drumn G de la i la j ]
c(P) pentru orice ij E(K
n
).
Demonstrat i ca s[T(G, A, c)] = s[T(K
n
, A, c)] si ca din
orice arbore Steiner T(K
n
, A, c) se poate construi un ar-
bore Steiner T(G, A, c).
c) Aratat i ca exista un arbore Steiner T(K
n
, A, c) cu pro-
prietatea ca varfurile sale care nu-s din A au gradul cel
put in 3. Deducet i (folosind aceasta proprietate ) ca
exista ntotdeauna un arbore Steiner T(K
n
, A, c) cu cel
mult 2[A[ 2 varfuri.
((1+1)+(1+2)+(2+1) puncte)
437
Setul de probleme 12
Problema 1. Fie v valoarea uxului maxim in ret eaua
R = (G, c, s, t). Demonstrat i ca exista k st-drumuri in G,
P
1
, ...., P
k
(0 k [E(G)[), si numerele reale nenegative
v
1
, ..., v
k
, astfel incit x : E(G) R , denit pentru orice
arc ij prin x
ij
= 0 +
t:ijP
t
v
t
, este ux in R de valoare
maxima v. (4 puncte)
Problema 2. Numim GP-descompunere a grafului
graful complet K
n
orice mult ime , = B
1
, ...., B
k(,)
,
unde : ecare B
i
este un subgraf bipartit complet al lui
K
n
, orice doua grafuri B
i
si B
j
au mult imile de muchii dis-
juncte si
i=1,k(,)
E(B
i
) = E(K
n
). Aratat i ca orice GP-
descompunere , a lui K
n
satisfce inegalitatea k(,)
n 1. (4 puncte)
Problema 3. Fie G = (V, E) un graf si f : V V cu
proprietatea ca uv E : f(u)f(v) E. Demonstrat i
ca (G) [f(V )[. Este adevarat ca pentru orice graf
G = (V, E) exista funct ii f cu proprietatea de mai sus si
astfel incit [f(V )[ (G) +1 ? (4 puncte)
438
Problema 4. Fie G = (V, E) un graf. Nu-
mim partit ie speciala orice bipartit ie (S, T) a
lui V astfel incit subgraful indus de T in G este
neconex si subgraful indus de S in complemen-
tarul grafului G este neconex.
Aratat i ca graful circuit C
n
(n 3) nu are
partit ii speciale.
Descriet i un algoritm polinomial care sa testeze
daca un graf dat are partit ii speciale. (2 puncte)
439
Setul de probleme 13
Problema 1. Consiliul municipal al unui orasel a decis
sa elimine blocajele de circulat ie de pe strazile aces-
tuia prin introducerea sensului unic pe ecare strada.
Desigur, va trebui ca ntre orice doua locat ii sa ex-
iste (macar) un drum de acces dupa aceasta decizie.
Daca reprezentam graful strazilor folosind noduri pentru
intersect iile stradale si muchii conectand aceste noduri
corespunzator strazilor, o situat ie simplicata este data
de urmatoarea gura :
Desigur, graful real al strazilor este mult mai complicat
si de aceea a fost angajat un expert (student la info)
care, analizandu-l, a observat ca are proprietatea ca este
2-conex (orice intersect ie s-ar bloca, singurele locat ii
afectate sunt cele de pe strazile din acea intersect ie)
si a propus urmatorul algoritm de orientare a muchiilor
(xarea sensului unic pentru ecare strada):
440
1. Se alege un nod oarecare si se executa o parcurgere
dfs etichetand nodurile de la 0 la n1 (n e numarul
de noduri din graf) n ordinea ntalnirii lor;
2. Fiecare muchie (strada) este orientata de la nodul
cu eticheta mai mica la nodul cu eticheta mai mare
daca acea muchie face parte din arborele dfs con-
struit, si de la nodul cu eticheta mai mare la nodul
cu eticheta mai mica, n caz contrar.
Aratat i ca algoritmul funct ioneaza corect pe graful din
gura de mai sus si apoi demonstrat i ca algoritmul este
corect (digraful obt inut este tare conex) pentru orice
graf 2-conex. (1+3 puncte)
Problema 2. Demonstrat i ca orice graf G conex are
un subgraf indus H astfel ncat :
1. H este conex;
2. [H[ = 2[S[ 1, unde S este o mult ime stabila a
grafului H;
3. v V (G) V (H) w V (H) astfel ncat vw E(G).
(2 puncte)
441
Problema 3. La sfarsitul unei zile de lucru, laborantul
a observat ca a disparut un mouse din laborator, desi la
vericarea de dimineat a nu lipsea. Din registrul salii a
rezultat can acea zi au intratn laborator doar urmatorii
sase student i: Ana, Barbu, Costica, Dan, Elena si Ion.
De asemenea, se stie ca ecare din ei a stat n laborator
un interval de timp si apoi a plecat (dar nu se cunosc
orele de venire sau plecare si nici ordinea n care cei
sase au accesat laboratorul). Decanul i-a anchetat, si a
obt inut urmatoarele marturii (sub juramant):
1. Ana a spus ca i-a vazut n laborator pe Barbu si Elena;
2. Barbu a spus ca i-a vazut n laborator pe Ana si Ion;
3. Costica a spus ca i-a vazut n laborator pe Dan si Ion;
4. Dan a spus ca i-a vazut n laborator pe Ana si Ion;
5. Elena a spus ca i-a vazut n laborator pe Barbu si Costica;
6. Ion a spus ca i-a vazut n laborator pe Costica si Elena.
Analizand raspunsurile, decanul (care stia teoria grafurilor)
a intuit ca exact unul (hot ul) dintre cei sase student i a
mint it, apoi, folosind deduct ia logica, l-a identicat si
i-a cerut sa aduca de urgent a mouse-ul napoi pentru a
nu-l exmatricula.
Stiind ca decanul a asociat ecarui student un interval
de timp (notat, A,B,..., dupa numele lor) si ca dintr-o
marturie X... spune ca i-a vazut pe Y... si Z... a dedus
ca intervalul X se intersecteaza cu Y si Z, evident iat i
inconsistent a din graful asociat intersect iilor acestor in-
tervale si cum se poate depista hot ul, n ipoteza ca exact
unul dintre cei sase student i a mint it.
(2+2 puncte)
442
Problema 4. Un grup de polit isti si desfasoara ac-
tivitatea n 8 locat ii a, b, . . . , h conectate prin strazi cu
sens unic de circulat ie, asa cum este descris n digraful
de mai jos. Se observa ca n ecare nod (locat ie) intra
doua arce si din ecare ies doua arce. De asemenea se
observa ca digraful corespunzator este tare conex.
a
b
c
d
h
e
g
f
Seful polit istilor a hotarat sa vopseasca strazile rosu si
oranj astfel ncat din ecare nod sa plece un arc rosu
si un arc oranj. Scopul acestei decizii a fost ca atunci
cand ntr-o locat ie oarecare se ntampla o infract iune,
sa-i adune operativ pe tot i polit istii n acel nod al digra-
fului transmit andu-le tuturor prin sistemul lor de radio-
recept ie mesajul Adunarea si un cuvant din r, o
then V V x
, x
;R R x
;
if C = x
then V V x
, x
;B B x
;
if C = x
then
V V x
, x
, x
C
; R R x
x
C
; B B x
C
x
;
if C = x
then
V V x
, x
, x
C
; R R x
x
C
; B B x
C
x
3. E R B; output G
(
= (V ; E).
445
Observam ca V cont ine mult imea X a variabilelor booleene
care apar n 2-clauzele lui ( si pentru ecare 2-clauza
C ( compusa dintr-un literal pozitiv si unul negativ
(clauza mixta) se adauga un varf nou la V . Notat ia
R B semnica faptul ca muchiile e R B au multi-
plicitate 2 [extremitat ile lui e sunt unite printr-o muchie
R(osie) si una B(leu)].
Demonstrat i ca ( este satisabila daca si numai daca
exista S, T V astfel ncat: S T = , S T = V , nu
exista muchii R(osii) cu ambele extremitat i n S si nu
exista muchii B(leu) cu ambele extremitat i n T.
(2 +2 puncte)
Problema 3. Fie G = (V, E) un graf conex si c :
E R. Pentru un arbore part ial oarecare T = (V, E
)
al lui G, si doua varfuri oarecare v, w V , se noteaza
cu v
T
w unicul drum de la v la w n T si cu E(v
T
w)
mult imea muchiilor acestuia. Demonstrat i ca arborele
part ial T
= (V, E
, e
E(v
T
).
(1+1 puncte)
446
Problema 4. Fie G = (V, E) un graf conex fara punt i
si c : E R. Fie T = (V, E
atunci T
1
=
T
e + rep
T
(e) este arbore part ial de cost minim n
Ge (T
1
se obt ine din T
eE, [eS[=1
c(e). O sect iune miniman G este o sect iune
(S
0
, T
0
) astfel ncat
c(S
0
, T
0
) = min
(S,T) sect iune n G
c(S, T).
a) Sa se arate ca se poate determina n timp polinomial
o sect iune minima n graful G rezolvand un numar poli-
nomial de probleme de ux maxim pe ret ele convenabil
alese.
b) Aratat i ca daca G = C
n
(graful circuit de ordin n 3)
cu toate muchiile de capacitate 1, atunci exista
n(n1)
2
sect iuni de capacitate minima. (2+2 = 4 puncte)
Problema 2.
In continuarea notat iilor de la problema
1, denim pentru orice pereche i, j 1, . . . , n, i ,= j,
c
i,j
= min
(S,T) sect iune n G cu v
i
S si v
j
T
c(S, T).
a)Demonstrat i ca pentru orice sir i
1
, i
2
, . . . , i
k
de k 3
elemente distincte din 1, . . . , n are loc
c
i
1
, i
k
minc
i
1
, i
2
, c
i
2
, i
3
, . . . , c
i
k1
, i
k
.
450
b) Se considera graful K
n
cu mult imea de varfuri 1, . . . , n
si funct ia de pondere pe muchiile sale c
denita mai
sus (notam ca c
i, j
= c
j, i
). Fie T
).
Demonstrat i ca i, j 1, . . . , n, i ,= j, daca P este
unicul drum de la i la j n T
, atunci
c
i, j
= min
eP
c
(e).
Observat ie: Rezulta ca exista un arbore cu mult imea de varfuri
V , cu ponderi pe muchii astfel ncat, pentru a determina capaci-
tatea minima a unei sect iuni n graful G care separa doua virfuri,
determinam muchia de pondere minima de pe drumul ce uneste
cele doua varfuri n arbore. (2+3 = 5 puncte)
Problema 3.
Se considera o competit ie sportiva ntre n echipe
e
1
, . . . , e
n
, n care ecare echipa disputa a 1 meci-
uri cu ecare dintre celelalte n 1 echipe (deci, ecare
echipa va juca a(n 1) meciuri n total). Orice meci se
termina cu victoria uneia dintre cele doua echipe partic-
ipante (nu exista remize). Se doreste sa se decida daca
este posibil ca, la nalul competit iei, ecare echipa e
i
sa castige un numar de c
i
meciuri (vectorul de ntregi
c[1. . . n] este intrarea problemei de decizie).
Aratat i ca problema se poate rezolvan timp polinomial cu ajutorul
uxurilor pe o ret ea convenabil denita. (3 puncte)
Problema 4.
In ret eaua R = (G, s, t, c), toate ca-
pacitat ile nenule sunt numere ntregi pozitive pare.
Demonstrat i ca exista un ux x de valoare maxima cu
proprietatea ca pe orice arc, daca uxul este nenul atunci
el este un numar pozitiv par. (2 puncte)
451
Setul de probleme 17
Problema 1. Fie G = (S, T; E) un graf bipartit cu
n =[V (G)[ varfuri si m = [E[ muchii.
a) Demonstrat i ca m
n
2
4
.
b) Demonstrat i ca, daca B
nm
este matricea de incident a
a lui G, atunci orice submatrice patrata C a lui B are
proprietatea ca det(C) 1, 0, 1.
c) Se orienteaza arbitrar muchiile lui G si se obt ine di-
graful
G. Demonstrat i ca exista K V (G) = S T
astfel ncat K e mult ime stabila n G si oricare ar
v V (G)K, exista u K cu proprietatea ca uv E(
G).
(2+2+2 = 6 puncte)
Problema 2. Fie G = (V, E) un graf de ordin n si
s, t V astfel ncat d
G
(s, t) >
n
2
. Demonstrat i ca exista
v V s, t cu proprietatea ca orice drum de la s la
t n graful G trece prin v. Descriet i un algoritm de
complexitate timp O(n + [E[) care sa determine acest
varf v.
(2+2 = 4 puncte)
452
Problema 3. a) Modicat i algoritmul BFS astfel ncat
pentru un graf G = (V, E) dat si s V sa determine
pentru orice varf v V numarul drumurilor de lungime
minima de la s la v, n timpul O([V [ +[E[).
b) Aceeasi problema pentru cazul n care G este digraf!
(2+2 = 4 puncte)
453
Setul de probleme 18
Problema 1. Fie G = (V, E) un graf conex cu n varfuri
si m muchii si e c : E R
>0
o funct ie de cost pe muchi-
ile sale.
a) Fie T = (V, E
T
) un arbore part ial al lui G cu propri-
etatea ca pentru orice muchie e E
T
exista un arbore
part ial de cost minim T
= (V, E
T
) astfel ncat e E
T
.
Adevarat sau fals? : T este arbore part ial de cost
minim (pentru raspunsul adevarat dat i o demonstrat ie,
pentru raspunsul fals dat i un contraexemplu).
b) Fie R si S doi arbori part iali ai lui G, R ,= S. Cum
se poate construi un sir de lungime minima de arbori
part iali T
0
, T
1
, . . . , T
k
astfel ncat T
0
= R, T
k
= S si ecare
arbore T
i
(i 1) se obt ine din precedentul, T
i1
, prin
stergerea unei muchii si adaugarea alteia? Care este
complexitatea timp a construct iei?
c) Pentru orice arbore part ial T = (V, E
T
) al lui G se de-
neste costul sau ca ind produsul costurilor muchiilor
sale: c(T) =
eE
T
c(e). Descriet i un algoritm cat mai e-
cient care sa determine T
) = max
Tarbore part ial al luiG
c(T).
(2+2+2 = 6 puncte)
454
Problema 2. Consideram urmatoarea problema de
decizie:
AGM Input: G = (V, E) graf, k N.
Question: Exista un arbore part ial al T al lui G
cu (T) k ?
Aratat i ca AGM P. (2 puncte)
Problema 3. Fie G = (V, E) un graf 3-regulat, conex
si fara punt i.
a) Fie uv E o muchie oarecare a lui G ca n gura de
mai jos. Se elimina cele doua varfuri u si v, iar vecinii
lor se conecteaza prin muchii asa cum este indicat n
gura. Demonstrat i ca macar unul din grafurile G
1
uv
sau
G
1
uv
este 3-regulat, conex si fara punt i. Se noteaza cu
G
acest graf.
u
v
a b
c d
a b
c d
a b
c d
G G
1 2
uv uv
sau
G
b) Aratat i ca daca G
A
Input: R = (G, c, s, t), ret ea.
Question: Exista n R o unica sect iune de capacitate
minima?
Aratat i ca MIN-SECT IUNE-UNIC
A P. (2 puncte)
Problema 3. a) Fie G = (V, E) un graf si v V un
varf cu gradul d
G
(v) = p 4. Fie N
G
(v) = u
1
, . . . , u
p
.
Construim graful H astfel: (1) se sterg din G muchiile
vu
1
, . . . , vu
p
; (2) se adauga la G circuitul C
2p
cu varfurile
v
1
, . . . , v
2p
; (3) se adauga la graful obt inut muchiile v
2i1
u
i
pentru i 1, . . . , p, si muchia vv
2p
(vezi gura de mai
jos). Demonstrat i ca (H) = (G) +p.
v
u
u u
1
2
p
G
v v
v
v
v
v
v
1
2
3
4
2p-1
2p
u
u
u 1
2
p
H
b) Fie SM3 problema de decizie obt inuta din SM (vezi
pag. 283 din curs) prin restrict ionarea instant ei la un
graf cu gradul maxim cel mult 3. Demonstrat i ca SM
SM3.
(1+2 = 3 puncte)
457