Sunteți pe pagina 1din 194

ALGORITMICA GRAFURILOR

Saptamana 1
C. Croitoru
croitoru@info.uaic.ro
FII
October 1, 2012
1 / 43
OUTLINE
1
Descrierea cursului
2
Interesul penru grafuri n Informatica
3
Elemente introductive de complexitate
4
Problemele pentru seminarul 1
2 / 43
DESCRIEREA CURSULUI
Pagina cursului
http://thor.info.uaic.ro/ croitoru/ag/
Obiective
Student ii vor familiarizat i cu not iunile si rezultatele de baza ale Teoriei
Algoritmice a Grafurilor, care vor aplicate n proiectarea de algoritmi
ecient i pentru diverse probleme de optimizare combinatorica.
Tematica Generala
Clase de Complexitate, Vocabular al Teoriei Grafurilor, Probleme de
drum(parcurgeri, drumuri minime, conexiune), Arbori part iali de cost
minim (union-nd, complexitate amortizata), Cuplaje, Fluxuri, Reduceri
polinomiale pentru probleme de decizie pe grafuri, Abordari ale
problemelor NP-dicile, Grafuri Planare.
3 / 43
DESCRIEREA CURSULUI
Pagina cursului
http://thor.info.uaic.ro/ croitoru/ag/
Obiective
Student ii vor familiarizat i cu not iunile si rezultatele de baza ale Teoriei
Algoritmice a Grafurilor, care vor aplicate n proiectarea de algoritmi
ecient i pentru diverse probleme de optimizare combinatorica.
Tematica Generala
Clase de Complexitate, Vocabular al Teoriei Grafurilor, Probleme de
drum(parcurgeri, drumuri minime, conexiune), Arbori part iali de cost
minim (union-nd, complexitate amortizata), Cuplaje, Fluxuri, Reduceri
polinomiale pentru probleme de decizie pe grafuri, Abordari ale
problemelor NP-dicile, Grafuri Planare.
4 / 43
DESCRIEREA CURSULUI
Pagina cursului
http://thor.info.uaic.ro/ croitoru/ag/
Obiective
Student ii vor familiarizat i cu not iunile si rezultatele de baza ale Teoriei
Algoritmice a Grafurilor, care vor aplicate n proiectarea de algoritmi
ecient i pentru diverse probleme de optimizare combinatorica.
Tematica Generala
Clase de Complexitate, Vocabular al Teoriei Grafurilor, Probleme de
drum(parcurgeri, drumuri minime, conexiune), Arbori part iali de cost
minim (union-nd, complexitate amortizata), Cuplaje, Fluxuri, Reduceri
polinomiale pentru probleme de decizie pe grafuri, Abordari ale
problemelor NP-dicile, Grafuri Planare.
5 / 43
DESCRIEREA CURSULUI
Competent e acumulate
Utilizarea grafurilor ca limbaj de modelare formala. Cunoasterea
algoritmilor de baza pentru problemele clasice pe grafuri.
Recunoasterea complexitat ii de calcul pentru probleme de
optimizare.
Metode de predare
Prezentari video ale slide-urilor (cont inand notele de curs) disponibile in
format pdf la inceputul semestrului.
http://thor.info.uaic.ro/ croitoru/ag/ag 12-13 allinone.pdf
Tematica seminariilor
Fiecare seminar dezbate cateva probleme (unele dintre ele dicile !)
pentru a aprofunda subiectele introduse la curs. Toate problemele sunt
postate la nceputul semestrului astfel ncat student ii interesat i sa caute
solut ii originale sau sa studieze probleme similare n bibliograa nrudita.
6 / 43
DESCRIEREA CURSULUI
Competent e acumulate
Utilizarea grafurilor ca limbaj de modelare formala. Cunoasterea
algoritmilor de baza pentru problemele clasice pe grafuri.
Recunoasterea complexitat ii de calcul pentru probleme de
optimizare.
Metode de predare
Prezentari video ale slide-urilor (cont inand notele de curs) disponibile in
format pdf la inceputul semestrului.
http://thor.info.uaic.ro/ croitoru/ag/ag 12-13 allinone.pdf
Tematica seminariilor
Fiecare seminar dezbate cateva probleme (unele dintre ele dicile !)
pentru a aprofunda subiectele introduse la curs. Toate problemele sunt
postate la nceputul semestrului astfel ncat student ii interesat i sa caute
solut ii originale sau sa studieze probleme similare n bibliograa nrudita.
7 / 43
DESCRIEREA CURSULUI
Competent e acumulate
Utilizarea grafurilor ca limbaj de modelare formala. Cunoasterea
algoritmilor de baza pentru problemele clasice pe grafuri.
Recunoasterea complexitat ii de calcul pentru probleme de
optimizare.
Metode de predare
Prezentari video ale slide-urilor (cont inand notele de curs) disponibile in
format pdf la inceputul semestrului.
http://thor.info.uaic.ro/ croitoru/ag/ag 12-13 allinone.pdf
Tematica seminariilor
Fiecare seminar dezbate cateva probleme (unele dintre ele dicile !)
pentru a aprofunda subiectele introduse la curs. Toate problemele sunt
postate la nceputul semestrului astfel ncat student ii interesat i sa caute
solut ii originale sau sa studieze probleme similare n bibliograa nrudita.
8 / 43
DESCRIEREA CURSULUI
Bibliograe
CROITORU C., Tehnici de baza n optimizarea combinatorie,
Editura Univ. Al. I. Cuza Iasi, Iasi,1992.
CROITORU C., Introducere in proiectarea algoritmilor
paraleli, Editura Matrix Rom, Bucuresti, 2002.
TOMESCU I., Probleme de combinatorica si teoria grafurilor,
Editura did. si ped., Bucuresti,1981.
DIESTEL R., Graph Theory, Electronic Edition.
CORMEN T.H., Leiserson C.E., Rivest R.L., Stein C.,
Introduction to Algorithms,MIT Press 2001.
Suplimentar
http://thor.info.uaic.ro/ croitoru/ag/resurse bibliograce (optionale)
9 / 43
DESCRIEREA CURSULUI
Bibliograe
CROITORU C., Tehnici de baza n optimizarea combinatorie,
Editura Univ. Al. I. Cuza Iasi, Iasi,1992.
CROITORU C., Introducere in proiectarea algoritmilor
paraleli, Editura Matrix Rom, Bucuresti, 2002.
TOMESCU I., Probleme de combinatorica si teoria grafurilor,
Editura did. si ped., Bucuresti,1981.
DIESTEL R., Graph Theory, Electronic Edition.
CORMEN T.H., Leiserson C.E., Rivest R.L., Stein C.,
Introduction to Algorithms,MIT Press 2001.
Suplimentar
http://thor.info.uaic.ro/ croitoru/ag/resurse bibliograce (optionale)
10 / 43
DESCRIEREA CURSULUI
EVALUARE
Punctajul minim de promovare: 50 puncte.
FORME:
Activitatea de la seminar (prezent a, participare la dezbateri):
0-18 puncte.
Teme pentru acasa (3 teme, n saptamanile 5, 9,13), maxim 14
puncte ecare: 0-42 puncte.
Testul nal scris (open books): 0-60 puncte.
Nota nala
Student ii care au obt inut minim 50 puncte, sunt sortat i descrescator
dupa punctajul nal si clasicat i dupa regulile ETCS cu adaptarile
precizate de FII.
Bonus: Seminar Special.
11 / 43
DESCRIEREA CURSULUI
EVALUARE
Punctajul minim de promovare: 50 puncte.
FORME:
Activitatea de la seminar (prezent a, participare la dezbateri):
0-18 puncte.
Teme pentru acasa (3 teme, n saptamanile 5, 9,13), maxim 14
puncte ecare: 0-42 puncte.
Testul nal scris (open books): 0-60 puncte.
Nota nala
Student ii care au obt inut minim 50 puncte, sunt sortat i descrescator
dupa punctajul nal si clasicat i dupa regulile ETCS cu adaptarile
precizate de FII.
Bonus: Seminar Special.
12 / 43
DESCRIEREA CURSULUI
EVALUARE
Punctajul minim de promovare: 50 puncte.
FORME:
Activitatea de la seminar (prezent a, participare la dezbateri):
0-18 puncte.
Teme pentru acasa (3 teme, n saptamanile 5, 9,13), maxim 14
puncte ecare: 0-42 puncte.
Testul nal scris (open books): 0-60 puncte.
Nota nala
Student ii care au obt inut minim 50 puncte, sunt sortat i descrescator
dupa punctajul nal si clasicat i dupa regulile ETCS cu adaptarile
precizate de FII.
Bonus: Seminar Special.
13 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
A nice visualization by Akshay Java of network analysis of Twitter.
14 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
Interest in scale-free networks started in 1999 with work by
Albert-Laszlo Barabasi and colleagues at the University of Notre
Dame.
15 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
World.png
A small-world network is a type of mathematical graph in which
most nodes are not neighbors of one another, but most nodes can
be reached from every other by a small number of hops or steps.
16 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
Kondi Trust Networks with PGP and RDF.
17 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
Graph-based knowledge representation formalisms: Bayesian
Networks (BNs), Semantic Networks (SNs), Conceptual Graphs
(CGs), Formal Concept Analysis (FCA), CP-nets, GAI-nets, etc.
18 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
Argumentation Frameworks.
19 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
Environmental Sensor Networks (ESN), Object Sensor Networks
(OSN) or Body Sensor Network (BSN) operate a variety of
dierent protocols for the specic application environment.
20 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
Shot.png
Graph-based Data Basis.
21 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
Visualization systems.
22 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
Madrid-Metro.
23 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
A set of such triples is called an RDF graph.
24 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
Utilizing ASP for Generating and Visualizing Argumentation
Frameworks.
25 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
a
b
26 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
a
?
b
27 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
a
NO
b
28 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
a
b
29 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
a
b
?
30 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
a
b
YES
31 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
a
b
c
d
e
f
32 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
a
?
b
c
d
e
f
33 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
a
YES
b
c
d
e
f
EXTENSION
34 / 43
INTERESUL PENTRU GRAFURI

