Professional Documents
Culture Documents
GRAFURILOR
C. Croitoru
2006-2007
Motivat
ie: Grafurile sunt considerate cele
mai utilizate structuri abstracte din Informatic
a .
Cont
inut: Probleme, Algoritmi, Complexitate; Vocabular al Teoriei Grafurilor; Probleme
de drum (parcurgeri, drumuri minime, conexiune); Arbori part
iali de cost minim (unionnd, complexitate amortizat
a); Cuplaje; Fluxuri; Reduceri polinomiale pentru probleme de
decizie pe grafuri; Abord
ari ale problemelor NPhard pe grafuri; Grafuri planare.
1
Bibliograe:
- Manualul cursului :
CROITORU C., Tehnici de baz
a n optimizarea
combinatorie, Editura Universit
a
tii Al. I. Cuza
Ia
si, Ia
si,1992.(Slide-urile sunt f
acute utiliz
and
acest text).
- Se poate consulta
si capitolul 3 din
CROITORU C., Introducere in proiectarea algoritmilor paraleli, Editura Matrix Rom, Bucure
sti, 2002.
- TOMESCU I., Probleme de combinatorica
si
teoria grafurilor, Editura did
si ped, Bucure
sti,
1981.
- DIESTEL R., Graph Theory, Electronic Edition
-T.H. CORMEN, C.E. Leiserson, R.L. Rivest,
C. Stein: Introduction to Algorithms , The
MIT Press 2001, 2nd edition
2
0.
Probleme,Algoritmi,Complexitate
Intrare: i I.
Intrebare: descriere ... ?
Exemplu:
Compus Intrare: n N n 2.
Intrebare: Exist
a p, q N p, q 2
si n = pq?
3
DrMin
Intrare: G graf, a, b v
arfuri n G,
o funct
ie de lungime a muchiilor lui G.
Ie
sire: P un drum n G de la a la b cu suma
lungimilor muchiilor minim
a, printre
toate drumurile de la a la b n G.
Oric
arei probleme de optimizare i se poate asocia o problem
a de decizie (care ne va da informatii
asupra dicult
a
tii ei computat
ionale). Pentru cele
dou
a probleme de optimizare de mai sus, avem:
DrMin-D
Intrare: G graf, a, b v
arfuri n G, k N,
o funct
ie de lungime a muchiilor lui G.
Intrebare: Exist
a P drum n G de la a la b
cu suma lungimilor muchiilor k ?
MaxCut-D
Intrare: G graf, k N,
o funct
ie de lungime a muchiilor lui G.
Intrebare: Exist
a (S, T ) bipartit
ie a mult
imii
v
arfurilor lui G cu suma lungimilor
muchiilor dintre cele dou
a clase k ?
Vom considera c
a un algoritm este o funct
ie
A : {da, nu, nedecidabil}.
Limbajul L este acceptat de algoritmul A
dac
a L = {w|w
si A(w) = da}.
Limbajul L este decis de algoritmul A
dac
a w L : A(w) = da
si w L : A(w) = nu.
Limbajul L este acceptat de algoritmul
A n timp polinomial dac
a L este acceptat de
A
si k N astfel nc
at pentru orice w L
algoritmul A evalueaz
a A(w) = da n timpul
O(|w|k ).
Limbajul L este decis de algoritmul A
at
n timp polinomial dac
a k N astfel nc
pentru orice w algoritmul A evalueaz
a
A(w) = da, dac
a w L
si A(w) = nu, dac
a
w L, n timpul O(|w|k ).
Prefer
am
Clasa de complexitate
P:
Dac
a P e o problem
a de decizie, atunci ea
este rezolvabil
a n timp polinomial dac
a lima
bajul L = P 1(da) satisface L P. Se noteaz
aceasta (cam abuziv) P P.
De exemplu, problema DrM IN -D este rezolvabil
a n timp polinomial dac
a funct
ia de lungime
(specicat
a n intrarea ei) este cu valori nenegative. Dac
a se permit
si valori negative, atunci
nu se cunoa
ste nici o demonstrat
ie a apartenent
ei DrM in-D P (
si nici nu se crede c-ar
exista una). Apartenent
a
Compus P s-a demonstrat abia n anul 2002.
Observat
ii. 1. Dac
a not
am
P = {L |A alg. a.. L e acceptat de A
n timp polinomial},
se observ
a imediat c
a P P
si nu e dicil s
a
se arate
si incluziunea invers
a, deci P = P .
2. Se veric
a u
sor c
a dac
a P P atunci
si \ P P.
8
NP:
NP = {L | A algoritm de vericare
cu timp de lucru polinomial a..
L = {x | y , k N a. .
si A(x, y) = da}
|y| = O(|x|k )
}.
Dac
a P e o problem
a de decizie, atunci ea este
a limbajul L = P 1(da)
problem
a (din) NP dac
satisface L NP.
9
Observat
ie. NP este mnemonic pentru Nedeterminist Polinomial
si nu pentru NePolinomial.
Un argument c
a nu e bine s
a asimil
am NP cu
nepolinomial este
si faptul c
a P NP.
Justicarea este imediat
a: Dac
a L P, atunci exist
aA:
{da, nu, nedecidabil} algoritm care decide L n timp
polinomial. Consider
am A : {da, nu, nedecidabil},
satisf
ac
and A(x, x) = A(x) pentru orice x . Se vede
u
sor c
a L este vericat de A n timp polinomial.
Din denit
iile de mai sus ar fost mai normal s
a not
am
NP noteaz
a clasa problemelor de decizie pentru care r
aspunsurile armative au certificate
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 r
aspuns
pozitiv (da) rapid dac
a ni se d
a o solut
ie.
De exemplu, pentru problema M axCut-D un r
aspuns
armativ are drept certicat o partit
ie (S , T ) a mult
imii
v
arfurilor grafului (iar proprietatea c
a suma lungimilor
si cealalt
a n T nu
muchiilor cu o extremitate n S
dep
a
se
ste pragul k se face n timp polinomial). Deci,
M axCut-D NP.
Dac
a am considera urm
atoarea problem
a de
decizie:
UnDrum Intrare: G un graf, a, b dou
a v
arfuri ale lui G.
11
Exemplu de problem
a din co-NP:
NeHam Intrare: G un graf.
Observat
ie. P NP co-NP.
12
Reduceri polinomiale.
Fie L1, L2 . Spunem c
a L1 se reduce polisi not
am aceasta prin L1 L2,
nomial la L2,
dac
a exist
a f : o funct
ie polinomial
calculabil
a astfel nc
at w : w L1 dac
a
si numai dac
a f (w) L2.
f se nume
ste funct
ie de reducere
si algoritmul polinomial
F care calculeaz
a f , algoritm de reducere polinomial
a.
Observat
ii. 1. Dac
a LP
si L L, atunci L P.
Fie A un algoritm polinomial care decide L
si F un algoritm de reducere polinomial
a a lui L la L. Atunci,
A = A F este un algoritm polinomial care decide L.
(x , A (x) = da A(F (x)) = da F (x) L
x L; A e polinomial deoarece mult
imea polinoamelor
e nchis
a la operat
ia de compunere).
2.Relat
ia este tranzitiv
a: L1 L2, L2 L3 L1 L3.
Terminologia se transfer
a pentru probleme de decizie:
Spunem c
a problema de decizie P1 se reduce
polinomial la problema de decizie P2,
si not
am
P1 P2, dac
a L1 = P11(da) L2 = P21(da).
Problema de decizie P este NP-dicil
a dac
a
P NP are loc P P .
a dac
a
Problema de decizie P este NP-complet
P NP
si P este NP-dicil
a.
Folosind observat
ia 1
si faptul c
a P NP rezult
a urm
atoarea
Teorem
a Dac
a P o problem
a oarecare NPcomplet
a satisface P P atunci P = NP.
Rezult
a c
a problemele NP-complete formeaz
a submult
imea lui NP
care cont
ine cele mai dicile probleme. Dac
a g
asim un algoritm
polinomial pentru una dintre ele, putem construi un algoritm poliacate, de
si nu
nomial pentru oricare alt
a problem
a din NP. Din p
exist
a o demonstrat
ie, oamenii cred c
a, de fapt, aceste probleme
nu admit algoritmi polinomiali de rezolvare. Diagrama urm
atoare
sugereaz
a relat
iile care se crede c
a exist
a ntre aceste clase de complexitate:
14
NP-hard
P
NP
NP-complete
Se obi
snuie
ste s
a se spun
a c
a o problem
a de optimizare
este NP-dicil
a, dac
a problema de decizie asociat
a este
a
sa. Pentru ca s
a ne aliniem la denit
iile precedente,
vom spune c
a o problem
a oarecare P (nu neaparat de
a dac
a existent
a unui algoritm
decizie) este NP-dicil
polinomial pentru P implic
a P = NP.
Comentariu metaforic: Saying that a problem is NPhard 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 probably 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]
15
Singura clas
a de complexitate pentru care nu
am sugerat un exemplu este cea a problemelor
NP complete. Primul om care a demonstrat
existent
a unei astfel de probleme este Cook,
care n 1971 a ar
atat c
a SAT NP, unde
SAT
Instant
si e clar c
a se poate face n timp polinomial.
16
Apartenent
a lui SAT la NP e clar
a, un certicat pentru r
aspunsul da este o atribuire t0 care
poate vericat
a n timp polinomial.
O demonstratie c
a orice limbaj din NP se reduce polinomial la SAT necesit
a o abordare formal
a not
iunilor de
algoritm
si timp de executie (pe care le-am considerat
aici la nivel intuitiv)
si o omitem.
Schit
a de demonstrat
ie de mai sus este uzual
a
n demonstrat
iile de NP-completitudine
si o explicit
am:
Pentru a ar
ata c
a o problem
a de decizie P este
NP-complet
a se procedeaz
a astfel:
1. Se arat
a c
a L = P 1(da) satisface L NP.
2. Se selecteaz
a un limbaj L despre care
stim
c
a este NP-complet.
3. Se ncearc
a construirea unui algoritm de
reducere F de la L la L.
4. Se demonstreaz
a c
a F e algoritm de reducere.
5. Se arat
a c
a F este algoritm polinomial.
http://www.nada.kth.se/~viggo/problemlist/
18
I.
1. Denit
ia unui graf
Un graf este o pereche G = (V (G), E(G)),
unde
- V (G) este o mult
ime nit
a nevid
a, iar
- E(G) este o submult
ime a mult
imii P2(V (G))
a p
art
ilor cu dou
a elemente ale lui V (G).
V (G) se nume
ste mult
imea vrfurilor grafului
G
si num
arul elementelor sale
V (G), este ordinul grafului G;
Dac
a e = {u, v} E(G) este o muchie a grafului G vom nota e = uv (pentru simplicarea
scrierii)
si vom spune c
a:
muchia e une
ste vrfurile u
si v;
vrfurile u
si v sunt adiacente n G;
muchia e este incident
a cu vrfurile u
si v;
vrfurile u
si v sunt vecine n G;
vrf. u
si v sunt extremit
a
tile muchiei e.
Dac
a v V (G), atunci mult
imea
NG(v) = {w|w V (G), vw E(G)}
se nume
ste vecin
atatea vrfului v n G.
Se mai noteaz
a NG(v) = G(v).
20
Remarc
am faptul c
a graful G poate
denit
(n mod echivalent) ca o pereche V (G), G
unde
G : V (G) P V (G)
asociaz
a ec
arui vrf vecin
atatea sa.
Dou
a muchii e
si e care au o extremitate comun
a se numesc adiacente.
Intuitiv, un graf G = (V (G), E(G)) poate
reprezentat (dup
a cum sugereaz
a
si numele
s
au) cu ajutorul unei guri plane format
a dintro mult
ime de mici forme geometrice aat
a
n corespondent
a cu mult
imea de vrfuri V (G),
dou
a forme ind unite printr-o curb
a simpl
a
dac
a
si numai dac
a, perechea de vrfuri corespunz
atoare lor este o muchie a grafului G.
Corespondent
a dintre v
arfurile grafului
si gurile geometrice considerate este vizualizat
a
21
gura
si
reprezint
a acela
si graf, de
si lipsa etichetelor
face dicil
a realizarea acestui fapt.
Urm
atoarele trei reprezent
ari ale grafului
G = ({1, 2, 3, 4}, {12, 13, 14, 23, 24, 34}) sunt mult
mai clare:
1
1
3
3
3
4
4
22
O mult
ime independent
a de vrfuri (sau
mult
ime stabil
a) n G este o mult
ime S
V (G) de vrfuri cu proprietatea c
a
P2(S) E(G) =
(adic
a o mult
ime de vrfuri neadiacente du
a
cte dou
a ).
Cardinalul maxim al unei mult
imi stabile se
nume
ste num
arul de stabilitate sau num
arul
de independent
a al grafului G
si se noteaz
a
cu (G).
De exemplu, n graful G de mai jos mult
imea
{a} este mult
ime stabil
a (maximal
a n raport
cu incluziunea), dar num
arul de stabilitate este
n, mult
imea {1, . . . , n} ind stabil
a de cardinal
maxim (n 1). In graful H s-au evident
iat
dou
a mult
imi stabile care partit
ioneaz
a mult
imea
v
arfurilor, iar (H) = 6.
1
2
5
e
n
G
d
H
23
Problema urm
atoare este natural
a, u
sor de formulat
si apare deseori n diferite aplicat
ii:
P1
Intrare: G un graf.
Ie
sire: (G)
si un martor:
S m.stabil
a n G, cu |S| = (G).
De
si foarte simpl
a (de formulat, la o prim
a
vedere), problema este NP-dicil
a. Problema
de decizie corespunz
atoare,
SM
Intrare:
Intrebare:
G un graf, k N.
Exist
a S m.stabil
a n G,
cu |S| k?
este NP-complet
a (Karp, 1972). Probabil c
ao
cauz
a a dicult
a
tii acestei probleme este faptul
c
a dou
a mult
imi stabile maximale (n raport
cu incluziunea) pot avea raportul cardinalelor
oric
at de mare (vezi graful G din gura de la
pagina precedent
a).
24
O mult
ime independent
a de muchii sau cuplaj n graful G este o mult
ime de muchii neadiacente dou
a cte dou
a . Cardinalul maxim al
unei mult
imi independente de muchii n G se
nume
ste num
arul de muchie-independent
a
al grafului G
si se noteaz
a (G).
Exemplu, pentru graful G:
num
arul de muchie independent
a, (G) este 6,
un cuplaj cu acest num
ar de muchii ind pus
n evident
a. Problema
P2
Intrare: G un graf.
Ie
sire: (G)
si un martor:
M cuplaj n G, cu |M | = (G).
25
Dac
a G = (V (G), E(G))este un graf
si p
N, se numeste pcolorare a (vrfurilor) lui
G o aplicat
ie c : V (G) {1, . . . , p} cu proprietatea c
a c1(i) este o mult
ime stabil
a n
G, i {1, . . . , p} (remarc
am c
a, din denit
ia
mult
imilor stabile, este o mult
ime stabil
a ).
Num
arul cromatic al grafului G, notat (G),
este cea mai mic
a valoare a lui p N pentru
care G admite o p-colorare.
26
5-colorare
4-colorare
rosu= culoarea 1
galben= culoarea 2
verde=culoarea 3
albastru=culoarea 4
negru=culoarea 5
Problema urm
atoare apare n diverse situat
ii
practice (de exemplu n problemele de orar,
sau n problemele de acoperire din wireless networks):
P3
Intrare: G un graf.
Ie
sire: (G)
si un martor:
o (G)-colorare a lui G.
27
Din problema P1
stim c
a mult
imile stabile ale
grafului sunt greu de st
ap
anit,
si cum problema P3 cere de fapt s
a partit
ion
am mult
imea
de v
arfuri a grafului ntr-un num
ar c
at mai mic
de mult
imi stabile, este normal ca
si aceast
a
problem
a s
a e NP-dicil
a. Problema de decizie
COL
Intrare:
Intrebare:
G un graf, k N.
Admite G o k-colorare?
este NP-complet
a chiar dac
a o restrict
ion
am
la cazul particular k = 3. Exist
a ns
a restrict
ii
ale problemei pentru care avem apartenent
a la
P (de exemplu, dac
a G este un graf perfect).
este evident
iat
a o 3-colorare a muchiilor; este
clar c
a este
si optim
a, ntruc
at muchiile incidente n acela
si v
arf trebuie s
a aib
a culori distincte. Problema
P4
Intrare: G un graf.
Ie
sire: (G)
si un martor:
o (G)-colorare a muchiilor lui G.
29
a de
cea optim
a).
Dou
a grafuri, G = (V (G), E(G))
si
H =
(V (H), E(H)) se numesc izomorfe,
si not
am
H, dac
aceasta prin G =
a exist
a o biject
ie
: V (G) V (H)
cu proprietatea c
a aplicat
ia
: E(G) E(H),
denit
a pentru orice uv E(G) prin (uv) =
(u)(v) este o biject
ie.
30
(deci, dou
a grafuri snt izomorfe dac
a exist
a o
biject
ie ntre mult
imile lor de vrfuri care induce
o biject
ie ntre mult
imile lor de muchii).
Grafurile urm
atoare sunt izomorfe, a
sa cum se
sugereaz
a n gur
a
1
a
b
Problema urm
atoare este util
a n multe probleme de modelare discret
a (de exemplu n chimie)
ISO
Intrare:
Intrebare:
G, H grafuri.
H?
G=
31
si totu
si ele nu-s izomorfe: in primul apar circuite de lungime 4, iar n al doilea nu !)
Dac
a G = (V (G), E(G))este un graf, un automorsm al lui G este o permutare a lui V (G)
32
5
4
33
2. Variat
ii n denit
ia unui graf
a) Dac
a n denit
ia unui graf,
se
a
consider
E(G) o multimult
ime pe P2 V (G) , adic
a este
dat
a o funct
ie m : P2 V (G) N, se obt
ine
not
iunea de multigraf.
Un element e P2 V (G) cu m(e) > 0 este
muchie a multigrafului, simpl
a dac
a m(e) = 1,
multipl
a dac
a m(e) > 1.
Oric
arui multigraf M i se poate asocia un graf
G(M ), numit graful suport al lui M , obt
inut
prin nlocuirea ec
arei muchii multiple cu o singur
a muchie cu acelea
si extremit
a
ti.
Pictural, modic
arile de reprezentare sunt evidente; graful suport al multigrafului desenat
mai jos, este graful desenat pe pagina precedent
a.
1
5
4
34
b) Dac
a n denit
ia unui graf se consider
a E(G)
ca o multimult
ime pe mult
imea p
art
ilor nevide
cu cel mult dou
a elemente ale lui V (G), atunci
G se nume
ste graf general sau pseudograf.
O muchie e E(G), e = {v} se nume
ste bucl
a
n vrful v.
Exemplul urm
ator arat
a un graf general M
si
graful s
au suport.
0
35
4
23
G(M)
Dac
a a = (u, v) este arc n D, not
am a = uv
si
spunem c
a
u
si v snt adiacente;
a este incident din u ;
a este incident spre v;
u domin
a pe v;
a este incident cu u spre exterior;
a este incident cu v spre interior;
u este extremitatea init
ial
a a lui a
si v este
extremitatea nal
a a lui a.
Pictural, digrafurile se reprezint
a la fel ca
si
grafurile, ad
augnd curbei ce une
ste dou
a guri asociate v
arfurilor o s
ageat
a pentru a preciza perechea de vrfuri corespunz
atoare arcului desenat.
36
Exemplu:
3
7
4
2
6
Dac
a M (D) este graf atunci D se nume
ste graf
orientat (poate gndit ca obt
inut prin orientarea ec
arei muchii a grafului M (D)).
Un digraf complet simetric este un digraf n
care ecare pereche de vrfuri este unit
a prin
exact o pereche de arce simetrice.
Un turneu este un digraf n care orice dou
a
vrfuri snt unite prin exact un arc.
Dinamo
0
1
Petrolul
Rapid
4
2
3
Steaua
Stiinta
38
and la condit
ia
c
a muchiile pot avea cel mult dou
a v
arfuri,
( se obt
in astfel hipermuchiile). Ele se mai
numesc sisteme nite de mult
imi
si vom ar
ata
c
a pot studiate via grafurile bipartite, de
si
exist
a rezultate combinatorii importante
si cu
aplicat
ii directe (de exemplu n bazele de date)
n formalismul care urmeaz
a extinderea trat
arii
grafurilor (din punct de vedere combinatoriu
sau algebric).
39
3. Grade
Dac
a G = (V, E)este un graf
si v V un vrf
al s
au, atunci valent
a sau gradul lui v n G,
notat dG(v) sau G(v) este
|{e | e E, e incident
a cu v}|.
Un vrf de grad 0 se nume
ste izolat; un vrf
de grad 1 se nume
ste pendant. Dac
a toate
vrfurile lui G au aceea
si valent
a atunci G
se nume
ste graf valent sau regulat. Un
graf 0valent se nume
ste graf nul. Un graf
3valent se numeste graf trivalent sau cubic. Un exemplu de graf trivalent este graful
lui Petersen:
w
41
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).
Dac
a n plus, V (H) = V (G) atunci H se nume
ste
graf part
ial al lui G (n limba englez
a, spanning subgraph).
Dac
a A V (G) atunci [A]G = (A, P2(A)
E(G)) se nume
ste subgraf indusn G de mult
imea
de vrfuri A (se mai noteaz
a
si G[A]).
In gura urm
atoare, H este subgraf al lui G iar
subgraful indus de mult
imea de v
arfuri {3, 4, 6, 8, 10}
este G[{3, 4, 6, 8, 10}]:
2
1
10
4
8
6
6
8
3
10
10
G
G[{4,8,6,3,10}]
42
10
G
5. Operat
ii cu grafuri
Dac
a G = (V (G), E(G))este un graf, atunci :
-complementarul s
au este graful
Gcu
si E(G) = P2 V (G) \ E(G).
V (G) = V (G)
Graful initial
Graful complet
Complementarul
a
c
c
d
e
d
g
f
Graful initial
Line-graful sau
44
a
1
2
4
3
c
b
3
Graful initial
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)).
z
v
Dou
a grafuri obt
inute prin insert
ii succesive de vrfuri
pe muchiile aceluia
si graf se numesc homeomorfe.
45
-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)}).
z
v
G|e
Dac
a H se poate obt
ine prin contract
ii succesive de muchii din graful G, se spune c
a
G este contractibil la H.
Fie G = (V (G), E(G))
si G = (V (G), E(G))
dou
a grafuri.
- Dac
a V (G) = V (G) atunci reuniunea celor
dou
a grafuri
si intersect
ia lor se denesc
G G = (V (G), E(G) E(G)),
G G = (V (G), E(G) E(G)).
46
1
5
Intersectia
Reuniunea
-Dac
a V (G)V (G) = atunci G G = (V (G)
ste reuniunea
V (G), E(G)E(G )) se nume
disjunct
a a grafurilor G
si G. Reuniunea
disjunct
a a k grafuri izomorfe cu G se noteaz
a kG.
a
1
5
Reuniunea disjuncta
-Suma a dou
a grafuri G
si G este graful
G + G = G G.
47
G+G
si
E(G G ) = {(v, w)(v , w )|v, v V (G), w, w V (G )
si ww E(G )sau
v = v
w = w
si vv E(G)}
G:
G x G
48
6. Clase de grafuri
Graful
complet
de ordin n : Kn
cu V (Kn ) = n
si E(Kn ) = P2 V (Kn ) .
K1
K2
K3
K4
K5
N1
N2
N3
N4
N5
49
Circuitul de ordin n (n 3)
:
cu V (Cn ) = {1, . . . , n}
si
E(Cn ) = {12, 23, . . . , n 1n, n1}.
C3
C4
C5
C6
Cn
C7
Drumul de ordin n : Pn
P1 = K1, P2 = K2;
n 3 : Pn = Cn e
(e E(Cn)).
P1
P2
P3
P4
P5
50
omega
3
omega
2
omega
4
omega
2
omega
5
si S, T snt independente
si nevide n G, atunci
graful bipartit G se noteaz
a G = (S, T ; E(G)).
51
Deci, dac
a G = (S, T ; E(G)) este un graf bipartit, atunci e E(G) are o extremitate n S
si cealalt
a n T .
Dac
a v S
si w T
vw E(G), atunci
graful bipartit G = (S, T ; E(G)) se nume
ste
graf bipartit complet
si se noteaz
a Ks,t unde
s = |S|
si t = |T |.
K1,1
K1,3
K2,2
K2,3
K3,3
1
3
F1
2
4
F3
1
F2
4
5
7
6
F1
Hipergraful H
F2
5
6
7
F3
Graful bipartit
asociat lui H
52
O construct
ie invers
a evident
a, ne arat
a c
a
si
pentru orice graf bipartit se poate asocia un
hipergraf.
Planar
Planar
Planar
K5 neplanar
53
De
si problema
PLAN
Intrare:
G un graf.
Intrebare: Este G planar ?
7. Drumuri
si circuite
Fie G = (V (G), E(G))un graf.
Se nume
ste mers (walk) de lungime r de la
v la w n G un
sir de vrfuri
si muchii
(v =)v0, v0v1, v1, . . . , vr1, vr1vr , vr (= w);
v
si w se numesc extremit
a
tile mersului.
Dac
a muchiile mersului snt distincte atunci
mersul se nume
ste parcurs (trail) n G de la v
la w.
Dac
a vrfurile snt distincte atunci mersul se
nume
ste drum (path) de la v la w.
3
mers M: 1
6 5
8
2
4
parcurs T: 9
8
9
drum P: 6
9
4
55
Dac
a v = w atunci mersul (parcursul) se nume
ste
nchis.
Dac
a ntr-un mers toate vrfurile snt distincte,
cu except
ia extremit
a
tilor, atunci mersul se nume
ste
circuit (sau drum nchis).
Un circuit este par sau impar dup
a cum lungimea
sa (num
arul muchiilor) este par
a sau impar
a.
2
circuite
impare :
3
2
8
9
4
6
9
5
circuit par :
8
9
8
1
Dac
a v
si w snt vrfuri ale lui G, lungimea
celui mai scurt drum de la v la w n G se
nume
ste distant
a n G de la v la w
si se noteaz
a
dG(v, w).
Diametrul grafului G, notat d(G) este d(G) =
max{dG(v, w)|v, w V (G)}.
d(G)=3
d(G)=4
In proiectarea ret
elelor de interconectare a procesoarelor
este important ca graful G reprezent
and ret
eaua s
a aib
a
gradul maxim (G) mic
(restrict
ie tehnologic
a)
si diametrul d(G) mic n raport cu num
arul v
arfurilor (restrict
ie
de calitate a interconect
arii).
Denit
iile de mai sus se extind, n mod evident,pentru digrafuri singura modicare ind aceea c
a se nlocuiesc muchiile cu arce.
57
Unilateral
conex
Tare conex
Conex
59
Pct. de
articulatie
Fara pcte.
de articulatie
Multime de
articulatie
Fara multimi
de articulatie
60
Fie p un num
ar ntreg pozitiv;
a
un graf G cu m
acar p vrfuri este pconex dac
G = Kp sau are cel put
in p + 1 vrfuri
si nu are
mult
imi separatoare de vrfuri de cardinal mai
mic dect p.
Evident, G este 1-conex dac
a
si numai dac
a
este conex. Un graf 2-conex se mai nume
ste
si bloc.
Num
arul de conexiune al lui G, notat k(G),
este cel mai mare num
ar natural p pentru care
G este pconex.
k(G)=3
k(G)=4
61
Dac
a G este un graf conex, o muchie e
E(G) cu proprietatea c
a G e este neconex
se nume
ste punte n graful G; mai general,
o mult
ime A de muchii ale unui graf G se
nume
ste mult
ime separatoare de muchii dac
a
G A este neconex.
Un graf G cu cel put
in p vrfuri este
pmuchie-conex dac
a nu admite mult
imi separatoare de muchii de cardinal mai mic dect p.
Num
arul de muchie-conexiune al lui G, notat (G), este cel mai mare num
ar natural p
pentru care G este pmuchie-conex .
Punte
Multime separatoare
de muchii
lambda(G)=3
62
10
2
11
5
7
3
9
Graf Eulerian
2
Graf care nu-i
hamiltonian
Graf hamiltonian
si cu toate v
arfurile de grad par), problema
HAM
Intrare:
G un graf.
Intrebare: Este G hamiltonian ?
63
este NP-complet
a. Apartenent
a la NP este
evident
a: un circuit hamiltonian, se poate indica printr-o permutare a v
arfurilor care poate
testat
a n timp liniar. In schimb pentru problema
NH
Intrare:
G un graf.
Intrebare: Este adev
arat c
a G nu-i hamiltonian?
nu se cunoa
ste o demonstrat
ie a apartenent
ei
la NP ( se observ
a c
a este din co-NP). Nu se
poate da o demonstrat
ie succint
a c
a graful de
mai jos nu e hamiltonian:
8. Matrici asociate.
Dac
a G = ({v1, . . . , vn}, {e1, . . . , em}) este un
graf, atunci
Matricea de adiacent
1
0
dac
a vi
si vj snt adiacente
altminteri.
Matricea de incident
1
0
dac
a vi
si ej snt incidente
altminteri.
1
5
1
4
6
4
3
matricea de adiacent
a este:
0 1 1 0 0
1 0 0 1 1
A = 1 0 0 1 1
,
0 1 1 0 1
0 1 1 1 0
iar matricea de incident
a:
0 0 0 0 0 1 1
1 0 1 0 0 0 1
B = 0 1 0 1 0 1 0
.
0 0 1 1 1 0 0
1 1 0 0 1 0 0
Valorile proprii
si polinomul caracteristic ale matricii de
adiacent
si |E| = e.
Cele mai uzuale structuri de date utilizate pentru reprezentarea (di)grafului G sunt:
a) matricea de adiacent
a
Dac
a A = (aij )nn este matricea de adiacent
a lui G atunci, reprezentarea acesteia cu ajutorul unui tablou bidimensional va necesita
O(n2) operat
ii pentru orice init
ializare, deci orice
algoritm, care folose
ste o astfel de reprezentare,
are complexitatea (n2).
Cu aceast
a structur
a de date testarea dac
a
dou
a v
arfuri sunt sau nu adiacente se face n
+
(v)),
O(1), dar parcurgerea lui NG(v) (sau NG
pentru un v
arf oarecare v V , necesit
a (n)
operat
ii.
67
b) listele de adiacent
a
Pentru ecare vrf v V se consider
a o list
a
A(v) a vecinilor s
ai n G.
Dac
a G este graf, atunci A(v) cont
ine
NG(v) = {v|w V
si vw E} iar dac
a G este
digraf atunci A(v) cont
ine
+
NG (v) = {v|w V
si vw E}.
Pentru cazul n care G este graf, ecare muchie
vw E va genera dou
a elemente n listele
de adiacent
a, unul n A(v)
si cel
alalt n A(w).
Spat
iul total de memorie utilizat va de O(n+
2e). Pentru cazul n care G este digraf, spat
iul
de memorie utilizat este de O(n + e).
Listele de adiacent
a.
68
a:
3
3 A(2)
A(3)
1
2
A(1)
6
A(5)
A(6)
Cu not
iunile si terminologia minimal
a descris
a
n sect
iunile 1-9 ale acestui prim capitol, se
poate trece la probleme algoritmice specice.
69
II Probleme de drum
n (di)grafuri
70
a (e
nevoie de aarea ecient
a a mult
imii vecinilor nodului
curent, n procesul sistematic de vizitare).
Prezent
am succint cele dou
a tehnici principale de parcurgere.
sterge v
arful din capul cozii Q;
for w A(v) do
{
if label(w) < 0 then
{ label(w) label(v) + 1;
parent(w) v;
introdu w n coada Q
}
}
}
71
Evident:
- S = {v V |label(v) 0};
- v V label(v) = dG(s, v);
- variabila parent dene
ste arborele bfs asociat c
aut
arii din s: dac
a G e graf atunci acesta
este arbore part
ial al componentei conexe a
lui G la care apart
ine s; dac
a G este digraf
atunci acesta este o arborescent
a a unui v
arf
din mult
imea S este traversat
a exact o dat
a,
complexitatea timp a lui bf s(s) este O(nS +
mS ), unde nS = |S| iar mS = |E([S]G)|;
In gura urm
atoare sunt desenat
i arborii corespunz
atori lui bfs(1)
si bfs(2).
3
3 A(2)
A(3)
1
2
A(1)
2 0
0 1
1 3
1 2
2 6
2 5
5 1 3 1
A(5)
A(6)
72
si tot
i pointerii de parcurgere a listelor de adiacent
a sunt la nceput.
label(s) 0
parent(s) 0;
creeaz
a stiva S cont
in
and s;
nS 1
while S = do
{
vv
arful din capul stivei S;
w next[A(v)]
if w then
if label(w) < 0 then
{
label(w) nS ; nS ++;
parent(w) v;
introdu w n stiva S
}
else NOP (aici; dar se poate utiliza !!)
else
sterge v
arful din capul stivei S
// s-a terminat c
autarea din v;
}
Iar
a
si, rezult
a imediat c
a
S = {v V |label(v) 0}
si complexitatea timp
a lui df s(s) este O(nS + mS ).
73
3 A(2)
A(3)
1
2
A(1)
2 0
0 1
1 3
3 2
2 6
4 5
5 1 3 2
A(5)
A(6)
a a
lui i ce reprezint
a acest arc.
Pentru u
surint
a notat
iilor vom folosi reprezentarea
digrafului G cu ajutorul matricii de cost-adiacent
a
A = (aij )nn cu
aij =
a(ij)
dac
a ij E
altfel
Aici desemneaz
a un num
ar real mare n raport cu celelalte costuri (de exemplu > n
maxijE a(ij))
si vom presupune n plus c
a
75
a = , + = .
(Este posibil, de asemenea, ca s
a semnice
acces terminat cu insucces n structura de date
n care se reprezint
a matricea A).
Dac
a i, j V , vom nota cu
Dij = {Dij | Dij drum n G de la i la j}.
Pentru Dij Dij
Dij : (i =)v0, v0v1, v1, . . . , vr1, vr1vr , vr (= j)
mult
imea vrfurilor este V (Dij ) = {v0, v1, . . . , vr }
si mult
imea arcelor
E(Dij ) = {v0v1, v1v2, . . . , vr1vr }.
Orice vrf k = i, j al lui Dij , determin
a pe Dij
dou
a drumuri Dik Dik
si Dkj Dkj . Vom
nota Dij = Dik Dkj .
Costul unui drum Dij Dij se dene
ste
a(Dij ) = 0 +
aij .
ijE(Dij )
In particular, a(Dii) = 0.
76
a, se poate considera
c
a Dij = i, j V .
77
Dac
a a(Dij ) < atunci Dij este drum (adev
arat)
n G de la i la j, iar dac
a a(Dij ) = , atunci Dij
este drum n digraful complet simetric obt
inut
din G prin ad
augarea arcelor lips
a, cu costul
.
Rezult
a c
a toate mult
imile pe care se consider
a minimele n problemele precedente, snt
nevide
si, cum digrafurile considerate snt nite, rezult
a c
a aceste mult
imi snt nite (n
ecare drum vrfurile snt distincte), deci minimele considerate exist
a.
2. Algoritmii de rezolvare a problemei (P1)
se obt
in din algoritmii de rezolvare a problemei (P2) ad
augndu-li-se un test suplimentar
(evident) de oprire.
3. Problema (P3) se poate rezolva iternd un
algoritm de rezolvare a problemei (P2). Snt
posibile ns
a solut
ii mai eciente.
78
Aplicat
ii. Vom schit
a n continuare trei aplicat
ii
practice posibile ale acestor probleme.
a) G = (V, E) reprezint
a o ret
ea de comunicat
ie
cu nodurile V
si rutele directe ntre noduri
formnd mult
imea E.
Dac
a a(e) reprezint
a lungimea arcului e, atunci
cele trei probleme de mai sus reprezint
a probleme naturale, care se pun n astfel de ret
ele:
determinarea drumurilor celor mai scurte.
Dac
a pij (0, 1] este probabilitatea de funct
ionare
a arcului ij E atunci, presupunnd c
a arcele
funct
ioneaz
a independent unele de altele, probabilitatea de funct
ionare a drumului D este
p(D) =
pij .
ijE(D)
b) Ret
ele PERT (Project Evaluation and Review Technique).
imea activit
a
tilor atomFie P = {A1, . . . , An} mult
ice ale unui proiect de anvergur
a (n este mare).
P este o mult
ime part
ial ordonat
a cu relat
ia de
ordine
activitatea Aj nu poate ncepe
Ai < Aj
dect dup
a terminarea activit
a
tii Ai.
Se cunoa
ste, pentru ecare activitate Ai timpul de execut
ie ti .
Se cere s
a se determine un plan de organizare a proiectului astfel nct timpul total de execut
ie s
a e minim. (Not
am c
a
problemele practice snt mai complexe datorit
a
restrict
iilor de utilizare concurent
a a resurselor
- oameni, utilaje, etc. - de c
atre diversele activit
a
ti).
Ideea general
a pe care se bazeaz
a pachetele
soft care rezolv
a astfel de probleme este de
a asocia proiectului un digraf aciclic (ret
eaua
PERT) astfel:
80
Fiec
arei activit
a
ti Al i se asociaz
a arcul il jl de
cost a(il jl ) = tl .
Nodul il reprezint
a evenimentul de nceput al
activit
a
tii Al , iar nodul jl reprezint
a evenimentul de sfr
sit al activit
a
tii Al .
Dac
a activitatea Ak poate ncepe imediat dup
a
terminarea activit
a
tii Al , se introduce n digraf
arcul jl ik ( activitate ctiv
a) de cost 0.
Se asociaz
a 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 .
In digraful obt
inut (care este evident aciclic)
costul maxim al unui drum de la s la t reprezint
a
cel mai scurt timp posibil de execut
ie a proiectului.
Un drum de cost maxim se nume
ste drum
critic, ntruct ntrzierea oric
arei activit
a
ti corespunz
atoare unui arc de pe drumul critic conduce la ntrzierea ntregului proiect.
81
A1: t1
A8: t8
0
A5: t5
0 0
End
A2: t2
Start
A9: t9
A6: t6
0
A3: t3
A10:t10
A7: t7
max
i=1
pixi |
i=1
Problema, de
si interesant
a n unele aplicat
ii
(de exemplu la nc
arcarea vapoarelor ntr-un
port) a fost aleas
a pentru a pune n evident
a
leg
atura dintre metoda program
rii dinamice (discrete)
si problemele de drum minim ntr-un digraf.
Consider
am G = (V, E) un digraf cu
V = {s} V1 V2 . . . Vn {t}, unde
Vi = {i0, i1, . . . , ib} este asociat obiectului i, i =
1, n.
Arcele lui G snt:
83
s10
si s1a1 cu a(s10 ) = 0
si a(s1a1 ) = p1.
( se pune obiectul 1 n rucsac
si se obt
ine protul
p1, ajung
andu-se la nivelul a1 de umplere, sau nu se
pune obiectul 1 n rucsac, protul ind 0
si nivelul
de umplere r
am
an
and 0).
i = 2, n j = 0, b:
(i 1)j ij cu a((i 1)j ij ) = 0;
(dac
a decidem s
a nu introducem obiectul i n rucsac, atunci de la nc
arcarea rucsacului cu primele
i 1 obiecte se trece la o nc
arcare cu primele i
obiecte n care nu este selectat obiectul i, deci se
r
am
ane pe acela
si nivel de nc
arcare j, iar protul
ce se va ad
auga este 0).
Dac
a j ai 0 atunci
avem
si arcul
(i 1)jai ij cu a (i 1)jai ij = pi.
(se poate ajunge la o nc
arcare j prin introducerea
arcare a primelor
obiectului i de volum ai la o nc
i 1 obiecte de nivel j ai).
j = 0, b: nj t cu a(nj t) = 0.
84
Figura urm
atoare ilustreaz
a construct
ia acestui digraf.
0
1:0
2:0
n:0
0
p2
p1
1:1
2:1
n:1
2:a2
n:2 0
1:a1
2:a1
p2
0
2:a1+a2
1:b
2:b
n:b
85
Se observ
a din construct
ie, c
a orice drum de
la s la t n G corespunde unei submult
imi de
obiecte cu suma volumelor mai mic
a sau egal
a
cu b
si de prot egal cu costul acestui drum.
Reciproc, oric
arei mult
imi de obiecte cu suma
volumelor nedep
a
sind b i corespunde un drum
de la s la t n G.
Rezult
a c
a dac
a n digraful G se determin
a un
drum de cost maxim de la s la t se rezolv
a
problema rucsacului.
Not
am c
a descrierea (static
a) a digrafului G
poate u
sor transformat
a n una procedural
a
astfel nct digraful s
a reprezinte doar ilustrarea
unei metode de programare dinaminc
a (prospectiv
a) pentru rezolvarea problemei rucsacului.
Atent
ie !
Rezolvarea problemei P2
Teorem
a. 1. Fie G = (V, E) digraf, V =
{1, . . . , n}, s V
si a : E R, astfel nct
(I)
us = 0
()
(uj + aji )
ui = min
j =i
i = s.
D astfel
dac
a
si numai dac
a i V , Dsi
si
) = u
nct a(Dsi
i si a(Dsi ) = min{a(D) | D
Dsi}.
( i V ) solut
Demonstrat
ie: Fie Dsi
ii
) = min{a(D) | D
ale problemei (P2) cu a(Dsi
) (i V ).
Dsi}. Not
am cu ui = a(Dsi
87
si a(D1) = a(Dsj
ji
sj
ji
si
88
). Fie D = D D
2. i V (Dsj
a
si
ij cele dou
sj
de v
drumuri determinate pe Dsj
rful i. Atunci
circuitul C = Dij (j, ji, i) are costul a(C) =
) a(D ) + a = u + a
a(Dij ) + aji = a(Dsj
si
ji
j
ji
) = u +a u < 0, cona(Dsi) uj +aji a(Dsi
j
ji
i
trazicnd ipoteza (I) (vezi gura urm
atoare).
Dij
Dsj
C
j
i
s
D*sj
Deci am demonstrat c
a i = s ui = uj + aji.
Dac
a ui nu satisface (*), atunci ar exista j1
astfel nc
at ui > uj1 + aj1i. Atunci, ca mai sus,
se poate construi un drum de cost mai mic
dec
at ui de la s la i.
89
Rezult
a c
a sucient
a teoremei este demonstrat
a.
Not
am c
a de fapt am dovedit mai sus c
a a(Dsj ) =
) adic
a(Dsj
a, dac
a 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, rezult
a :
(Principiul optimalit
a
tii al lui Bellman) dac
a
este drum de cost minim de la s la i atunci
Dsi
), dac
= D D atunci D
j V (Dsi
a Dsi
sj
ji
sj
(respectiv Dji) snt drumuri de cost minim de
la s la j (respectiv de la j la i).
. Dovedim c
a dac
a (u1, . . . , un) este o
solut
ie a lui (*) atunci
(a) Dsi Dsi : ui = a(Dsi), i V.
)).
(b) i V ui = min{a(D) | D Dsi}(= a(Dsi
90
(a) Dac
a i = s, atunci us = 0
si drumul Dss
satisface a(Dss) = 0 = us.
Dac
a i = s, consider
am urm
atorul algoritm:
v i; k 0;
while v = s do
a w astfel nct uv = uw + awv ;
{ determin
// w pentru c
a uv satisface (*)
ik v; k + +; v w
ik+1 s
S
a observ
am c
a algoritmul determin
a drumul
D : (s =)ik+1, ik+1ik , . . . , i1, i1i0, i0(= i)
cu D Dsi satisf
acnd a(D) = a(ik+1 ik ) + +
a(i1i0) = (uik uik+1 ) + (uik1 uik ) + +
(ui0 ui1 ) = ui0 uik+1 = ui us = ui.
Nu este posibil ca ntr-o iterat
ie oarecare w
{i0, . . . , ik1}, c
aci atunci s-ar obt
ine un circuit
C de cost total 0, contrazicnd ipoteza (I).
91
Din construct
ie, se observ
a c
a ui = ui1 + ai1i.
) i V . Conform primei
(b) Fie ui = a(Dsi
p
art
i a demonstrat
iei ui, i = 1, n, satisfac sistemul (). Presupunem c
a u = (u1, . . . , un) =
u = (u1, . . . , un). Cum us = us = 0, rezult
a c
a
exist
a i = s astfel nct ui = ui
si j V (Dsi),
j = i, uj = uj , unde Dsi este drumul construit
la (a) pentru ui. Atunci avem:
ui > ui = ui1 + ai1i = ui1 + ai1i
(din alegerea lui i)
ui
pentru c
a ui satisface (*).
a ui
Contradict
ia g
asit
a arat
a c
a u = u, deci c
reprezint
a costuri de drumuri minime.
92
Observat
ii 1. Din demonstrat
ie rezult
a c
a pentru rezolvarea problemei P2 este sucient s
a
obt
inem o solut
ie a sistemului (). Drumurile
corespunz
atoare se obt
in ca la (a).
Algoritmii pe care i vom prezenta se vor ocupa
de rezolvarea sistemului (). Totu
si, dac
a avem
ui = uk + aki atunci a
sa cum am v
azut, k este
vrful dinaintea lui i de pe drumul minim de la
s la i de cost ui.
Rezult
a c
a dac
a n algoritmul de rezolvare a lui
() construim un tablou nainte[1..n] cu componente din V {0, } cu interpretarea nal
a
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]],. . . pn
a se depisteaz
a vrful s.
2. Dac
a algoritmii de rezolvare a lui () vor
evita (prin modul de actualizare a vectorului
nainte) aparit
ia circuitelor de cost total 0, atunci
se observ
a c
a,
93
de
si nu mai are loc unicitatea solut
iei sistemului (), problema (P2) este rezolvat
a. Rezult
a
c
a ace
sti algoritmi vor rezolva problema (P2)
n condit
ia
(I )
C circuit n G, a(C) 0.
4. Avnd n vedere c
a mult
imile Dij snt nite,
se pot considera probleme analoge problemelor
(P1)-(P3) nlocuind min cu max.
Utilizarea ideii uzuale,
max x = (min(x))
xA
xA
Reciproc, dac
a G nu are circuite atunci exist
a un vrf
v0 V
astfel nct d
G (v0) = 0
(altfel, datorit
a nitudinii digrafului, se poate
construi un circuit); punem ord[v0] 1, consider
am G G-v0
si repet
am rat
ionamentul
(proprietatea de a nu avea circuite se transmite la subdigrafuri induse).
Aarea unei numerot
ari aciclice a unui digraf
se nume
ste
si sortare topologic
a ntruc
at se
sorteaz
a mult
imea V ntr-un mod compatibil
cu topologia digrafului.
Vom presupune c
a digraful este reprezentat
cu ajutorul listelor de adiacent
a. Dimensiunea
problemei este O(n + e).
Vom construi un algoritm care s
a rezolve problema n timp O(n + e).
Acest lucru este posibil datorit
a unei utiliz
ari
judicioase a structurilor de date.
Linia algoritmului:
97
- determin
am gradele interioare ale vrfurilor,
parcurg
and toate listele de adiacent
a (la nt
alnirea
lui w n lista de adiacent
a a unui v
arf oarecare
v se execut
a d
G(w)++ ;
- Parcurgem vectorul d
si vrfurile de grad inG
terior 0 le memor
am ntr-o stiv
a S0 ;
si-l nu(a)- scoatem vrful din topul stivei S0
merot
am;
(b)- sc
adem 1 din gradele interioare ale vrfurilor
din lista de adiacent
1. Sorteaz
a topologic G; {O(n + e) operat
ii }
2. u1 0; nainte[1] 0;
for i := 2 to n do
{ ui ; nainte[i] 0;
for j := 1 to i 1 do
if ui > uj + aji then
{ ui uj + aji ;
nainte[i] j
}
}
i S
i V \ S
Dac
a se reu
se
ste construirea lui S astfel nct
S = V , atunci problema e rezolvat
a.
Init
ial, se va considera S = {s}
si n n 1 pa
si
se adaug
a la S cte un nou vrf din V .
100
2. while S = V do
{
determin
a j V \ S : uj = min{uj | j V \ S};
S : S {j };
for j V \ S do
if uj > uj + aj j then
{ uj uj + aj j ; nainte[j] j }
1 D astfel
Presupunem c
a exist
a Dsj
nct
sj
1 ) < u .
a(Dsj
j
Cum S satisface (D), avem
uj = min{a(Dsj ) | Dsj Dsj , V (Dsj ) \ S =
1 ) \ S = {j }.
a c
a V (Dsj
{j }}. Rezult
1 (
Fie k primul vrf al drumului Dsj
n parcurgerea sa din s) astfel nct k
/ S.
1 ) = a(D 1 ) + a(D 1 ).
Atunci a(Dsj
sk
kj
1 ) \ S = {k}
Din alegerea lui k, avem V (Dsk
si
1 ) = u . Obt
cum (D) are loc, avem a(Dsk
inem
k
1 ) = u + a(D ) u (costurile s
uj > a(Dsj
nt
k
k
kj
nenegative), ceea ce contrazice alegerea lui j .
Contradict
ia obt
inut
a arat
a c
a, dup
a atribuirea
S := S {j }, prima parte a condit
iei (D) are
loc.
Pentru ca
si cea de-a doua parte a condit
iei (D)
s
a aib
a loc dup
a aceast
a atribuire, s
a observ
am
c
a j V \ (S {j }) avem
min{a(Dsj ) | Dsj Dsj , V (Dsj ) \ (S {j }) =
{j}} = min min{a(Dsj ) | Dsj Dsj , V (Dsj ) \
S = {j}},
min{a(Dsj ) | Dsj Dsj , V (Dsj ) \ S =
{j, j } .
102
Am obt
inut c
a singurul caz n care j < uj este
ie testat
a
atunci cnd j = uj +aj j < uj , situat
n ciclul for al pasului 2.
Rezult
a c
a (D) are loc pe tot parcursul algoritmului
si deci valorile nale ale variabilelor
ui reprezint
a solut
ia sistemului (). Evident,
tabloul nainte este actualizat pentru memorarea implicit
a a drumurilor de cost minim.
Complexitatea timp a algoritmului, n descrierea dat
a este O(n2) datorit
a select
arii minimelor din pasul 2.
Este posibil
a organizarea unor cozi cu prioritate (de exemplu heap-urile) pentru a memora
valorile ui, i U = V \ S, astfel nct extragerea
minimului s
a se fac
a n O(1), iar actualiz
arile
necesare n pasul 2 s
a se fac
a n timpul total de O(m log n) unde m = |E| (execut
anduse O(m) descre
steri de valori ui, ecare necesit
and O(log n) operat
ii; Johnson ,1977).
104
Teorem
a.
Intr-o p
adure Fibonacci F = (V, A)
fiecare v
arf are cel mult 1 + 2 log |V | copii.
Dem. Not
am cu (v) num
arul v
arfurilor accesibile din v n F (ordinul subarborelui cu r
ad
acina
v).
+
Ar
at
am c
a (v) 2(d (v)1)/2, care va implica
prin logaritmare armat
ia din enunt
ul teoremei.
Se observ
a c
a inegalitatea precedent
a are loc
pentru v frunz
a, a
sa c
a utiliz
am un rat
ionament
inductiv.
Fie k = d+(v)
si e vi copilul num
arul i al lui
v (i = 1, . . . , k).
+
at
Avem, (vi ) 2(d (vi)1)/2 2(i1)/2, ntruc
d+ (vi) i 2.
k
k
Deci (v) = 1+ i=1 (vi) 1+ i=1 2(i3)/2
2(k1)/2,
si teorema e demonstrat
a.
106
( i) dac
a jk A atunci uj uk ;
(ii) dac
a h este copilul num
arul i al lui j
si h T
atunci h are cel put
in i 1 copii;
(iii) dac
a j1
si j2 sunt dou
a r
ad
acini distincte
atunci d+ (j1) = d+(j2).
Teorema anterioar
a ne asigur
a c
a num
arul
r
ad
acinilor nu va dep
a
si 2 + 2 log |U |.
Heapul Fibonacci va reprezentat cu ajutorul
urm
atoarei structuri de date:
- c
ate o list
a dublu nl
ant
uit
a Cj a copiilor
ec
arui j U ;
-funct
ia p : U U , unde p(j) = p
arintele lui j
(dac
a j e r
ad
acin
a p(j) = j);
107
-funct
ia d+ : U N;
-funct
ia b : {0, . . . , t} U (cu t = 1 + 2 log |U |)
cu proprietatea c
a b(d+ (j)) = j pentru ecare
r
ad
acin
a j;
-funct
ia l : U {0, 1} cu l(j) = 1 dac
a
si numai dac
a j T.
Teorem
a. Pentru g
asirea
si
stergerea de n ori
a unui j care minimizeaz
a uj
si descre
sterea de
m ori a unei valori uj , structura de date poate
fi actualizat
a n timpul O(m + p + n log p), unde
p este num
arul de v
arfuri din p
adurea init
ial
a.
Dem. Pentru g
asirea unui j care minimizeaz
a
uj este sucient s
a parcurgem ub(i) pentru i =
0, . . . , t, deci n O(log p). Un astfel de element
j (cu uj minim) se poate
sterge astfel:
-e v1, . . . , vk copii lui j;
-
stergem j
si arcele ce ies din j din p
adure;
-acum v1, . . . , vk au devenit r
ad
acini, iar condit
iile
(i)
si (ii) nu-s afectate;
108
Descre
sterea unei valori uj pentru un j U se
face astfel:
declar
a r
ad
acin
a(j):
dac
a j are un p
arinte, e acesta v, atunci
se
sterge arcul vj
si se aplic
a repar
a(r);
dac
av
/ T se adaug
a v la T , altfel se scoate v
din T
si se aplic
a declar
a r
ad
acin
a(v):
109
Not
am cu incr(..)
si decr(..) num
arul cre
sterilor,
respectiv descre
sterilor lui .. n timpul operat
iilor
din enunt
ul teoremei. Avem:
num
arul de apeluri ale lui declar
a r
ad
acin
a=
decr(uj )+decr(T )
decr(uj )+incr(T )+p 2decr(uj )+p=2m + p,
deoarece cre
stem T cel mult o dat
a dup
a ce a
descrescut un uj .
Dac
a R este mult
imea r
ad
acinilor, avem:
num
arul de apeluri ale lui repar
a=
decr(A)+decr(T )
decr(A)+incr(R)+p =2decr(A)+p
2(n log p+ num
arul de apeluri ale lui declar
a r
ad
acin
a)+p
2(n log p + 2m + p) + p.
Cum decizia dac
a s
a se apeleze una sau alta
dintre cele dou
a funct
ii se face n O(1), rezult
a
c
a algoritmul are complexitatea O(m+p+n log p)
si teorema e demonstrat
a.
110
si din urm
atoarea gur
a care indic
a un mod de
construct
ie a heap-ului init
ial (binomial):
B4
B3
B2
B1
B0
111
Dac
a se dore
ste rezolvarea problemei (P1) cu
ajutorul algoritmului lui Dijkstra, atunci, la introducerea lui t n S, se poate opri algoritmul.
Complexitatea, n cazul cel mai nefavorabil,
r
amne aceea
si. Totu
si, n situat
ii practice concrete exist
a posibilitatea de a gr
abi introducerea lui t n S utiliznd o funct
ie de dirijare a
procesului de construct
ie a lui S.
O funct
ie g : V R+ se nume
ste estimator
consistent dac
a
(i) i V ui + g(i) min{a(Dst) | Dst
si i V (Dst)};
Dst
(ii) ij E g(i) aij + g(j).
S
a observ
am c
a g(i) = 0 i este un estimator
consistent (trivial).
Dac
a ns
a V (G) este o mult
ime de puncte din
plan, atunci g(i)=distant
a (euclidian
a) de la
i la t este un estimator consistent, dac
a snt
satisf
acute condit
iile (ii).
112
Dac
a g este un estimator consistent atunci se
poate modica alegerea lui j n algoritm astfel: uj + g(j ) = min{uj + g(j) | j V \ S}.
Algoritmul r
amne valabil (demonstrat
ia este
identic
a situat
iei g(i) = 0 i
si se folose
ste (ii)
repetat).
Avantajul este acela c
a se vor introduce n S
vrfuri care s
a ne apropie de t.
In implementarea care rezult
a din descrierea
algoritmului lui Dijkstra, s-a presupus c
a se
dispune de matricea de cost-adiacent
a snt
memorate n memoria secundar
a), sau n cazul
digrafurilor date funct
ional (se dispune de o
procedur
a care construie
ste pentru un vrf dat,
lista sa de adiacent
a) aceast
a implementare
este neecient
a, respectiv neaplicabil
a. O implementare care nu are aceste decient
e este
urm
atoarea datorat
a lui Glover, Klingman
si
Philips (1985)
113
a
si costurile corespunz
atoare
for j L do
if j
/ N OW N EXT then
{ uj ui + aij ; nainte(j) i;
introdu j n NEXT
}
else if uj > ui + aij then
{ uj ui + aij
nainte(j) i
}
}
if N EXT = then
{ determin
a d = min{ui | i N EXT };
transfer
a i N EXT cu ui = d n NOW
}
}
114
Observat
ii:
1. Dac
a la algoritm se adaug
a
si pasul 3:
3. if (i V a.. uin1 > minj =i(ujn1 + aji ))
thenexist
a circuit de cost negativ .
se obt
ine posibilitatea test
arii n O(n3) a
existent
ei unui circuit C de cost negativ n digraful G (altfel, din demonstrat
ia corectitudinii
algoritmului ar trebui s
a nu se poat
a mic
sora
uin1).
Depistarea circuitului C se face simplu (O(n))
utiliznd vectorul nainte.
2. Dac
a exist
a k < n 1 astfel nct uk = uk+1
atunci algoritmul se poate opri. Mai mult, se
poate obt
ine o implementare a acestui algoritm, care s
a aib
a complexitatea O(nm), folosind
o coad
a U Q n care se vor p
astra vrfurile i
a,
c
arora li se modic
a ui curent (se va renunt
evident, la memorarea tuturor aproximat
iilor
succesive).
118
Dac
a G nu cont
ine circuite de cost negativ, dar
exist
a
si arce de cost negativ, iternd algoritmul
ine un
lui Bellman Ford pentru s = 1, n se obt
algoritm de complexitate O(n4).
Ar
at
am n continuare c
a se poate proceda
si
mai ecient.
Solut
ia I a.
Fie : V R a. . ij E (i) + aij (j).
Consider
am a : E R+ dat
a de
aij = aij + (i) (j), ij E.
Avem aij 0
si, n plus, oricare ar Dij Dij ,
(2)
Rezult
a c
a se poate itera algoritmul lui Dijkstra
pentru obt
inerea drumurilor de cost a minim
si
din relat
ia (2) se observ
a c
a un drum este de
cost a minim dac
a
si numai dac
a este drum de
cost a minim. Rezult
a urm
atorul algoritm:
120
1. Determin
a
si construie
ste A.
2. Rezolv
a (P3) pt. A construind U
si
Inainte.
3. Determin
a U (uij := uij (i) + (j) ij).
Atunci, evident u1
ij = aij i, j V (presupunem
matricea A avnd elementele diagonale egale
cu 0). In plus,
m m
m
=
min{u
,
u
+u
um+1
ij
im
mj } i, j V, m = 1, . . . , n.
ij
Aceast
a ultim
a relat
ie se poate justica inductiv: un drum de cost minim de la i la j care nu
are vrfuri interioare m poate s
a nu cont
in
a
vrful m,
si atunci are costul um
ij , sau poate
cont
ine vrful m,
si atunci, din principiul optimalit
a
tii al lui Bellman
si ipoteza inductiv
a,
m
este um
im + umj .
Evident, dac
a se obt
ine um
ii < 0 atunci digraful
cont
ine un circuit de cost negativ C care trece
prin vrful i, cu V (C) \ {i} {1, . . . , m 1}.
Aceast
a solut
ie a problemei (P3) este cunoscut
a ca algoritmul lui Floyd-Warshal
si poate
descris astfel:
122
1: for i := 1 to n do
for j := 1 to n do
{ nainte(i, j) i;
if i = j then { aii 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 aij > aim + amj then
{ aij aim + amj ;
nainte(i, j) nainte(m, j)
if (i = j aij < 0) then
return circuit negativ
}
Evident, complexitatea algoritmului este de O(n3).
Observat
ie. Dac
a digraful nu cont
ine circuite
de cost negativ, atunci init
ializnd aii , valorile nale ale elementelor diagonale dau costul
minim al unui circuit ce trece prin vrful corespunz
ator.
123
Solut
ia a III a. Consider
am aii = 0 i V (G
nu cont
ine circuite de cost < 0).
Iterarea algoritmului lui Bellman Ford corespunde
urm
atoarei abord
ari. Fie
um
ij = min{a(Dij ) | Dij Dij , Dij are cel mult m arce}
i, j V , m = 1, 2, . . . , n 1.
Dac
a not
am U m = (um
ij ) cu m {0, 1, 2 . . . , n
1}, unde U 0 are toate elementele cu except
ia
celor de pe diagonal
a care-s egale cu 0 atunci,
iterarea algoritmului lui Bellman Ford revine la:
1. for i, j V do u0
ij if i = j else 0;
2. for m := 0 to n 2 do
for i, j V do um+1
= mink (um
ij
ik + akj );
(n minimul anterior, comparat
ia cu um
ij din
algoritmul Bellman Ford, se realizeaz
a pentru k = j,
si utiliznd ipoteza c
a ajj = 0).
Intregul proces de calcul se poate rescrie matricial dac
a se consider
a urm
atorul produs pe
mult
imea matricilor p
atrate cu elemente reale:
124
B, C Mnn
B C = P = (pij )
(desigur, matricea
Inainte se va obt
ine n O(n3)
operat
ii ca n demonstrat
ia teoremei 1, dup
a
determinarea lui U n1.)
Dac
a produsul matricial considerat se face
cu algoritmi mai performant
i atunci se obt
ine
o rezolvare ecient
a a problemei (n3 din evaluarea precedent
a se poate nlocui cu nlog2 7 =
n2,81(Strassen 1969); sau chiar cu n2,38
(Cooppersmith, Winograd 1987)).
..........................................
126
3. Probleme de conexiune.
Teorema lui Menger
si aplicat
ii.
Definit
ie. Fie G = (V, E) (di)graf
si X, Y V .
Numim XY-drum n G orice drum D n G de
la un vrf x X la un vrf y Y , astfel nct
V (D) X = {x}
si V (D) Y = {y}.
In gura al
aturat
a, D1 : a, v, u, t, c
si D2 : a, d
sunt singurele XY -drumuri ce pornesc din a :
v
a
t
u
c
b
Vom spune c
a drumurile D1
si D2 snt disjuncte
dac
a V (D1) V (D2) = .
Probleme practice evidente, din ret
elele de co
municat
ie, dar
si unele probleme legate de conexiunea grafurilor
si digrafurilor, necesit
a determinarea unor mult
imi de XY -drumuri disjuncte
si cu num
ar maxim de elemente.
Vom nota cu p(X, Y ; G) num
arul maxim de
XY -drumuri disjuncte n (di)graful G.
Teorema care precizeaz
a acest num
ar a fost
stabilit
a de Menger n 1927
si constituie unul
din rezultatele fundamentale din teoria grafurilor.
Definit
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 D(X, Y ; G)
V (D) Z = .
128
Not
am cu
S(X, Y; G) = {Z | Z
XY -separatoare n G}
si cu
Teorem
a. 1. Fie G = (V, E) (di)graf
si X, Y
V . Atunci
p(X, Y ; G) = k(X, Y ; G).
a p = p(X, Y ; G)
si
Demonstrat
ie: 10. Dac
D1, D2, . . . , Dp snt XY -drumuri disjuncte n G,
atunci Z S(X, Y ; G) avem Z V (Di) =
si
cum Di snt disjuncte (i = 1, p):
p
|Z| |Z i=1V (Di )| = i=1,p |Z V (Di)|
i=1,p 1 = p.
Deci Z S(X, Y ; G) |Z| p; n particular
k(X, Y ; G) p(X, Y, G).
130
20. Ar
at
am prin induct
ie dup
a a(G) = |V | + |E|
c
a G = (V, E) X, Y V
()
S
a observ
am c
a VXZ VZY = Z
(dac
a exist
a v VXZ VZY Z, atunci se
obt
ine c
a Z nu este XY-separatoare; dac
a exist
a z Z astfel nct z
/ VXZ VZY atunci
Z {z} este XY-separatoare, contrazicnd |Z| =
k(X, Y ; G)).
Z
X
Vxz
Y
Vzy
Pe de alt
a parte, exist
a x X Z (dac
a X Z,
atunci cum X S(X, Y ; G)
si |Z| = k(X, Y ; G)
rezult
a X = Z, contrazicnd ipoteza cazului
1)
si evident x
/ VZY (altfel, Z nu ar XY separatoare). Rezult
a |VZY | < |V |. In mod
similar |VXZ | < |V |.
132
133
Y
X
Observat
ii: 10. Egalitatea min-max din enunt
ul
teoremei este interesant
a
si conduce, a
sa cum
vom vedea, la rezultate importante, n cazuri
particulare.
20 Teorema se poate demonstra
si algoritmic
ca o consecint
Not
am c
a dou
a drumuri snt intern disjuncte
dac
a nu au vrfuri comune cu except
ia extremit
a
tilor.
si
Se observ
a c
a dac
a se consider
a X = NG(s)
+
Y = NG(t) (respectiv, NG
(s)
si NG
(t) n cazul
digrafurilor) teorema 1 se obt
ine imediat din
teorema 1.
Y
Reciproc, o construct
ie invers
a celei de mai sus
asupra tripletului G, X, Y din teorema 1, arat
a
c
a teorema 1 se obt
ine din teorema 1.
137
stE(G)
problem
a care vom dovedi c
a 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
Teorem
a. 2. (Konig, 1931) Dac
a 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 rezult
a imediat dac
a observ
am c
a o
mult
ime de vrfuri este SR-separatoare dac
a
si
numai dac
a este incident
a cu orice muchie a
grafului.
O aplicat
ie, fundamental
a n numeroase rat
ionamente
combinatorii, a acestei teoreme este teorema lui Hall
(1935).
Denit
ie: Fie I
si S mult
imi nite nevide. Numim familie de submult
imi ale lui S (indexat
a
dup
a I) orice aplicat
ie A : I 2S . Vom nota
familia A = (Ai; i I)
si vom folosi notat
ia
funct
ional
a uzual
a
A(J) = jJ Aj (pentru J I).
139
Dac
a A = (Ai; i I) este o familie de submult
imi
ale lui S, o funct
ie rA : I S cu proprietatea
c
a rA (i) Ai, i I se nume
ste funct
ie de
reprezentare pentru familia A.
In acest caz, (rA (i); i I) formeaz
a un sistem
de reprezentant
i ai familiei A.
Dac
a funct
ia de reprezentare rA este injectiv
a atunci rA (I) S se nume
ste sistem de
reprezentant
i distinct
i ai familiei A, sau transversal
a.
Problema central
a n teoria transversalelor este
aceea de a caracteriza familiile A care admit
transversale (eventual cu anumite propriet
a
ti).
Prima teorem
a de acest tip a fost stabilit
a de
Hall n 1935:
140
Teorem
a. 3. Familia A = (Ai; i I) de submult
imi
ale lui S admite o transversal
a dac
a
si numai
dac
a
(H)
|A(J)| |J|
J I.
Demonstrat
ie: Necesitatea este evident
a: dac
a
A admite o funct
ie rA de reprezentare injectiv
a
atunci J I rA(J) A(J)
si deci |A(J)|
a).
|rA(J)| |J| (ntruct rA este injectiv
Suficient
a. Consider
am graful bipartit GA =
(I, S; E) unde am presupus I S = (altfel,
se consider
a copii izomorfe disjuncte) iar E =
{is | i I, s S s Ai}. Se observ
a c
a
NGA (i) = Ai
si c
a A are o transversal
a dac
a
si numai dac
a GA are un cuplaj de cardinal
|I|. In ipoteza c
a (H) are loc, ar
at
am c
a orice
mult
ime de vrfuri incident
a cu toate muchiile
lui GA are m
acar |I| elemente,
141
ceea ce dovede
ste existent
a cuplajului de cardinal |I| (utiliznd teorema 2).
Fie X = I S I S o mult
ime de vrfuri incident
a cu toate muchiile. Rezult
a c
a NGA (I
I ) S , adic
a A(I I ) S . Atunci, |X| =
|I | + |S | |I | + |A(I I )|. Folosind condit
ia
(H) obt
inem n continuare: |X| |I | + |A(I
I )| |I | + |I I | = |I|.
I
I
S
142
O alt
a teorem
a celebr
a care poate obt
inut
a
ca o consecint
a imediat
a a teoremei 2 este teorema lui Dilworth, 1950.
Prefer
am totu
si, o demonstrat
ie direct
a, pentru a evident
ia asem
anarea cu cea a teoremei
1. Fie (P, ) o mult
ime nit
a part
ial ordonat
a
( este o relat
ie de ordine pe P ).
Dac
a x, y P , spunem c
a x
si y snt comparabile dac
a x y sau y x.
Un lant
n (P, ) este o submult
ime L a lui P
cu proprietatea c
a orice dou
a elemente ale sale
snt comparabile.
Un antilant
n (P, ) este o submult
ime A a lui
P cu proprietatea c
a x, y A x y x = y.
Teorem
a. 4. (Dilworth, 1950) Dac
a (P, )
este o mult
ime part
ial ordonat
a finit
a, atunci
num
arul minim de lant
uri a c
aror reuniune (disjunct
a) este P este egal cu cardinalul maxim
al unui antilant
.
143
Demonstrat
ie. Fie a(P, ) cardinalul maxim al
unui antilant
al lui (P, ).
Ar
at
am prin induct
ie dup
a |P |, c
a exist
a a(P, )
lant
uri a c
aror reuniune este P (inegalitatea
invers
a este imediat
a).
Dca
a |P | = 1, armat
ia este trivial
a, deci presupunem, n pasul inductiv, c
a teorema are loc
pentru orice mult
ime part
ial ordonat
a cu mai
put
in de |P | 2 elemente.
Fie L un lant
maximal (n raport cu incluziunea) al lui P .
Dac
a a(P L, ) = a(P, ) 1, atunci teorema
are loc din ipoteza inductiv
a.
Deci, presupunem c
a n P L exist
a un antilant
a1
a2
A
am
+
P
L
ai L
i lant
i i = 1, m
P + = i=1,mL+
i
+
L+
lant
L
i
i
i i = 1, m.
L
nt cele a(P, )
i )i=1,m s
i
lant
uri a c
aror reuniune este P .
145
si perechii x, z.
146
Lem
a. 2. Dac
a G = (V, E) este un graf pconex p 2, atunci oricare ar fi dou
a muchii
e1
si e2
si p 2 vrfuri x1, x2, . . . , xp2 exist
a un
circuit n G care le cont
ine.
Demonstrt
ie: Induct
ie dup
a p.
Dac
a p = 2, trebuie s
a dovedim c
a n orice graf
2-conex, prin orice dou
a muchii trece un circuit. Consider
am G obt
inut din G prin insert
ia
cte unui vrf pe muchiile e1 ( a )
si e2 ( b ).
a
e1
b
e2
G
Fie p > 2
si presupunem armat
ia adev
arat
a
pentru orice graf k-conex k < p. Fie G p-conex.
Putem presupune c
a extremit
atile muchiilor e1
y1
yp
xp-2
y2
yi
Vrfurile y1, y2, . . . , yp descompun circuitul n drumurile Dy1 y2 , Dy2y3 , . . . , Dyp1yp , Dypy1 .
Exist
a un drum dintre acestea, n care nu e
cont
inut nici unul din elementele
x1, . . . , xp3, e1, e2.
Fie acest drum Dy1 y2 ; atunci
Dxp2 y2 , Dy2y3 , . . . , Dypy1 , Dy1xp2 este un circuit
si e2 ,
ce cont
ine x1, x2 . . . , xp2, e1
Teorem
a. 5. (Dirac 1953) Dac
a G = (V, E)
este un graf p-conex p 2, atunci prin orice p
vrfuri ale sale trece un circuit.
Demonstrat
ie. Fie x1, x2, . . . , xp2, xp1, xp p
vrfuri oarecare ale lui G. Deoarece graful G
este conex, exist
a e1 = xxp1
si e2 = yxp
si
aplic
am lema 2.
Aplic
am aceast
a teorem
a, precum
si ideea utilizat
a n demonstrat
ia lemei 2, pentru a demonstra o condit
ie sucient
a de hamiltonietate interesant
a, datorat
a lui Erd
os
si Chvatal (1972).
Teorem
a. 6. Fie G p-conex. Dac
a (G) p
atunci G este hamiltonian.
Demonstrat
ie: Presupunem c
a G nu e hamiltonian. Vom obt
ine o contradict
ie. Cum G
este p-conex , exist
a un circuit de lungime cel
put
in p (conform teoremei lui Dirac de mai
sus).
150
vk
wt
w
s
vs
vt
Atunci, vwi
/ E (altfel am avea circuitul
vwi , wi, C wi vi, Dviv de lungime mai mare dect C). Cum
(G) p, mult
imea {v, w1, w2 , . . . , wp } nu este stabil
a.
Deci, exist
a wswt E.
Dar atunci:
Dvvs ,drumul (invers) pe C de la vs la wt, muchia wt ws,drumul
(invers) pe C de la ws la vt ,
si Dvtv este un circuit de
lungime mai mare dect C, contrazicnd ipoteza c
a C
este de lungime maxim
a.
151
III. ARBORI
1. Propriet
a
ti elementare ale arborilor
Definit
ie: Un arbore este un graf conex
si f
ar
a
circuite.
Teorem
a. 1. Fie G = (V, E) un graf.
Urm
atoarele afirmat
ii snt echivalente:
(i) G este arbore.
(ii) G este conex
si este minimal cu aceast
a
proprietate.
(iii) G este f
ar
a circuite
si este maximal cu
aceast
a proprietate.
Observat
ie:Maximalitatea si minimalitatea din conditiile
(ii)
si (iii) se refer
a la mult
imea muchiilor grafului G
si
se consider
a n raport cu relat
ia de ordine dat
a de incluziune. Mai precis, cele dou
a armat
ii se pot formula
echivalent astfel:
Definit
ie: Fie G = (V, E) un (multi)graf. Se
nume
ste arbore part
ial al lui G, un graf part
ial
T = (V, E ) (E E) care este arbore.
Vom nota cu TG mult
imea arborilor part
iali
ai lui G.
Obs. TG = dac
a
si numai dac
a G este conex.
In adev
a un arbore
ar, dac
a TG = , atunci exist
part
ial T = (V, E ) al lui G. T este conex, deci
ntre orice dou
a vrfuri ale lui G exist
a un drum
cu muchii din E E. Prin urmare G este
conex.
Reciproc, dac
a G este conex, atunci consider
am
urm
atorul algoritm:
1. T G
2. while (e E(T ) astfel nct T \ {e} este conex) do
T T \ {e}
153
Graful T obt
inut este graf part
ial al lui G, este
conex (din ipotez
a, dup
a atribuirea din 1, a
sa
este
si din condit
ia lui while, T este conex dup
a
ecare iterat
ie)
si n plus la oprirea algoritmului, T satisface condit
ia ii) din teorema 1, deci
este arbore.
O alt
a demonstrat
ie a reciprocei anterioare se
bazeaz
a pe observat
ia c
a G = (V, E) este conex
dac
a
si numai dac
a oricare ar o partit
ie (V1, V2)
a lui V exist
a e = v1v2 E cu vi Vi i = 1, 2.
Dac
a |V | = n > 0 atunci urm
atorul algoritm
construie
ste un arbore part
ial al lui G:
1. T1 ({v}, ) (v V , oarecare); k 1;
2. while k < n do
{ Fie v1v2 E cu v1 V (Tk ), v2 V \ V (Tk );
// o astfel de muchie din conexiunea lui G
Se observ
a c
a Tk este arbore k = 1, n
(inductiv, dac
a Tk este arbore, atunci din construct
ie
si nu are circuite)
Tk+1 este conex
2. Num
ararea
si enumerarea arborilor part
iali
Familia TG a arborilor part
iali ai unui (multi)graf
are propriet
a
ti interesante. Vom prezenta o
metod
a (tip backtrack) de generare a elementelor lui TG, problem
a de interes practic
n multe aplicat
ii (de exemplu, n chimie).
Fie G = (V, E), V = {1, 2, . . . , n}, |E| = m.
Reprezent
am E printr-un tablou E[1..m, 1..2]
cu componente din V cu semnicat
ia c
a dac
a
v = E[i, 1]
si w = E[i, 2], atunci vw este muchia
i a grafului G ( i = 1, m ).
Vom presupune n plus, c
a primele dG(v0) muchii
din tabloul E satisfac E[i, 1] = v0 unde v0 V
este un vrf oarecare. Exemplu:
a
5
a
b
4
3
c
d
2
156
Un arbore part
ial T TG va identicat cu
mult
imea indicilor ce reprezint
a muchiile sale
n tabloul E (submult
ime a lui {1, . . . , m} de
cardinal n 1).
Pe tot parcursul gener
arii dispunem de un vector global T [1..n1] cu componente din mult
imea
1..m
si de un indicator i avnd semnicat
ia: n
arborele curent care se construie
ste, primele
i 1 muchii snt
T [1] < T [2] < . . . < T [i 1] (i {1, . . . , n}).
generare-arbori-part
iali(int i);
// se genereaz
a tot
i arborii part
iali ai lui G
avnd drept prime i 1 muchii,elementele
T (1), . . . , T (i 1)
ale tabloului E (ordonate cresc
ator).
variabile locale:
else
if i = 1 then
for j := 1 to dG(v0) 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:
}
Apelul generare-arbori-part
iali(1) rezolv
a problema enumer
arii elementelor lui TG.
158
si numerotarea precizat
a pentru muchii) arborii
generat
i sunt urm
atorii 16 :
5
3
1
1
2
1
2
31
{T [1], . . . , T [i 1]}
Fie v = E[j, 1]
si w = E[j, 2].
{T [1], . . . , T [i 1]}
adic
a dac
a
si numai dac
a rad[v] = rad[w].
Vectorul rad trebuie ntret
inut pentru a avea
semnicat
ia dorit
a.
Acest lucru se obt
ine nlocuind n algoritmul
descris, instruct
iunile (vide) etichetate A
si B.
Astfel, A: se va nlocui cu secvent
a :
S ; x rad[v];
for u V do
if rad[u] = x then
{ S S {u} ;
rad[u] rad[w]
}
161
(n cuvinte, arborele cu r
ad
acina x se une
ste
cu arborele cu r
ad
acina rad[w]; se salveaz
a n
S vrfurile arborelui cu r
ad
acina x).
Dup
a apelul lui generare-arbori-part
iali(i + 1)
trebuie ref
acut vectorul rad la valoarea dinainte
de apel, deci se va nlocui B: cu
for u S do rad[u] := x;
Num
arul elementelor lui TG, problem
a interesant
a chiar
si numai pentru analiza algoritmului precedent, se poate determina ecient.
Prezent
am n continuare una din solut
iile posibile.
Fie G = (V, E) un multigraf cu V = {1, 2, . . . , n}.
Cosider
am A = (aij )nn matricea de adiacent
a
a lui G (aij = multiplicitatea muchiei ij dac
a
ij E, altfel 0). Fie
D = diag(dG(1), dG(2), ..., dG(n)).
162
i {1, . . . , n}.
L[G]ij noteaz
a minorul lui L[G] obt
inut prin
ndep
artarea liniei i
si coloanei j.
Demonstrat
ia (pe care o omitem) se bazeaz
a
pe regula clasic
a de dezvoltare a unui determinat dup
a o linie, dup
a descompunerea lui TG n
arborii care cont
in o muchie xat
a
si cei care
nu cont
in aceea
si muchie.
163
Corolar.
TKn = nn2 (Cayley).
In adev
ar,
n 1 1
...
...
1 . . .
L[Kn ] = .
.
. . . 1
..
...
. . . 1
1 n 1
si (dup
a un simplu calcul):
n 1 1 . . .
1
1
..
... ...
det(L[Kn ]11) = .
. . . . . . 1
.
1
. . . 1 n 1
= nn2.
(Dac
a n = 4, caz ilustrat n gura precedent
a, se obt
ine
TK4 = 42 = 16, adic
a au fost generat
i tot
i arborii !)
Observat
ie. Teorema ofer
a un algoritm polinomial de determinare a lui |TG|.
164
3. Arbori part
iali de cost minim.
Consider
am urm
atoarea problem
a:
vs
Tsk
v
j*
Tk
j*
Se veric
a imediat c
a noua familie este format
a
din arbori disjunct
i care partit
ioneaz
a mult
imea
de vrfuri ale grafului G. Dac
a alegerea muchiei
a, atunci rezult
a c
a G nu este
e nu este posibil
conex
si deci problema (P 1) nu are solut
ie.
166
Dac
a armat
ia este adev
arat
a 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}.
Dac
a e E(T ), atunci, evident, E(T k+1)
E(T )
si deci armat
ia are loc pentru k + 1.
Presupunem, deci, c
a e
/ E(T ). Atunci T +
{e} cont
ine exact un circuit C ce trece prin
/ V (Tsk ) rezult
a
muchia e = vsvj . Cum vj
c
a C va cont
ine o muchie e1 = e cu o exsi cealalt
a n V \ V (Tsk ).
tremitate n V (Tsk )
Din alegerea muchiei e, avem c(e ) c(e1)
si
e1 E(T ) \ E(T k ).
C
vs
v
j*
Tsk
T*
168
si teorema e demonstrat
a.
Observat
ii:
10 Demonstrat
ia anterioar
a r
amne valabil
a pentru funct
ii de cost c : TG R astfel nct:
T TG, e E(T ), e
/ E(T )
c(e ) c(e) c((T + e) e) c(T ).
20 In algoritmul descris nu s-a precizat modul
de alegere al arborelui T k . Vom considera, n
continuare dou
a strategii de alegere a acestui
arbore.
169
j = c([j]j) = min{c(ij) | i Vs, ij E}.
beta(v)
v
x
alfa(v)
beta(x)=+infinit
w
alfa(u)
beta(w)
beta(u)
Ts
alfa(w)
u
Descrierea algoritmului:
170
1. Vs : {s}; (s V , oarecare )
Es ;
for v V \ {s} do { [v] := s; [v] := c(sv)};
// dac
a ij
/ E atunci c(ij) = ).
2. while Vs = V do
{ determin
a j V \ Vs a..
[j ] = min{[j] | j V Vs} ;
Vs Vs {j };
Es := Es {[j ]j };
for j V Vs do
if [j] > c[j j] then
{ [j] c[j j];
[j] : j
}
}
Se observ
a c
a (S) este satisf
acut
a de init
ializ
arile
pasului 1, iar n pasul 2, se respect
a, pe de o
parte, strategia general
a de alegere a muchiei
de cost minim cu exact o extremitate n Vs
(alegerea lui j )
si pe de alt
a parte se ment
ine
valabilitatea condit
iei (S) pentru iterat
ia urm
atoare
(testul asupra valorii curente a lui [j]).
171
1. Sorteaz
a E = (e1, e2, . . . , em) astfel nct:
c(e1) c(e2 ) . . . c(em ).
1.2 T ; i 1;
2. while i m do
{ if T {ei }G nu are circuite then
T T {ei } ;
i++
}
si s
a test
am dac
a muchia ei curent
extremit
a
ti n aceea
si mut
ime. Se vor folosi
pentru reprezentarea acestor mult
imi, arbori
(care nu snt n general subarbori ai lui G).
Fiecare astfel de arbore va avea un vrf, numit
r
ad
acin
a, care va desemna mult
imea de vrfuri
ale lui G pe care o memoreaz
a.
173
Solut
ia a II a. Consider
am pred[1..n] un tablou
ntreg cu interpretarea :
pred[v]= v
rful dinaintea lui v de pe drumul unic la v, de la r
ad
acina arborelui care
memoreaz
a mult
imea la care apart
ine v;
pred[v] = 0 v este r
ad
acina arborelui.
Ad
aug
am n pasul 1, init
ializarea
1.3 for v V do pred[v] 0;
Modic
am
si pasul 2 al algoritmului astfel:
2. while i m do
{ e ei = vw;
x : f ind(v); y f ind(w);
if x = y then union(x, y);
{ union(x, y);
T T {ei }
}
i++
}
177
Dac
a graful G este K1,n1 desenat mai jos,
si
lista ordonat
a a muchiilor E = {12, 13, . . . , 1n},
atunci execut
ia algoritmului provoac
a urm
atorul
n-1
Decient
a acestei implement
ari este datorat
a
posibilit
a
tii ca n procedura union s
a declar
am
r
ad
acin
a nou
a pentru cei doi arbori pe cea a
celui cu mai put
ine vrfuri, ceea ce are ca efect
posibilitatea ca h(v) s
a devin
a mare (O(n)) pe
parcursul algoritmului.
Acest defect poate evitat dac
a, la execut
ia
lui union
tinem seama de cardinalul celor dou
a
mult
imi.
Se poate memora cardinalul unei mult
imi n
componenta tabloului pred corespunz
atoare r
ad
a
cinii arborelui care memoreaz
a acea mult
ime.
Mai precis, consider
am init
ializarea
1.3 for v V do predd[v] 1;
si modic
am procedura union astfel nct s
a
asigur
am ndeplinirea condit
iei
pred[v] < 0 v este r
ad
acin
a a unui arbore
imii memo
si pred[v] este cardinalul mult
rate n el.
180
Procedura union are, n acest caz, tot complexitatea O(1), dar selecteaz
a drept nou
a r
ad
acin
a
pe cea care corespunde arborelui cu mai multe
vrfuri:
procedure union(v, w : V );
//v
si w sunt r
ad
acini
variabila local
a ntreag
a 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 aceast
a implementare a funct
iei f ind
si procedurii union, pe tot parcursul algoritmului are
loc:
()
v V
(reamintim c
a h(v) noteaz
a lungimea drumului de la v la r
ad
acina f ind(v) a arborelui ce
memoreaz
a v ).
181
Dup
a init
ializarea 1.3, v V h(v) = 0
si
f ind(v) = v iar pred[v] = 1, deci (*) are loc
cu egalitate.
Dac
a, naintea unei iterat
ii din pasul 2, (*) are
loc, atunci, dac
a n acea iterat
ie nu se execut
a
union, nu se modic
a tabloul pred
si deci (*)
r
amne valabil
a
si dup
a execut
ie.
Presupunem prin urmare c
a se apeleaz
a
union(x, y)
si c
a se execut
a pred[y] := x.
Aceasta nseamn
a c
a naintea acestei iterat
ii
avem pred[x] pred[y]. S
a observ
am c
a
singurele vrfuri v c
arora li se modic
a h(v)
dup
a execut
ia iterat
iei curente snt cele care
naintea iterat
iei satisf
aceau f ind(v) = y, pentru care aveam pred[y] 2h(v).
Dupa execut
ia iterat
iei avem h(v) = h(v) +
1 iar f ind (v) = x,
si deci trebuie s
a veri
cam c
a pred [x] 2h (v). Avem pred [x] =
pred[x] pred[y] 2 (pred[y]) 2 2h(v) =
2h(v)+1 = 2h (v).
182
Rezulta c
a (*) are loc pe tot parcursul algoritmului, deci, prin logaritmare obt
inem
v V h(v) log(pred[f ind[v]]) log n.
Complexitatea pasului 2 va deci O(n 1 +
2m log n) = O(m log n)
si deci tot algoritmul
are complexitatea O(m log n) ceea ce-l face superior algoritmului lui Prim pentru grafuri rare.
Solut
ia a III a. Complexitatea pasului 2, cu
implementarea precedent
a, este datorat
a apeluri
lor succesive ale lui f ind.
Tarjan (1976) a propus ca ecare apel al lui
f ind care necesit
a parcurgerea unui drum de
lungime mai mare dect 1, s
a distrug
a acest
drum, aducndu-i vrfurile drept descendent
i imedi
at
i ai r
ad
acinii, cu scopul ca apelurile viitoare
ale lui f ind pentru aceste v
arfuri s
a nu mai
consume timp. Mai precis, avem
183
function f ind(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
Dac
a A : NxN N este funct
ia lui Ackermann dat
a
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) = min{z | A z, 4m/n log n, z 1}
avem:
Complexitatea pasului 2, utiliz
nd union din solut
ia
a II-a
si f ind descris mai sus, este O(m (m, n)).
Not
am c
a (m, n) cre
ste extrem de ncet (pentru valorile
practice ale lui n, (m, n) 3)
si deci se poate presupune
ca aceast
a ultim
a implementare este practic liniar
a (n
raport cu m).
184
Dac
a dM (v) = 0, atunci v se nume
ste expus 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, s
a se determine
M MG astfel nct
|M | = max{|M | | M MG}.
(Vom nota cu (G) = max{|M | | M MG}).
Problema cuplajului maxim este strns legat
a
de problema acoperirii minime.
Definit
ie. Se nume
ste acoperire (a vrfurilor
cu muchii) n graful G orice mult
ime F E de
muchii cu proprietatea c
a dF (v) 1 v V .
FG = {F | F E, F acoperire n G} noteaz
a
familia acoperirilor grafului G.
FG = G nu are vrfuri izolate (atunci,
m
acar E este o acoperire).
186
S
a observ
am c
a pentru v E(M ), cum G nu
are vrfuri izolate, exist
a o muchie incident
a cu
v,
si cum M este maximal n raport cu incluziunea, aceast
a muchie are cealalt
a extremimea de muchii F astitate din S(M ). Mult
fel construit
a este o acoperire
si n plus |F | =
|M | + |E(M )| = |M | + n 2|M | = n |M |.
Rezult
a c
a |F | |F | = n |M |.
b) Fie F o acoperire de cardinal minim. Consider
am urm
atorul algoritm:
M F
while v V : dM (v) > 1 do
{ determin
a e M incident
a cu v;
M M e
}
Algoritmul construie
ste un cuplaj M n G.
Dac
a muchia e incident
a cu v, care se nl
atur
a
din M ntr-o iterat
ie while, este e = vv ,
188
atunci dM (v ) = 1
si deci n pasul urm
ator
dM (v ) va zero, adic
a la orice ndep
artare a
unei muchii din mult
imea M curent
a de muchii
se obt
ine un vrf expus fat
a de cuplajul nal M
a o muchie,
(dac
a vrful v ar incident cu nc
atura
atunci din acoperirea init
ial
a F se poate nl
muchia e
si s
a obt
inem tot o acoperire, contrazicnd alegerea lui F ).
Deci dac
a M este cuplajul construit de algoritm
a
avem: |F | |M | = |E(M )| = n 2|M |, adic
|F | = n |M | n |M |.
Din (a)
si (b) rezult
a concluzia teoremei.
Demonstrat
ia f
acut
a arat
a, chiar mai mult, c
a
problemele (P1)
si (P2) snt polinomial echivalente, cuplajul M
si acoperirea F construite ind
si ele solut
ii optime respectiv pentru cele
dou
a probleme.
189
Dac
a vom considera matricea de incident
a
(vrf - muchie) a grafului G cu n vrfuri
si m
muchii B = (bij )nm cu bij = 1 dac
a vrful i
si dac
a not
am cu ep vectorul p-dimensional cu
toate componentele 1, atunci cele dou
a probleme se scriu analitic astfel
P1
max{eT
m x|Bx en , x 0, xi {0, 1} i = 1, m}
P2
min{eT
m x|Bx en , x 0, xi {0, 1} i = 1, m}
si teorema 1 ofer
a o egalitate min-max interesant
a.
In cele ce urmeaz
a ne vom ocupa numai de
problema (P1); n plus vom presupune c
a G
nu are vrfuri izolate.
190
Dac
a s-ar ncerca rezolvarea problemei (P1)
apelnd la problema de programare liniar
a asociat
a
(LP 1 )
max{emx | Bx en, x 0}
se constat
a c
a solut
iile optime pot s
a nu e
cu componente ntregi
si, chiar mai mult, valoarea maxim
a determinat
a de (LP1) s
a e superioar
a lui (G).
Cel mai simplu exemplu n acest sens este G =
C2n+1. Evident, (C2n+1 ) = n
si totu
si xi =
1 i = 1, 2n + 1 este o solut
ie optim
a a lui
2
(LP1) corespunz
atoare, cu valoarea optim
a
n+1
2 > n.
1/2
1/2
1/2
1/2
1/2
191
Rezult
a c
a existent
a circuitelor impare n graful
G poate provoca dicult
a
ti n rezolvarea problemei (P1). Mai precis, avem urm
atoarea teorem
a:
Teorem
a. 2. (Balinski 1971) Vrfurile politopului Bx en , x 0, x Rm, au coordo1 apar dac
natele 0, 1
si 1
.
Coordonatele
a
si
2
2
numai dac
a G are circuite impare.
Rezult
a de aici c
a, n cazul grafurilor bipartite, problema
(P1) este u
sor de rezolvat: se apeleaz
a la problema de
programare (LP1)
si solut
ia g
asit
a este solut
ie optim
a
pentru problema P1 (reprezentnd vectorul caracteristic
al unui cuplaj). Adaptarea combinatorie a algoritmului simplex din programarea liniar
a, direct pe graful bipartit considerat (n scopul unei economii de memorie,
tablourile simplex snt reprezentate implicit) a condus la
a
sa numita metod
a ungar
a de rezolvare a problemei
(P1) pentru grafurile bipartite. Nu vom prezenta acest
algoritm, prefernd descrierea unuia mai performant datorat lui Hocroft
si Karp (1973).
192
Totu
si teorema de dualitate din programarea
liniar
a, precum
si integritatea solut
iilor optime,
pot oferi demonstrat
ii instantanee pentru teoreme de caracterizare a solut
iilor optime ale
problemei (P1) n cazul grafurilor bipartite:
Teorem
a. 3. (Hall, 1935) Fie G = (R, S; E)
un graf bipartit. Exist
a un cuplaj care satureaz
a vrfurile lui R dac
a
si numai dac
a
|NG(A)| |A|
A R.
Teorem
a. 4. (Konig,1930) Fie G = (R, S; E)
un graf bipartit. Cardinalul maxim al unui cuplaj este egal cu num
arul minim de vrfuri prin
ndep
artarea c
arora se obt
ine graful nul:
(G) = n (G)
193
194
Dac
a pentru un graf oarecare H not
am cu
q(H) num
arul componentelor conexe impare
ale lui H, atunci observat
ia anterioar
a arat
a
c
a o condit
ie necesar
a pentru ca G s
a aib
a un
cuplaj perfect este ca q(GS) |S| S V (G).
S
a observ
am c
a atunci cnd S = condit
ia
anterioar
a cere ca orice component
a conex
a a
lui G s
a aib
a un num
ar par de vrfuri. Condit
ia
este
si sucient
a, a
sa cum rezult
a din urm
atoarea
teorem
a.
Teorem
a. 5. (Tutte, 1947) Un graf G =
(V, E) are un cuplaj perfect dac
a
si numai dac
a
(T )
q(G S) |S|
S V.
Demonstrat
ie. Ar
at
am, prin induct
ie dup
an=
|V |, c
a, dac
a G = (V, E) satisface (T), atunci
G are un cuplaj perfect.
195
C3
s2
s3
D2
s1
sm
Dk
Cm
s1
C1
s2
C2
s3
C3
sm
Cm
Rezult
a c
a q(G B) |A|. Pe de alt
a parte
G satisface condit
ia lui Tutte (T) deci |B|
q(G B). Am obt
inut deci |B| |A| adic
a
|NH (A)| |A|.
Cum A a fost aleas
a arbitrar, rezult
a c
a H are
un cuplaj perfect M0 = {s1v1, s2v2, . . . , smvm}
si vi Ci i = 1, m.
cu S0 = {s1, . . . , sm}
c) Pentru orice i {1, . . . , m} graful G = [Ci
vi]G are un cuplaj perfect.
Folosind ipoteza inductiv
a, armat
ia va rezulta
dac
a dovedim c
a G satisface (T).
Fie S Ci vi. Dac
a q(G S) > |S| atunci
a c
a
cum q(G S) + |S| 0 (mod 2), rezult
q(G S) |S| + 2
si atunci considernd S =
S0 {vi} S, avem |S | q(G S ) = q(G
S0) 1 + q(G S) = |S0| 1 + q(G S)
|S0| 1 + |S| + 2 = |S |, adic
a q(G S ) = |S |
ceea ce contrazice alegerea lui S0 c
aci S0 S .
Rezult
a c
a S Ci vi q(G S) |S| deci G
are un cuplaj perfect.
200
a n a), b),
si c) de
mai sus este un cuplaj perfect
si cu aceasta
teorema este demonstrat
a.
Not
am c
a Berge (1958) a generalizat aceast
a
teorem
a stabilind c
a
1
(G) = (|V (G)| maxSV (G)[q(G S) |S|] ).
2
Totu
si, algoritmii care rezolv
a problema (P1)
se bazeaz
a pe o caracterizare mai simpl
a a cuplajelor de cardinal maxim.
Fie G = (V, E) un graf
si M MG un cuplaj al
s
au.
Definit
ie: Se nume
ste drum alternat al lui G
relativ la cuplajul M orice drum
P : v0, v0v1, v1, . . . , vk1, vk1vk , vk
a. . i = 1, k 1 {vi1vi, vivi+1} M = .
201
S
a observ
am c
a, ntruct
denit
ia dat
a rezult
a c
a
muchii consecutive ale
una apart
ine cuplajului
(muchiile lui P apart
in
E M ).
e
f
d
c
h
i
j
Observat
ie: Din denit
ie, rezult
a c
a dac
a P
este un drum de cre
stere relativ la cuplajul M
atunci |P M | = |P M | + 1.
Teorem
a. 6. (Berge 1959) Un cuplaj M
este de cardinal maxim n graful G dac
a
si numai dac
a nu exist
a n G drumuri de cre
stere
relativ la M .
Demonstrat
ie: Dac
a M este un cuplaj de cardinal maxim
si P ar un drum de cre
stere
n G relativ la M atunci M = P M = (P
M ) (M P ) este un cuplaj n G. (Construct
ia
lui P M revine la interschimbarea muchiilor
lui M P
si P M pe drumul P ). In plus,
|M | = |P M | + 1 + |M P | = |M | + 1, contrazicnd alegerea lui M .
a
e
f
d
c
h
i
j
P= a, b, c, d, f, g, h - drum de crestere
(M-P) u (P-M)
203
Reciproc, dac
a M este cuplaj n G
si M nu
admite drumuri de cre
stere, consider
am M un
cuplaj de cardinal maxim. Vom ar
ata c
a |M | =
|M |, ceea ce demonstreaz
a teorema.
ial al lui G, G = (V, M M ).
Fie G graful part
Evident, dG (v) 2 v V
si deci componentele conexe ale lui G snt drumuri (eventual de
lungime 0), sau circuite
si avem urm
atoarele
posibilit
a
ti (muchiile ngro
sate snt din M
si
cele subt
iri, din M ):
a
b
c
d
e
Deci, dac
a not
am cu mM (C) num
arul muchisi
ilor din M ale componentei conexe C a lui G
cu mM (C) num
arul corespunz
ator, de muchii
din M avem mM (C) = mM (C). Rezult
a c
a
|M M | =
mC (M ) =
mC (M ) = |M M |
La ecare iterat
ie a ciclului while, cuplajul curent cre
ste
(cardinalul s
au se m
are
ste cu o unitate)
si deci n cel
mult
n
2
iterat
ii se obt
ine un cuplaj de cardinal maxim,
Lem
a. 1. Fie M, N MG, |M | = r, |N | = s
(Ci ) = |N M | |M N | = s r.
i=1,p
Rezult
a c
a exist
a m
acar s r Ci cu (Ci ) = 1,
adic
a exist
a m
acar sr drumuri de cre
stere disjuncte ca vrfuri (deci
si ca muchii) cont
inute
n M N .
207
Lem
a. 2. Dac
a (G) = s
si M MG |M | =
r < s, atunci exist
a n G un drum de cre
stere
relativ la M de lungime 2 r/(s r)! + 1.
Demonstrat
ie. Fie N MG cu |N | = s =
(G). Conform lemei precedente, vor exista
s r drumuri de cre
stere disjuncte pe muchii,
cont
inute n M N . Acestea au mpreun
a cel
mult r muchii din M . Rezult
a c
a exist
a unul
care cont
ine cel mult r/(s r)! muchii din M ,
a c
arui lungime este deci 2 r/(s r)! + 1.
Definit
ie Dac
a M MG, se nume
ste drum
minim de cre
stere al lui M n G , un drum
de cre
stere cu num
ar minim de muchii printre
toate drumurile de cre
stere ale lui M n G.
Lem
a. 3. Fie M MG, P drum minim de
cre
stere relativ la M ,
si P drum de cre
stere al
lui M P . Atunci, |P | |P | + 2|P P |.
208
Demonstrat
ie: Fie N = (M P )P .
si |N | = |M | + 2.
Avem M N = P P
Folosind lema 1 obt
inem c
a exist
a P1, P2 drumuri de cre
stere disjuncte ca muchii relativ
la M cont
inute n M N . Cum P este drum
minim de cre
stere avem: |P P | |P1|+|P2|
2|P | deci |P | + |P | 2|P P | 2|P |.
Consider
am urm
atorul algoritm
M0 ;
Mi+1 MiPi
( Pi dr. minim de cre
st. rel. la
():
Mi; i 0.)
Se obt
ine
sirul de drumuri minime de cre
stere
P0, P1, . . . , P(G)1.
Lem
a. 4.
a) i = 1, (G) 2
|Pi| |Pi+1|;
si Pi+1 snt disjuncte ca
|Pi| = |Pi+1| Pi
vrfuri.
a Pi
si
b) i < j < (G) 1
|Pi| = |Pj |, implic
Pj snt disjuncte ca vrfuri.
209
Demonstrt
ie: a) Considernd P = Pi
si P =
ine |Pi+1| |Pi| + 2|Pi
Pi+1 n lema 3 se obt
Pi+1| |Pi |. Egalitatea are loc dac
a
si numai dac
a Pi
si Pi+1 snt disjuncte ca muchii,
condit
ie care, avnd n vedere alternant
a drumurilor, implic
a faptul c
a nu au vrfuri comune.
b) rezult
a aplicnd succesiv a).
Teorem
a. 7. (Hopcroft, Karp 1973) Fie
G un graf
si (G) = s. Num
arul ntregilor
distinct
i din
sirul |P0|, |P1|, . . . , |Ps1|, construit
Demonstr
atie: Fie r = s s!. Atunci |Mr | =
r
si |Pr | 2 r/(s r)! + 1 = 2 s s!/(s
s s!)! + 1 < 2 s + 1.
Rezult
a c
a oricare ar i < r, |Pi | este unul din
s + 1 ntregi distinct
i, deci n total avem
Dac
a algoritmul () se descompune n etape,
astfel nct la ecare etap
a se determin
a o
mult
ime maximal
a de drumuri minime de cre
stere
disjuncte ca vrfuri, din lema 4, rezult
a c
a, n
etapa urm
atoare, lungimea drumurilor minime
de cre
stere utilizate va cre
ste strict (altfel sar contrzice maximalitatea mult
imii de drumuri
alese).
Utiliznd teorema
a c
a num
arul fazelor
7, rezult
nu va dep
a
si 2 (G) + 2.
Rezult
a c
a urm
atorul algoritm pentru aarea
unui cuplaj maxim, ntr-un graf cu m
acar o
muchie:
0.
1.
M ;
repeat
Determin
a P o familie maximal
a ()
de drumuri minime de cre
stere;
for P P do M M P
until P = .
211
are complexitatea O( nA) unde A este complexitatea determin
arii familiei P.
Hopcroft
si Karp au ar
atat cum se poate implementa pasul 1 pentru un graf bipartit, astfel
nct A = O(m + n), deci s-a obt
inut un algoritm de complexitate O(mn1/2) pentru aarea
unui cuplaj de cardinal maxim ntr-un graf bipartit.
Pentru un graf oarecare, structurile de date
necesare obt
inerii aceleea
si complexit
a
ti snt
mult mai elaborate
si au fost descrise de Micali
a) opre
ste construct
ia, oferind lungimea
minim
a a unui drum de cre
stere,
si un sistem evident
de etichetare va permite depistarea familiei P. Complexitatea O(m + n) rezult
a prin utilizarea listelor de
adiacent
a. Exemplu:
familie maximala de
1- drumuri de crestere
familie maximala de
3- drumuri de crestere
Cuplaj maxim !
toate virfurile rosii
sunt saturate
213
V. FLUXURI
IN RET
ELE
1. Problema uxului maxim.
RETEA
Iesire
Intrare
V
Numim ret
ea (de transport) cu intrarea s
si
ie
sirea t, 4-uplul R = (G, s, t, c) unde:
- G = (V, E) este un digraf,
(s)
>
0;
d
- s, t V ; s = t; d+
G
G(t) > 0,
- c : E R+; c(e) este capacitatea arcului e.
Vom presupune c
a
si c
a |E| = m.
V = {1, 2, . . . , n} (n N)
Extindem funct
ia c la c : V V R+ prin
c((i, j)) =
c(ij)
0
dac
a ij E
dac
a ij
/E
Denit
ie: Numim ux n ret
eaua R = (G, s, t, c)
o funct
ie x : V V R, care satisface
0 xij cij
(i)
(ii)
jV
xji
ij V V
xij = 0
i V {s, t}.
jV
Observat
ii
10 Dac
a ij E atunci xij se nume
ste uxul
(transportat)pe arcul ij.
Evident, condit
ia (i) cere ca uxul pe orice
arc s
a e nenegativ
si subcapacitar, iar condit
ia
(ii) (legea de conservare a fluxului) cere ca
suma uxurilor pe arcele care intr
a n vrful
i s
a e egal
a cu suma uxurilor pe arcele
care ies din vrful i.
Se putea cere ca uxul s
a e denit numai pe arcele
ret
elei, dar cu convent
ia f
acut
a la extensia funct
iei de
capacitate, se observ
a c
a pentru perechile (i, j) care nu
snt arce n ret
ea condit
ia (i) impune ca uxul s
a e 0,
20 Dac
a se sumeaz
a relat
iile (ii) (pentru i
V {s, t}) se obt
ine:
0 = i =s,t jV xji jV xij =
i =s,t j =s,t xji i =s,t j =s,t xij +
i =s,t xsi +
i xis
jV
i =s,t xti
i xsi
xjt
i xit
xtj =
jV
i =s,t xis
i =s,t xit =
a
i xti , adic
xjs
jV
xsj .
jV
Definit
ie: Dac
a x este un ux n ret
eaua R =
(G, s, t, c) se nume
ste valoarea uxului x num
arul
v(x) =
jV
xjt
xtj .
jV
In orice ret
ea R = (G, s, t, c) exist
a un ux,
uxul nul xij = 0 ij, de valoare 0.
x
x = 0, i = s, t
j ji
j ij
x
x = v
j js j sj
j xjt
j xtj = v
0 xij cij ij
Particularit
a
tile combinatorii ale problemei, num
arul mare
de restrict
ii
si mai ales dicult
a
tile legate de restrict
iile
de integritate ce s-ar putea impune variabilelor, care uneori n practic
a snt esent
iale, au condus la dezvoltarea
de metode specice de rezolvare.
217
Definit
ie. Dac
a P este un drum n G, multigraful suport al digrafului G,
si e = vivj este o
muchie a lui P atunci:
dac
a e corespunde arcului vivj al lui G, e se
nume
ste arc direct al drumului P ;
dac
a e corespunde arcului vj vi al lui G, atunci
e se nume
ste arc invers.
P
-G
arc direct
arc invers
Definit
ie. Fie R = (G, s, t, c)
si x ux n R.
Se nume
ste C-drum (n R relativ la uxul x)
un drum D n G cu proprietatea c
a ij E(D) :
xij < cij dac
a ij este arc direct,
xji > 0 dac
a ij este arc invers.
218
Dac
a D este un C-drum
si ij E(D), se nume
ste
capacitatea rezidual
a a lui ij (relativ la Cdrumul D) num
arul
c x
ij
ij
r(ij) =
x
ji
dac
a ij arc direct n D
dac
a ij arc invers n D .
Capacitatea rezidual
a a drumului D este
r(D) = min r(e).
eE(D)
4
3,2
3,1
1,0
1,0
1,1
2,1
2,2
3
2,2
Definit
ie. Se nume
ste drum de cre
stere a
uxului x, n ret
eaua R = (G, s, t, c), un C-drum
de la s la t.
Lem
a. 1. Dac
a D este un drum de cre
stere
a fluxului x n ret
eaua R = (G, s, t, c), atunci
x1 = x r(D) definit prin
xij
x1
ij = xij + r(D)
xij r(D)
dac
a ij
/ E(D)
dac
a ij E(D), ij arc direct n D
dac
a ji E(D), ji arc invers n D
este flux n R
si v(x1) = v(x) + r(D).
Demonstrat
ie. Denit
ia lui r(D) implic
a
ndeplinirea de c
atre x1, a condit
iilor (i).
Condit
iile (ii) vericate de x, nu snt afectate
pentru niciun vrf i
/ V (D).
Dac
a i = s, t este un vrf al drumului D, i este
incident cu exact dou
a arce ale lui D,e ele li
si ik.
Avem urm
atoarele cazuri posibile:
220
a) li
si ik arce directe:
1 1
x
x
=
x
xij + x1
x1
ji
j
j
j
=
l
j
=
k
ji
ij
li
ik =
x
x + xli + r(D) xik r(D) =
j =l ji j =k ij
j xji j xij = 0.
b) li direct ik invers:
1
1
xji j xij = j =l,k xji j xij + x1
+ x1
j
li
ki =
x j xij + xli + r(D) + xki r(D) =
j =l,k ji
j xji j xij = 0.
x
=
x
x
x
jt
tj
j
j
j
=
l
tj
tl
jt
j xjt j =l xtj (xtl r(D)) = v(x) + r(D).
Deci lema are loc.
221
r(D)
2,2
2
4
3,2
3,2
1,0
1,0
1,0
2,2
2,2
3
2,2
Observat
ii: 10 Aceast
a lem
a justic
a denumirea de drum de cre
stere, precum
si cea de
capacitate rezidual
a.
20 Din denit
ie, dac
a D este drum de cre
stere,
r(D) > 0
si deci avem v(x r(D)) > v(x).
Rezult
a c
a
dac
a x admite un drum de cre
stere atunci
x nu este ux de valoare maxim
a.
222
Pentru a demonstra c
a si reciproc este adev
arat
avem nevoie de o nou
a not
iune.
Definit
ie. Fie R = (G, s, t, c). Se nume
ste
sect
iune n ret
eaua R, o partit
ie (S, T ) a lui
V cu s S
si t T .
Capacitatea sect
iunii (S, T ) este
c(S, T ) =
cij
iS jT
(suma capacit
a
tilor arcelor de la S la T ).
Lem
a. 2. Daca x este un flux n R = (G, s, t, c)
(xij xji).
iS jT
t
+
T
223
Demonstrat
ie:
v(x) = ( j xjt j xtj ) 0
iS (
iS
iS
j xij j xji)
jS (xij xji) +
iS jT (xij xji)
jT (xij xji).
Lem
a. 3. Dac
a x este un flux n R = (G, s, t, c)
iS jT (cij xji)
iS jT cij
(xij cij )
(xji 0).
224
Observat
ii:
si (S, T )
1) Dac
a x este un ux n R = (G, s, t, c)
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 maxim
a.
2) In exemplul dat, x1 este ux de valoare
maxim
a ntruct v(x1) = 4 = c({1, 2, 3}, {4, 5, 6}).
Teorem
a. 1. (Teorema drumului de cre
stere)
Un flux x este de valoare maxim
a ntr-o ret
ea
R, dac
a
si numai dac
a, nu exist
a drumuri de
cre
stere a fluxului x n ret
eaua R.
Demonstrat
ie: O implicat
ie este deja stabilit
a.
Reciproc, e x un ux n R care nu admite
drumuri de cre
stere. Consider
am S = {i | i
V D C-drum n R de la s la i}.
Evident s S (exist
a D de lungime 0)
si t
/S
(nu exist
a C-drumuri de la s la t). Fie T =
V S. Rezult
a c
a (S,T) este o sect
iune.
225
S
a observ
am c
a i S
si j T avem:
dac
a ij E atunci xij = cij
si
dac
a ji E atunci xji = 0
(altminteri C-drumul de la s la i se poate extinde la un C-drum de la s la j).
Se observ
a c
a xi are componente ntregi
este un invariant al algoritmului (din denit
ia
a toate capacit
a
tile snt ntregi,
lui r(Pi ), dac
rezult
a c
a r(Pi ) este ntreg n ipoteza c
a xi e
ntreg)
si c
a la ecare iterat
ie a pasului 2 valoarea uxului curent cre
ste cu m
acar o unitate,
deci pasul 2 se repet
a de cel mult c({s}, V
inut este, con{s}) Z+ ori. Fluxul nal obt
form teoremei 1, de valoare maxim
a.
Observat
ie. Algoritmul, descris mai sus, este
nit
si n cazul capacit
a
tilor rat
ionale.
Teorem
a. 3. ( Ford-Fulkerson, 1956)
Valoarea maxim
a a unui flux n ret
eaua R =
(G, s, t, c) este egal
a cu capacitatea minim
a a
unei sect
iuni a ret
elei.
Demonstrat
ie: Dac
a dispunem de un algoritm
care, pornind de la un ux init
ial x0 (x0 exist
a
ste
ntotdeauna, de exemplu x0 = 0), construie
ntr-un num
ar nit de pa
si un ux x, care nu
admite drumuri de cre
stere, atunci sect
iunea
construit
a n demonstrat
ia teoremei 1 satisface
mpreun
a cu x enunt
ul teoremei.
227
Dac
a i este un vrf etichetat, atunci j V
Dac
a j neetichetat, ij E
si xij < cij atunci
j se etichet. e = (i, direct, min(e3[i], cij xij ));
Dac
a j neetichetat, ji E
si xji > 0 atunci
j se etichet. e = (i, invers, min(e3[i], xji)).
Dac
a toate vrfurile etichetate au fost cercetate
si nu sa reu
sit etichetarea vrfului t, rezult
a c
a uxul curent
nu admite drumuri de cre
stere, este deci de valoare
maxim
a, iar dac
a S = mult
imea vrfurilor etichetate
atunci (S, V S) este o sect
iune de capacitate minim
a.
Descrierea algoritmului
ial (de ex. uxul nul);
1: Se alege x = (xij ) ux init
Se eticheteaz
a s cu (0, ., )
2: while ( vrfuri etichetate necercetate) do
{ alege un vrf etichetat
si necercetat i;
etichetare(i);
if (t a primit etichet
a) then
{ modic
a uxul pe drumul dat de etichete;
Complexitatea algoritmului:
Pentru ecare cre
stere a uxului, snt necesare
cel mult 2m(m = |E|) inspect
ii de arce n vederea etichet
arii.
Dac
a toate capacit
a
tile snt ntregi atunci vor
necesare cel mult v (v = valoarea uxului
maxim) cre
steri succesive. Rezult
a c
a algoritmul are complexitatea O(mv).
Dac
a U este o margine superioar
a a capacit
a
tilor
arcelor atunci v (n 1)U ((n 1)U este o
margine superioar
a a capacit
a
tii sect
iunii ({s}, V
{s})), deci algoritmul are complexitatea O(nmU ).
Observat
ii. 10. Dezavantajele algoritmului snt
legate de neconvergent
a n cazul capacit
a
tilor
irat
ionale (de
si practic, n implement
ari nu este
cazul),
si de faptul ca m
arimile capacit
a
tilor
inuent
eaz
a comportarea sa, acestea neconstituind o m
asur
a a volumului datelor de intrare.
Exemplu:
232
2
M,0
s 1
1,0
M,0
M,0
4 t
P1
P
2
M,0
3
Dac
a alegerea, din pasul 2 al algoritmului,
face ca drumurile de cre
stere succesive (pornind
de la uxul nul) s
a e P1, P2, P1, P2, . . . unde
P1 = 1, 2, 3, 4, P2 = 1, 3, 2, 4 atunci, ecare
cre
stere a uxului m
are
ste cu 1 valoarea uxului curent
si, deci, vor necesare 2M cre
steri,
ceea ce este inadmisibil pentru M Z+ foarte
mari.
20. Aceste dezavantaje pot evitate dac
a
alegerile vrfurilor etichetate supuse cercet
arii
se fac judicios. Primii care au observat acest
fenomen, au fost Dinic(1970)
si independent,
Edmonds
si Karp (1972).
233
Vom dovedi c
a
sirul de uxuri astfel construit
este nit.
Not
am, pentru i V
si k = 0, 1, 2, . . .
ik = lungimea minim
a a unui C-drum de la s la i n R
relativ la uxul xk .
ik = lungimea minim
a a unui C-drum de la i la t n R
relativ la uxul xk .
234
Lem
a. 4. Pentru i V
si k = 0, 1, 2, . . .
avem
ik+1 ik
si ik+1 ik .
Teorem
a. 4. (Edmonds, Karp)
Dac
a x = x0 este un flux oarecare n ret
eaua
R, atunci
sirul de fluxuri x1, x2, . . . obt
inut din
x0 prin cre
steri succesive pe drumuri minime
de cre
stere, are cel mult mn
n cel
2 elemente (
mult mn
steri succesive, se obt
ine un flux
2 cre
care nu admite drumuri de cre
stere).
Demonstrat
ie: Dac
a P este un drum de cre
stere
relativ la un ux n ret
eaua R, cu capacitatea
rezidual
a r(P ), vom numi arc critic n P orice
arc e P cu r(e) = r(P ).
In x r(P ), uxul pe arcele critice devine sau
egal cu capacitatea (pentru arcele directe) sau
egal cu 0 (pentru arcele inverse).
235
P
l
Rezult
a, il + il = jl + 1 + il jk + 1 + ik =
ik + ik + 2 (s-a folosit lema 1 ). Am obt
inut
c
a lg(Pl ) lg(Pk ) + 2.
236
P
l
Rezult
a jl + jl = il + 1 + jl ik + 1 + jk =
jk + jk + 2 Deci, lg(Pl ) lg(Pk ) + 2.
Deci orice drum minim de cre
stere n care
arcul ij este critic este cu m
acar dou
a arce
mai lung dect precedentul n care ij a fost
critic.
Cum, un drum n G are cel mult n 1 arce,
rezult
a c
a un arc xat nu poate critic n procesul de cre
stere mai mult de n
2 ori.
Cum orice drum de cre
stere are cel put
in un
arc critic, rezult
a c
a nu putem avea mai mult
stere, n
sirul
de mn
2 drumuri minime de cre
construit. Deci, dup
a cel mult mn/2 cre
steri,
se obt
ine un ux care nu admite drumuri de
cre
stere.
237
Corolar. Dac
a R = (G, s, t, c) este o ret
ea,
atunci exist
a un flux care nu admite drumuri
de cre
stere.
Observat
ii: 10 Rezult
a de aici, c
a demonstrat
ia
teoremei 3 este complet
a.
20 S-ar putea pune ntrebarea dac
a nu cumva,
alegerea drumurilor minime de cre
stere, m
are
ste
complexitatea algoritmului de ux maxim ?
R
aspunsul este ns
a banal:
Lem
a. 5. Dac
a, n pasul 2 al algoritmului lui
Ford
si Fulkerson, alegerea vrfurilor etichetate
n vederea cercet
arii se face dup
a regula primul
etichetat - primul cercetat, atunci drumurile
de cre
stere care se depisteaz
a snt cu num
ar
minim de arce.
Demonstrat
ie: Fie P un drum de cre
stere depistat
si e P un drum minim de cre
stere. Presupunem c
a lg(P ) > lg(P ).
238
Fie
P : si1, i1 i2, . . . , ik1ik , ik ik+1, ik+1ik+2, . . . , ik+l1t
si
P : si1, i1i2 , . . . , ik1ik , ik jk+1, jk+1jk+2, . . . , jk+l1 t.
Teorem
a. 5. (Edmonds- Karp 1972)
Dac
a se modific
a algoritmul lui Ford
si Fulkerson cu precizarea alegerii bf s a vrfurilor etichetate
n vederea cercet
arii, atunci, fluxul maxim se
obt
ine n timpul O(m2n) .
Exercit
iu. Aplicat
i algoritmul lui Ford & Fulkerson modicat pentru obt
inerea unui ux de
valoare maxim
a n ret
eaua de mai jos (n care
este precizat un ux init
ial de valoare 55 ).
240
Definit
ie. Se nume
ste preux n ret
eaua R, o
funct
ie x : E R astfel nct
0 xij cij
(i)
(ii)
i = s ei =
j:jiE
Num
arul ei
din vrful i.
ij E
xji
xij 0.
j:ijE
i V {s, t} se nume
ste excesul
Dac
a i V {s, t}
si ei > 0 atunci i se nume
ste
nod activ.
Dac
a ij E xij va numit uxul pe arcul ij.
241
Observat
ii: 10. Dac
a n ret
eaua R nu exist
a
noduri active, atunci preuxul x este ux de
la s la t n R de valoare et .
20. Ideea algoritmulor de tip preflux este: se
porne
ste cu un preux n R
si se transform
a
prin modic
ari ale uxului pe arce ntr-un ux
care nu admite drumuri de cre
stere.
30. In denit
ia unui preux, nu am mai utilizat
convent
ia c
a vom introduce toate perechile de
arce din digraful complet simetric de ordin n,
ntruct n analiza algoritmilor pe care i vom
prezenta va esent
ial
a reprezentarea digrafului G cu ajutorul listelor de adiacent
a. Totu
si,
vom considera c
a dac
a ij E atunci
si
ji E (altminteri, ad
aug
am arcul ji cu capacitate 0).
242
Definit
ie: Dac
a x este un preux n R
si ij E,
atunci capacitatea rezidual
a a arcului ij este
rij = cij xij + xji
(reprezentnd uxul adit
ional ce poate trimis
de la nodul i la nodul j utiliznd arcele ij
si ji).
cij , xij+dir
cij, xij
trimite
i
a=dir+inv
pe arcul ij
cji, xji - inv
cji , xji
ej
e -a
i
e +a
j
Observat
ie. Peste tot, n cele ce urmeaz
a, a
trimite ux de la i la j nseamn
a s
a cre
stem
uxul pe arcul ij sau s
a mic
sor
am uxul pe
arcul ji.
Definit
ie: Se nume
ste C-drum n R relativ la
preuxul x, un drum al lui G ale c
arui arce au
capacitatea rezidual
a pozitiv
a.
243
Definit
ie: Se nume
ste funct
ie de distant
a n R
relativ la preuxul x, o funct
ie d : V Z+ care
satisface
(D1)
d(t) = 0
ij E, rij > 0 d(i) d(j) + 1
(D2)
d( j )
d(s)
d( j ) + 1
d( j ) - 1
j
i
i
Observat
ii: 10. Dac
a P este un C-drum relativ
la preuxul x n R de la i la t atunci d(i) lg(P )
(arcele unui C-drum au capacitate rezidual
a
pozitiv
a
si se aplic
a (D2)).
Rezult
a c
a d(i) i (lungimea minim
a a unui
C-drum de la i la t).
244
a, care cont
ine arcele ij E.
Definit
ie. Fie x un preux n R
si d o funct
ie de
distant
d(i) = d(j) + 1.
Dac
a R este o ret
ea, consider
am init
ializare
urm
atoarea procedur
a care construie
ste n O(m)
un preux x
si o funct
ie de distant
a d corespunz
atoare acestuia, astfel:
procedure init
ializare;
{
for ij E do
if i = s then xsj csj else xij 0;
d[s] n; d[t] 0;
for i V {s, t} do d[i] 1
}
245
Observat
ii: 10.
Dup
a execut
ia acestei proceduri,
sj A(s) avem rsj = 0, deci alegerea lui d(s) = n
nu afecteaz
a condit
ia D2. Pentru arcele cu capacitate
rezidual
a pozitiv
a de forma js D2 este evident vericat
a.
rsj =0
d(s) = n
d( j )=1
d( t )=0
j
s
t
j
r js >0
rjt >0
1=d(j)=0+1=d(t)+1
1=d(j)<n+1=d(s)+1
Consider
am urm
atoarele proceduri
procedure pompeaz
a (i);
// i este un v
arf diferit de s, t
{
alege ij A(i) ij admisibil;
trimite = min(ei, rij ) unit
a
ti de ux de la i la j
a, altDac
a = rij avem o pompare saturat
minteri pomparea este nesaturat
a.
procedure reetichetare (i);
// i este un v
arf diferit de s, t
{
d(i) min{d(j) + 1 | ij A(i) rij > 0}
}
247
Schema general
a a unui algoritm de tip preux
este:
{
init
ializare;
while noduri active n R do
{ selecteaz
a un nod activ i;
if arce admisibile n A(i)
then pompeaz
a(i)
else reetichetare(i)
}
}
Lem
a. 6.
Algoritmul de tip preflux, de
mai sus, are ca invariant d este funct
ie de
distant
Dac
a naintea execut
iei unei iterat
ii a lui while,
d e funct
ie de distant
Demonstrat
ie: Dac
a x este un preux n R,
atunci x se poate scrie ca o sum
a nit
a x =
x1 + x2 + . . . + xp, unde ecare xk satisface:
mult
imea Ak = {ij | ij E, xkij = 0} este
a) mult
imea arcelor unui drum de la s la t,
b) m. arcelor unui dr. de la s la un nod activ,
c) mult
imea arcelor unui circuit.
In plus, n situat
iile a)
si c), xk este ux.
(demonstrat
ia rezult
a algoritmic, construind mai nti
mult
imile a), apoi a celor de tip c)
si b); la ecare etap
a
se caut
a inversul unui drum de tipul a),b), sau c); preuxul costruit se scade din cel curent; excesele nenegative, permit efectuarea construct
iei; ea este nit
a, c
aci
dup
a ecare etap
a nr. arcelor cu ux curent nul cre
ste.)
itatea rezidual
a strict pozitiv
a
si ele formeaz
a
C-drumul din enunt
ul lemei.
x>0
x>0
x>0
i0
x>0
r>0
r>0
s
r>0
r>0
e >0
i0
250
Corolar. 1. i V
Demonstrat
ie: Dac
a i nu a fost reetichetat,
atunci d(i) = 1 < 2n.
Dac
a i a fost reetichetat, atunci nainte de
reetichetare i este nod activ, deci exist
a Cdrum de la i la s de lungime cel mult n 1.
Din modul de modicare a lui d(i)
si din D2
rezult
a c
a dup
a reetichetare d(i) d(s) + n
1 = 2n 1, ntruct d(s) = n nu se schimb
a pe
parcursul algoritmului.
Corolar. 2. Num
arul total de apeluri ale procedurii reetichetare este mai mic dect 2n2.
Demonstrat
ie: Fiecare din cele n 2 vrfuri ce
pot supuse etichet
arii poate etichetat de
cel mult 2n 1 ori, avnd n vedere corolarul 1,
lema 6
si etichetarea init
ial
a.
251
Corolar. 3. Num
arul total de pomp
ari saturate este nm.
Demonstrat
ie: Dup
a ce un arc ij devine saturat (situat
ie n care d(i) = d(j) + 1), pe acest
arc nu se va mai putea trimite ux pn
a cnd
nu se va trimite ux pe arcul ji situat
ie n care
vom avea d(j) = d(i)+1 d(i)+1 = d(j)+2;
aceast
a schimbare de ux nu va avea loc pn
a
ce d(j) nu cre
ste cu dou
a unit
a
ti. Deci, un arc
nu poate deveni saturat mai mult de n ori
si n
total vom avea cel mult mn pomp
ari saturate.
Lem
a. 8. (Goldberg
si Tarjan 1986) Num
arul
pomp
arilor nesaturate este cel mult 2n2m.
Lem
a. 9. La terminarea algoritmului x este
flux de valoare maxim
a.
Demonstrat
ie: Din lemele 6
si 8
si corolarul 3
rezult
a c
a algoritmul se termin
a dup
a cel mult
2n2m iterat
ii
si cum d(s) = n nu se modic
a
pe parcurs, rezult
a c
a uxul obt
inut este f
ar
a
drumuri de cre
stere.
252
si c
a maxijE (1 + cij ) = U . Not
K. Ideia algoritmului:
Se vor executa K + 1 etape. Pentru ecare
etap
a p, cu p lund succesiv valorile K, K
1, . . . , 1, 0 vor ndeplinite urm
atoarele condit
ii:
(a) - la nceputul etapei p, i satisface ei 2p
(b) - n timpul etapei p se utilizeaz
a procedurile pompare-etichetare n vederea elimin
arii
nodurilor active cu ei (2p1, 2p].
Din alegerea lui K, n etapa init
ial
a (p = K)
condit
ia (a) este satisf
acut
a
si deci, dac
a (b)
va invariant al algoritmului, dup
a K+1 etape,
excesele nodurilor vor 1
2.
253
Dac
a, toate transform
arile datelor vor p
astra
integritatea exceselor, va rezulta c
a excesul
oric
arui nod este 0,
si, deci, dispunem de un
ux de valoare maxim
a (datorit
a propriet
a
tilor
funct
iei distant
a d(i)).
Realizarea lui (b) se poate face astfel:
- se ncepe etapa p, construind lista L(p) a
tuturor nodurilor i1, i2, . . . , il(p) cu excesele
eij > 2p1, ordonate cresc
ator dup
a d (avnd n
vedere c
a d poate lua valori ntre 1
si 2n 1, o
sortare de tip hash rezolv
a problema n O(n)).
- nodul activ selectat pentru pompare-reetichetare
va pe tot parcursul etapei, primul nod din
L(p). Va rezulta c
a, dac
a se face o pompare
pe arcul ij admisibil, cum d(j) = d(i) 1
si
i este primul din L(p), vom avea ei > 2p1
si
a, n plus, se va limita , uxul
ej 2p1. Dac
trimis de la i la j, n procedura de pompare
la = min(ei , rij , 2p ej ),
254
a a
vrfului j); pointer c
atre urm
atorul element din
lista A(i) .
- parcurgerea listei se face cu ajutorul unui
pointer p(i) c
atre elementul curent din list
a.
Evident, organizarea acestor liste se face naintea
apelului lui init
ializare
si necesit
a O(m) operat
ii.
255
Algoritmul Ahuja-Orlin
init
ializare;
K log2 (U ) ; 2K+1 ;
for p = K, K 1, . . . , 0 do
{ construie
ste L(p);
2
while L(p) = do
{ e i primul element din L(p);
parcurge lista A(i) din locul curent pn
a
se determin
a un arc admisibil sau se
depisteaz
a sfr
situl ei;
if ij este arcul admisibil g
asit then
{ min(ei, rij , ej );
ei ei ; ej ej + ;
trimite unit
a
ti de ux de la i la j;
if ei
then
sterge i din L(p);
2
then adaug
a j ca prim nod n L(p)
if ej >
2
}
else // s-a depistat sfr
situl listei
{
sterge i din L(p);
parcurge toat
a lista A(i) pentru calculul lui
d(i) = min{d(j) + 1; ij A(i) rij > 0};
introdu i n L(p) la locul s
au (hash);
pune pointerul curent al listei A(i) la nceput
}
}
}
256
Operat
iile care domin
a complexitatea timp, n
cazul cel mai nefavorabil, snt pomp
arile nesaturate. Toate celelalte operat
ii snt dominate
de O(nm).
Lem
a. 8. Num
arul pomp
arilor nesaturate
este cel mult 8n2 n fiecare etap
a a scal
arii,
deci O(n2 log U ) n total.
Demonstrat
ie: Fie
ei d(i)
F (p) =
.
p
2
iV i =s,t
2p(2n)
2.
La nceputul etapei p, F (p) < iV
=
2n
p
2
Dac
a n etapa p, atunci cnd se analizeaz
a nodul activ
i, se apeleaz
a reetichetare, nseamn
a c
a nu exist
a arce
ij admisibile.
Operat
ia de reetichetare m
are
ste d(i) cu
1 unit
a
ti,
ceea ce conduce la o cre
stere a lui F cu cel mult
unit
a
ti.
Cum pentru ecare i, cre
sterea lui d(i) pe parcursul
ntregului algoritm este < 2n rezult
a c
a F va cre
ste pn
a
situl etapei p.
la cel mult valoarea 4n2, la sfr
257
Dac
a, pentru un nod i se execut
a pompare,
atunci aceasta se execut
a pe arcul ij cu rij > 0
si d(i) = d(j) + 1.
Cum num
arul unit
a
tilor de ux pompat este
2p1, dup
a pompare F (p) va avea valoarea
F (p), unde
d(j)
F (p) = F (p) d(i)
+
=
F
(p)
p
p
2
2
2p
p1
F (p) 22p = F (p) 1
2.
Rezult
a c
a aceast
a situat
ie nu poate ap
area
mai mult de 8n2 (ntruct F (p) poate cre
ste
cel mult la 4n2).
Cu att mai mult, pomp
arile nesaturate nu vor
dep
a
si 8n2.
Sumariznd toate rezultatele anterioare obt
inem
Teorem
a. 6. (Ahuja-Orlin 1988) Algoritmul
de tip preflux cu scalarea exceselor are complexitatea O(nm + n2 log U ).
258
2. Aplicat
ii (combinatorii) ale problemei
uxului maxim.
A. Determinarea cuplajului maxim
si a stabilei maxime ntr-un graf bipartit.
Fie G = (V1, V2; E) un graf bipartit cu n vrfuri
si m muchii.
Consider
am ret
eaua R = (G1, s, t, c), unde
- V (G1) = {s, t} V1 V2 ;
- E(G1) = E1 E2 E3
.
E1 = {sv1 | v1 V1},
.
E2 = {v2t | v2 V2},
.
E3 = {v1v2 | v1 V1, v2 V2, v1v2 E};
- c : E(G1) Z+ denit
a prin
c(e) =
dac
a e E1 E2
dac
a e E3
V
2
V
1
++
1
1
++
1
++
1
1
++
1
t
1
1
1
1
++
Dac
a x = (xij ) este un ux cu componente
ntregi n R atunci se observ
a c
a mult
imea de
arce {ij | i V1, j V2
xij = 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 G1; dac
a pe ecare asta uxul
fel de arc ij (i V1, j V2) se consider
xij egal cu 1
si de asemenea xsi = xjt = 1,
si
lund uxul x = 0 pe orice alt arc, atunci uxul
construit are valoarea |M |.
Rezult
a c
a rezolvnd problema uxului maxim
pe ret
eaua R se determin
a (pornind de la uxul
nul) n O(nm + n2 log n) un cuplaj de cardinal
maxim n graful bipartit G.
260
V
1
++
1
1
++
1
++
1
1
++
1
t
1
1
1
1
++
S
B. Recunoa
sterea secvent
elor digrace.
Date (d+
)
s
i
(d
a un digraf
i=1,n
i
i )i=1,n , exist
G cu n vrfuri astfel nct G = ({1, . . . , n}, E)
+
si d+
(i)
=
d
s
i
d
(i)
=
d
i
i i = 1, n ?
G
G
(Problema poate apare n proiectarea circuitelor
integrate).
Evident, va trebui ca 0 d+
n1
s
i
0
i
i
n 1 i = 1, n
si i=1,n d+
=
d
i=1,n
i
i = m
Dac
a n aceast
a ret
ea, exist
a un ux ntreg de valoare
maxim
a m, atunci din orice vrf i {1, . . . , n} vor pleca
si
exact d+
n
i arce pe care uxul este 1, de forma ij
ecare vrf j vor intra exact d
j arce pe care uxul este
1, de forma ij .
1
1
+
d1
d1
d2
+
d2
1
dn+
dn
1
n
Considernd mult
imea de vrfuri {1, . . . , n}
si introducnd
toate arcele ij astfel nct xij = 1, se obt
ine un digraf G cu secvent
ele gradelor interioare
si exterioare
si (d
a acest digraf exist
a,
(d+
i )i=1,n . Reciproc, dac
i )i=1,n
atunci procednd invers ca n construct
ia anterioar
a, se
obt
ine un ux ntreg n ret
eaua R de valoare m (deci
maxim). Rezult
a c
a recunoa
sterea secvent
elor digrace
(
si construct
ia digrafului n cazul r
aspunsului armativ)
se poate face n O(nm + n2 log n) = O(n3).
263
Teorem
a. 7. pe(s, t) = ce(s, t).
Demonstrat
ie: Construim din G digraful G1,
nlocuind ecare muchie a lui G cu o pereche
de arce simetrice. Consider
am
c : E(G1) Z+ prin c(e) = 1, e E(G1).
Fie x0 un ux ntreg de valoare maxim
a n
R = (G1, s, t, c). Fluxul x0 se poate scrie ca
o sum
a de v(x0) uxuri xk ntregi de valoare 1,
nlocuind, eventual, uxul pe unele circuite cu
0.
264
t
t
s
s
Fluxul pe arcele groase
este 1, pe cele subtiri 0.
265
Pe de alt
a parte, c(S, T ) este num
arul arcelor
cu o extremitate n S
si cealalt
a n T , deoarece
c(e) = 1, e E(G1). Aceast
a mult
ime de arce
genereaz
a n G o mult
ime de muchii de acela
si
cardinal
si cu proprietatea c
a deconteaz
a, prin
ndep
artare, s
si t .
Rezult
a c
a avem c(S, T ) = v(x0) = pe (s, t)
muchii n G care deconecteaz
a, prin ndep
artare,
s
si t. Deci ce(s, t) pe(s, t).
Cum, inegalitatea ce (s, t) pe(s, t) este evident
a, rezult
a c
a teorema este demonstrat
a.
Corolar. Dac
a G este un graf conex (G) (valoarea maxim
a a lui p Z+ astfel nct G este
pmuchie-conex) este
min
s,tV (G)
s =t
ce(s, t).
()
266
Rezult
a c
a, pentru a aa (G), rezolv
am cele
n(n1)
probleme de ux, descrise n demonstrat
ia
2
teoremei.
Totu
si, s
a observ
am c
a pentru o pereche xat
a
s
si t avem: dac
a (S, T ) este sect
iunea de capacitate minim
a, atunci
v S
si w T ce(v, w) c(S, T ) ().
In particular, dac
a (s, t) este perechea pentru
care se realizeaz
a minimul n (*) vom avea
egalitate n (**).
Rezult
a c
a dac
a x
am un vrf s0
si rezolv
am
n 1 probleme de ux cu t V s0 se va
obt
ine n mod necesar o pereche s0, t0 pentru
care c(s0, t0) = (G) (ne asigur
am, astfel, depistarea unui vrf t0, care s
a nu e n aceea
si
clas
a cu s0 n partit
ia (S, T )).
Rezult
a c
a n O(n (nm + n2c)) = O(n2m) se
pot determina (G)
si o mult
ime separatoare de muchii de cardinal minim n G.
267
D. Determinarea num
arului de conexiune
al unui graf.
Dac
a G = (V, E) este un graf
si
s, t V, s = t, st
/ E atunci, notnd
-p(s, t) = num
arul maxim de stdrumuri cu
mult
imile de vrfuri disjuncte (cu except
ia extremit
a
tilor),
-c(s, t) = cardinalul minim al unei mult
imi de
vrfuri st separatoare,
avem, din teorema lui Menger,
p(s, t) = c(s, t)
()
In plus, num
arul de conexiune k(G) al grafului
G (valoarea maxim
a a lui p Z+ pentru care
G este pconex) este
n 1
k(G) =
min c(s, t)
s,tV
stE
/
dac
a G = Kn
dac
a G=
Kn
()
268
Vom ar
ata c
a egalitatea (*) rezult
a
si din teorema uxului maxim-sect
iunii minime pe o ret
ea
convenabil aleas
a.
Fie G1 = (V (G1), E(G1)) digraful construit din
G astfel:
am av , bv V (G1)
si av bv E(G1 );
-v V consider
- vw E consider
am bv aw , bw av E(G1).
Exemplu:
b1
1
s
at
a1
bt
2
S
a
s
a2
bs
b2
dac
a e = av bv
altfel.
269
Consider
am ret
eaua R = (G1, bs, at , c).
Fie x0 un ux ntreg de la bs la at n R de
valoare maxim
a.
In vrfurile bv (v V ) intr
a exact un arc de caa exact
pacitate 1
si din vrfurile av (v V ) pleac
un arc de capacitate 1. Rezult
a c
a, pentru ca
s
a e satisf
acut
a legea de conservare a uxului,
x0
ij E(G1).
ij {0, 1}
Aceasta nseamn
a c
a x0 se poate descompune
si astfel
n v(x0) uxuri xk , ecare de valoare 1,
nct arcele pe care xk snt nenule corespund la
v(x0) drumuri disjuncte de la bs la at n G1,
care induc o mult
ime de v(x0) drumuri intern
disjuncte de la s la t n G.
Cum, pe de alt
a 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 bs
la at n G1 pe care se poate transporta cte o
unitate de ux, rezult
a c
a avem
:
v(x0) = p(s, t).
270
Demonstrat
ia de mai sus, arat
a c
a pentru a
determina k(G) va sucient s
a determin
am
minimul din (**) prin rezolvarea a |E(G)| probleme de ux, unde G este graful complementar
al lui G.
Deci algoritmul va avea complexitatea
n(n 1)
O (
O simpl
a observat
ie ne conduce la un algoritm
mai ecient. Evident,
1 (n min
k(G) minvV dG(v) = n
vV dG (v))
1(
2m .
d
(v))
=
G
vV
n
n
ime de articulat
ie n G cu
Dac
a A0 este o mult
|A0| = k(G) atunci G A0 este neconex
si se
poate partit
iona V A0 = V V astfel nct,
v V , v V avem p(v , v) = k(G).
Rezult
a c
a, rezolvnd o problema de ux cu
s0 V
si t0 V va rezulta c
a p(s0, t0) =
valoarea uxului maxim = k(G).
Vom siguri c
a depist
am o astfel de pereche,
dac
a proced
am astfel:
consider
am l = 2m
rfuri oaren +1 , alegem l v
care din G,
si pentru ecare astfel de vrf v
rezolv
am toate problemele p(v, w) cu vw
/ E.
Se vor rezolva n total O(nl) = O(n( 2m
n +1)) =
O(m) probleme. Deci complexitatea ntregului
algoritm va O(m(nm + n2 log n)).
272
aij xij .
i,j
Observ
am c
a, dac
a v nu dep
a
se
ste valoarea
uxului maxim n ret
eaua R, atunci problema
are ntotdeauna solut
ii, a(x) ind liniar
a, iar
mult
imea uxurilor de valoare dat
a v ind m
argi
nit
a
si nchis
a n Rm.
273
Exemple.
atori
si n lucr
ari. Cos10. Se dispune de n lucr
tul atribuirii lucr
atorului i la lucrarea j este
a se atribuie ecare
aij (i, j {1, . . . , n}). S
dintre cele n lucr
ari la cte un lucr
ator,
astfel nct costul total al atribuirii s
a e
minim. (Problema simpl
a a atribuirii).
Consider
am ret
eaua descris
a mai jos, unde pe
ecare arc este trecut
a mai nti capacitatea
si
apoi costul. Deci cij = 1, csi = 1, asi = 0, cjt =
1, ajt = 0 i, j {1, . . . , n}.
1,a 11
1
1,0
1,0
2
1,0
s
1,0
2
1,a ij
1,0
1,0
i
1,0
1,0
n
1,a n1
Not
am c
a n mod similar se poate rezolva orice
problem
a de cuplaj perfect de pondere minim
a
ntr-un graf bipartit.
20.O marf
a disponibil
a n depozitele D1, . . . , Dn
n cantit
a
tile d1, . . . , dn este solicitat
a n centrele de consum C1, C2, . . . , Cm n cantit
a
tile
c1, c2, . . . , cm.
Se cunoa
ste costul aij al transportului unei
unit
a
ti de marf
a de la depozitul Di la centrul
de consum Cj (i {1, . . . , n} j {1, . . . , m}).
Se cere s
a se stabileasc
a un plan de transport care s
a satisfac
a toate cererile
si s
a
aib
a costul total minim (problema simpl
a a
transporturilor Hitchcock-Koopmans).
Evident, problema are solut
ie numai dac
a
d
i=1,n i
j=1,m cj .
275
oo ,a 11
C1
D1
d1, 0
C2
d 2 , 0 D2
s
o o ,a ij
d i, 0
Cj
c ,0
1
c ,0
2
c j, 0
Di
d n, 0
Dn
c ,0
m
o o ,a n1
Cm
276
Definit
ie. Fie x un ux n R = (G, s, t, c)
si
a : E R o funct
ie de cost.
Dac
a P este un C-drum n R relativ la uxul
x, atunci costul drumului P se dene
ste
a(P ) =
ijP
ij
direct
aij
aji.
ijP
ij
invers
Dac
a C este un C-drum nchis, a(C) se calculeaz
a dup
a aceea
si formul
a, dup
a stabilirea
unui sens de parcurgere a lui C (este posibil
ca ambele sensuri de parcurgere ale lui C s
a
satisfac
a denit
ia unui C-drum).
Observat
ii: 10 Din denit
ia dat
a, rezult
a c
a
dac
a P este drum de cre
stere relativ la uxul
x, atunci x1 = x r(P ) este un ux de valoare
v(x1) = v(x)+r(P )
si de cost a(x)+r(P ) a(P ).
a C este un C-drum nchis relativ la
20 Dac
x, atunci x1 = x r(C) este un ux de valoare v(x1) = v(x)
si de cost a(x1) = a(x) +
r(C) a(C).
Dac
a a(C) < 0 atunci x1 este un ux de aceea
si
valoare ca
si x, dar de cost strict mai mic.
277
Teorem
a. 8. Un flux de valoare v este de
cost minim dac
a
si numai dac
a nu admite Cdrumuri nchise de cost negativ.
Demonstrat
ie: Necesitatea este evident
a din
observat
ia anterioar
a.
Suficient
a. Fie x un ux de valoare v, care nu
admite C- drumuri nchise de cost negativ.
Fie x un ux de valoare v, de cost minim
(exist
a !) astfel nct
(x, x) = min{(x, x ) | x ux de val. v
si cost minim}
x ij < x *
ij
j
*
x vj < x vj
jk
< x*
jk
x* < x
tk
tk
min
xjk xjk
kj
C
kj invers
n C
se obt
ine un ux x cu v(x) = v(x) = v,
a(x) = a(x) + (C ) a(C ) = a(x), deci de
min
direct n
xkj xkj ,
279
Un drum de cre
stere de cost minim poate depistat cu ajutorul algoritmilor de drum minim.
Dac
a x este un ux n R
si a : E R este
funct
ia de cost atunci considernd aij =
dac
a ij
/ E (caz n care xij = 0), construim
aij
min{a , a }
ij
ji
aij =
aji
dac
a
dac
a
dac
a
dac
a
xij
xij
xij
xij
< cij
< cij
= cij
= cij
si xji = 0,
si xji > 0,
si xji > 0,
si xji = 0.
a i1 I1, n
a
timp polinomial n raport cu |i1|, o instant
a P1(i1) = da dac
a
si
i2 I2 cu proprietatea c
numai dac
a P2(i2) = da.
Se observ
a c
a relat
ia de reducere polinomial
a
este o relat
ie tranzitiv
a pe mult
imea problemelor de decizie (datorit
a nchiderii mult
imii
funct
iilor polinomiale la compunere).
Din punct de vedere algoritmic, construct
ia din spatele
oric
arei reduceri polinomiale este interesant
a evident
iind
modul n care prima problem
a poate rezolvat
a ecient
cu ajutorul unui oracol care rezolv
a a doua problem
a.
283
SAT
Instant
i = 1, m, unde
Intrebare: Exist
a o atribuire t : U {A, F } a. . t(C) = A ?
1. Mult
imi stabile
SM
Instant
a: G = (V, E) graf
si k N.
Intrebare: Exist
a S mult
ime stabil
a n G a. . |S| k ?
Teorem
a. 1.
Demonstrat
ie: Fie U = {u1, u2, . . . , un},
(n N), C = C1 . . . Cm (m N) cu
Ci = vi1 vi2 vi3 i = 1, m, (unde vij
{1, . . . , n} astfel nct vij = u sau vij = 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 exist
a o atribuire t a valorilor de adev
ar sau fals
pentru variabilele booleene din U care s
a fac
a
adev
arat
a formula C, dac
a
si numai dac
a exist
a
o stabil
a S n graful G astfel nct |S| k.
285
i
j si
i=1
j=1
m
E(G) = n
i=1E(Ti ) j=1(E(Zj ) Ej ).
Evident, construct
ia este polinomial
a n raport
cu m + n (G are 2n + 3m vrfuri
si n + 6m
muchii).
Consider
am k = n + m.
286
u1
u2
u3
u
4
12
a 21
u4
a 33
a 23
a 13
a
11
a 22
31
a 32
S
a presupunem c
a r
aspunsul la problema
SM pentru instant
a G
si k astfel construite
este da. Deci S SG astfel nct |S| k.
Cum orice mult
ime stabil
a poate avea cel mult
un vrf din orice V (Ti)
si din orice V (Zj ) (i =
1, n , j = 1, m) rezult
a c
a avem |S| = k
si deci
|S V (Ti )| = 1, |S V (Zj )| = 1 i = 1, n
si
j = 1, m.
287
Consider
am t : U {A, F } prin
t(ui ) =
A
F
dac
a S V (Ti ) = {ui}
dac
a S V (Ti ) = {ui}.
si deci
Atunci, j = 1, m avem t(Cj ) = A (
t(C) = A).
In adev
si
ar, j = 1, m dac
a Cj = vj1 vj2 vj3
S V (Zj ) = ajk (k {1, 2, 3}) atunci, deoarece
a c
a vjk
/ S.
ajk vjk E rezult
Dac
a vjk = u, atunci u
/ S deci u S
si din
a t(vjk ) = A
denit
ia lui t avem t(u) = A, adic
ceea ce implic
a t(Cj ) = A.
/ S implic
a u
Dac
a vjk = u , atunci u
a t(vjk ) = A, ceea ce
S, deci t(u) = A, adic
implic
a t(Cj ) = A.
Reciproc, dac
a r
aspunsul la problema 3SAT
este da, atunci exist
a o atribuire t : U {A, F }
astfel nct t(Cj ) = A j = 1, m.
288
Consider
am n graful G mult
imea stabil
a S 1,
S 1 = i=1,nVi, unde
{u }
i
Vi =
{u }
i
dac
a t(ui) = A
dac
a t(ui) = F .
a
Atunci, j = 1, m, cum t(Cj ) = A, rezult
c
a exist
a kj {1, 2, 3}astfel nct t(vjkj ) = A.
Consider
am S 2 = j=1,m{ajkj }.
Evident, S 2 este stabil
a n G. Am construit
S 1 SG cu |S 1| = n, S 2 SG cu |S 2| = m.
Consider
am S = S 1 S 2. Evident, |S| = n +
si n plus S este mult
ime
m = k (deci |S| k)
stabil
a n G (deci r
aspunsul la SM pentru
intrarea G, k este da).
Faptul c
a S este mult
ime stabil
a n G rezult
a
astfel: dac
a v, w S astfel nct vw E(G)
atunci o extremitate este din S 1
si cealalt
a din
S 2.
289
2. Colorarea v
arfurilor.
COL
Instant
a: G = (V, E) graf
si p N .
Intrebare: Exist
a o p-colorare a v
arfurilor lui G?
Teorem
a. 2. 3SAT COL.
Aceast
a teorem
a evident
iaz
a complexitatea problemelor de colorare a vrfurilor unui graf.
Vom demonstra chiar mai mult: xnd p = 3
n enunt
ul lui COL, reducerea polinomial
a a lui
3SAT este nc
a posibil
a !
291
Lem
a. 1. Fie H graful:
v
v
4
a) Dac
a c este o 3-colorare a lui H astfel nct
c(v1) = c(v2) = c(v3) = a {1, 2, 3} atunci n
mod necesar c(v4) = a.
b) Dac
a c : {v1, v2, v3} {1, 2, 3} satisface
c({v1, v2, v3}) = {a} atunci c poate fi extins
a
la o 3-colorare c a lui H cu c(v4) = a.
Demonstrat
ia lemei se poate face examinnd
lista 3-color
arilor lui H.
292
In cele ce urmeaz
a, vom desemna (pentru simplitate) graful H astfel:
v
v
2
Demonstrat
ia teoremei 2. Consider
am datele
unei instant
e ale problemei 3SAT:
U = {u1 , . . . , un } o mult
ime de variabile booleene (n N )
si C =
C1 C2 . . . Cm (m N ) o formul
a astfel nct i = 1, m Ci =
vi1 vi2 vi3 , unde j = 1, 3 astfel nct vij = u sau vij = u .
1. i = 1, n consider
am grafurile disjuncte
si Ei = {uiui}.
(Vi , Ei) unde Vi = {ui, ui}
2. j = 1, m, pentru Cj = vj1 vj2 vj3 , consider
am grafurile:
v
j1
j2
hj
aj
j3
u1
u1
u2
h1
a1
h2
u3
u4
u4
h3
a3
a2
Presupunem ca r
aspunsul la 3SAT este da.
Deci t : U {A, F } astfel nct t(C) = A, deci
t(Cj ) = A j = 1, m.
Construim o 3-colorare C a grafului G.
295
si numai dac
a t(v) = F .
Deci j = 1, m nu avem c(vj1 ) = c(vj2 ) =
c(vj3 ) = 2.
Folosind lema 1,b) rezult
a c
a putem extinde n
ecare graf hj colorarea c astfel nct c(aj ) = 2,
deci c(aj ) {1, 3}.
Rezult
a c
a atribuind c(a) = 2
si c(b) = 3, c
este o 3- colorare a lui G.
296
Reciproc, presupunem c
a G este 3-colorabil.
Putem presupune (eventual renumerotnd culorile) c
a c(b) = 3
si c(a) = 2.
Va rezulta c
a {c(ui), c(ui)} = {1, 2}
si c(aj )
{1, 3} i = 1, n, j = 1, m.
Din lema 1 a) rezult
a c
a nu vom avea c(vj1) =
c(vj2) = c(vj3) = 2 j = 1, 3.
Deci j = 1, m vjk astfel nct c(vjk ) = 1.
Denim t : U {A, F } prin
t(ui ) = A c(ui) = 1.
Conform observat
iei anterioare, vom avea c
a
a
t(Cj ) = A j = 1, m, deci t(C) = A, adic
r
aspunsul la 3SAT este da.
297
3. Colorarea muchiilor
Consider
am urm
atoarea problem
a de decizie.
HOL
Instant
Teorem
a. 3. (Holyer 1981) 3SAT HOL.
Lem
a. 2. Fie H graful desenat mai jos.
u
v
7
v
4
v
2
6
t
v
3
Demonstrat
ie Fie c o 3-colorare a lui H.
a) presupunem c(x) = c(y). Eventual, dup
a
o renumerotare a culorilor vom avea c(x) =
c(y) = 1
si c(v1v7) = 2, c(v1v2) = 3.
a1).c(u) = 1. Avem urm
atorul
sir de implicat
ii:
c(v2v4) = 2,c(v2v5) = 1,c(v4v6) = 3,c(v3v6) =
2,c(v3v5) = 3, c(t) = 2,c(v6v7) = 1,c(z) = 3.
a2).c(u) = 2. Avem urm
atorul
sir de implicat
ii:
c(v2v4) = 1,c(v2v5) = 2,c(v4v6) = 3,c(v3v6) =
2,c(v3v5) = 3, c(t) = 1,c(v6v7) = 1,c(z) = 3.
a3).c(u) = 3. Muchia v2v4 poate avea culorile
1 sau 2.
a3.1.)c(v2 v4) = 1. Avem atunci, c(v2v5) =
si nu putem atribui
2,c(v4v6) = 2,c(v3v6) = 3,
c(v3v5).
a3.2.)c(v2 v4) = 2. Avem atunci, c(v2v5) =
1,c(v4v6) = 1, c(v6v7) = 3, c(z) = 1,c(v3v6) =
2,c(v3v5) = 3, c(t) = 2.
b) Argument similar, dac
a c(z) = c(t).
299
S
a observ
am c
a n graful H muchiile etichetate
nu au precizat
a una din extremit
a
ti. In construct
ia
pe care o vom face, aceste extremit
a
ti neprecizate vor identicate 2 cte 2; cu alte cuvinte, perechi de astfel de muchii vor identicate. Vom reprezenta simplicat graful H
astfel:
u
x
Dac
a graful H este subgraf ntr-un graf care
admite o 3- colorare a muchiilor, vom interpreta perechile de muchii (x, y)
si (z, t), ca
reprezentnd valorea adev
ar, dac
a snt la fel
colorate, respectiv, valoarea fals, dac
a snt
colorate diferit.
Lema 2
si aceast
a interpretare justic
a denumirea de
component
a inversoare pentru H (dac
a (x, y) este intrare n H atunci (z, t) este ie
sire
si H transform
a
adev
ar n fals
si fals n adev
ar).
300
si u din 2H:
u u
2. n > 2 Hn se construie
ste astfel:
301
-consider
am n copii izomorfe disjuncte ale lui
2H, 2H i i = 1, n, avnd perechile de muchii
libere (xi , yi), (xi, yi ), (ui, ui).
-pentru i = 1, n1 identic
am perechile (ui, ui)
(xi+1, yi+1
).
-identic
am (un, un) (x1, y1 ).
x4
y
4
x1
y1
y3
x3
x2
y
2
Lem
a. 3. Pentru orice n N se poate construi n timp polinomial graful Hn avnd n perechi
de muchii de intrare, cu proprietatea c
a n
orice 3-colorare a muchiilor lui Hn, toate cele
n perechi reprezint
a aceea
si valoare de adev
ar
(sau, n orice pereche de intrare cele dou
a muchii
au culori diferite, sau, n orice pereche de intrare cele dou
a muchii snt la fel colorate).
Lem
a. 4. Fie F graful
a
d
3
1
c
Demonstrat
ia este imediat
a
si rezult
a prin reducere la absurd: dac
a exist
a o 3-colorare a
muchiilor lui F , astfel nct n cele 3 perechi
muchiile snt colorate diferit, atunci c(a) =
c(b), c(b) = c(c)
si c(c) = c(d) (s-a utilizat lema
2), deci c(a) = c(d) contrazicnd faptul c
a c
este colorare a muchiilor. Not
am c
a exist
a
color
ari c cu proprietatea din enunt
.
Demonstrat
ia teoremei 3. Fie U = {u1, . . . , un}
(n N), C = C1 . . . Cm (m N), Ci =
vi1 vi2 vi3 cu vij literali (vij = u sau vij = u )
reprezentnd datele unei probleme 3SAT.
Vom construi un graf 3-regulat G cu propria
si numai dac
a exist
a
etatea c
a (G) = 3 dac
t : U {adev, f als} astfel nct t(C) = adev.
Construct
ia se face n timp polinomial n raport
cu n
si m
si se poate descrie astfel:
305
4. Graful obt
inut la 1-3 are anumite muchii
pentru care nu s-a precizat o extremitate. Consider
am o copie izomorf
a disjunct
a a sa
si identic
am perechile corespunz
atoare de astfel de
muchii, din cele dou
a grafuri. Se obt
ine un
graf G 3-regulat.
Construct
ia lui G
si lemele 3
si
algoritmul de calcul al valorii de
C ntr-o atribuire t xat
a
si deci
3-colorare dac
a
si numai dac
a
isabil
a.
4 simuleaz
a
adev
ar a lui
G admite o
C este sat-
307
4. Probleme hamiltoniene
Definit
ie: Fie G = (V (G), E(G)) un (di)graf.
Un circuit C al lui G se nume
ste circuit hamiltonian dac
a V (C) = V (G).
Un drum deschis D al lui G se nume
ste drum
hamiltonian dac
a V (D) = V (G).
Un (di)graf care are un circuit hamiltonian se
nume
ste (di)graf hamiltonian.
Un (di)graf care are un drum hamiltonian se
nume
ste (di)graf trasabil.
Teorem
a. 4. (Nash-Williams 1969) Problemele urm
atoare snt polinomial echivalente:
CH :
TR :
DCH:
DTR:
BCH:
Demonstrat
ie:
CH T R
Fie G un graf
si v0 V (G) un vrf xat al
s
au. Construim (n timp polinomial) un graf H
astfel nct G este hamiltonian dac
a
si numai
dac
a H este trasabil.
Fie V (H) = V (G) {x, y, z}
si E(H) = E(G)
{xv0, yz} {wy | w V (G) wv0 E(G)}.
x
vo
vo
y
z
N (vo)
G
N (vo)
G
Se observ
a c
a H este trasabil dac
a
si numai
dac
a are un drum hamiltonian D cu extremit
a
tile
x
si z (care au gradul 1 n H). D exist
a n H
dac
a
si numai dac
a n G exist
a un drum hamilsi cealalt
a un vecin
tonian cu o extremitate v0
a
si numai dac
a G este hamilal lui v0, deci dac
tonian.
309
T R CH
Fie G un graf. Consider
a m H = G + K1 . H
este hamiltonian dac
a
si numai dac
a G are un
drum hamiltonian.
G+K1
Echivalent
a problemelor DCH
si DTR de demonstreaz
a 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 induce un circuit hamiltonian n D
si reciproc.
310
DCH CH
Fie D = (V (D), E(D)) un digraf. Pentru orice
vrf v V (D) asociem un drum de lungime 3,
Pv cu extremit
a
tile av
si bv
Pv = ({av , cv , dv , bv }, {av cv , cv dv , dv bv }).
Pentru orice arc vw E(D) consider
am muchia
bv aw . Fie G graful cu V (G) = vV (D)V (Pv )
aw
bv
w
av
b
w
bx
ax
bb
b
a
D
ba
aa
Se observ
a c
a 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. Rezult
a: D este hamiltonian dac
a
si
numai dac
a G este hamiltonian.
311
S
a observ
am c
a dac
a C este un circuit al lui
G, acesta este generat de un circuit C al lui D
(v,e,1)
(v,e,2)
(v,e,3) (v,e,4)
(v,e,5)
(v,e,6)
(u,e,1)
(u,e,2)
(u,e,3) (u,e,4)
(u,e,5)
(u,e,6)
Deci, dac
a circuitul hamiltonian intr
a n Ge
printr-un vrf de tip u, ((u, e, 1) sau (u, e, 6))
atunci, va ie
si tot printr-un vrf corespunz
ator
lui u.
314
e1
v
1
u
(u,e ,1)
1
v
2
u
(u,e ,6)
1
ep
vp
u
(u,e ,1)
2
(u,e
u
,6)
2
u
(u,e p,1)
u
(u,e p,6)
Graful H va avea
V (H) = A eE Ve
si
E(H) = eE Ee uV (Eu Eu).
Avem |V (H)| = k + 12 |E|; |E(H)| = 14 |E| +
2k |V0|+2 |E||V0| , unde V0 V este mult
imea
vrfurilor neizolate din G; deci H se poate construi n timp polinomial n raport cu |V |.
315
Exemplu:
a2
3
2
4
3
1
a1
k=2
2
1. Dac
a H este hamiltonian, atunci exist
a C
un circuit hamiltonian n H. Cum A este o
mult
ime stabil
a n H, A va descompune circuitul C n exact k drumuri disjuncte (cu except
ia
extremit
a
tilor): Dai ai , Dai a1 , . . . , Dai ai .
1 2
2 3
k 1
Fie Dai ai
un astfel de drum (j + 1 = 1 +
j
j+1
(j(mod k)) ).
Din construct
ia lui H, rezult
a c
a primul vrf
vij
care urmeaz
a lui aij pe acest drum va (vij , e1 , 1)
vij
sau (vij , ep , 6) unde p = dG(vij )
v ij V .
316
In continuare, Dai ai
va intra n componenta
j j+1
Ge1 sau Gep din care va ie
si tot printr-un vrf
corespunz
ator lui vij . Dac
a vrful urm
ator nu
este aij+1 , se intr
a ntr-o component
a corespunz
atoare urm
atoarei muchii incidente cu vij
si va ie
si din aceasta, tot printr-un vrf corespunz
ator lui vij .
a2
3
2
4
1
2
3
4
3
1
a1
317
Rezult
a c
a drumului Dai ai
i se poate
j j+1
asocia n mod unic vrful vij V
si c
a prima
si
ultima muchie a
vij
vij
acestui drum snt aij (vij , et , x),
cu t = 1
si t = dG(u), x = 1,
dG(u), t = 1, x = 6, x = 1.
aij+1 (vij , et , x)
x = 6 sau t =
Aceasta implic
a faptul c
a vij snt distincte.
j+1
incident cu e. Rezult
a c
a S = V V este stabil
a n G
si |S| = j. Deci am obt
inut c
a dac
aH
este hamiltonian, n G exist
a o mult
ime stabil
a
de cardinal j, prin urmare r
aspunsul la SM este
da.
2. Presupunem c
a r
aspunsul la SM este da,
deci n G exist
a S0 stabil
a cu |S0| j. Exist
a
atunci S S0 stabil
a cu |S| = j.
318
- cele dou
a drumuri din Ge situat
ia (a), dac
a
u, v V ,
ia (b) dac
a u V , v
/ V
- drumul din Ge situat
Dac
a la reuniunea acestor drumuri ad
aug
am
muchiile
v
ai(vi, e1i , 1),
v
v
vi
v
(vi, e1i , 6)(vi, e2i , 1), . . . , (vi, ep1
, 6)(vi, epi , 1),
v
(vi, epi , 6)ai+1, (cu p = dG(vi)) pentru i = 1, k,
se obt
ine un circuit hamiltonian n H.
319
In cele ce urmeaz
a, vom considera o form
a
echivalent
a a ei
si d : E(Kn) R+,
CV Dat n Z+ (n 3)
s
a se determine H0 circuit hamiltonian n graful complet Kn cu d(H0) minim printre toate
circuitele hamiltoniene ale lui Kn.
Observat
ii 10. d(H0) =
eE(H0 ) d(e).
DCV
Instant
a: n Z+
(n 3), d : E(Kn) Z+
si B Z+
Intrebare: Exist
a H0 circuit hamiltonian n Kn
astfel nct d(H0 ) B ?
Teorem
a. 6. CH DCV .
Demonstrat
ie: Fie G = (V, E), (|V | = n)
reprezentnd datele unei probleme CH. Construim n timp polinomial o problem
a DCV cu
proprietatea c
a n Kn exist
a un circuit hamiltonian de pondere total
a care nu dep
a
se
ste B
dac
a
si numai dac
a G este hamiltonian.
Fie
d(vw) =
1
2
dac
a vw E(G)
dac
a vw E(G).
si consider
am B = n.
322
Atunci n Kn exist
a un circuit hamiltonian de
pondere n dac
a
si numai dac
a G are un circuit hamiltonian.
pondere 1
pondere 2
Rezult
a, de aici, dicultatea rezolv
arii problemei CV.
323
O solut
ie pentru abordarea problemei CV, ar
aceea de a considera algoritmi A, care pentru
datele unei probleme CV vor oferi n timp polinomial (n raport cu n) un circuit hamiltonian
ia optim
a H0.
HA, care va aproxima solut
M
asuri ale ecient
ei unei astfel de euristici
A pot considerate numerele:
RA(n) =
sup
d:E(Kn)R+
d(H0 ) =0
d(HA )
d(H0)
RA = sup RA(n).
n3
Demonstrat
ie: Fie A un algoritm cu timp de
a deci
lucru polinomial
si cu RA < . Exist
k Z+ astfel nct RA k.
Fie G = (V, E) un graf arbitrar, intrare pentru
CH. Dac
a n = |V | atunci denim d : E(Kn)
Z+ prin
d(uv) =
kn
dac
a uv E
dac
a uv
/E
Rezult
a c
a G este hamiltonian dac
a
si numai
si cum timpul de lucru al
dac
a d(HA ) kn,
lui A este polinomial, rezult
a c
a CH se poate
rezolva n timp polinomial.
pondere 1
pondere 7k
Observat
ie. Enunt
ul teoremei se poate formula echivalent
si astfel:
a un algoritm
Dac
a P = NP, atunci nu exist
aproximativ A polinomial
si cu RA < .
326
VII. Abord
ari ale unor probleme
NP-dicile pe grafuri.
1. Euristici
Se proiecteaz
a algoritmi ecient
i care, de
si nu
rezolv
a problema, ofer
a solut
ii aproximative,
care se pot analiza
si uneori se pot folosi n
metaeuristici (de exemplu, cele care imit
a procese din natur
a). Pentru unele euristici se precizeaz
a
si instant
e ale problemelor pentru care
ele funct
ioneaz
a corect.
Partizanii unor astfel de abord
ari apeleaz
a la
a
sa numita no free lunch theorem (Wolpert
and Macready, 1994).
all non-repeating search algorithms have the
same mean performance when averaged uniformly over all possible objective functions f :
XY
327
1.1 Colorarea v
arfurilor unui graf
Algoritmul greedy de colorare
Un mod simplu
si natural de a colora un graf,
cu nu foarte multe culori, este dat de urm
atorul
algoritm:
pornind de la o ordine fixat
a a v
arfurilor lui G,
v1, v2, . . . , vn, parcurgem aceast
a list
a, color
and
a, adic
a
fiecare v
arf vi cu prima culoare disponibil
cu cea mai mic
a culoare (num
ar ntreg pozitiv)
nefolosit
a de nici unul dintre vecinii lui vi , deja
nt
alnit
i p
an
a n acel moment.
Acest
a metod
a poart
a denumirea de algoritmul greedy
de colorare, datorit
a alegerii, de ecare dat
a,a celei mai
mici culori care s-ar putea folosi.
Algoritmul greedy-color
-
c(1 ) 1; (G, ) 1; S1 {1 };
for i 2 to n do
j 0;
repeat
j j + 1;
determin
a primul v
arf (conform ordon
arii
), v din Sj a. . i v E(G);
if v exist
a then
f irst(i, j) v
else
f irst(i, j) 0;
c(i) j;
Sj Sj {i};
}
if f irst(i, j) = 0 then
c(i) j + 1;
Sj+1 {i};
(G, ) j + 1;
}
}
329
S
a observ
am c
a folosind algoritmul greedy nu
vom obt
ine niciodat
a mai mult de 1 + (G)
culori.
Rezult
a c
a (G) 1 + (G).
Ins
a (G) se poate ndep
arta oric
at de mult de
(G)
si exist
a grafuri
si permut
ari pentru care
algoritmul poate s
a gre
seasc
a la fel de mult.
Un astfel de exemplu este urm
atorul, unde graful G este obt
inut din graful bipartit complet
Kn,n, av
and mult
imea de v
arfuri {1, 2, . . . , n}
{1, 2, . . . , n}, din care se elimin
a muchiile
11 , 22, . . . , nn.
Fix
and 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 av
and deci n
culori; ns
a, cum G este bipartit, (G) = 2.
330
pi: 1, 1, 2, 2, 3, 3, 4, 4, 5, 5
Este u
sor de v
azut c
a, pentru orice graf G,
exist
a totu
si permut
ari pentru care algoritmul
ofer
a o colorare optimal
a.
Intr-adev
ar dac
a S1, S2, . . . , S(G) sunt clasele
de colorare corespunz
atoare unei color
ari optimale, atunci pentru orice permutare care
p
astreaz
a ordinea claselor (adic
a dac
a i < j,
v Si
si w Sj atunci v se a
a naintea lui w
n permutare), execut
and algoritmul greedy, se
vor obt
ine (G) culori.
331
Teorem
a. 1. Dac
a pentru orice vw E
si
orice j < min{c(v), c(w)} astfel nc
at f irst(v, j) <
f irst(w, j) (n ordonarea ) avem c
a vf irst(w, j)
E atunci (G, ) = (G).
Condit
ia din enunt
poate vericat
a n timp
liniar n raport cu num
arul de muchii ale grafului
si poate reprezenta un ultim pas al algoritmului.
first (j ,v)
v
w
first (j ,w)
Sj
S
c (v)
S c (w)
In demonstat
ia teoremei se arat
a c
a, atunci c
and condit
ia
este ndeplinit
a, (G, ) = (G)
si prin urmare, n acest
caz, se obt
ine
si num
arul de clic
a al grafului .
Pe de alt
a parte, exist
a grafuri pentru care aceast
a
condit
ie nu va ndeplinit
a de nici o permutare.
332
Algoritmul DSatur
-
ordoneaz
a v
arfurile n ordinea descresc
atoare a gradelor lor;
atribuie unui v
arf de grad maxim culoarea 1;
while exist
a v
arfuri necolorate do
coloreaz
a v
arful ales cu cea mai mic
a culoare posibil
a;
4
6
Numarul de culori
gasite este chiar numarul
cromatic
Teorem
a. 2. Algoritmul DSatur garanteaz
a
g
asirea num
arului cromatic pentru grafurile bipartite.
334
- se porne
ste cu un circuit hamiltonian ales
aleator sau obt
inut cu o euristic
a de tip construct
ie (tour-construction heuristic), de exemplu greedy;
- se ncearc
a repetat imbun
at
a
tiri locale, trec
and
de la solut
ia curent
a la o solut
ie vecin
a din
spat
iul solut
iilor ( neighborhood search).
Cele mai cunoscute modic
ari locale sunt a
sa
numitele 2-opt, 3-opt sau combinat
ii ale acestora care au condus la faimosul algoritm LinKernighan.
Figura urm
atoare sugereaz
a cele dou
a operat
ii
2-opt
si 3-opt.
335
2-opt
b
doua operatii 3-opt posibile
Operat
ia 3-opt se realizeaz
a cu ajutorul a dou
a
sau trei F lip. Pentru evitarea form
arii de circuite disjuncte este nevoie de funct
ia Between.
Operat
ia mai complicat
a -opt, utilizat
a de algoritmul Lin-Kernighan se exprim
a ca un 3-opt
si o secvent
a de 2-opt.
Principala problem
a n implementarea operat
iei
F lip este de a determina ecient
sirul de schimb
ari ale pointerilor N ext
si P rev (inversarea unuia
din cele dou
a drumuri; care din ele ?).
Un algoritm -opt se bazeaz
a pe conceptul de
-optimalitate:
Un tur este -optimal (sau simplu -opt) dac
a
nu este posibil s
a se obt
in
a un tur mai scurt (de
cost mai mic) prin nlocuirea unei mult
imi de
muchii ale sale cu alt
a mult
ime de muchii.
Observat
ie: Dac
a un tur este -optimal atunci
el este -optimal pentru orice , 2 .
De asemenea, un tur cu n v
arfuri este optimal
dac
a
si numai dac
a este n-optimal.
337
Num
arul operat
iilor neces
are test
arii tuturor
-schimb
arilor posibile cre
ste rapid pentru n
mare. Intr-o implementare naiv
a, testarea unei
-schimb
ari necesit
a O(n) operat
ii. Ca urmare, cele mai folosite valori sunt {2, 3}
(dar se cunosc
si abord
ari cu = 4, 5).
E dicil s
a se estimeze ce valoare a lui trebuie aleas
a pentru ca s
a se obt
in
a cel mai bun
compromis ntre timpul de execut
ie
si calitatea
solut
iei modicate.
Lin
si Kernighan au abordat aceast
a problem
a
prin considerarea unei metode numit
a variable
-opt: algoritmul va schimba valoarea lui n
timpul execut
iei.
La ecare iterat
ie se ncearc
a valori cresc
atoare
pentru pentru a obt
ine un tur mai scurt.
338
t2i+1
t 2i+2
y
i+1
y
i
x
t 2i
t 2i-1
-Criteriul c
a
stigului: se cere ca yi s
a e ales
astfel ca s
a existe un c
astig; Gi trebuie s
a e
a
stigul
pozitiv; dac
a gi = d(xi ) d(yi) este c
interschimb
arii lui xi cu yi, atunci Gi = g1+g2+
iunea alegerii acestui criteriu este
+ gi. Rat
c
a dac
a suma unei secvent
e de numere este
pozitiv
a, atunci exist
a o permutare circular
a a
acestei secvent
e astfel ca orice sum
a part
ial
a
este pozitiv
a.
-Criteriul dijunctivit
a
tii: se impune ca mult
imile
X
si Y s
a e disjuncte. Aceasta simplic
a implementarea, reduce timpul de execut
ie
si d
a
un criteriu efectiv de oprire.
340
7.
8.
9.
10
11
12
13
Genereaz
a (random) un tur init
ial T ;
i 1; Alege t1;
Alege y1 = t1t2 T ;
Alege y1 = t2t3 T a.. G1 > 0; If goto 12;
i + +;
Alege xi = t2i1 t2i T a..
(a) dac
a t2i e unit cu t1 se obt
ine un tur T
si
(b) xi = ys pentru tot
i s < i
If T e mai bun ca T then e T = T
si goto 2;
Alege yi = t2it2i+1 T a..
(a) Gi > 0,
(b) yi = xs pentru tot
i s < i
si
(c) xi+1 exist
a.
If yi exist
a then goto 5;
If mai alte alegeri pt. y2 then i 2
si goto 7;
If mai alte alegeri pt. x2 then i 2
si goto 6;
If mai alte alegeri pt. y1 then i 1
si goto 4;
If mai alte alegeri pt. x1 then i 1
si goto 3;
If mai alte alegeri pt. t1 then goto 2;
Stop (sau goto 1).
341
I n descrierea anterioar
a alege nseamn
a selectarea unei alternative nencercate deja (pentru turul curent). De exemplu n pasul 3 avem
dou
a posibilit
a
ti de a alege o muchie de pe tur
incident
a cu t1.
I n pasul 6 exist
a dou
a alegeri pentru xi. Pentru un yi1 (i 2) numai una dintre acestea va
face posibil
a nchiderea turului (prin ad
augarea
lui yi). Cealalt
a alegere va conduce la aparit
ia
a dou
a subtururi disjuncte. Totu
si pentru i = 2
este permis
a o astfel de alegere neadmisibil
a:
t4
x2
3
y
2
y
1
x1
t 1
t2
Dac
a y2 va ales astfel ca t5 s
a e ntre t2
si
atorul pas.
t3, turul va putea nchis n urm
342
x
t
t4
3
y
2
y
1
t5
3
x1
t1
t2
t4
x2
3
t6
y
t
x
y
1
t5
4
x1
t1
t2
343
Pa
sii 8-12 ai algoritmului cauzeaz
a backtrackingul. El este permis numai dac
a nu se obt
ine o
mbun
at
a
tire
si numai la nivelele 1
si 2.
Algoritmul se termin
a cu un tur dup
a ce toate
valorile posibile ale lui t1 au fost examinate f
ar
a
mbun
at
a
tire.
Numeroase alte modic
ari ale metodei de baz
a
au fost examinate. De exemplu, Lin
si Kernighan
limiteaz
a c
autarea lui yi = t2i t2i+1 la vecinii de
a cel mult 5.
pe tur ai lui t2i la distant
Unele reguli au fost alese pentru salvarea timpului de execut
ie, limitarea c
aut
arii, iar altele
pentru direct
ionarea c
aut
arii.
Se poate consulta articolul : The Traveling
Salesman Problem: A Case Study in Local Optimization David S. Johnson Lyle A.
McGeoch, Local Search in Combinatorial Optimization, E. H. L. Aarts and J. K. Lenstra
(eds.), John Wiley and Sons, London, 1997,
pp. 215-310.
344
O alt
a euristic
a popular
a pentru problemele n
care funct
ia de distant
a satisface inegalitatea
triunghiular
a, este dat
a de Christofides.
10. Se determin
a T 0 mult
imea muchiilor unui
arbore part
ial de cost minim n K n (costul
muchiei e ind d(e) ). Problema se rezolv
a
n timp polinomial cu algoritmul lui Prim.
20. Se determin
a M 0 un cuplaj perfect n subgraful indus de vrfurile de grad impar ale
arborelui T 0
si de cost minim. Problema se
rezolv
a n timpul O(n3) utiliznd algoritmul
lui Edmonds.
30. Se consider
a multigraful obt
inut din <
T 0 M 0 >Kn , prin duplicarea muchiilor din
a un parT 0 M 0. In acest multigraf exist
curs Eulerian nchis, ale c
arui vrfuri snt
ie mul(vi1 , vi2 , . . . , vi1 ). Eliminnd orice aparit
tipl
a a unui vrf n acest
sir cu except
ia
primului
si ultimului vrf, se obt
in vrfurile
unui circuit hamiltonian HA n Kn cu muchiile HA = (vj1 vj2 , vj2 vj3 , . . . , vjn vj1 ) (Acest pas
ii).
necesit
a O(n2) operat
346
Arborele T o
o
Cuplajul M
5
9
11
6
1
4
10
Graf Eulerian
2
Turul H
A
347
HA este solut
ia aproximativ
a a problemei CV.
Fie m = n
si H0 solut
ia optim
a. Vom ar
ata
2!
(cf. Cornuejols
si Nemhauser) c
a
n 3
3m 1
d(HA )
d(H0)
2m
Presupunem c
a H0 = {v1v2, v2v3, . . . , vnv1} (eventual, schimbnd numerotarea vrfurilor). Fie
A = {vi1 , vi2 , . . . , vi2k } vrfurile de grad impar
ale lui < T 0 >Kn, i1 < i2 < . . . < i2k .
Dac
a H = {vi1 vi2 , vi2 vi3 , . . . , vi2k1 vi2k , vi2k vi1 },
avem din inegalitatea triunghiular
a, d(H) d(H0),
prin nlocuirea ponderii ec
arei corzi d(vij vij+1 )
cu suma ponderilor muchiilor de pe circuitul H0
subntinse de vij vij+1 .
Pe de alt
a parte, H este circuit de lungime
par
a, deci este reuniunea a dou
a cuplaje perfecte n [A]Kn , M 1 M 2.
Presupunem c
a d(M 1) d(M 2).
348
o
H
M
1
M2
H2
H1
349
n
!
2
muchii.
Presupunem c
a H 1. Deoarece d(H 1 ) d(M 1) d(M 0) =
a c
a exist
a e H 1 : d(e)
d(H0 ), rezult
d(H0 ).
m
d(H0 ).
m
).
m
(m1)
)d(H0 ).
m
12 se obt
ine
d(HA )
)
m
3m1
d(H0 )
2m
+ d(H0 ) =
pentru n 3.
350
Kirkpatrick, Gelatt
si Vechi n 1983
si de Cerny
n 1985.
Ca orice metod
a Monte Carlo, repetarea algoritmului cu diferit
i parametri de start ofer
a
sansa imbun
at
a
tirii solut
iilor g
asite, care nu
sunt n general,
si solut
ii optime.
351
In termodinamic
a , se poate interpreta c
alirea
(intilnit
a tradit
ional n prelucrarea metalelor n
er
ariile cu forj
a , baros
si nicoval
a ) ca un proces stohastic ce determin
a o aranjare a atomilor care minimizeaz
a energia total
a a unui corp.
La temperaturi nalte, atomii se mi
sc
a liber
si se mut
a cu
rapiditate n pozit
ii care cresc energia total
a. Pe m
asur
a
ce temperatura este sc
azut
a, atomii se apropie gradual
de o dispunere laticeal
a regulat
a
si numai ocazional
si
m
aresc energia. Aceste cre
steri ocazionale de energie
joac
a un rol crucial n c
alire : ele permit ie
sirea din
minimele locale printr-o cre
stere temporar
a de energie.
La temperaturi nalte, astfel de salturi apar cu mare
probabilitate, iar la temperaturi joase ele apar rar. Temperatura este scazut
a lent pentru a mentine echilibrul
termal.
C
and atomii sunt n echilibru la temperatura
mann.
352
In consecint
a, probabilitatea ca energia s
a e
E + dE poate exprimat
a,
dE
O variabil
a ctiv
a T , asociat
a procesului de
c
autare, va juca rolul temperaturii iar constanta
lui Bolzmann va considerat
a 1.
353
Algoritm de c
alire simulat
a
1. Se consider
a un plan de c
alire:
- temperatura init
ial
a Tstart
- congurat
ia init
ial
a xstart D
- temperatura nal
a Tmin
- o funct
ie de reducere lent
a a temperaturii
decrease (T)
- nr. maxim de ncerc
ari de mbun
at
a
tire a solut
iei
la ecare prag de temperatur
a attempts
- nr. maxim de schimb
ari ale solut
iei
la ecare prag de temperatur
a changes.
2. T Tstart; xold xstart
while T > Tmin do
{ na 0; nc 0
while na < attempts and nc < changes do
{ genereaz
a o solut
ie nou
a xnew ; na + +;
E f (xold ) f (xnew );
If E < 0 then { xold xnew ; nc + +}
else
{ genereaz
a q (0, 1) un nr. aleator
E
if q < e T then { xold xnew ; nc + +}
}
}
decrease(T )
}
3. return xold
354
Planul de c
alire se stabile
ste adeseori prin experimente (tuning ) asupra clasei de probleme
la care se aplic
a. Modul n care se permite,
la un anumit nivel de temperatur
a , ca unele
solut
ii noi care nu mic
soreaz
a valoarea funct
iei
s
a e considerate (cu scopul p
ar
asirii minimelor
locale) poart
a denumirea inventatorului : schema
Metropolis.
Pentru aplicarea c
alirii simulate pentru rezolvarea
problemei comisului voiajor, se porne
ste cu un
tur ales aleator, iar trecerea de la o solut
ie
curent
a la o solut
ie vecin
a n spat
iul solut
iilor se
realizeaz
a de obicei cu ajutorul unei 2-move.
355
a
n R3. Spunem c
a G este reprezentabil pe S
dac
a exist
a G = (V , E ) un graf astfel nct:
G .
a) G =
ime de puncte distincte din S.
b) V e o mult
a simpl
a
c) Orice muchie e E este o curb
cont
inut
a n S care une
ste cele dou
a extremit
a
ti.
d) Orice punct al lui S este sau vrf al lui G,
sau prin el trece cel mult o muchie a lui G.
G se nume
ste reprezentare a lui G n S.
Dac
a S este un plan atunci G se nume
ste planar iar G o reprezentare planar
a a lui G.
Dac
a S este un plan
si G este un graf care
satisface b) c)
si d) de mai sus atunci G se
nume
ste graf plan.
356
Lem
a. 1. Un graf este planar dac
a
si numai
dac
a este reprezentabil pe o sfer
a.
Demonstrat
ie. Fie G planar
si G o reprezentare
planar
a a sa n planul . Consider
am un punct
x al lui
si S o sfer
a tangent
a la n x.
Fie y punctul diametral opus al lui x pe sfer
a.
Denim : S considernd pentru orice
punct M al planului , (M ) cel de-al doilea
punct de intersect
ie al dreptei M y cu sfera S.
Evident este o biject
ie
si deci (G) este
reprezentarea lui G pe sfer
a ( este proiect
ia
stereografic
a).
y
S
pi
357
Reciproc, dac
a G este reprezentabil pe o sfer
a
S: se alege un punct y pe sfer
a, se consider
a
punctul x diametral opus lui y pe sfer
a, se construie
ste un plan tangent sferei S n punctul
x
si se dene
ste : S considernd pentru orice punct M al sferei, (M ) intersect
ia
dreptei yM cu planul . Imaginea prin a
reprezent
arii lui G pe sfer
a va o reprezentare
planar
a a lui G.
Definit
ie. Fie G un graf plan. Dac
a ndep
art
am
punctele lui G (vrfurile
si muchiile sale) din
plan se obt
ine o reuniune de regiuni conexe
(orice dou
a puncte se pot uni printr-o curb
a
simpl
a cont
inut
a n regiune) ale planului, care
se numesc fet
ele lui G.
Evident, orice graf plan are un num
ar nit de
fet
e, dintre care una singur
a este nem
arginit
a
si se nume
ste fat
a exterioar
a a lui G.
358
2
6
f4
5
f4
f1
f3
f5
8
3
2
f5
2
f4
f2
f3
f1
f1
3 f2
5
4
f5
f3
7
3
f2
Lem
a. 2. Orice reprezentare planar
a a unui
graf poate fi transformat
a ntr-o reprezentare
diferit
a astfel nct o fat
a specificat
a a sa s
a
devin
a fat
a exterioar
a.
Demonstrat
ie: Fie G o reprezentare planar
a a lui G
si F
am G0 o reprezentare pe sfer
a
o fat
a a lui G . Consider
a lui G (construit
a, de exemplu, ca n lema 1)
si e
a corespunz
atoare a lui F (proiect
ia stereograc
a
F 0 fat
transform
a orice fat
Graful plan
si f fet
e. Atunci
f =mn+2
Demonstrat
ie: Induct
ie dup
a num
arul fet
elor
lui G. Dac
a f = 1, atunci G nu are circuite
si cum este
si conex, rezult
a c
a G este arbore,
deci m = n 1
si prin urmare teorema are loc.
In pasul inductiv, presupunem teorema adev
arat
a pentru orice graf plan
si conex cu mai put
in
de f ( 2) fet
e. Exist
a m
acar o muchie e, care
nu este punte (altminteri G ar arbore
si ar
avea o singur
a fat
a). Rezult
a c
a e apart
ine
frontierei a exact dou
a fet
e ale lui G. Consider
am G1 = G e. Din alegerea lui e, G1
este conex. Evident G1 este graf plan.
361
Num
arul fet
elor lui G1 este f1 = f 1 (cele
a
dou
a fet
e ale lui G vor genera n G1 o singur
fat
Figura urm
atoare cont
ine grafurile planare asociate poliedrelor platonice:
362
Tetraedrul
Dodecaedrul
Hexaedrul
(Cubul)
Octoedrul
Icosaedrul
Steinitz
si Rademacher (1934) au ar
atat c
a un
graf planar este graful asociat unui poliedru
convex dac
a
si numai dac
a este 3-conex. Relat
ia
din teorema 1, este cunoscut
a ca formula poliedral
a a lui Euler
si precizeaz
a num
arul fet
elor
poliedrului convex n funct
ie de num
arul vrfurilor
si muchiilor sale.
363
a imediat
a faptul c
a orice
graf planar este rar, num
arul muchiilor este
de ordinul num
arului de vrfuri. Va rezulta c
a
orice traversare n ordinul O(|V | + |E|) a lui G
este de fapt n O(|V |) operat
ii.
Corolar. 1. Fie G un graf planar, conex, cu
n( 3) vrfuri
si m > 2 muchii. Atunci
m 3n 6.
Demonstrat
ie. Fie G o reprezentare planara
a lui G. Dac
a G are o singur
a fat
a, atunci G
este arbore, m = n1 (G are acela
si num
ar de
vrfuri
si muchii ca
si G),
si pentru n 3 inegalitatea are loc. Daca G are m
acar dou
a fet
e,
atunci ecare fat
a F are n frontier
a muchiile
unui circuit C(F ),
si ecare astfel de muchie
apart
ine la exact dou
a fet
e. Orice circuit al
grafului are m
acar 3 muchii, deci
364
2m
F fat
Demonstrat
ie: Dac
a G are mai mult de 2 muchii
aplic
am consecint
a 1 astfel: e G o reprezentare
planar
a a lui G cu n vrfuri
si m muchii; not
am
cu ni num
arul vrfurilor de grad i (1 i
n 1) din G; atunci
n1
i
n
=
2m
2(3n
6)
=
6(
i
i ni ) 12,
i=1
deci
(i 6)ni
+ 12 0
Definit
ie. Dou
a grafuri G1
si G2 se numesc
h(G ).
homeomorfe dac
a
si numai dac
a h(G1) =
2
Teorem
a. 2. (Kuratowski 1930) Un graf este
planar dac
a
si numai dac
a nu are subgrafuri
homeomorfe cu K5 sau K33.
Necesitatea teoremei este evident
a: dac
a un
graf este planar atunci orice subgraf al s
au este
planar. Dac
a ar exista un subgraf G al lui G
homeomorf cu K33 sau K5, cum aceste dou
a
grafuri am ar
atat c
a nu snt planare
si cum
h(G) este planar dac
a
si numai dac
a G este
planar rezult
a c
a G
si deci G nu este planar,
contrazicnd alegerea lui G.
Suficient
a se demonstreaz
a prin induct
ie dup
a
num
arul de muchii.
368
370
Demonstrat
ie: Fie v1, v2, ..., vn vrfurile circuitului C ntr-o parcurgere a sa de la u la v
a C nu are corzi inte(v1 = u, vn = v). Dac
rioare lema este demonstrat
a. Altfel, alegem
perechea (i, j) astfel nct vivj este coard
a interioar
a a lui C
si
ji = min{kl | k > l+1, vk vl E(G ), vk vl coard
a interioar
a }.
v =u
1
v = v
n
371
vk
Ck - 1
v =u
1
v =v
2
Rezult
a c
a pentru k = n (i)
si (ii) au loc.
373
Dac
a vk a fost ales (k n) atunci n Gk1 =
a un cirG {vn, . . . , vk } vecinii lui vk determin
cuit Ck1
ce cont
ine uv
si m
argine
ste fat
a exa c
a
terioar
a a lui Gk1. Din lema 3, rezult
exist
a vk1 pe Ck1
astfel nct vk1 nu este
.
incident cu o coard
a interioar
a a lui Ck1
Din construct
ie, rezult
a c
a vk1 nu este in
si cu
cident nici cu corzi exterioare lui Ck1
aceast
a alegere, se observ
a c
a Gk2 va cont
ine
cu propriet
a
tile (i)
si (ii).
un circuit Ck2
Not
am c
a etichetarea precizat
a 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 v1, v2
si vn
si apoi considernd pentru ecare k k 3 un vrf vk cu
si
proprietatea c
a arcele cu o extremitate vk
cealalt
a n {v1, . . . , vk1} formeaz
a un segment
a
continuu n lista circular
a a lui A(vk ) (existent
unui asemenea vrf ind asigurat
a de lema 4 ).
374
Demonstrat
ia teoremei 4. A
sa cum am mai
observat, se poate presupune G maximal planar cu n( 4) vrfuri. Fie G o reprezentare
planar
a a lui G, cu vrfurile v1, v2, . . . , vn, fat
a
exterioar
a u, v, w
si etichetarea vrfurilor satisface condit
iile din lema 4.
Vom construi o reprezentare Fary a lui G cu
vrfurile puncte de coordonate ntregi.
In pasul k( 3) al construct
iei dispunem de o
astfel de reprezentare a lui Gk ,
si n plus snt
satisf
acute condit
iile:
(1) v1 are coordonatele xv1 = 0
si yv1 = 0; v2
are coordonatele xv2 = i 2k 4, yv2 = 0;
(2) Dac
a w1, w2, . . . , wm snt vrfurile circuitului ce m
argine
ste fat
a exterioar
a a lui Gk n ordinea parcurgerii lor de la v1 la v2(w1 = v1, wm =
v2) atunci
x w1 < x w2 < . . . < x wm .
375
w
wp
w
3
wq-1
p+1
w
p+2
wq-2
wq
w
2
w = v1 =u
1
w = v2=v
m
376
Condit
iile (1)- (3) snt evident satisf
acute. Cu
aceasta teorema este demonstrat
a.
S
a observ
am c
a determinarea vrfurilor care se
vor transla n pasul k, poate organizat
a astfel nct s
a nu necesite n total O(n2) operat
ii
ci numai O(n log n), utiliznd structuri convenabile de date.
V
arfurile sunt ciclii permut
arii . (Un ciclu
al permut
arii este o submult
ime nevid
a a lui
E nchis
a n raport cu
si minimal
a cu aceast
a
proprietate).
Dac
a not
am cu V mult
imea ciclilor permut
arii
atunci denim
t : E V prin t(e) = unicul ciclu al lui ce cont
ine
e (extremitatea init
ial
a a arcului e)
t : E V prin t(e) = unicul ciclu al lui ce cont
ine
e (extremitatea nal
a a arcului e)
Se observ
a c
a e t(e) = h(e)
si h(e) = t(e).
379
Dac
a vom considera permutarea : E E denit
a de
mut
arii .
Intuitiv, pentru a calcula (e), invers
am e pentru a
obt
ine e
si apoi ne rotim (n sensul acelor de ceasorarul fet
elor
nic) n jurul extremit
a
tii init
iale a lui e. Num
lui G se noteaz
a cu f .
O component
a conex
a a lui G este o orbit
a a lui E
n grupul de permut
ari generat de
si : o mult
ime
nevid
a minimal
a cu proprietatea c
a este nchis
a la
si .
Fie G un graf cu m = 12 |E| muchii (neorientate), n = |V |
v
arfuri, f fet
e,
si c componente conexe. Caracteristica
Euler a lui G se dene
ste ca ind
(G) = 2c + m n f.
Un graf G se nume
ste graf plan dac
a (G) = 0.
Se poate demonstra c
a pentru un graf conex n denit
ia
tradit
ional
a, cele dou
a not
iuni de grafuri plane coincid
(graful neorientat construit a
sa cum am descris mai sus
ata
sat unui graf n form
a combinatorial
a este graf plan
conform denit
iei tradit
ionale
si invers,
dac
a pentru un graf tradit
ional plan conex se construie
ste
conform unei orient
ari inverse acelor de ceasornic a
muchiilor
si corespunz
atoare, graful combinatorial
obt
inut este plan n noua denitie).
380
4. Teorema separatorului
Definit
ie Dac
a G = (V, E) este un graf plan
maximal (cu toate fet
ele triunghiuri) atunci
dualul s
au este graful G = (V , E) unde V
sunt fet
ele grafului G iar muchiile lui G se
obt
in din muchiile grafului G, asociindu-i ec
arei
muchii e E cele dou
a fet
e n frontira c
arora
se afl
a e.
G*
Lem
a. 1. Fie G = (V, E) este un graf plan
maximal conex , G = (V , E) dualul s
au
si
E E. Atunci (V, E ) este arbore part
ial al lui
G dac
a
si numai dac
a (V , E E ) este arbore
part
ial al lui G.
381
Teorem
a. 1. (Tarjan & Lipton, 1979)
Fie G un graf planar cu n v
arfuri. Exist
a o
partit
ie a lui V (G) n clasele disjuncte A, B, S
astfel nc
at:
1. S separ
a A de B n G: G S nu are muchii
cu o extremitate n A
si cealalt
a n B.
2 n.
2. |A| 2
n,
|B|
3
3
3. |S 4 n.
Aceast
a partit
ie se poate afla n timpul O(n).
Demonstrat
ie. Consider
am graful conex
si de
asemenea consider
am c
a dispunem de o reprezentare planar
a (obt
inute cu un algoritm liniar).
Alegem un v
arf s
si execut
am o parcurgere bfs
din s numerot
and v
arfurile (n ordinea nt
alnirii
lor n aceast
a parcurgere)
si atribuind ec
arui
v
arf v nivelul s
au n arborele bfs construit.
382
L(t)
<
L(t)
<
t<t1
t>t
2
2
1
Dac
a
si L(t1) 4 n, teorema are loc.
Lem
a. 2. Exist
a nivelele t0 t1
si t2 > t1 a.
nc
at |L(t0)| n, |L(t2)| n
si t2 t0 n.
Se alege t0 cel mai mare num
ar cu propriet
a
tile t0 t1
si
|L(t0)| n (exist
a un astfel de nivel pentru c
a |L(0)| =
1). La fel, exist
a t2 un cel mai mic num
ar astfel nc at
t2 > t 1
si |L(t2)| n (de aceea s-a luat |L(l + 1)| = 0).
deci num
arul acestor nivele este mai mic dec
at n, altfel
am avea mai mult de n v
arfuri n graf.
383
Consider
am
C = t<t0 L(t), D = t0<t<t2 L(t), E = t>t2 L(t).
t1
t0
Dac
a |D| 2
3 n atunci teorema are loc cu S =
L(t0 ) L(t2 ), A mult
imea cu cele mai multe
elemente dintre C, D, E
si B reuniunea celorlalte dou
a (nu uit
am c
a C
si E au cel mult n
2
elemente).
384
Consider
am deci c
a n1 = |D| > 2
3 n.
2 penDac
a vom g
asi un separator de tipul 1
3
3
Ne ocup
am de construct
ia separatorului pentru
D. Vom
sterge toate v
arfurile grafului care nus n D cu except
ia lui s pe care-l unim cu toate
vrfurile de pe nivelul t0 + 1 (primul nivel r
amas
n D). Graful obt
inut l not
am cu D
si este
evident planar
si conex. In plus are un arbore
part
ial T de diametru cel mult 2 n (orice v
arf
este accesibil din s pe un drum de lungime cel
mult n a
sa cum am ar
atat n lem
a).
385
a a lui D
drept r
ad
acin
a a lui T
si consider
am muchiile
ad
acin
a.
lui T orientate dinspre r
Fie e = uv un
tep. Exist
a un unic drum de la
u la v n T care mpreun
a cu e determin
a un
circuit c(e).
Parcurgem
tepii conform unei travers
ari dfs a
lui T calcul
and urm
atoarele informat
ii pentru
ecare
tep, recursiv de la frunze n sus:
386
- I(e)- num
arul v
arfurilor din interiorul lui c(e).
- |c(e)|- num
arul v
arfurilor de pe circuitul c(e);
- o reprezentare ca list
a a lui c(e).
Sunt posibile urm
atoarele patru cazuri (ce corespund ntoarcerilor din parcurgerea dfs).
e
u
x
Cazul 1.
Suntem ntr-o frunz
a e a lui T (ce se determin
a num
ar
and vecinii). Atunci:
- I(e) = 0;
- |c(e)| = 3 (D e triangulat);
- c(e) = [u, x, v].
e
u
Cazul 2.
c (e )
Avem calculat
a informat
ia pentru
tepul e = u v, e este
un
tep n acela
si triunghi ca
si e
si u este pe circuitul
c(e); ac. rezult
a test
and dac
a u nu-i pe lista c(e ).
Atunci:
387
- I(e) = I(e );
- |c(e)| = c(e ) + 1;
- c(e) = [u] c(e ).
e
u
v
u
Cazul 3.
Avem calculat
a informat
ia pentru
tepul e =
uv, e este un
tep n acela
si triunghi ca
si e
si
u nu este pe circuitul c(e); ac. rezult
a test
and
dac
a u e pe lista c(e ). Atunci:
- I(e) = I(e ) + 1;
- |c(e)| = c(e ) 1;
- c(e) = [u]c(e) (deci c(e) se obt
ine
sterg
andul pe u din lista c(e).
e
u
e
y
p
e"
c (e "
)
c (e )
x
Cazul 4.
Avem calculat
a informat
ia pentru
tepii e = uy
si e = yv iar e este un
tep n acela
si triunghi
ca
si e , e.
388
si c este c(e) cu p
sters.
Calculul lui |p|
si reprezentarea lui c(e) se obt
in
scan
and c(e )
si c(e) plec
and din y p
an
a nt
alnim
ultimul v
arf comun care este x. Aceasta nu
afecteaz
a complexitatea de timp liniar
a.
R
am
ane de ar
atat c
a exist
a un
tep e astfel nc
at
2n1
2n1
n1 (I(e) + c(e))
.
3
3
Atunci se poate lua c(e) ca separator, v
arfurile
din interior drept o clas
a, iar cele din interior
drept cealalt
a clas
a.
I(e)
Fie e primul
tep nt
alnit la ntoarcerea din frunzele lui T c
atre r
ad
acin
a, care satisface proprietatea c
a I(e) + |c(e)| n31 .
389
Atunci mult
imea v
arfurilor din exteriorul lui c(e)
1 , deci
este de cardinal n1 (I(e) + |c(e)|) 2n
3
1
ceea ce r
am
ane de ar
atat este c
a I(e) 2n
3 .
Aceasta rezult
a analiz
and cazurile 1-4 de mai
sus n care s-a ajuns la e:
1.
1. I(e) = 0 2n
3
1
2. I(e)+|c(e)| = I(e)+|c(e )|+1 < n31 +1 2n
3
(pentru n1 3).
3. I(e) + c(e) = I(e ) + c(e), deci e nu-i prima
muchie cu proprietatea c
a I(e) + |c(e)| n31 .
4. I(e) + c(e) = I(e ) + I(e) + |p| 1 + c(e ) +
1 |p| < 2n1 .
c(e ) 2|p| + 1 < 2n
3
3
Ilustr
am cum poate folosit
a teorema separatorului mpreun
a cu o metod
a de divide & impera pentru a obt
ine algoritmi exact
i cu comportare subexponent
ial
a pentru probleme NPhard pe grafuri planare.
390
Consider
am problema test
arii dac
a un graf planar dat admite o 3-colorare a v
arfurilor (problem
a cunoscut
a ca ind NP-complet
a).
Pentru grafuri cu put
ine v
arfuri (un num
ar constant c) se poate testa n timpul O(3c) = O(1)
dac
a graful are o 3-colorare.
Pentru grafuri planare cu num
arul n de v
arfuri
mai mare dec
at c, construim n timp liniar O(n),
a
sa cum ne asigur
a teorema separatorului, parti
tia A, B, C a mult
imii v
arfurilor sale cu |A|, |B|
2n
3 si |C| 4 n.
|C|
O(
n) funct
Pentru ecare din cele 3
= 2
ii
posibile denite pe C
si cu valori n {1, 2, 3}
se testeaz
a dac
a este 3-colorare a subgrafului
indus de C
si dac
a poate extins
a la o 3colorare a subgrafului indus de A C n G
si la
o 3-colorare a subgrafului indus de B C n G
(recursiv).
391
O(1)
dac
a n c;
dac
a n > c.
O(
n), destul de bun pentru
Se obt
ine T (n) = 2
Este posibil ns
a ca notat
ia O(.) s
a ascund
a
constante mari !
Exist
a
si alte abord
ari pentru obt
inerea de algoritmi performant
i pentru problemele dicile
pe grafuri planare. Descriem n continuare una
din ele.
392
Definit
ie O t-descompunere a unui graf G =
(V (G), E(G)) este o pereche
({Xi |i V (T )}, T ), unde {Xi|i V (T )} este o
familie de submult
imi ale lui V (G)
si T este un
arbore, astfel nc
at:
1. iV (T )Xi = V (G);
2. vw E(G) i V (T ) astfel nc
at v, w Xi;
3. v V (G) mult
imea v
arfurilor {i|v Xi } induce un subarbore n T .
L
a
timea unei t-descompuneri {Xi|i V (T )} se
dene
ste ca ind maxiV (T )(|Xi | 1).
t-l
a
timea unui graf G este l
a
timea minim
a a
unei t-descompuneri a lui G
si se noteaz
a cu
tw(G).
393
Definit
ie O b-descompunere a unui graf G =
(V (G), E(G)) este o pereche (T, ), unde T
este un arbore cu v
arfurile de gradul 1 sau 3
si este o biject
ie de la mult
imea v
arfurilor
pendante ale lui T la E(G).
Ordinul unei muchii e a lui T este num
arul
v
arfurilor v V (G) astfel nc
at exist
a v
arfurile
pendante t1, t2 ale lui T n componente conexe
si (t2) incidente
diferite ale lui T e cu (t1)
cu v.
Lat
imea b-descompunerii (T, ) este ordinul
maxim al unei muchii a lui T .
b-l
a
timea unui graf G este l
a
timea minim
a
a unei b-descompuneri a lui G
si se noteaz
a
cu bw(G). (dac
a |E(G)| 1 se dene
ste bl
a
timea lui G ca ind 0; grafurile nule nu au
b-descompuneri; dac
a |E(G)| = 1 atunci G are
o b-descompunere care const
a dintr-un arbore
cu un nod, a c
arui l
a
time se consider
a 0).
394
Teorem
a. 2. (Robertson & Seymour, 90)
Pentru orice graf conex G cu E(G) 3 avem
3
bw(G) tw(G) + 1 bw(G).
2
Teorem
a. 3. (Fomin & Thilikos, 2003)
Pentru orice graf planar G avem
bw(G)
Teorem
a. 4. (Fomin & Thilikos, 2003)
Fie o problem
a de optimizare care este rezolvabil
a pe grafuri cu b-l
a
timea cel mult l
si
ordinul n n timpul f (l)g(n). Atunci pe grafurile
planare de ordin n problema este rezolvabil
a
De exemplu, se
stie c
a problema determin
arii
unei mult
imi stabile de cardinal maxim ntr-un
graf cu t-l
a
timea l se poate rezolva n timpul
O(2l n). Deci, pentru grafuri cu b-l
a
timea cel
mult l se poate rezolva n
3l
O(2 2 n).
Obt
inem c
a problema determin
arii unei mult
imi
stabile de cardinal maxim ntr-un graf planar se
poate rezolva n timpul O(23.182 nn + n4).
Timpii obt
inut
i sunt mai buni dec
at metodele
bazate pe teoremele de separare !
E N D
396
Seminarii
Setul de probleme 1
Problema 1. Un graf G se nume
ste rar dac
a num
arul
s
au de muchii m este mai mic decit
n2
,
log n
unde n reprezint
a
num
arul de virfuri. O justicare este aceea c
a matricea
ii de memde adiacent
n
orie, poate intotdeauna reprezentat
a folosind O( log
),
n
locat
ii de memorie astfel incit r
aspunsul la o intrebare
A(i, j) = 1 ? s
a se fac
a in O(1). Descriet
i o astfel de
schem
a de reprezentare. (4 puncte)
Problema
2.
maxim
a a unui drum de lungime minim
a intre dou
a virfuri ale grafului.
Dou
a virfuri care sunt extremit
a
tile
Demonstrat
i c
a urm
atorul algoritm
determin
a o pereche de virfuri diametral opuse intr-un
arbore T :
dintr-un virf oarecare se execut
a o parcurgere BFS a
lui T ; e u ultimul virf vizitat;din virful u se execut
a o
397
3.
r
ad
acin
a. Un algoritm simplu de desenare a lui T poate
descris recursiv dupa cum urmeaz
a.
- Folosim ca suport o gril
a (liniatura unui caiet de mate);
virfurile se plaseaz
a in punctele de intersect
ie ale grilei.
- Desen
am subarborele sting; Desen
am subarborele drept.
- Plas
am cele dou
a desene unul ling
a altul la distant
a
pe orizontal
a doi
si cu r
ad
acinile la aceea
si in
alt
ime.
- Plas
am r
ad
acina cu un nivel mai sus la jum
atatea
distant
ei pe orizontal
a dintre cei doi copii.
- Dac
a avem doar un copil plas
am r
ad
acina cu un nivel
mai sus la distant
a 1 fat
399
Setul de probleme 2
Problema
1.
a , are ordinul n
si dimensiunea m, descriet
i
un algoritm cu timpul O(n + m) care s
a testeze dac
a G
este S-lant
. (2 puncte)
Problema 2. Un graf G se nume
ste autocomplementar dac
a este izomorf cu complementul s
au : G % G.
a) Demonstrati c
a un graf autocomplementar este conex
si c
a ordinul s
au este multiplu de 4 sau multiplu de 4
plus 1.(2 puncte)
b) Demonstrat
i c
a pentru orice graf G exist
a 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)
400
Problema
3.
O echip
a de doi programatori L(azy)
si T (hinky) prime
ste ca sarcin
a s
a determine un drum
intre 2 noduri date, care s
a satisfac
a anumite cerint
e,
intr-un graf G dat, despre care se
stie c
a este rar :
|E(G)| = O(|G|). Programatorul L propune ca solut
ie
generarea (cu backtracking) a tuturor drumurilor dintre
cele dou
a noduri
si selectarea celui convenabil, motiv
and
c
a intr-un astfel de graf nu pot exista prea multe drumuri intre dou
a noduri xate (sunt put
ine muchii
si deci
put
ine posibilit
a
ti de ramicare; de ex., intr-un arbore
exist
a exact un drum intre orice dou
a noduri xate).
Programatorul T nu-i de acord
si d
a urm
atorul contraexemplu: se consider
a graful H = K2 Pn1 (n un
intreg mare); o pereche de virfuri de grad 2 adiacente
din H se une
ste cu un virf nou x, iar cealalt
a pereche
de virfuri de grad 2 adiacente din H se une
ste cu un virf
nou y; graful obt
inut, G, are propriet
a
tile din problema
de rezolvat
si totu
si num
arul drumurilor de la x la y in G
este prea mare. Ajutat
i-l pe L s
a int
eleag
a contraexemplul, desenind graful G, ar
atind c
a este rar
si estimind
num
arul drumurilor de la x la y. (2 puncte)
401
Problema 4. Presupunem c
a un turneu (digraf cu proprietatea c
a orice 2 virfuri sunt unite
exact printr-un arc) are un circuit C de lungime
n 4.
Ar
atat
i c
a pentru orice virf x al lui C se pot
determina in timpul O(n), inc
a dou
a virfuri ale
lui C y
si z astfel incit (x, y, z) este un circuit
de lungime 3. (2 puncte)
402
Setul de probleme 3
Problema
muchii
si cu matricea de adiacent
a A. Dintre cele 2m
orient
ari posibile ale muchiilor sale consider
am una oarecare
si cu ajutorul ei construim matricea de incident
a
virf-arc Q {0, 1, 1}nm denit
a prin :
(Q)ve = 1, dac
a v este extremit. init
ial
a a arcului e,
(Q)ve = 1, dac
a v este extremitatea nal
a a arcului e
(Q)ve = 0 in toate celelalte cazuri.
Demonstrat
i c
a matricea A + QQT este o matrice diagonal
a
si precizat
i semnicat
ia combinatorie a elementelor
ei. (3 puncte)
Problema 2. Fie G un graf oarecare
si not
am cu b(G)
graful obt
inut din G prin inserarea cite unui nou nod pe
ecare muchie. Demonstrat
i c
a b(G) este un graf bipartit. (2 puncte)
Demonstrat
i c
a G
si H sunt izomorfe dac
a
si numai
dac
a b(G) este izomorf cu b(H). Deducet
i c
a testarea
izomorsmului a 2 grafuri oarecare se reduce polinomial la testarea izomorsmului a 2 grafuri bipartite (2
puncte)
403
a, ar
atat
i c
a se
poate testa dac
a este graf paianjen folosind
doar O(n) probe ale matricii de adiacent
a.
(o prob
a este un acces la un element oarecare
al matricii, f
ar
a a-l memora explicit pentru utiliz
ari ulterioare). (4 puncte)
404
Problema
4.
n cu r
ad
acina r un drum P3n orientat procedind astfel:
ec
arui nod v al lui T i se asociaz
a trei noduri cu acela
si
a v nu
nume v pe care le desemn
am prin v1 , v2, v3 ; dac
are in T descendent sting, atunci se introduce arcul v1v2
in P3n ; dac
a v nu are in T descendent drept, atunci se
a descendentul sting al
introduce arcul v2 v3 in P3n; dac
lui v in T este w, atunci se introduc in P3n arcele v1w1
si w3 v2; dac
a descendentul drept al lui v in T este w,
si w3 v3 .
atunci se introduc in P3n arcele v2 w1
ial
a
Dac
a se parcurge drumul P3n de la extremitatea init
a r3
si se listeaz
a numele virfurilor
r1 la extremitatea nal
in ordinea parcurgerii lor se obt
ine un
sir in care numele
ecarui virf al lui T apare exact de trei ori.
Demonstrat
i c
a :
dac
a din acest
sir se ret
ine doar prima aparit
ie a ec
arui
nume se obt
ine parcurgerea pre-order a arbrelui T ;
dac
a din acest
sir se ret
ine doar a doua aparit
ie a ec
arui
nume se obt
ine parcurgerea in-order a arbrelui T ;
dac
a din acest
sir se ret
ine doar a treia aparit
ie a ec
arui
nume se obt
ine parcurgerea post-order a arbrelui T .
(3 puncte)
405
Setul de probleme 3
Problema 1. Fie G = (V, E) un graf de ordin n
si dimensiune m. O ordonare V = {vi1 , . . . , vin } a v
arfurilor lui
inut
G se nume
ste d-m
arginit
a dac
a n digraful G&, obt
din G prin nlocuirea ec
arei muchii {vij , vik } cu arcul
(vimin{j,k} , vimax{j,k} ), avem v V d+
G& (v) d.
a) Descriet
i un algoritm care primind la intrare G reprezentat cu ajutorul listelor de adiacent
a
si d N , testeaz
a
n timpul O(n + m) dac
a G are o ordonare d-m
arginit
a
(se vor argumenta corectitudinea
si complexitatea). (2 puncte)
b) Utilizat
i algoritmul de la punctul a) pentru a determina n timpul O(m log n) parametrul
o(G) = min{d N| G are o ordonare d-m
arginit
a }. ( 2 puncte)
c) Ar
atat
i c
a orice graf G admite o colorare a v
arfurilor
cu o(G) + 1 culori. (2 puncte)
Problema
2.
Demonstrat
i algoritmic c
a mult
imea
muchiilor oric
arui graf complet Kn
(n 2) poate
partit
ionat
a n n2 submult
imi, ecare dintre acestea
reprezent
and mult
imea muchiilor unui arbore (subgraf
al lui Kn ). Exemplu. K5 , 52 = 3 :
(4 puncte)
406
Problema 3.
Pentru un graf conex G se
execut
a urm
atorul algoritm:
- Se init
ializeaz
a o coad
a Q cu graful G.
- C
at timp coada Q nu-i vid
a:
- se extrage n H graful din capul cozii,
- se determin
a o mult
ime de articulat
ie A
V (H), minimal
a n raport cu incluziunea (nici o
submult
ime proprie nu-i mult
ime de articulat
ie
n H),
si dac
a V1, . . . , Vk (k 2) sunt mult
imile
de v
arfuri ale componentelor conexe ale grafului H A, atunci
- se adaug
a la Q grafurile [A V1 ]H , . . . , [A Vk ]H .
Se observ
a c
a dac
a graful curent este complet atunci nu se adaug
a
nimic n coada Q.
a) Ar
atat
i c
a ecare graf introdus n coad
a
este conex.(2 puncte)
b) Demonstrat
i c
a num
arul total al grafurilor
introduse n coada Q nu dep
a
se
ste |G|2. (2 puncte)
407
Setul de probleme 3
Problema 1. Fie C clasa grafurilor G cu proprietatea c
a orice arbore df s al lui G este un
drum (pentru orice ordonare a v
arfurilor lui G
a asociate acestor v
arfuri, orice aplicare a unui df s
genereaz
a un drum hamiltonian n G).
Demonstrat
i c
a
C = {K1, K2} n3{Kn, Cn, Kn,n}.
(1+3 puncte)
SK ;
anga dreapta
for i = 1 to n do
\\ st
if ( j SK astfel nc
at ji E) then SK SK {i};
2.
for i = n to 1 do
\\ dreapta st
anga
if i SK (j SK astfel nc
at ji E) then SK SK \ {i};
3.
output SK.
408
Demonstrat
i c
a SK este un seminucleu n D: SK este
nevid
a, stabil
a n G[D] (graful suport al digrafului D)
si
orice v
arf din v V \ SK e accesibil n D, dintr-un v
arf
al lui SK, pe un drum de lungime cel mult 2.
Indicat
i structurile de date
si modul de folosire a acestora pentru o implementare a algoritmului de mai sus n
timpul O(n + m) (m ind |E|).
(2+2 puncte)
Problema 3. Ar
atat
i c
a dac
a G = (S, T ; E) este un
graf bipartit cu urm
atoarele propriet
a
ti:
- |S| = n; |T | = m (n, m N );
- t T |NG(t)| > k > 0;(pentru un k oarecare mai
mic dec
at n);
a t1 = t2 atunci NG (t1) = NG (t2);
- t1, t2 T dac
- t1, t2 T dac
a t1 = t2 atunci |NG (t1) NG (t2)| = k,
atunci are loc inegalitatea m n.
(2 puncte)
Problema 4.
Pentru n N denim graful Gn = (V, E) astfel:
V = {(i, j)|1 i n, 1 j n},
(i, j)(k, l) E (pentru dou
a v
arfuri (i, j)
si (k, l) distincte din V ) dac
a
si numai dac
a i = l sau j = k.
Demonstrat
i c
a Gn este universal pentru familia arborilor
de ordin n:
oricare ar T un arbore de ordin n exist
a A V astfel
nc
at T = [A]Gn .
(2+2 puncte)
409
Setul de probleme 4
Problema
1.
Prezentat
i (pe cel mult o pagin
a ) o
problem
a interesant
a din domeniul IT care s
a necesite
rezolvarea ecient
a a unei probleme de drum minim intrun digraf asociat problemei init
iale. (3 puncte)
Problema
2.
O mult
ime A de muchii se nume
ste
st-inevitabil
a dac
a exist
a S V astfel incit s S, t S
3.
a
virf al s
au cu proprietatea c
a NG (v) = V {v}. Dac
pentru A V not
am cu NG (A) = aANG(a) A, se
observ
a c
a exist
a mult
imi de virfuri A care satisfac prosi
priet
a
tile : v A, [A]G este conex, N = NG (A) =
R = V (A N ) = (de exemplu, A = {v}).
410
a) Demonstrat
i c
a dac
a se consider
a o mult
ime
A maximal
a (in raport cu incluziunea) satisf
acind
proprietat
ile enunt
ate, atunci orice virf din R
este adiacent cu orice virf din N .(2 puncte)
b) Dac
a, in plus, graful G este {Ck }k4-free,
atunci mult
imea N de la punctul a) are proprietatea c
a este clic
a in graful G.(2 puncte)
c) Deducet
i c
a singurele grafuri {Ck }k4-free,
regulate
si conexe sunt grafurile complete.(2
puncte)
Problema 4.
Ar
atat
i c
a se poate utiliza
o parcurgere dfs pentru a determina un circuit par intr-un graf 3-regulat oarecare. (2
puncte)
411
Setul de probleme 5
Problema
1.
S
a se arate c
a un graf G este bipartit
dac
a
si numai dac
a orice subgraf indus H al lui G satisface proprietatea 2(H) |H| (3 puncte)
Problema 2. Demonstarat
i c
a intr-un graf bipartit G
cu n virfuri
si m muchii avem inegalitatea 4m n2. (2
puncte)
Descriet
i un algoritm care s
a testeze dac
a un graf cu n
virfuri
si m muchii este complementarul unui graf bipartit in timpul O(n + m) (3 puncte)
Problema
3.
Ar
atat
i c
a orice graf G cu m muchii
m
2
muchii.(3
puncte)
Problema 4. Demonstrat
i c
a in orice graf conex G =
(V, E) exist
a o mult
ime stabil
a S astfel incit graful bipartit H = (S, V S; E ) este conex, unde E = E P2 (V S)
. Deducet
i c
a (G)
|G|1
(G)
(3 puncte)
412
Setul de probleme 6
Problema 1. Pentru d N se consider
a graful Gd =
K2 K2!"
... K2#.
d f actori
S
a se determine ordinul, dimensiunea
si diametrul lui Gd .
(2 puncte)
S
a se arate c
a Gd este bipartit
si s
a se determine (Gd ).
(2 puncte)
Problema 2.
Un graf cu cel put
in trei virfuri se
nume
ste confident
ial conex dac
a pentru orice trei virfuri
distincte a, b, c ale grafului exist
a un drum de la a la
b astfel incit niciunul dintre virfurile interne ale acestui
drum (dac
a exist
a astfel de virfuri) nu este c sau un
vecin al lui c. Un exemplu banal de graf condential
conex este graful Kn cu n 3.
Demonstrat
i c
a un graf conex G = (V, E), cu cel put
in
trei virfuri
si care nu-i complet, este condent
ial conex
dac
a
si numai dac
a au loc urm
atoarele dou
a condit
ii :
1. Pentru orice virf v mult
imea N (v) = {w V |w =
v, vw E} este nevid
a
si induce un graf conex.
2. Orice muchie a grafului este cont
inut
a intr-un C4
indus in graf sau este muchia din mijlocul unui P4
indus in graf.
(4 puncte)
413
414
Setul de probleme 7
Problema
1.
Problema 2.
Fie D un digraf
si dou
a funct
ii denite
si b : E(D)
pe multimea arcelor sale, a : E(D) R+
. Descriet
R+
i un algoritm ecient pentru determinarea
= min{ a(C)
; C circuit in D }
b(C)
(4 puncte)
Problema
3.
imi distincte
Fie A1, A2, ..., An submult
4.
Fie G un graf
si c : E(G) R+ o
funct
ie de capacitate a muchiilor.
Oric
arui drum din
graf cu m
acar o muchie i se asociaz
a locul ingust ca
ind muchia sa de capacitate minim
a .
Descriet
i un
416
Setul de probleme 7
Problema 1. Fie G = (V, E) un digraf de ordin n, a : E R+
o funct
ie de cost nenegativ
a,
si s = t dou
a v
arfuri xate. Pentru
rezolvarea problemei P1 (a determin
arii unui drum de cost a minim
de la s la t n G) se propune urm
atorul algoritm:
1. for each i V do pi 0;
i s;nainte(s) s;
2. while i = t do
if j V astfel nc
at pi pj = aij then
{ nainte(j) i; i j; }
else
{ pi minijE (aij + pj ); i nainte(i) };
3. Costul unui drum de cost minim de la s la t este ps pt
Problema 3. Dac
a G
si H sunt dou
a grafuri, notat
ia G H semnic
a faptul c
a exist
a
f : V (G) V (H) astfel nc
at uv E(G)
avem c
a f (u)f (v) E(H) (exist
a un morsm
de grafuri de la G la H).
Justicat
i corectitudinea unui algoritm care s
a
r
aspund
a n timpul O(1) la ntrebarea: Are
loc Cn Cm ? (n, m N, n, m 3; Ck este
graful circuit de ordin k). (3 puncte)
Problema 4. Dac
a H este un graf, atunci
q(H) noteaz
a num
arul componentelor conexe
de ordin impar ale lui H, iar (H) cardinalul
maxim al unui cuplaj al lui H . Demonstrat
i c
a
pentru orice graf G are loc relat
ia:
max (q(G S) |S|) = |V (G)| 2(G) .
SV (G)
418
Setul de probleme 7
Problema 1.
ale grafului:
Determinat
i num
arul cuplajelor perfecte
2n-1
2n
(3 puncte)
Problema 2.
a) Fie D = (V, E) un digraf aciclic cu n v
arfuri
si m arce
si A, B V dou
a mult
imi disjuncte, stabile n G(D) (graful suport al digrafului). Fie d(A, B) := min{d(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, dac
a acesta exist
a).
Descriet
i un algoritm de complexitate O(n + m) pentru
aarea unei mult
imi maximale P de drumuri disjuncte
(cu mult
imile de v
arfuri disjuncte) de la A la B, ecare
de lungime d(A, B) (maximalitatea lui P este n raport
cu incluziunea, adic
a nu mai exist
a un alt drum de la A
la B care s
a aib
a lungimea d(A, B)
si s
a e disjunct de
orice drum din P).
b) Ar
atat
i cum poate folosit algoritmul de la a) pentru implementarea algoritmului lui Hopcroft & Karp de
aare a unui cuplaj de cardinal maxim ntr-un graf bipartit.
(3+2 puncte)
419
a
a arcul
a lui D (dac
a arcul ej iese din i atunci aij = 1, dac
a n i atunci aij = 1, altfel aij = 0). Ar
atat
i c
a
ej intr
pentru orice submatrice p
atrat
a B a lui A are loc:
det(B) {1, 0, 1}.
(2 puncte)
Problema 4. Intr-un graf f
ar
a v
arfuri izolate se construie
ste un drum P astfel: se pleac
a dintr-un v
arf oarecare de start
si apoi, din v
arful curent n care ne a
am,
alegem un vecin diferit de v
arfurile deja vizitate. Atunci
c
and nu mai este posibil
a 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 f
acute. Proprietarul grafului solicit
a o plat
a
pentru folosirea acestuia n procesul de construct
ie a
drumului P . Aceast
a plat
a se poate face naintea ec
arei
alegeri
si, dac
a se pl
ate
ste 1 RON se obt
ine dreptul de
a face aceast
a alegere, iar dac
a se pl
atesc T >> 1 RONi
atunci se obt
ine dreptul de a face gratuit toate alegerile
urm
atoare. Dup
a terminarea construct
iei se poate compara suma pl
atit
a, Apriori(P ), cu cea care s-ar f
acut
a P osteriori(P ).
dac
a s-ar cunoscut drumul P , notat
G
asit
i o strategie de plat
a astfel nc
at pentru orice graf
Setul de probleme 8
Problema 1. Fie G un graf conex
si o funct
ie de cost
c : E(G) R. Vom numi t
aietur
a
orice mult
ime A
2.
Consider
am o numerotare xat
a a
sider
am xA GF m vectorul m-dimensional cu elemente
0,1 denit prin xA
i = 1 ei A (vect. caracteristic).
iul vectorial peste corpul GF (cu elem. 0
GF m este spat
si 1,
si operat
iile de adunare
si inmult
ire modulo 2).
421
a) Demonstrati c
a mult
imea vectorilor caracteristici ai
tuturor t
aieturilor grafului G, la care ad
aug
am
si vectorul
nul, formeaza un subspat
iu vectorial X al lui GF m .(1
punct)
b) Demonstrat
i c
a vectorii caracteristici ai mult
imilor
muchiilor circuitelor grafului G genereaz
a un subspat
iu
vectorial U al lui GF m ortogonal pe X. (1 punct)
c) Ar
atat
i c
a dim(X) n 1 (1 punct)
d) Ar
atat
i c
a dim(U ) m n + 1(1 punct)
e) Deducet
i c
a dim(X) = n 1
si c
a dim(U ) = m n + 1.
(1 punct)
Problema 3. Ar
atat
i c
a orice arbore cu gradul maxim
t > 0 are cel put
in t virfuri pendante. (2 puncte)
Problema 4.
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 demonstra c
a pentru orice intreg k, cu 0 k |S|, graful G
are un cuplaj de cardinal cel put
in |S| k dac
a
si numai
dac
a A S |NG(A)| |A| k. (2 puncte)
Problema 2.
c
a exist
a in graful G un cuplaj care sat-
ureaz
a toate virfurile de grad maxim dac
a
si numai dac
a
orice cuplaj de grad maxim are aceea
si proprietate. (2
puncte)
c) Demonstrat
i c
a dac
a mult
imea virfurilor de grad maxim
ale grafului G induce un graf bipartit, atunci G are un
cuplaj care satureaz
a toate virfurile de grad maxim. (2
puncte)
d) Deducet
i c
a mult
imea muchiilor unui graf bipartit G
poate partit
ionat
a in (G) cuplaje.(2 puncte)
423
Problema 3. Consider
am urm
atoarea problem
a de decizie:
Instant
a: G = (V, E) un graf, k N , b N .
Intrebare : Exist
a in G un subgraf H cu b
muchii, f
ar
a virfuri izolate
si cu ordinul lui H
cel put
in k ?
Ar
atat
i c
a problema se poate rezolva in timp
polinomial. (2 puncte)
Problema 4. Ar
atat
i, utilizind teorema lui
Tutte, c
a orice graf 2-muchie conex 3-regulat
are un cuplaj perfect. (2 puncte)
424
Setul de probleme 10
Problema
familia arborilor s
ai part
iali. Se consider
a graful H =
(TG, E(H)) unde T1T2 E(H) |E(T1)'E(T2 )| = 2.
a) Demonstrati c
a H este conex
si are diametrul cel mult
n 1. (2 puncte)
b)Demonstrati c
a 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 s
au. Se coloreaz
a toate arcele lui H cu galben,
ro
su
si verde arbitrar, cu singura condit
ie ca arcul ts s
a
e galben (se poate intimpla ca s
a nu avem arce ro
sii
sau verzi). Demonstrat
i algoritmic c
a are loc exact una
din urmatoarele situat
ii:
i) exist
a un circuit in graful G(H) (nu se
tine seama de
orientare) cu arce galbene sau verzi care cont
ine arcul
ts
si toate arcele galbene ale sale au aceea
si orientare.
ii) exist
a o partit
ie (S, T ) a lui V astfel incit s S, t T ,
toate arcele de la S la T sunt ro
sii
si toate arcele de la
T la S sunt ro
sii sau galbene.
(2 puncte)
425
426
Setul de probleme 11
Problema 1. Se dispune de un algoritm care primind
la intrare un graf G
si o funct
ie de pondere nenegativ
a
pe mult
imea muchiilor acestuia, returneaz
a un cuplaj
perfect in graful G de pondere minim
a (printre toate
cuplajele perfecte ale grafului; dac
a G nu are cuplaj perfect se anunt
a acest lucru). Ar
atat
i c
ase poate utiliza
acest algoritm pentru determinarea ecient
a a cuplajului de cardinal maxim intr-un graf oarecare. (3 puncte)
Problema 2. Ar
atat
i c
a se poate determina, intr-o
matrice cu elemente 0
si 1 dat
a, o mult
ime de cardinal
maxim de elemente egale cu 0
si care s
a nu se g
aseasc
a
pe aceea
si linie sau coloan
a, cu ajutorul unui algoritm de
ux maxim (pe o ret
ea convenabil denit
a). (3 puncte)
Problema 3. Digraful G = (V, E) descrie topologia interconectarii intr-o ret
ea de procesoare. Pentru ecare
procesor v V se cunoa
ste inc
arcarea sa load(v) R+ .
Se cere s
a se determine (cu ajutorul unei probleme de
ux maxim) un plan de echilibrare static
a a inc
arc
arii
procesoarelor : se va indica pentru ecare procesor ce
cantitate de inc
arcare va trimite
si la ce procesor astfel incit, in nal, toate procesoarele s
a aib
a aceea
si
inc
arcare. (4 puncte)
427
Problema 4. S
a se determine uxul de valoare maxim
a
in reteaua din gura de mai jos (explicind funct
ionarea
algoritmului lui Edmonds-Karp):
4
c
3
4
3
1
t
10
d
5
428
Setul de probleme 11
Problema 1. Consider
am urm
atoarele probleme de decizie:
PERF
Instant
a: G un graf.
Intrebare: Are G un cuplaj perfect?
3PERF
Instant
a: G un graf cu gradul ec
arui v
arf 3.
Demonstrat
i c
a PERF se reduce polinomial la
3PERF (4 puncte)
Problema 2. Demonstrat
i c
a nu exist
a nici
o permutare e1, e2, . . . , e10 a muchiilor grafului complet K5, astfel nc
at pentru orice i
{1, . . . , 9} muchiile ei
si ei+1 nu sunt adiacente
si, de asemenea, e1
si e10 nu sunt adian K5
cente n K5. (2 puncte)
429
430
Consider
am urm
atoarea problem
a de decizie:
3GCOL
Instant
a: G un graf.
Intrebare: Exist
a o D-ordonare a v
arfurilor lui G astfel nc
at
euristica de mai sus d
a o 3-colorare a lui G ?
Demonstrat
i c
a problema
3COL
Instant
a: G un graf.
Intrebare: Admite G o 3-colorare ?
431
Setul de probleme 11
Problema 1.
Fie R = (G, s, t, c) o ret
ea (G digraful suport, s V (G) intrarea, t V (G), t = s ie
sirea
ia de capacitate). Presupunem
si c : E(G) R+ funct
(f
ar
a a restr
ange generalitatea !) c
a st
si ts nu sunt arce
n G. Se dispune
si de o funct
ie de m
arginire inferioar
a
m : E(G) R+ , satisf
ac
and m(e) c(e) pe orice arc
e al lui G. Numim flux legal n R orice ux x n R cu
proprietatea c
a x(e) m(e) e E(G).
a) Demonstrati c
a pentru orice ux legal x
si orice
sect
iune (S, T ) n R are loc
c(ij)
m(ji).
v(x)
iS,jT,ijE(G)
iS,jT,jiE(G)
b) Se construie
ste din R ret
eaua R astfel:
si o ie
sire nou
a t;
- se adaug
a la G o intrare nou
a s
- pentru v V (G) se adaug
a arcul sv de capacitate
c(sv) = uvE(G) m(uv);
- pentru v V (G) se adaug
a arcul vt de capacitate
c(vt) = vuE(G) m(vu);
- se adaug
a arcele st
si ts de capacitate c(st) = c(ts) =
;
- se dene
ste c pe arcele ij ale lui G ca ind c(ij) =
c(ij) m(ij).
432
Demonstrat
i c
a exist
a un ux legal n ret
eaua
a
si
R dac
numai dac
a exist
a un ux de valoare M = eE(G) m(e)
n ret
eaua R = (G, s, t, c) (G este digraful construit mai
ia de capacitate denit
a mai sus).
sus, c este funct
c) Utiliz
and 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
maxim
a ntr-o ret
ea n care pe ecare arc este precizat
a
capacitatea
si marginea inferioar
a.
(2+2+2 puncte)
Problema 2. Dac
a H este un graf conex, A V (H)
o mult
ime nevid
a de v
arfuri ale sale
si w : E(H) R+ ,
atunci se nume
ste arbore Steiner corespunz
ator tripletei
(H, A, w) un arbore T (H, A, w) = (VT , ET ), subgraf al lui
H, cu proprietatea c
a
A VT
si suma costurilor muchiilor
a printre tot
i
sale, s[T (H, A, w)] = eET w(e), este minim
arborii subgrafuri ale lui H care cont
in A.
a) Justicati c
a determinarea lui T (H, A, w) se poate
face n timp polinomial pentru cazul c
and A = V (H)
sau |A| 2.
433
c) Ar
atat
i c
a exist
a un arbore Steiner T (Kn , A, c) cu proprietatea c
a v
arfurile sale care nu-s din A au gradul cel
put
in 3. Deducet
i (folosind aceast
a proprietate ) c
a
exist
a ntotdeauna un arbore Steiner T (Kn , A, c) cu cel
mult 2|A| 2 v
arfuri.
((1+1)+(1+2)+(2+1) puncte)
434
Setul de probleme 12
Problema 1. Fie v valoarea uxului maxim in ret
eaua
R = (G, c, s, t). Demonstrat
i c
a exist
a k st-drumuri in G,
si numerele reale nenegative
P1, ...., Pk (0 k |E(G)|),
v1 , ..., vk , astfel incit x : E(G) R , denit pentru orice
arc ij prin xij = 0 + t:ijPt vt , este ux in R de valoare
maxim
a v. (4 puncte)
Problema
2.
435
436