Documente Academic
Documente Profesional
Documente Cultură
Maxim Andrei
Butnaru Vasile-Cristi
Grupa A3, Anul 2
Ianuarie 9, 2018
Problema 1
* restul muchiilor e1 e2 le luam din graful initial G si vor avea ce1 e2 = +∞.
Astfel, varfurile cu pondere pozitiva sunt unite cu s, iar cele cu pondere neg-
ativa sunt unite cu t.Costurile pe muchii vor fi pozitive.Vom cauta o sectiune de
capacitate minima.Observam ca arcele de cost infinit nu pot apartine sectiunii
deoarece valoarea fluxului maxim este finita.Deci multimea respectiva va fi in-
chisa si folosind teorema fluxului maxim, sectiune minima exista o sectiune de
capacitate finita din care daca se scoate varful s se obtine o multima inchisa.
Asadar orice multime inchisa A determina o sectiune de capacitate:
X X X
C= wv − wv = wv − w(A)
v∈/ A, v ∈ A, v ∈ V,
wv ≥0 wv <0 wv ≥0
X
(Am adaugat wv la ambii termeni)
w ∈ A,
wv ≥0
Observarm ca C este minim cand w(A) este maxim deoarece celalalt termen
ramane constant.
1
In concluzie problema gasirii unei multimi inchise s-a redus la gasirea unei
sectiuni minime.(care se rezolva in timp polinomial)
Problema 2
a) ”⇐”
dj -1 , daca dj se afla printre primele dk cele mai mari componente
Fie di 0 =
dj , altf el
i , daca i < k
pentru un k ales arbitrar din [1,n], i ∈ [1, n − 1] si j =
i + 1, daca i ≥ k
(eliminam pozitia k si siftam la stanga elementele din dreapta)
Presupun ca d0 este secventa grafica, deci exista un graf G0 care corespunde
vectorului d0.Fie multimea V = (v1 ,v2 .....vdk ) cu d0vi = dvi -1.
Pornind de la G0 putem crea un nou graf G, prin adaugarea unui nou nod p
si unindu-l cu varfurile din multimea V.
Astfel dG0 p = dk si d0vi = dvi , deci d = (d1 ...dn ) corespunde lui G si rezulta
ca d este secventa grafica .
”⇒”
Presupunem ca d = (d1 ...dn ) este secventa grafica, deci exista un graf G care
satisface d. Daca vecinii nodului k (cel ales pentru eliminare) sunt V=(v1 ,v2 ...vk )
atunci stergem pe k si muchiile incidente si obtinem vectorul d0, deci d0 este
secventa grafica .
Daca nodul k are vecini care nu apartin lui V putem modifica graful luand
fiecare nod p, cu p nu este inclus in V si exista muchia kp, (V contine primele
dk cele mai mari componente) si verifica urmatoarele:
-Daca ∃ vi ⊆ V si nu exista muchia kvi si dvi = dG p atunci le putem schimba
numele rezultand ca nodul k are inca un vecin inclus in V .
-Daca ∃ vi ⊆ V si nu exista muchia kvi si dvi 6= dG p (intotdeauna va fi dvi
> dG p) alegem un vecin q a lui vi , dar nu si a lui p, cu q 6= k. Astfel eliminam
muchia qvi si kp si adaugam kvi si pq.Operatia nu modifica gradele nodurilor,
ci adauga la vecinii lui k un nod din multimea V .
-Repetam pasul pana cand toti vecinii lui k sunt din V.
k p
vi q
2
⇒
k p
vi q
Observam ca din noul graf daca eliminam varful k obtinem graful care sat-
isface d0, deci d0 este secventa grafica .
Din ”⇐” si ”⇒” rezulta ca daca d este secventa grafica si d0 va fi secventa
grafica .
Problema 3
3
Observam faptul ca nu exista drumuri de crestere a fluxului n in retea, deci
fluxul n este de valoare maxima.(teorema drumului de crestere)
b) Daca avem un flux de valoare maxima se poate deduce ca s-a trimis flux
pe drumuri distincte de la s la t. Observam ca daca nu alegem bine drumurile
ne vom bloca inainte sa atingem fluxulul maxim.
Astfel, trebuie sa facem cresteri pe anumite drumuri de crestere pentru a
obtine in final fluxul 1. Pentru a bloca toate drumurile de la s la t, mai putin
cel care ofera fluxul 1 vom incerca sa parcurgem nodurile pe diagonala astfel:
Daca numerotam nodurile grafului ca intr-o matrice nxn, cu arc numai
sus-jos si stanga-dreapta formam drumul s-(1,1)-(2,1)-(2,2)-(3,2)-(3,3)-(4,3)-...-
(n,n).
Acesta blocheaza restul drumurilor iar fluxul maxim final ramane 1.
Problema 4
4
v1
A
B v0 u2
u1 A ū2
A
B
c2 v2
ū1
c1