IN INFORMATIC

A
Visualizing a FCA lattice.
35 / 43
ELEMENTE INTRODUCTIVE DE COMPLEXTATE
(ag 12-13 allinone.pdf, primul capitol)
P:
Clasa problemelor (de decizie) pentru care exista algoritmi
deterministi cu timp polinomial de rezolvare.
NP:
Clasa problemelor (de decizie) pentru care exista algoritmi
nedeterministi cu timp polinomial de rezolvare.
P NP (Incluziune stricta ?)
36 / 43
ELEMENTE INTRODUCTIVE DE COMPLEXTATE
Problema P se reduce polinomial la problema Q, daca orice intrare
a problemei P se poate transforma n timp polinomial ntr-o intrare
a problemei Q, astfel ncat rezolvand Q pe aceasta intrare se obt ine
raspunsul (corect) pentru P.
Denit ie
Problema de decizie P se numeste NP-dicila (NP-hard) daca orice
problema din NP se reduce polinomial la P.
Denit ie
Problema de decizie P se numeste NP-completa daca este
NP-dicila si n plus apart ine la NP.
37 / 43
PROBLEMELE PENTRU SEMINARUL 1
1
Fie a, b N. Demonstrat i ca n
a
= O(n
b
) daca si numai daca
a b. Demonstrat i ca n
a
= O(e
n
) si ca nu are loc e
n
= O(n
a
)
(e este baza logaritmului natural).
2
Argumentat i o evaluare de tipul T(n) = (.) pentru timpul de
executie a algoritmului:
Suma Tripla (n)
s 0
for i = 1, n do
for j = i , n do
for k = j , n do
s s + 1
38 / 43
PROBLEMELE PENTRU SEMINARUL 1
3
Consideram urmatoarele doua funct ii:
F(n)
if (n = 1) return true
else return G(n 1)
G(n)
if (n = 1) return false
else return F(n 1)
Stabilit i si argumentat i valorile F(2012) si G(2013).
39 / 43
PROBLEMELE PENTRU SEMINARUL 1
4
Pentru nmult irea a doua numere ntregi se poate folosi algoritmul descris
mai jos prin doua exemple. Se observa ca operat iile efectuate sunt doar
nmult irea cu doi, mpart irea ntreaga la doi si adunarea numerelor ntregi.
48 17 29 135
48 17 29 135
24 34 14 270
12 68 7 540
6 136 3 1080
3 272 1 2160
1 544 ==========
============== 3915
816
(se aduna numerele de pe coloana 2 care au pe coloana 1 numere impare)
Scriet i o funct ie recursiva pentru produsul a doua numere ntregi care sa
corespunda acestui algoritm si demonstrat i-i corectitudinea. Stabilit i
complexitatea timp T(n) pentru aceasta funct ie (n este numarul bit ilor
necesari reprezentarii binare a ecaruia dintre cei doi factori).
40 / 43
PROBLEMELE PENTRU SEMINARUL 1
5
a)

Infasuratoarea convexa a n puncte P
i
(x
i
, y
i
), i = 1, n din plan,
este cel mai mic poligon convex (n raport cu incluziunea) care
cont ine toate cele n puncte. Demonstrat i ca daca dispunem de un
algoritm care sa determine varfurile nfasuratoarei convexe a n
puncte date cu complexitatea timp T(n) atunci putem sorta un
vector ntreg n-dimensional n timpul T(n).
b) Dat i doua exemple de algoritmi de sortare. Ce complexitate au ?
41 / 43
PROBLEMELE PENTRU SEMINARUL 1
6
Numim pin un arbore cu macar trei noduri cu proprietatea ca
unicul vecin al oricarei frunze (nod cu un singur vecin) are exact
doi vecini. Pentru un arbore T cu cel put in trei noduri, notam cu
pin(T) subarborele lui T care este pin si are numar maxim de
noduri.
Descriet i un algoritm care, pentru T dat, construieste pin(T).
Un pin
Arborele T
Pin(T)
Arborele T
Pin(T)
42 / 43

INTREB

ARI ?
Mult umesc!
43 / 43
ALGORITMICA GRAFURILOR
Saptamana 2
C. Croitoru
croitoru@info.uaic.ro
FII
October 8, 2012
1 / 10
OUTLINE
1
Vocabular al teoriei grafurilor
(ag 12-13 allinone.pdf pag. 17 )
2
Problemele pentru seminarul 2
2 / 10
Vocabular-Denit ia unui graf
Mult imi stabile
SM Intrare: G un graf, k N.
Intrebare: Exista S mult ime stabila n G,
cu |S| k?
NP-completa (Karp, 1972).
Cuplaje
P2 Intrare: G un graf.
Iesire: (G) si un martor:
M cuplaj n G, cu |M| = (G).
Polinomial rezolvabila ( Edmonds, 1965).
3 / 10
Vocabular-Denit ia unui graf
Mult imi stabile
SM Intrare: G un graf, k N.
Intrebare: Exista S mult ime stabila n G,
cu |S| k?
NP-completa (Karp, 1972).
Cuplaje
P2 Intrare: G un graf.
Iesire: (G) si un martor:
M cuplaj n G, cu |M| = (G).
Polinomial rezolvabila ( Edmonds, 1965).
4 / 10
Vocabular-Denit ia unui graf
Colorarea varfurilor
COL Intrare: G un graf, k N.
Intrebare: Admite G o k-colorare?
Este NP-completa chiar pentru k = 3.
Colorarea muchiilor
P4 Intrare: G un graf.
Iesire:

(G) si un martor: o

(G)-colorare
a muchiilor lui G.
Este NP-completa chiar daca e usor aproximabila.
5 / 10
Vocabular-Denit ia unui graf
Colorarea varfurilor
COL Intrare: G un graf, k N.
Intrebare: Admite G o k-colorare?
Este NP-completa chiar pentru k = 3.
Colorarea muchiilor
P4 Intrare: G un graf.
Iesire:

(G) si un martor: o

(G)-colorare
a muchiilor lui G.
Este NP-completa chiar daca e usor aproximabila.
6 / 10
Vocabular-Denit ia unui graf
Izomorsm
ISO Intrare: G, H grafuri.
Intrebare: G

= H?
Nu se stie daca e din P dar nici nu s-a aratat ca e NP-completa.
Izomorsm
SISO Intrare: G, H grafuri.
Intrebare: Are G un subgraf G

astfel ca G


