Sunteți pe pagina 1din 3

Setul de probleme 1

solutiile se primesc
miercuri 5 noiembrie ntre orele 14 si 16, la cabinetul C-402
29 octombrie 2014
Problema 1.
a) Ar
atati c
a dac
a M este un mers nchis impar ntr-un digraf D, atunci M
contine un circuit impar n D.
b) Demonstrati c
a graful suport al unui digraf tare conex care nu are circuite
impare este un graf bipartit.
(2+2 = 4 puncte)
Problema 2. S-a propus urmatorul algoritm (cu timp de lucru polinomial)
pentru determinarea num
arului de stabilitate (G) al unui graf G:
GreedyStab(G)
determin
a un v
arf de grad minim v0 n G ;
if V (G) = {v0 } NG (v0 ) then r e t u r n 1

else r e t u r n 1 + GreedyStab G ({v0 } NG (v0 ))
a) Ar
atati c
a algoritmul propus poate gresi oricat de mult: n N exista un graf
G astfel nc
at (G) GreedyStab(G) = n. X
1
b) Demonstrati c
a
GreedyStab(G)
1 + dG (v)
vV (G)

si ca dac
a avem egalitate atunci GreedyStab(G) = (G).
(2+2= 4 puncte)
Problema 3. Fie G = (V, E) un digraf, X o multime finita si c : E
2X o functie care asociaz
a fiecarui arc e = vw E o submultime a lui X:
c(vw) X. Functia c poate fi extins
S a la drumurile lui G, considerand pentru
orice drum P al lui G, c(P ) = eE(P ) c(e) (n particular, daca E(P ) =
adic
a P este un v
arf avem c(P ) = ). Pentru
orice v, w V , notam
Pv,w = {P |P drum n G de la v la w}. Notam cu A numarul de elemente ale
multimii A, iar # este un element care nu apartine multimii X. Consideram
urmatoarea problem
a:
P: Dat digraful G = (V, E), funct ia c si s V , s
a se determine
pentru fiecare





v V , un drum Psv astfel nc
at c(Psv ) = min{ c(P ) : P Ps,v }.

Adev
arat sau Fals? Urm
atorul algoritm rezolv
a problema P.
1. u[s] ; parent[s] 0 ; S {s} ;
for v V S do
if sv E then { u[v] c(sv) ; parent[v] s }
else { u[v] X {#} ; parent[v] 1 } ;
2. while S 6= V do




{ find v V S s.t. u[v ] = min{ u[v] : v V S} ;
S S {v } ;
for v V S do


if v v E & u[v] > u[v ] c(v v) then
{ u[v] u[v ] c(v v) ; parent[v] v }
}
(daca r
aspunsul este Adev
arat se va da o demonstratie; daca raspunsul este Fals
se va da un contraexemplu)
(3 puncte)
Problema 4. Fie G = (V, E) un graf cu |V | = n, |E| = m, reprezentat
cu ajutorul listelor de adiacenta. O ordonare a varfurilor lui G este o aplicatie
injectiv
a : V {1, 2, . . . , n} ((v) = i are semnificatia ca varful v se afla pe
locul i n ordonarea ). este o ordonare lexicografic
a daca pentru orice doua
varfuri x, y V cu (x) < (y), daca multimea
D{x,y} = {z V |(z) < (x) si z este adiacent cu exact unul dintre x si y}
este nevid
a, atunci z0 D{x,y} cu (z0 ) = minzD{x,y} (z) satisface z0 x E si
z0 y 6 E.
a) Ar
atati c
a algoritmul de mai jos construieste o ordonare lexicografica:
Lexicographic(G)
initializeaza lista L de multimi avand o singura multime: V ;
(fiecare multime din L se reprezinta ca o lista dublu nlantuita)
for i := 1 to n do {
v := primul varf al primei multimi din L ;
sterge v din acea multime ;
(v) := i ;
for each Lj L do
nlocuieste Lj cu Lj NG (v) urmata de Lj NG (v) ;
sterge din L multimile vide }
b) Argumentati c
a algoritmul se poate implementa n timpul O(n + m).
(1 +2 puncte)
Preciz
ari
1. Este ncurajat
a asocierea n echipe formate din 2 studenti care sa realizeze n

comun tema.
2. Depistarea unor solutii copiate ntre echipe diferite conduce la anularea
punctajelor tuturor acestor echipe.
3. Nu e nevoie s
a se rescrie enuntul problemelor. Nu uitati sa treceti numele si
grupele din care fac parte membrii echipei la nceputul lucrarii.
4. Este ncurajat
a redactarea latex a solutiilor.
5. Nu se primesc solutii prin e-mail.