Documente Academic
Documente Profesional
Documente Cultură
B
arb
acioru Iuliana Carmen
CURSUL 2
Cursul 2
Cuprins
1 Elemente de teoria grafurilor
1.1 Obiectul teoriei grafurilor. Notiuni generale
1.2 Concepte neorientate . . . . . . . . . . . . .
1.3 Determinarea drumului de valoare optim
a .
1.3.1 Algoritmul Ford . . . . . . . . . . .
1.3.2 Algoritmul lui Dijkstra . . . . . . . .
1.3.3 Algoritmul Bellman- Kalaba . . . . .
Index
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
5
5
6
8
9
10
Cursul 2
Capitolul 1
1.2
Concepte neorientate
1.3
n
X
i=1
se nume
ste valoarea drumului
.
5
v (ui )
(3.1)
Cursul 2
Observa
tia 1.3.2 n general unui graf i se poate asocia o matrice A = (aij )1 i;j n
numita matricea grafului. Elementele matricii se denesc astfel:
(
1; daca (9) (xi ; xj ) 2 U
aij =
(3.2)
0; daca (@) (xi ; xj ) 2 U
De regul
a intereseaz
a valoarea optim
a a drumului format din succesiunea de
arce ui 2 U care leag
a nodul initial x1 cu cel nal xn .
n continuare vom prezenta dou
a dintre metodele de aare a drumului de
valoare optim
a dintr-un graf G = (X; ) f
ar
a circuite.
1.3.1
Algoritmul Ford
ahj
< vjk
(3.3)
b) ahk
ahj
= vjk
(3.3)
c) ahk
ahj
> vjk
(3.3)
Figura 3.1
Din (3.3), rezult
a ahk < ahj vjk adic
a drumul direct de la vrful de la xh
la vrful xk are o valoare mai mic
a dect drumul de la xh prin xj la xk .
Din (3.3), rezult
a c
a cele dou
a drumuri au aceeasi valoare.
Din (3.3), rezult
a c
a drumul de la xh la xk prin vrful xj are o valoare mai
mic
a dect drumul direct de la xj la xk .
6
Cercet
ari Opera
tionale B
arb
acioru Iuliana Carmen
Algoritmul 1.3.3 (Algoritmul Ford) Este o operatie secventiala ce se desfasoara n urmatoarele etape:
Etapa I-a Fiecarui vrf al grafului i se asociaza un marcaj a0k ; k = 1; n,
reprezentnd valoarea unui drum arbitrar de la x1 la xk . n particular se ia
a01 = 0.
Etapa a II-a Vom conveni ca 1 1 = 0!;
Pasul 1 Se compara diferenta dintre marcajul vrfului nal si marcajul vrfului
initial pe ecare arc a0k a0h cu valoarea arcului vhk si se modica marcajul
vrfului nal astfel:
(
a0h + vhk ; daca a0k a0h > vhk
a1k =
(3.4)
a0k ;
daca a0k a0h vhk
si mod,
Pasul 2 Cu noile marcaje a01 = 0; a12 ; :::; a1n se procedeaza n acela
(
a1h + vhk ; daca a1k a1h > vhk
a2k =
a1k ;
daca a1k a1h vhk
Pasul 3 Procedeul continua pna cnd, dupa ajustari succesive ale marcajelor
vrfurilor, (vom presupune s numarul acestora) se obtin numai inegalitati de
forma:
ask ash vhk ; (8) (xh ; xk ) 2 U
asjp
asjp
= vjpn
= vjp
1 jp
:::::::::::::::: = ::::::::
asj1
as1 = v1j1
1 jp
+ vjpn
si
xn acest drum
Cursul 2
Observa
tia 1.3.4 Algoritmul lui Ford poate aplicat si n scopul determinarii
drumului de valoare maxima ntre doua vrfuri ale unui graf fara circuite modicnduse doar criteriul de mbunatatire a marcajelor vrfurilor din etapa 2:
(
a0h + vhk ; daca a0k a0h < vhk
1
ak =
a0k ;
daca a0k a0h vhk
Procedeul se opre
ste la pasul s, cnd sunt satisfacute inegalitatile: a0k
(8) (xh ; xk ) 2 U .
1.3.2
a0h
vhk ;
si se adauga la multimea A doar cel pentru care se obtine valoarea minima, apoi
se trece la pasul 4.
3.2. Daca nu exista nici un vrf de acest tip atunci nu exista nici un drum de la
x1 la xn :
Pasul 4 Se analizeaza multimea A;
4.1. Daca xn 2 A atunci valoarea sa reprezinta valoarea drumului optim de la x1
la xn : Pentru gasirea acestui drum se porne
ste de la vrful nal spre cel initial
8
Cercet
ari Opera
tionale B
arb
acioru Iuliana Carmen
si se gasesc vrfurile xk1 = xn ; xk2 = x 1 ; :::; xkr = x1 care formeaza drumul
cautat, unde ecare indice ki+1 este acela pentru care
w xki+1 + v xki+1 ; xki = w (xki )
4.2. Daca xn 2
= A atunci se reia algoritmul de la pasul 3.
1.3.3
Se bazeaz
a pe principiul general al program
arii dinamice care n cazul de fata
cap
at
a urm
atoarea formulare:
Dac
a drumul de valoare minim
a (maxim
a) care uneste x1 cu xn trece prin
vrfurile intermediare xh si xk atunci drumul partial care uneste xh cu xk este
drumul de valoare minim
a (maxim
a) ntre aceste dou
a vrfuri.
Vom presupune n continuare c
a se cere determinarea drumului de valoare
minim
a din graful G = (X; ).
Atasam grafului G matricea C = (cij )1 i;j n n care elementele cij se
denesc astfel:
8
>
>
< v (xi ; xj ) daca (xi ; xj ) 2 U (i 6= j)
cij =
(3.6)
1
daca (xi ; xj ) 2
= U (i 6= j)
>
>
: 0
daca
i=j
Fiec
arui vrf xi al grafului i se asociaz
a o variabil
a vi care are semnicatia
de valoare a drumului care uneste xi cu xn . Solutia problemei se obtine prin
rezolvarea sistemului de ecuatii:
8
< vi = min (vi + cij )
i = 1; n 1, j = 1; n 1
i6=j
(3.7)
cij =
: v =0
n
ntr-adev
ar, se poate ar
ata c
a, dac
a v1 ; v2 ; :::; vn este solutia acestui sistem de
ecuatii, atunci v1 reprezint
a valoarea minim
a a drumului care uneste pe x1 cu
xn .
Pentru rezolvarea sistemului (3.6) se utilizeaz
a un procedeu iterativ care
pleac
a de la conditia initial
a:
( (0)
vi = cin ;
i = 1; n 1
(0)
vn = 0
Cursul 2
Fiecare iteratie k; (k = 1; 2; :::) const
a n rezolvarea sistemului:
8
< v (k) = min v (k 1) + cij
i = 1; n 1, j = 1; n , k = 1; 2; :::
i
i
i6=j
: v (k) = 0
n
(3.8)
vi
(k)
= vi
; i = 1; n
(k)
(k 1)
v1 = min vi
i6=1
(k 1)
+ c1j = vj1
+ c1j1
(k 1)
vj1
(k 2)
= min vj
j6=j1
(k 2)
+ cj1 j = vj2
Drumul c
autat va trece prin xj2 .
(k
Repet
am procedura plecnd de la vj2
Drumul de valoare minim
a va :
2)
reprezint
a valoarea
+ cj1 j2
(0)
pn
a cnd se va ajunge la vjk = cjk n .
1.
10
Index
Algoritmul
Bellman - Kalaba, 9
Dijkstra, 8
Ford, 6
Matricea
grafului, 6
Valoarea
arcului, 5
drumului, 5
11