= H?
Este NP-completa.
7 / 10
Vocabular-Denit ia unui graf
Izomorsm
ISO Intrare: G, H grafuri.
Intrebare: G

= H?
Nu se stie daca e din P dar nici nu s-a aratat ca e NP-completa.
Izomorsm
SISO Intrare: G, H grafuri.
Intrebare: Are G un subgraf G

astfel ca G


= H?
Este NP-completa.
8 / 10
Vocabular
1
Variat ii n denit ia unui graf
2
Grade
3
Subgrafuri
4
Operat ii cu grafuri
5
Clase de grafuri
6
Drumuri si circuite
7
Conexiune
8
Matrici asociate
9
Structuri de date
9 / 10
Problemele pentru seminarul 2
Se vor discuta (cel put in) patru probleme dintre urmatoarele:
1
Problema 1, Setul 1
2
Problema 2, Setul 1
3
Problema 4, Setul 1
4
Problema 4, Setul 7
5
Problema 2, Setul 3
6
Problema 1, Setul 8
10 / 10
ALGORITMICA GRAFURILOR
Saptamana 3
C. Croitoru
croitoru@info.uaic.ro
FII
October 15, 2012
1 / 11
OUTLINE
1
Vocabular al teoriei grafurilor
(ag 12-13 allinone.pdf pag. 50 67)
2
Probleme de drumn (di)grafuri
(ag 12-13 allinone.pdf pag. 68 72 )
3
Problemele pentru seminarul 3
2 / 11
Vocabular
1
Variat ii n denit ia unui graf
2
Grade
3
Subgrafuri
4
Operat ii cu grafuri
5
Clase de grafuri
6
Drumuri si circuite
7
Conexiune
8
Matrici asociate
9
Structuri de date
3 / 11
Probleme de drum
1
Parcurgeri sistematice
BFS
DFS
Componente conexe, tari conexe !!! (pentru examen; algoritmica
usoara !!!)
4 / 11
Problemele pentru seminarul 3
Acesta este un seminar special, cu probleme foarte usoare, avand ca
singur scop xarea unor not iuni.
1
Fie G
1
, G
2
, G
3
trei grafuri. Se stie ca G
1

= G
2
si ca G
2

= G
3
.
Rezulta ca G
1

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

(G), indicele cromatic al grafului de la problema 16.


(justicare)
11 / 11
ALGORITMICA GRAFURILOR
Saptamana 4
C. Croitoru
croitoru@info.uaic.ro
FII
October 22, 2012
1 / 13
OUTLINE
1
Probleme de drumn (di)grafuri
(ag 12-13 allinone.pdf pag. 73 . . . )
2
Problemele pentru seminarul 4
2 / 13
Probleme de drum
Drumuri de cost minim
P1 Date G digraf;a : E(G) R; s, t V(G),s = t.
Sa se determine D

st
D
st
, astfel nct
a(D

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

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

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

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

ij
) = min{a(D
ij
) | D
ij
D
ij
}.
3 / 13
Drumuri de cost minim
Rezolvarea problemei P2
Teorema 1. Fie G = (V, E) digraf, V = {1, . . . , n}, s V si
a : E R, astfel nct
(I ) C circuit n G, a(C) > 0.
Atunci (u
1
, . . . , u
n
) este o solut ie a sistemului
()

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

si
D
si
astfel nct a(D

si
) = u
i
si
a(D

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

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

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

j
then
{ u
j
u
j
+ a
j

j
; nainte[j ] j

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

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

Complexitatea O(n
3
), daca determinarea minimului din pasul 2
necesita O(n) operat ii.
Testarea n O(n
3
) a existent ei unui circuit C de cost negativ n
digraful G !
8 / 13
Problemele pentru seminarul 4
1
Problema 1, Setul 3
2
Problema 3, Setul 6
3
3-4 probleme din lista urmatoare :)
9 / 13
Probleme pentru seminarul 4
1
Sa se construiasca o funct ie care sa recunoasca un turneu. La intrare
aceasta va primi un digraf G = ({1, ..., n}, E) reprezentat cu ajutorul
listelor de adiacent a si va returna true sau false. Complexitatea timp?.
2
Sa se construiasca o funct ie care primind la intrare un digraf
G = ({1, ..., n}, E) reprezentat cu ajutorul listelor de adiacent a sa
returneze inversul lui G reprezentat cu ajutorul listelor de adiacent a.
Complexitatea timp trebuie sa e O(n +|E|).
3
Se considera un graf G = ({1, ..., n}, E) reprezentat cu ajutorul matricii
de adiacent a. Mult imea de n 1 muchii A este astfel ca T = (V, A) este
arbore part ial al lui G. Construit i un algoritm care sa listeze circuitele care
se formeaza prin adaugarea muchiilor din E A la T. Reprezentarea lui
T trebuie sa permita depistarea ecarui astfel de circuit n timpul O(n).
10 / 13
Probleme pentru seminarul 4
4
Sa se construiasca o funct ie care sa determine gradul maxim al unui varf
al unui graf. La intrare aceasta va primi un graf G = ({1, ..., n}, E)
reprezentat cu ajutorul listelor de adiacent a si va returna (G). Stabilit i
complexitatea timp a algoritmului folosit.
5
Construit i o funct ie care primind la intrare graful G = (V, E) reprezentat
cu ajutorul listelor de adiacent a si k, un numar ntreg pozitiv, returneaza
graful G
(k)
cu aceeasi mult ime de virfuri ca si G , n care doua virfuri
distincte sunt adiacente daca si numai daca n graful init ial sunt conectate
printr-un drum de lungime cel mult k. Care este complexitatea timp?
6
Graful conex G = (V, E) cu n varfuri si m muchii, este reprezentat cu
ajutorul listelor de adiacent a. Dat i un algoritm care sa construiasca n
timpul O(n + m) listele de adiacent a ale unui arbore part ial al lui G.
11 / 13
Probleme pentru seminarul 4
7
Fie G = (V, E) un graf cu ordinul |V| 2 si T = (V, E
T
) un arbore
part ial al lui G, dat de tabloul (p[v])
vV
, unde p[v] este parintele lui v n
T: varful dinaintea lui v de pe drumul unic de la o radacina xata r , la v,
n T (p[r ] = r ). Dat i un algoritm care sa determine, n timpul O(|V|), un
varf v
0
pendant (frunza) n T si apoi demonstrat i ca G v
0
este conex.
8
Digraful G = (V, E) este dat prin listele de adiacent a. Sa se decida n
O(|V| +|E|) daca se pot ordona varfurile sale: v
i
1
, . . . , v
i
|V|
, astfel ncat
daca v
i
j
apare n lista de adiacent a a lui v
i
k
atunci k < j .
9
Fie T = ({1, . . . , n}, E
T
) un arbore (n 2), dat de tabloul (p[v])
vV
,
unde p[v] este parintele lui v n T: varful dinaintea lui v de pe drumul
unic de la o radacina xata r , la v, n T (p[r ] = r ). Descriet i un algoritm
care sa construiasca , n timpul O(n), listele de adiacent a ale lui T.
12 / 13
Probleme pentru seminarul 4
10
Se considera un graf G = (V, E) (V = {1, . . . , n}), izomorf cu graful
circuit (cu cel put in 3 varfuri), G

= C
n
. Fiecare muchie e E are asociat
un cost real c(e). Aceste informat ii sunt disponibile n tablourile dreapta
si cost de dimensiune n cu semnicat ia: dreapta[v] = vecinul din dreapta
al lui v, iar costul muchiei {v, dreapta(v)} este cost[v]. Descriet i un
algoritm cat mai ecient pentru aarea unui arbore part ial al lui G de
cost minim.
11
Se considera un graf G = (V, E) (V = {1, . . . , n}), reprezentat cu
ajutorul listelor de adiacent a. Se stie ca graful are gradul minim (G)
marginit de o constanta c N. Descriet i un algoritm cu complexitatea
timp O(n) pentru determinarea lui (G) si a unui varf v
0
V cu gradul
n G egal cu (G).
13 / 13
ALGORITMICA GRAFURILOR
Saptamana 5
C. Croitoru
croitoru@info.uaic.ro
FII
October 29, 2012
1 / 14
OUTLINE
1
Probleme de drum minim
(ag 12-13 allinone.pdf pag. 117 124 )
2
Probleme de conexiune
(ag 12-13 allinone.pdf pag. 124 149 )
3
Problemele pentru seminarul 5
4
Prezentarea temei pentru acasa
2 / 14
Probleme de drum minim
Rezolvarea problemei P3
P3 Date G digraf; a : E(G) R.
Sa se determine D

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

ij
) = min{a(D
ij
) | D
ij
D
ij
}.
O(n
4
)
Iterarea algoritmului lui Bellman-Ford pentru s = 1, n
O(n
3
)
Iterarea algoritmului lui Dijkstra, dupa preprocesare!
O(n
3
log n)

Inmult iri matriciale!


O(n
3
)
Algoritmul lui Floyd-Warshal
3 / 14
Probleme de drum minim
Rezolvarea problemei P3
P3 Date G digraf; a : E(G) R.
Sa se determine D

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

ij
) = min{a(D
ij
) | D
ij
D
ij
}.
O(n
4
)
Iterarea algoritmului lui Bellman-Ford pentru s = 1, n
O(n
3
)
Iterarea algoritmului lui Dijkstra, dupa preprocesare!
O(n
3
log n)

Inmult iri matriciale!


O(n
3
)
Algoritmul lui Floyd-Warshal
4 / 14
Probleme de drum minim
Rezolvarea problemei P3
P3 Date G digraf; a : E(G) R.
Sa se determine D

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

ij
) = min{a(D
ij
) | D
ij
D
ij
}.
O(n
4
)
Iterarea algoritmului lui Bellman-Ford pentru s = 1, n
O(n
3
)
Iterarea algoritmului lui Dijkstra, dupa preprocesare!
O(n
3
log n)

Inmult iri matriciale!


O(n
3
)
Algoritmul lui Floyd-Warshal
5 / 14
Probleme de drum minim
Rezolvarea problemei P3
P3 Date G digraf; a : E(G) R.
Sa se determine D

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

ij
) = min{a(D
ij
) | D
ij
D
ij
}.
O(n
4
)
Iterarea algoritmului lui Bellman-Ford pentru s = 1, n
O(n
3
)
Iterarea algoritmului lui Dijkstra, dupa preprocesare!
O(n
3
log n)

Inmult iri matriciale!


O(n
3
)
Algoritmul lui Floyd-Warshal
6 / 14
Probleme de drum minim
Rezolvarea problemei P3
P3 Date G digraf; a : E(G) R.
Sa se determine D

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

ij
) = min{a(D
ij
) | D
ij
D
ij
}.
O(n
4
)
Iterarea algoritmului lui Bellman-Ford pentru s = 1, n
O(n
3
)
Iterarea algoritmului lui Dijkstra, dupa preprocesare!
O(n
3
log n)

Inmult iri matriciale!


O(n
3
)
Algoritmul lui Floyd-Warshal
7 / 14
Rezolvarea problemei P3
Algoritmul lui Floyd-Warshal
1: for i := 1 to n do
for j := 1 to n do
{ nainte(i , j ) i ;
if i = j then { a
ii
0;nainte(i , i ) 0 }
}
2: for m := 1 to n do
for i := 1 to n do
for j := 1 to n do
if a
ij
> a
im
+ a
mj
then
{ a
ij
a
im
+ a
mj
;
nainte(i , j ) nainte(m, j )
if (i = j a
ij
< 0) then
return circuit negativ
}
8 / 14
Probleme de conexiune
Teorema lui Menger
Fie G = (V, E) (di)graf si X, Y V. Atunci numarul maxim de
XY-drumuri disjuncte este egal cu cardinalul minim al unei
mult imi XY-separatoare.
Fie G = (V, E) un (di)graf si s, t V, astfel nct s = t, st / E.
Exista k drumuri intern disjuncte de la s la t n G daca si numai
daca ndepartnd mai put in de k vrfuri diferite de s si t, n
(di)graful ramas exista un drum de la s la t.
9 / 14
Probleme de conexiune
Consecint a Un graf G este p-conex daca G = K
p
sau
st E(G) exista p drumuri intern disjuncte de la s la t n G.
Determinarea numarului k(G) de conexiune a grafului G (cea mai
mare valoare a lui p pentru care G este p-conex) se reduce la
determinarea lui
min
stE(G)
p({s}, {t}; G)
(care se poate obt ine n timp polinomial.)
10 / 14
Probleme de conexiune
Teorema lui Konig
Daca G = (S, R; E) este un graf bipartit, atunci cardinalul maxim
al unui cuplaj este egal cu cardinalul minim al unei mult imi de
vrfuri incidente cu toate muchiile grafului.
Consecint a: Daca G e graf bipartit, atunci :
(G) = |G| (G).
11 / 14
Probleme de conexiune
Teorema lui Hall
Daca A = (A
i
; i I ) este o familie de submult imi ale lui S, o
funct ie r
A
: I S cu proprietatea ca r
A
(i ) A
i
, i I se numeste
funct ie de reprezentare pentru familia A.

In acest caz,
(r
A
(i ); i I ) formeaza un sistem de reprezentant i ai familiei A.
Daca funct ia de reprezentare r
A
este injectiva atunci r
A
(I ) S se
numeste sistem de reprezentant i distinct i ai familiei A, sau
transversala.
Teorema lui Hall Familia A = (A
i
; i I ) de submult imi ale lui S
admite o transversala daca si numai daca
(H) |A(J)| |J| J I .
12 / 14
Probleme de conexiune
Structura grafurilor p-conexe
Teorema lui Dirac
Daca G = (V, E) este un graf p-conex p 2, atunci prin orice p
vrfuri ale sale trece un circuit.
Teorema lui Erdos si Chvatal
Fie G un graf p-conex. Daca (G) p atunci G este hamiltonian.
13 / 14
Problemele pentru seminarul 5
Se vor discuta (cel put in) patru probleme dintre urmatoarele:
1
Problema 4, Setul 3
2
Problema 2, Setul 4
3
Problema 3, Setul 5
4
Problema 1, Setul 4
5
Problema 4, Setul 4
6
Problema 1, Setul 6
14 / 14
ALGORITMICA GRAFURILOR
Saptamana 6
C. Croitoru
croitoru@info.uaic.ro
FII
November 5, 2012
1 / 12
OUTLINE
1
Arbori (ag 12-13 allinone.pdf pag. 150 182 )
2
Problemele pentru seminarul 6
2 / 12
Arbori
Teoreme de caracterizare
Teorema. Fie G = (V, E) un graf.
Urmatoarele armat ii snt echivalente:
(i) G este arbore (este conex si fara circuite).
(ii) G este conex si este minimal cu aceasta proprietate.
(iii) G este fara circuite si este maximal cu aceasta proprietate.
Teorema. Urmatoarele armat ii snt echivalente pentru un graf
G = (V, E) cu n vrfuri:
(i) G este arbore.
(ii) G este conex si are n 1 muchii.
(iii) G este fara circuite si are n 1 muchii.
(iv) G = K
n
pentru n = 1, 2 si G ,= K
n
pentru n 3 si adaugarea
unei muchii la G produce exact un circuit.
3 / 12
Arbori
Generarea arborilor part iali ai unui graf
generare-arbori-part iali(int i );
// se genereaza tot i arborii part iali ai lui G
avnd drept prime i 1 muchii,elementele
T(1), . . . , T(i 1)
ale tabloului E (ordonate crescator).
variabile locale:
j 1, . . . m; S, lista de vrfuri; x V;
if i = n then
// T(1), . . . , T(n 1) formeaza un
arbore part ial ;
prelucreaza T ( listeaza, memoreaza etc.)
4 / 12
Arbori
Generarea arborilor part iali ai unui graf (continuare)
else
if i = 1 then
for j := 1 to d
G
(v
0
) do
T[i ] j ;
A:
generare-arbori-part iali(i + 1);
B:

else
for j := T[i 1] + 1 to m (n 1) + i do
if

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

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

T
K
n

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

T
G
astfel nct
c(T

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

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

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


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

= v
s
v
j
unde v
j
V(T
k
j

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

) T, unde T este arborele obt inut din T


k
s
si
T
k
j

la care adaugam muchia e

.
Teorema. Daca G = (V, E) este un graf conex cu V = 1, 2, . . . , n
atunci T
n1
1
construit de algoritmul descris mai sus este arbore part ial de
cost minim.
7 / 12
Arbori
Algoritmul lui Prim (implementare Dijkstra )
Arborele T
k
s
va ntotdeauna arborele cu cele mai multe vrfuri
dintre arborii familiei curente.
La ecare pas k > 0 avem un arbore T
s
= (V
s
, E
s
) cu k + 1 vrfuri,
ceilalt i n k 1 avnd cte un singur vrf.
Fie [1..n] cu componente din V si [1..n] cu componente reale a.. :
j V V
s
,

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

V V
s
a..
[j

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

;
E
s
:= E
s
[j

]j

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

j ] then
[j ] c[j

j ]; [j ] : j

Complexitatea algoritmului este O(n


2
).
8 / 12
Arbori
Algoritmul lui Kruskal

In metoda generala se va alege la ecare pas drept arbore T


k
s
unul din
cei doi arbori cu proprietatea ca snt unit i printr-o muchie de cost
minim printre toate muchiile cu extremitat ile pe arbori diferit i.
Daca notam cu T = E(T
k
), atunci algoritmul poate descris astfel:
1. Sorteaza E = (e
1
, e
2
, . . . , e
m
) astfel nct:
c(e
1
) c(e
2
) . . . c(e
m
).
1.2 T ; i 1;
2. while i m do
if T e
i
)
G
nu are circuite then
T T e
i
;
i + +
Pasul 1 necesita O(mlog n) operat ii.
Pentru realizarea ecienta a testului din pasul 2 va necesar sa
reprezentam la ecare pas k, V(T
k
1
), V(T
k
2
), . . . , V(T
k
n
) si sa testam
daca muchia e
i
curenta are ambele extremitat i n aceeasi mult ime.
Se vor folosi pentru reprezentarea acestor mult imi, arbori (care nu snt n
general subarbori ai lui G).
9 / 12
Arbori
Union-Find - Tarjan
pred[1..n]:
pred[v]= vrful dinaintea lui v de pe drumul la v de la radacina
arborelui care memoreaza mult imea la care apart ine v;
pred[v] = 0 v este radacina arborelui;
pred[v] < 0 v este radacina a unui arbore si pred[v] este
cardinalul mult imii memorate n el.
Adaugam n pasul 1 init ializarea 1.3 si modicam pasul 2 al algoritmului
astfel:
1.3 for v V do pred[v] 1;
2. while i m do
e e
i
= vw;
x nd(v); y nd(w);
if x ,= y then union(x, y); T T e
i

i + +
10 / 12
Arbori
Union-Find - Tarjan
Procedura union si funct ia nd sunt:
procedure union(v, w : V);
//v si w sunt radacini, variabila locala ntreaga t
t pred[v] + pred[w];
if pred[v] > pred[w] then pred[v] w; pred[w] t
else pred[w] v; pred[v] t
function nd(v : V); //variabile ntregi locale i , j , k;
i v;
while pred[i ] > 0 do i pred[i ];
j v;
while pred[j ] > 0 do
k pred[j ]; pred[j ] i ; j k;
return i
Complexitatea pasului 2 este O(m (m, n)), unde (m, n) este
inversa funct iei lui Ackermann.
11 / 12
Problemele pentru seminarul 6
Se vor discuta (cel put in) patru probleme dintre urmatoarele:
1
Problema 1, Setul 13
2
Problemmele 1,2,4 Setul 5
3
Problema 1, Setul 7
4
Problemele 1,2 Setul 17
12 / 12
ALGORITMICA GRAFURILOR
Saptamana 7
C. Croitoru
croitoru@info.uaic.ro
FII
November 12, 2012
1 / 9
OUTLINE
1
Cuplaje (ag 12-13 allinone.pdf pag. 183 211 )
2
Problemele pentru seminarul 7
2 / 9
Cuplaje
Problema cuplajului maxim
Fie G = (V, E) un (multi)graf. Daca A E si v V, vom nota d
A
(v)
gradul vrfului v n graful part ial < A >
G
.
Se numeste cuplaj (sau mult ime independenta de muchii) al grafului
G, orice mult ime M de muchii cu proprietatea ca d
M
(v) 1, v V.
Notat ie: M
G
= {M | M E, M cuplaj n G}.
M M
G
, v V:
Daca d
M
(v) = 1, atunci v se numeste saturat de cuplajul M.
S(M): mult imea vrfurilor saturate de cuplajul M n graful G.
Daca d
M
(v) = 0, atunci v se numeste expus fat a de cuplajul M.
E(M): mult imea vrfurilor expuse fat a de cuplajul M.
Problema cuplajului maxim:
P1 Dat G = (V, E) un graf, sa se determine M

M
G
astfel nct
|M

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

F
G
astfel nct
|F

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

este un cuplaj de cardinal maximn G, iar


F

o acoperire de cardinal minimn G, atunci


|M

| +|F

| = n.
Dem. P1 echivalenta polinomial cu P2
4 / 9
Cuplaje
Grafuri bipartite
Teorema. (Hall, 1935) Fie G = (R, S; E) un graf bipartit. Exista
un cuplaj care satureaza varfurile lui R daca si numai daca
|N
G
(A)| |A| A R.
Teorema. (Konig,1930) Fie G = (R, S; E) un graf bipartit.
Cardinalul maxim al unui cuplaj este egal cu numarul minim de
varfuri prin ndepartarea carora se obt ine graful nul:
(G) = n (G)
5 / 9
Cuplaje
Cuplaje perfecte
Un cuplaj M n graful G astfel ncat S(M) = V(G) se numeste
cuplaj perfect sau 1-factor.
Pentru un graf oarecare H notam cu q(H) numarul componentelor
conexe de ordin impar ale lui H.
Teorema. (Tutte, 1947) Un graf G = (V, E) are un cuplaj
perfect daca si numai daca
(T) q(G S) |S| S V.
Berge (1958) a generalizat aceasta teorema stabilind ca
(G) =
1
2
(|V(G)| max
SV(G)
[q(G S) |S|] ).
6 / 9
Cuplaje
Problema cuplajului maxim
Fie G = (V, E) un graf si M M
G
un cuplaj al sau.
Denit ie: Se numeste drum alternat al lui G relativ la cuplajul M
orice drum P : v
0
, v
0
v
1
, v
1
, . . . , v
k1
, v
k1
v
k
, v
k
a. .
i = 1, k 1 {v
i 1
v
i
, v
i
v
i +1
} M = .
Vom desemna prin P mult imea muchiilor drumului P.
Denit ie: Se numeste drum de crestere al lui G relativ la cuplajul M
un drum alternat cu extremitat ile vrfuri distincte, expuse relativ la
cuplajul M.
Teorema.(Berge 1959) Un cuplaj M este de cardinal maximn graful G
daca si numai daca nu exista n G drumuri de crestere relativ la M.
Strategie de construire a unui cuplaj de cardinal maxim:
a) e M un cuplaj oarecare a lui G (eventual M = );
b) while P drum de crestere relativ la M do
M MP
7 / 9
Cuplaje
Problema cuplajului maxim
Hopcroft, Karp (1973)
0. M ;
1. repeat
Determina P o familie maximala ()
de drumuri minime de crestere;
for P P do M MP
until P = .
Complexitatea O(

nA) unde A este timpul gasirii familiei P.


Hopcroft si Karp au aratat cum se poate implementa pasul 1 pentru un
graf bipartit, astfel nct A = O(m + n): algoritm O(mn
1/2
) pentru
aarea unui cuplaj de cardinal maxim ntr-un graf bipartit.
Pentru un graf oarecare, structurile de date necesare obt inerii aceleeasi
complexitat i snt mult mai elaborate si au fost descrise de Micali si
Vazirani 1980.
8 / 9
Problemele pentru seminarul 7
Se vor discuta (cel put in) patru probleme dintre cele date la tema
1 si la seminarul 6 (nediscutate saptamana trecuta.)
9 / 9
ALGORITMICA GRAFURILOR
Saptamana 9
C. Croitoru
croitoru@info.uaic.ro
FII
November 26, 2012
1 / 16
OUTLINE
1
Fluxuri (ag 12-13 allinone.pdf pag. 212 . . . )
2
Problemele pentru seminarul 9
3
Prezentarea temei pentru acasa
2 / 16
Fluxuri
Problema uxului maxim
Numim ret ea (de transport) cu intrarea s si iesirea t, 4-uplul
R = (G, s, t, c) unde: - G = (V, E) este un digraf,
- s, t V; s = t; d
+
G
(s) > 0; d

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

) si |E| = m. Extindem funct ia c la


c : V V R
+
prin c((i , j )) =

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

j V
x
ji

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

j V
x
jt

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

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

r (D) denit prin


x
1
ij
=

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

i S

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

i S

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

r (P
k1
), P
k
este drum minim de crestere
relativ la x
k1
; k = 1, 2, . . .
Teorema 4. (Edmonds, Karp) Daca x = x
0
este un ux oarecare n
ret eaua R, atunci sirul de uxuri x
1
, x
2
, . . . obt inut din x
0
prin cresteri
succesive pe drumuri minime de crestere, are cel mult
mn
2
elemente (n cel
mult
mn
2
cresteri succesive, se obt ine un ux care nu admite drumuri de
crestere).
Teorema 5. (Edmonds- Karp 1972)Daca se modica algoritmul lui Ford
si Fulkerson cu precizarea alegerii bfs a vrfurilor etichetate n vederea
cercetarii, atunci, uxul maxim se obt ine n timpul O(m
2
n) .
10 / 16
Problemele pentru seminarul 9
Se vor discuta (cel put in) patru probleme dintre urmatoarele:
1
Problema 1, Setul 11
2
Problemele 1,3,4 Setul 10
3
Problema 1, Setul 11
4
Problema 4 Setul 7
5
Problema 1, Setul 7
11 / 16
T E M A
Problema 1.
Fie G = (V, E) un graf conex cu n varfuri si m muchii. Fiecare
muchie e E are asociat un cost real c(e), iar costurile muchiilor
sunt distincte.
a) Descriet i un algoritm care sa decida n timpul O(n + m) daca,
pentru o muchie data e
0
E, exista un arbore part ial de cost
minim al lui G care sa cont ina muchia e
0
.
b) Argumentat i corectitudinea algoritmului propus.
(2+2=4 puncte)
12 / 16
T E M A
Problema 2.
Pentru graful conex G = (V, E) cu n varfuri, m muchii si funct ia de cost
c : E R, se cunoaste lista muchiilor (cu costurile aferente) si un arbore
part ial de cost minim T = (V, E
T
). Arborele T este reprezentat de
vectorul parent cu n componente, n care pentru orice v V {s} avem
parent[v] = varful dinaintea lui v de pe unicul drum din T de la varful s
la v, iar parent[s] = s (s este un varf oarecare, xat). Se doreste sa se
actualizeze lista muchiilor si arborele T la operat iile de adaugare si de
stergere a unei muchii. Se cere sa se proiecteze algorimi de complexitate
O(n + m) pentru ecare din aceste operat ii (cu justicarea corectitudinii
si a complexitat ii timp). Mai precis, acesti algoritmi au:
a) La intrare o muchie e = uv noua si costul ei, iar la iesire noua lista de
muchii (E {e}) si vectorul parent reprezentand un arbore part ial de
cost minim n G + e.
b) La intrare o muchie e = uv existenta n graful G, iar la iesire noua
lista de muchii (E {e}) si vectorul parent reprezentand un arbore
part ial de cost minimn G e (daca acest arbore part ial mai exista; altfel
se returneaza mesajul ca graful nu mai este conex). (2+2 = 4 puncte)
13 / 16
T E M A
Problema 3.
Fie T un arbore cu un numar par de varfuri care nu are cuplaj
perfect. Demonstrat i ca exista n T un varf v
0
cu proprietatea ca
stergand v
0
din arborele T (si toate muchiile incidente cu v
0
) se
obt ine o padure cu macar doi arbori cu un numar impar de varfuri.
(2 puncte)
14 / 16
T E M A
Problema 4.
Un cuplaj M al unui graf G se numeste cuplaj tare daca subgraful
indus n G de mult imea varfurilor saturate de M este graful |M|K
2
.
Proiectat i un algoritm de complexitate O(n) pentru gasirea unui
cuplaj tare de cardinal maxim ntr-un arbore cu n varfuri.
Argumentat i corectitudinea acestui algoritm.
(2+2= 4 puncte)
15 / 16
T E M A
Solut iile se primesc
miercuri 5 decembrie ntre orele 12 si 14, la cabinetul C-402
Precizari
Este ncurajata asocierea n echipe formate din 2 student i care
sa realizeze n comun tema.
Depistarea unor solut ii copiate ntre echipe diferite conduce la
anularea punctajelor tuturor acestor echipe.
Nu e nevoie sa se rescrie enunt ul problemelor. Nu uitat i sa
trecet i numele si grupele din care fac parte membrii echipei la
nceputul lucrarii.
Este ncurajata redactarea latex a solut iilor.
Nu se primesc solut ii prin e-mail.
16 / 16
ALGORITMICA GRAFURILOR
Saptamana 10
C. Croitoru
croitoru@info.uaic.ro
FII
December 3, 2012
1 / 13
OUTLINE
1
Fluxuri (ag 12-13 allinone.pdf pag. 239 . . . )
2
Problemele pentru seminarul 10
2 / 13
Problema uxului maxim
Algoritmi de tip preux
Se numeste preux n ret eaua R, o funct ie x : E R astfel nct
(i ) 0 x
ij
c
ij
ij E
(ii ) i = s e
i
=

j :ji E
x
ji

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

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


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

2
then adauga j ca prim nod n L(p) }
else // s-a depistat sfrsitul listei
{ sterge i din L(p); parcurge toata lista A(i ) pentru calculul lui
d(i ) = min{d(j ) + 1; ij A(i ) r
ij
> 0}; introdu i n L(p);
pune pointerul curent al listei A(i ) la nceput }
}
}
9 / 13
Problema uxului maxim
Algoritmul Ahuja-Orlin
Lema. Numarul pomparilor nesaturate este cel mult 8n
2
n ecare
etapa a scalarii, deci O(n
2
log U) n total.
Teorema. (Ahuja-Orlin 1988) Algoritmul de tip preux cu scalarea
exceselor are complexitatea O(nm + n
2
log U).
10 / 13
Aplicat ii combinatorii
Aarea cuplajului maxim si a stabilei maxime ntr-un graf bipartit.
V
s
t
1
1
1
1
1
1
1
1
1
1
++
++
++
++
++
1
V
2
Daca x = (x
ij
) este un ux cu componente ntregi n R atunci se observa
ca mult imea de arce {ij | i V
1
, j V
2
x
ij
= 1} induce n graful G
bipartit un cuplaj M(x).

In plus, v(x) este cardinalul cuplajului M(x).
Reciproc, orice cuplaj din G induce o mult ime de arce neadiacente n G
1
;
daca pe ecare astfel de arc ij (i V
1
, j V
2
) se considera uxul x
ij
egal cu 1 si de asemenea x
si
= x
jt
= 1, si lund uxul x = 0 pe orice alt
arc, atunci uxul construit are valoarea |M|.
Rezolvnd problema uxului maxim pe ret eaua R se determina (pornind
de la uxul nul) n O(nm + n
2
log n) un cuplaj de cardinal maxim n
graful bipartit G.
11 / 13
Aplicat ii combinatorii
Aarea cuplajului maxim si a stabilei maxime ntr-un graf bipartit.
Fie (S, T) sect iunea de capacitate minima ce se obt ine n O(m), din
uxul maxim aat. Avem, c(S, T) = (G) (max-ow min-cut).
V
s
t
1
1
1
1
1
1
1
1
1
1
++
++
++
++
++
1
V
2
S
T
Cum (G) < , rezulta ca punnd S
i
= S V
i
si T
i
= T V
i
(i = 1, 2),
avem: |T
1
| +|S
2
| = (G), iar X = S
1
T
2
este mult ime stabila n
graful G (pentru a avea c(S, T) < ).

In plus, |X| = |V
1
T
1
| +|V
2
S
2
| = n (G).
Rezulta ca X este stabila de cardinal maxim, ntruct n (G) = (G)
(teorema lui Konig).
12 / 13
Problemele pentru seminarul 10
Se vor discuta (cel put in) patru probleme dintre urmatoarele:
1
Problemele 4,2 Setul 11
2
Problemele 1,4 Setul 16
3
Problema 2, Setul 15
4
Problema 2 Setul 18
5
Problema 1, Setul 19
13 / 13
ALGORITMICA GRAFURILOR
Saptamana 11
C. Croitoru
croitoru@info.uaic.ro
FII
December 10, 2012
1 / 13
OUTLINE
1
Fluxuri (ag 12-13 allinone.pdf pag. 260 280 )
2
Problemele pentru seminarul 11
2 / 13
Aplicat ii combinatorii ale uxurilor
Recunoasterea secvent elor digrace.
Date (d
+
i
)
i =1,n
si (d

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

G
(i ) = d

i
i = 1, n ?
Daca 0 d
+
i
n 1 si 0 d

i
n 1 i = 1, n si

i =1,n
d
+
i
=

i =1,n
d

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

i
Z),
construim ret eaua bipartita:
s
t
1
2
n
1
1
1
2
1
1
n
+
d1
+
+

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

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

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

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

i =1,n
d
i

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

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

ij P
ij direct
a
ij

ij P
ij invers
a
ji
.
Daca C este un C-drum nchis, a(C) se calculeaza dupa aceeasi formula,
dupa stabilirea unui sens de parcurgere a lui C.
10 / 13
Flux de cost minim
Solut ia problemei uxului de cost minim.
Daca P este drum de crestere relativ la uxul x, atunci x
1
= x

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

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

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

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

min(r (P), v v(x)) }


Complexitatea pentru pasul 2 este O(n
3
v), daca se pleaca de la uxul
nul. Se poate dovedi ca pasul 1 se poate implementa astfel ca numarul
iterat iilor sa e O(nm
2
logn).
12 / 13
Problemele pentru seminarul 11
Se vor discuta (cel put in) patru probleme dintre urmatoarele:
1
Problema 1 Setul 11
2
Problema 1 Setul 12
3
Problema 4, Setul 15
4
Problema 3 Setul 11
5
Problema 2, Setul 16
13 / 13
ALGORITMICA GRAFURILOR
Saptamana 12
C. Croitoru
croitoru@info.uaic.ro
FII
December 17, 2012
1 / 11
OUTLINE
1
Reduceri polinomiale pentru probleme de decizie pe
grafuri (ag 12-13 allinone.pdf pag. 281 320 )
2
Problemele pentru seminarul 12
2 / 11
Reduceri polinomiale
Stabila maxima.
SM
Instant a : G = (V, E) graf si k N.
Intrebare: Exista S mult ime stabila n G a. . |S| k ?
Teorema. (Karp 1972) 3SAT SM.
Exemplu: U = {u
1
, u
2
, u
3
, u
4
};
C = (u
1
u
3
u
4
) (u
1
u
2
u
4
) (u
2
u
3
u
4
); k = 4 + 3 = 7.
1
u u u
u u u u
u
1
2 2
3 3
4 4
-
- - -
a
a
a
a a
a
a
a
a
11
12
13
21
22
31
32
33
23
3 / 11
Reduceri polinomiale
Colorarea varfurilor.
COL
Instant a: G = (V, E) graf si p N

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

e
snt (a) (b) si (c) indicate n gura urmatoare:
a
b
c
8 / 11
Reduceri polinomiale
Probleme hamiltoniene.
e
e
e
u
v
v
v
1
2
p
1
2
p
(u,e ,1)
(u,e ,6)
(u,e ,1) (u,e ,6) (u,e ,1)
(u,e ,6)
1
2
p u
u
u u
u
u
a a
1 k
p
1
2
Exemplu:
a
a
1
2
1
2
3
4
1
1
2
2
2
2
4 4
3
3
4
4
9 / 11
Problema comisului voiajor
Algoritmi de aproximare.
CV Dat n Z
+
(n 3) si d : E(K
n
) R
+
, sa se determine H
0
circuit hamiltonian n graful complet K
n
cu d(H
0
) minim printre toate
circuitele hamiltoniene ale lui K
n
.
Algoritmi A, care pentru datele unei probleme CV vor oferi n timp
polinomial (n raport cu n) un circuit hamiltonian H
A
, care va aproxima
solut ia optima H
0
.
Masuri ale ecient ei unei astfel de euristici A pot considerate
numerele:
R
A
(n) = sup
d:E(K
n
)R
+
d(H
0
)=0
d(H
A
)
d(H
0
)
R
A
= sup
n3
R
A
(n).
Teorema. Daca exista un algoritm aproximativ A cu timp de lucru
polinomial pentru CV, astfel nct R
A
< , atunci CH se poate rezolva n
timp polinomial.
P = NP nu exista algoritm aproximativ A polinomial cu R
A
< .
10 / 11
Problemele pentru seminarul 12
11 / 11
ALGORITMICA GRAFURILOR
Saptamana 13
C. Croitoru
croitoru@info.uaic.ro
FII
January 14, 2013
1 / 14
LA MULTI ANI!
2 / 14
OUTLINE
1
Abordari ale unor probleme NP-dicile pe grafuri
(ag 12-13 allinone.pdf pag. 325 353 )
2
Problemele pentru seminarul 13
3
Prezentarea temei pentru acasa
3 / 14
Abordari ale problemelor NP-dicile
Colorarea varfurilor unui graf
Algoritmul greedy de colorare Fie G = (V, E), cu V = {1, 2, . . . , n} si
o permutare a lui V. Se construieste colorarea c ce utilizeaza (G, )
culori, c : {1, 2, . . . , n} {1, 2, . . . , (G, )}.
- c(
1
) 1; (G, ) 1; S
1
{
1
};
- for i 2 to n do
- { j 0;
- repeat
- j j + 1;
- e v primul varf (cf. ordonarii ), din S
j
a. .
i
v E(G);
- if v exista then rst(
i
, j ) v
- else { rst(
i
, j ) 0; c(
i
) j ; S
j
S
j
{
i
} }
- until rst(
i
, j ) = 0 or j = (G, );
- if rst(
i
, j ) = 0 then
- { c(
i
) j + 1;
- S
j +1
{
i
};
- (G, ) j + 1;
- }
- }
4 / 14
Abordari ale problemelor NP-dicile
Colorarea varfurilor unui graf
Algoritmul Dsatur { Degree of Saturation}
Acest algoritm ( Brelaz, 1979 ) este o metoda secvent iala dinamica de
colorare.
Ideea este de colora varfurile pe rand, alegand de ecare data varful cu un numar maxim de constrangeri privitoare
la culorile disponibile acestuia.Aceasta abordare este ntr-un fel opusa primeia (cea geedy) deoarece se aleg varfuri
care formeaza clici mari n raport cu varfurile deja alese (spre deosebire de mult imi stabile mari n cazul greedy).
Daca G este un graf si c o colorare part iala a varfurilor lui G, denim
gradul de saturat ie al unui varf v, notat d
sat
(v), ca ind numarul de
culori diferite din vecinatatea acestuia.
- ordoneaza varfurile n ordinea descrescatoare a gradelor lor;
- atribuie unui varf de grad maxim culoarea 1;
- while exista varfuri necolorate do
- { alege un vf. necol. cu gr. de satur. maxim; daca acesta
- nu-i unic, alege un vf. de grad maxim n subgr.necolorat;
- coloreaza varful ales cu cea mai mica culoare posibila;
- }
Algoritmul DSatur garanteaza gasirea numarului cromatic pentru
grafurile bipartite.
5 / 14
Abordari ale problemelor NP-dicile
Problema comisului voiajor
O euristica populara pentru problemele n care funct ia de distant a satisface inegalitatea triunghiulara, este data de
Christodes. Spre deosebire de cazul general cand nu se poate spera la o euristica polinomiala A cu R
A
nita, daca
P = NP, n acest caz se poate demonstra urmatoarea
Teorema. ( Christodes,1973) Fie CV cu d satisfacnd
v, w, u V(K
n
) distincte d(vw) d(vu) + d(uw). Exista un algoritm
aproximativ A pentru CV care satisface R
A
=
3
2
si are timp de lucru
polinomial.
1
Se determina T
0
mult imea muchiilor unui arbore part ial de cost
minim n K
n
(costul muchiei e ind d(e) ).Algoritmul lui Prim.
2
Se determina M
0
un cuplaj perfect n subgraful indus de vrfurile de
grad impar ale arborelui T
0
si de cost minim. Alg. lui Edmonds.
3
Se considera multigraful obt inut din < T
0
M
0
>
K
n
, prin duplicarea
muchiilor din T
0
M
0
. Exista un parcurs Eulerian nchis, cu
vrfurile (v
i
1
, v
i
2
, . . . , v
i
1
). Eliminnd aparit iile multiple a unui vrf, cu
except ia primului si ultimului, se obt ine un circuit hamiltonian H
A
n
K
n
cu muchiile H
A
= (v
j
1
v
j
2
, v
j
2
v
j
3
, . . . , v
j
n
v
j
1
) ( O(n
2
) operat ii).
6 / 14
Abordari ale problemelor NP-dicile
Metode care imita natura
Metaeuristica simulated annealing.
Inspirata din termodinamica, inventata independent de Kirkpatrick,
Gelatt si Vechi n 1983 si de

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

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

E
T
then { x
old
x
new
; nc + +} } }
decrease(T) }
3. return x
old
Pentru problema comisului voiajor, se porneste cu un tur ales aleator, iar solut iile vecine se obt in cu 2-move. Se
poate lua T
start
= O(

n), attempts = 100n, changes = 10n, decrease(T) = 0.95T si T


min
= O(1).
8 / 14
Problemele pentru seminarul 13
1
Problema 4 Setul 11
2
Problema 2 Setul 18
3
Problema 2, Setul 19
4
Problema 3 Setul 19
5
Problema 2, Setul 16
9 / 14
T E M A
Problema 1.
Fie G un graf cu proprietatea ca nu are circuite impare disjuncte.
Demonstrat i ca G este 5-colorabil.
(2 puncte)
10 / 14
T E M A
Problema 2.
Graful G = (V, E) cu n varfuri si m muchii modeleaza o ret ea de
comunicat ie bidirect ionala: n ecare varf este plasat un utilizator care
schimba mesaje cu ceilalt i utilizatori folosind muchiile incidente cu varful
n care este localizat (un sistem de rutare asociat ret elei va asigura
ajungerea mesajelor la destinatari).

Intr-un varf special s V se aa un
utilizator care trimite spamuri. Pentru ecare muchie {u, v} E a
grafului se cunoaste costul c({u, v}) al instalarii unui ltru care sa
blocheze orice spam ce s-ar putea transmite pe muchia {u, v} (de la u la
v sau de la v la u). Se doreste ca o mult ime A V {s} de utilizatori
sa e protejata de spamurile trimise de utilizatorul din s. Se cere sa se
proiecteze un algoritm cu timp de lucru polinomial care sa determine o
mult ime de muchii E

E pe care sa se plaseze ltrele care sa protejeze


utilizatorii din A si sa aiba cost minim (suma costurilor muchiilor din E

sa e minima printre toate mult imile ce pot proteja A). Justicare.


(2+2 = 4 puncte)
11 / 14
T E M A
Problema 3.
Un nucleu ntr-un digraf G = (V, E) este o mult ime S de varfuri cu
proprietatea ca S nu cont ine varfuri adiacente si pentru orice varf
u V S exista v S astfel ncat (v, u) E. Fie problema de decizie:
NUCLEU INSTANT

A: G = (V, E) digraf.

INTREBARE: Are G un nucleu?


Demonstrat i ca urmatoarea construct ie ofera o reducere polinomiala a
problemei SAT la problema NUCLEU (SAT NUCLEU).
Data o instant a F a lui SAT construim digraful G astfel:
- pentru ecare clauza C a lui F adaugam la G un 3-circuit
v
1
C
, (v
1
C
, v
2
C
), v
2
C
, (v
2
C
, v
3
C
), v
3
C
, (v
3
C
, v
1
C
), v
1
C
;
- pentru ecare variabila x care apare n formula F adaugam la G un
2-circuit
v
x
, (v
x
, v
x
), v
x
, (v
x
, v
x
), v
x
;
- pentru ecare pereche (l , C) unde l este un literal (x sau x) care apare
n clauza C adaugam la G arcele (v
l
, v
1
C
), (v
l
, v
2
C
), (v
l
, v
3
C
) .
(2+2=4 puncte)
12 / 14
T E M A
Problema 4.
Fiecare student dintr-o mult ime S de n > 0 student i opteaza
pentru o submult ime de 4 cursuri opt ionale dintr-o mult ime C de
k > 4 cursuri opt ionale. Se cere sa se descrie un algoritm care sa
determine n timp polinomial o alocare a student ilor la cursurile
opt ionale astfel ncat ecare student sa e alocat la exact 3 cursuri
opt ionale (din cele patru pentru care a optat) si ecare curs
opt ional sa aiba repartizat cel mult
3n
k
student i (daca o astfel de
alocare exista). Justicare.
(2+2= 4 puncte)
13 / 14
T E M A
Solut iile se primesc
miercuri 23 ianuarie ntre orele 12 si 14, la cabinetul C-402
Precizari
Este ncurajata asocierea n echipe formate din 2 student i care
sa realizeze n comun tema.
Depistarea unor solut ii copiate ntre echipe diferite conduce la
anularea punctajelor tuturor acestor echipe.
Nu e nevoie sa se rescrie enunt ul problemelor. Nu uitat i sa
trecet i numele si grupele din care fac parte membrii echipei la
nceputul lucrarii.
Este ncurajata redactarea latex a solut iilor.
Nu se primesc solut ii prin e-mail.
14 / 14
ALGORITMICA GRAFURILOR
Saptamana 14
C. Croitoru
croitoru@info.uaic.ro
FII
January 21, 2013
1 / 15
OUTLINE
1
Grafuri planare (ag 12-13 allinone.pdf pag. 354 )
2
Problemele pentru seminariile 14,15
3
Anunt uri.
2 / 15
Grafuri planare
Proprietat i de baza.
Denit ie. Fie G = (V, E) un graf si S o suprafat a n R
3
. Spunem ca G
este reprezentabil pe S daca exista G

= (V

, E

) un graf astfel nct:


a) G

= G

.
b) V

e o mult ime de puncte distincte din S.


c) Orice muchie e

este o curba simpla cont inuta n S care uneste


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

, sau prin el trece cel mult o


muchie a lui G

.
G

se numeste reprezentare a lui G n S.


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

o reprezentare
planara a lui G.
Daca S este un plan si G

este un graf care satisface b) c) si d) de mai


sus atunci G

se numeste graf plan.


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

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


transformarea h, pna cnd graful curent nu mai are vrfuri de grad 2.
Rezulta ca G este planar, daca si numai daca h

(G) este planar.


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

(G
1
)

= h

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

In versiunea combinatoriala un graf este un triplet G = (E, ,

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

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

inverseaza direct ia.


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

: E E denita de

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

. Intuitiv, pentru
a calcula

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

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

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

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

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

t<t
1
L(t)

<
n
2

t>t
1
L(t)

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

n, teorema are loc.


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

n,
|L(t
2
)|

n si t
2
t
0


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

n (exista un astfel de nivel pentru ca


|L(0)| = 1). La fel, exista t
2
un cel mai mic numar astfel nc at t
2
> t
1
si |L(t
2
)|

n (de aceea s-a luat


|L(l + 1)| = 0). Orice nivel strict ntre t
0
si t
2
are mai mult de

n varfuri deci numarul acestor nivele este mai


mic decat

n, altfel am avea mai mult de n varfuri n graf. Consideram


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

2
3
pentru D cu cel mult 2

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

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

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

n (orice varf este accesibil din s pe un


drum de lungime cel mult

n asa cum am aratat n lema). Acest arbore se parcurge dfs si se construieste


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

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

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

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

n)
(O(

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

n)
, destul de bun pentru probleme de dimensiuni
rezonabile. Este posibil nsa ca notat ia O(.) sa ascunda constante mari !
13 / 15
Problemele pentru seminariile 14 si 15
1
http://profs.info.uaic.ro/ croitoru/ag/Examen/
14 / 15
Anunt uri
1
Acesta este ultimul curs! Saptamana viitoare nu se
face cursul.
2
Evaluare: croitoru/ag/week01.pdf pagina 13
3
Pogramare test nal: 2,3 februarie; atent ie la
anunt urile de la
http://profs.info.uaic.ro/ orar-examene/
(se vor preciza orele pe grupe si salile de examen)
4
Seminarul special de vineri seara se suspenda.
15 / 15