Documente Academic
Documente Profesional
Documente Cultură
O.M. Gurzau
1Programare liniara
cu conditiile:
(1.1.1)
n
X
i=1
ajixi bj , j = 1, m.
(1.1.2)
xi 0, i = 1, n.
n cele ce urmeaza conditiile (1.1.1) le vom rescrie sub forma:
n
X
(1.1.3)
yj = bj +
(aji) (xi) 0, j = 1, m.
i=1
- 2-
Solutia (x1 , ..., xn) se numeste solutia optima (program optim) daca:
f (x1, ..., xn) f (x1, ...xn) , (x1, ...xn) care verifica ineg.(1.1.1),(1.1.2).
x + 3y 3
x y 2
(1.2.1)
2x + y 4
x 0, y 0
Pentru rezolvare "se deseneaza" zona din plan care corespunde la inegalitatile
(1.2.1) si se determina dreapta paralela cu 3x + 4y = 0 cea mai departata, respectiv cea mai apropiata de origine care intersecteaza zona:
- 3-
2=
3x
+4
y-4
=0
x+3
y-3=
0
2
1
-2
-1
C
3x
+4
y-3
8/3
=0
B
1
-4=
+y
-1
2x
-3
x-y
+
Adunnd:
xy+2 = 0
2x + y 4 = 0
3x 2 = 0 : x = 2/3
y = x + 2 = 8/3
x + 2y 1
2x + y 4
(1.2.2)
x y 1
x 4y 13, 4x + y 23
- 4-
Pentru rezolvare se deseneaza zona din plan care corespunde la inegalitatile (1.2.2)
si se determina dreapta paralela cu 3x + 6y = 0 care intersecteaza axa Oy n cel mai
apropiat (departat) de origine si intersecteaza zona:
10
1=
+
x-y
-1
15
6y=
-3x+
3=0
1
x-4y+
x+
2y+
1=
4x-y+
-4=
+y
2x
23=0
-5
-10
- 5-
Sa se afle maximul functiei f si valorile x1, ..., xn pentru care e atins maximul:
n
X
f (x1, ...xn) =
cixi + cn+1
i=1
cu conditiile:
(1.2.3)
n
X
i=1
(1.2.4)
atasam tabelul simplex:
ajixi bj , j = 1, m.
xi 0, i = 1, n.
x1 x2 xn 1
y1 = a11 a12 a1n b1
y2 = a21 a22 a2n b2
(1.2.5)
..
..
..
..
..
...
ym = am1 am2 amn bm
f = c1 c2 cn cn+1
Schimbam n acest tabel (x1) cu y1 :
ec 1:
n
X
y1 =
(a1i) xi + b1
i=1
a11 6= 0
- 6-
x1 =
(1.2.6)
y1 +
Pn
1 a12
a11 a11
+ b1
a11
...
b1
a11
y2 =
n
X
a2i (xi) + b2 =
i=1
...
Pn
X
n
y1 + i=2 (a1i) (xi) + b1
= a21
a2i (xi) + b2 =
+
a11
i=2
n
X
a21
a21b1 + a11b2
a21a1i + a2ia11
= (y1) +
(xi) +
=
a11
a11
a11
i=2
n
X
a21
a21
a21
= (y1) +
a1i (xi) + b2
b1
a2i
a11
a11
a11
i=2
- 7-
ym =
n
X
ami (xi) + bm =
i=1
X
n
y1 + ni=2 (a1i) (xi) + b1
= am1
ami (xi) + bm =
+
a11
i=2
n
X
am1
am1b1 + a11bm
am1a1i + amia11
=
(y1) +
(xi) +
a11
a11
a11
i=2
ak1
Obs. La linia k + 1 adun linia 2 nmultita cu .
a11
Linia 2 devine linia 2 mpartita la a11
Coloana 2 devine coloana 2 mpartita cu a11.
y1
x2
xn
1
a1n
b1
x1 = a111
....
a11
a11
a21
a21
a21
y2 = a11 a22 a11 a12 a2n a11 a1n b2 aa2111 b1
..
..
..
..
..
...
am1
am1
am1
ym = aam1
a
a
b
m2
12
mn
1n
m
a11
a11
a11 b1
11
f = ac111 c2 ac111 a12 cn ac111 a1n cn+1 ac111 b1
- 8-
cu conditiile:
(1.2.9)
yi =
n
X
j=1
cij (yj ) + di 0, i = n + 1, m
yi 0, i = 1, n
iar legatura cu variabilele initiale este data de:
n
X
xi =
cij (yj ) + di, i = 1, n
j=1
- 9-
x1 x2 1
pivot
y1 =
y2 =
y3 =
y4 =
y5 =
f=
1 2 1
2 1 4
1 1
1
1 4 13
4 1 23
3 6 0
- 10-
x2
1
2
1
x1 =
=
2
1
1 = 1
pivot
2
2
2
y2 = 1 = 2 1 + 1 (2) = 3 4 + 1 1 = 6
y3 = 1
1 + 1
1 + 1
1 = 1
1 (2) = 3
1 1 = 0
1
1
y4 = 1
=
1
4
+
13
+
(2)
=
6
1
1
1 1 = 12
4
4
4
(2)
=
9
y5 = 1
= 4 1 + 1
23
+
1 1 = 27
3
3
3
(2) = 12 0 + 1
1=3
f = 1
= 3 6 + 1
y
y2
1
1
1
2
2
x1 = 1
= 1 + 23 (2) : 13
3
1 = 2(1/3) : 3
2 pivot
2
2
x2 =
1 = 2/3 : 3
1+ 1 (2) = 3/3/3 : 13
2
1
y3 = 1
=
1
+
(1)
(2)
:
1
1
+
6
1
1 (2) = 3 (1/3) : 1
1
y4 = 1
=
1
+
(2)
(2)
:
3
4
+
24
1
1 (2) = 6 (1/3) : 2
4
4
(2) = 9 (1/3) : 3 9
y5 = 1
= 4 + (3) (2) : 2 1 + 1
3
3
(2) = 12 (1/3) : 4 21
f = 1
= 3 + (4) (2) : 5 6 + 1
y1
1
1 = 1
- 11-
x1 =
x2 =
y3 =
y4 =
y5 =
f=
y1 y2 1
1
2
3
3
3
23 13 2 f = (5) (y1) + 4 (y2) 21
1 1 6
x1 = 13 (y1) 23 (y2) + 3
3 2 24 x2 = 23 (y1) + 13 (y2) 2
2 3
9
5 4 21
Definitia 2.1 {x1, x2, ..., xn} se numeste solutie bazica a problemei (1.2.8)-(1.2.9)
daca este solutie pentru sistemul de inegalitati (1.2.9) (solutie admisibila) si n din
expresiile {y1, y2, . . . , ym} sunt nule.
Definitia 2.2 Daca {y1, y2, . . . , ym} corespund la o solutie bazica si exista cel putin
n + 1 expresii nule, atunci solutia bazica se numeste degenerata, si nedegenerata n
caz contrar.
Importanta solutiilor bazice este data de urmatoarea teorema:
Teorema 2.1 Problema de programare liniara (1.2.8)-(1.2.9) are solutie optima daca
si numai daca are solutie optima bazica.
- 12-
(1.2.10)
y1 y2
yn+1 = cn+1,1 cn+1,2
..
..
..
ym = cm1 cm2
f=
q1
q2
yn
1
cn+1,n dn+1
..
..
...
cmn dm
qn
Q
- 13-
di0
di
(1.2.12)
0<
= min
>0
ci0s n+1im cis
(adica n tabelul (1.2.10) se schimba ys cu yi0 ) avem (notnd elementele noului tabel
cu accent) pentru r 6= i0 d0r > dr iar pentru i0 = r , yr este variabila bazica, deci
yr = 0 > dr .
Demonstratie: Conform ipotezei n coloana s exista cel putin un indice i astfel
nct cdisi > 0. Alegem i0 conform regulii (1.2.12). Daca i0 6= r atunci, conform GaussJordan :
di
d0r = dr 0 crs > dr .
ci0s
Teorema 2.2 Pentru orice problema de programare liniara dupa un numar finit de
pasi se ajunge la o solutie admisibila bazica sau se ajunge la concluzia ca problema
nu are solutie.
Demonstratie: Rezulta din cele trei leme precedente.
Teorema precedenta rezolva prima faza.
Pentru optimizare plecam tot de la tabelul (1.2.10) n care presupunem ca ultima
coloana are doar numere pozitive (adica de la o solutie bazica).
- 14-
y3 =
Exemplul 2.2 Continuare la exemplul 2.1. y4 =
y5 =
f=
6
y3
pivot
y2
y1 y2 1
1 1 6
3 2 24 min{6/1, 24/3} =
2 3
9
5 4 21
y1 =
1/1/1
1/1
6/1
y4 =
3/1
2 + (3/1) (1) = 1
24 + (3/1) 6 = 6
y5 = (2) /1 = 2 3 + ( (2) /1) (1) = 1 9 + ( (2) /1) 6 = 21
f = (5) /1 = 5 4 + ( (5) /1) (1) = 1 21 + (5) /1 6 = 9
f = (5) (y1) + 4 (y2) 21
x1 = 13 (y1) 23 (y2) + 3
x2 = 23 (y1) + 13 (y2) 2
q1 = 5 < 0
d1
6 d2
24
=
;
=
c11
1 c21
3 aleg i0 = 1 : pivot:c11
- 16-
y3 y2 1
y3
y4
1
y1 = 1 1 6 y1 = 1 + 1 (3) = 2 1 6 + 1 6 = 12
pivot
pivot
y4 = 3 1 6 y2 =
3
1
6
y5 = 2
1 21 y5 = 2 + (1) (3) = 5 1 21 1 6 = 15
f = 5 1 9 f = 5 + 1 (3) = 2
1 9 + 1 6 = 15
fmax = 15
x1 = 13 (y1) 23 (y2) + 3 = 13 (12) 23 (6) + 3 = 3
x2 = 23 (y1) + 13 (y2) 2 = 23 (12) + 13 (6) 2 = 4
Remarca 2.1 La pas G-J modificat cu pivot crs se fac urmatoarele modificari: elementele din capul de tabel de pe coloana s si linia r se schimba intre ele, cu schimbare
de semn. (adica ys, yr yr , ys. elementele de pe coloana s se nlocuiesc cu
ele/pivot si cu semn schimbat. Elementele de pe linia pivot se mpart cu pivotul, iar
n locul pivotului se pune c1rs . Celelalte elemente din noul tabel se obtin din adunarea
la vechiul element a elementului de pe coloana corespunzatoare si linia pivotului din
vechiul tabel * elementul de pe linia lui si coloana pivotului din noul tabel.
Exemplu:
Problema e echivalenta cu:
- 18-
cu conditiile:
y3 20 7 6 42
f 1 1 1 0
aplicnd pas G-J cu acest pivot: La pas G-J modificat cu pivot crs se fac urmatoarele
modificari: elementele din capul de tabel de pe coloana s si linia r se schimba intre
ele, cu schimbare de semn. (adica ys, yr yr , ys. elementele de pe coloana s
- 19-
12/7
28/7
8 + (12) (10/7) 5 + (28) (10/7)
y2
= 64
= 35
7
20 + (12) (6/7) 7 + (28) (6/7)
y3
= 68
= 17
7
1 + (12) (1/7) 1 + (28) (1/7)
f
= 57
=3
Am ajuns la tabelul simplex:
x1 x2 y1
1
x3
84/7
40 + (84) (10/7)
10/7
= 80
42 + (84) (6/7)
6/7
= 30
0 + (84) (1/7)
1/7
= 12
1/7
pivot
x3 12/7 28/7
35
y2 64
7
17
y3 68
7
3
f 57
1/7
10/7
6/7
1/7
- 20-
84/7
80
30
12
Deoarece coloana lui 1 este formata din numere pozitive o solutie bazica va fi:
x1 = x2 = 0, y1 = 0
12x1 28x2 7x3 = 84, x3 = 12
n coloana coeficientilor lui f avem un coeficient negativ 17 . Deoarece toti coeficientii
de pe coloana lui sunt negativi, rezulta ca max {x1 + x2 + x3} este +.
Altfel:
x1 x2 x3 1
y1 = 12 28 7 84
40 84 42
y2 = 8 5 10 40 min 5 , 28 , 7 = 3 deci pivotul este (28)
y3 = 20 7 6 42
f 1 = 1 1 1 0
x1
y1 x3
1
12
3
1
1
84
x2 =
=
3
28 7
28
4
28 =
5
41
5
35
5
=
y2 = 8 + (12) 28
40
+
(84)
7
28
4
28 = 25
7
7
17
7
=
17
y3 = 20 + (12) 28
42
+
(84)
28
4
28 = 21
1
1
1
= 47 28
=3
f 1 = 1 + (12) 28
34
0 + (84) 28
- 21-
x1 y1 x3
x2 = 37
y2 = 41
7
1
28
5
28
pivot
7
28
1
28
1
4
35
4
1
3
n
o
25 min 25 , 21 = 84 deci pivotul e 7
5
7
28
28
28
17
4 21
34 3
x1
y3
x3
1
1
1 20
1
3
1
6
28
x2 = 7 + (17) 7 = 7 7 = 7 7
3 + (21) 7 = 6
28
5
5 44 28
5
41
5
40
y2 = 7 + (17) 7 = 7
= 7 7 25 + (21) 7 = 10
7
y3 = 17
f 1 = 47
28
(17) / (7/28) = 68 28
17
71 = 4
1
1
28
f 1 = 47 + (17) 17 = 13
7 7 = 7 7
y1 =
x1 y3 x3
1
6
x2 = 20
7
7
7
y2 = 44
7
y1 = 68
13
f1
7
1
6
28
pivot
57
40
7 10
4 17 84
17 17 33
7
- 22-
(21) / (7/28) = 84
1 33
3 + (12) 7 = 7
x1
y2
x3
1
44
8
1
1
x2 = 20
+
(1/5)
=
/
(5/7)
=
2
6 + (10) (1/5) = 8
7
7
5
7
5
pivot
5
5
44
5
44
7
5
y3 =
1/ 7 : 5
8
10/ 7 = 14
7/
7 =
44
164
28
28
=
y1 = 68 + 7 28
4/
(5/7)
=
49
84
+
(10)
5
5
5
5 = 140
13
44
33
1
47
15 = 35 17 / (5/7) = 15 1
f1
7 + 7
7 + (10) 5 = 7
x1 y2 x3 1
x2 = 85 15 2
8
7
y3 = 44
8 14
5
5
28
y1 = 164
49 140
5
5
3
47
f1
15 1
5
7
solutie bazica: x1 = 0, x2 = 8, x3 = 0, y1 = 140, y2 = 0, y3 = 14.
7
pivotul: min {28/68, 10/ (20/7) , 10/ (44/7)} = 17
deci e 68
x2
y3 x3
1
1
x1 =
1/68 = 68
4 17
28
5
3
1
5
150
=
y2 = 20
10 + 28 119
7 /68 = 119
119
7
17
126
44
11
41
51
11
y1 = 7 /68 = 119 119 7 10 + 28 119 = 17
13
4
17
13
55
=
f 1 = 13
/68
=
4
+
28
7
476
119
28
476
17
Exemplul 2.3
- 23-
- 24-
x1 x2 x3
pivot
y1 = 2
y2 = 2
f 1 = 1
x1
x2 = 2
x3 = 0
f1 = 3
x1
x2 = 2
1
1
2
2 8
5 12 y2 =
3 0 f 1 =
y1
1 + (1) (2/3) = 53
1/ (3) = 13
2 + (1) (1/3) = 73
y1 y2 1
53 23 16
3
pivot
1
3
73
0
13 43
1
44
3
3
3
x1 y
1
53 / 13 = 5
x2 = 2
x3 =
f1 =
x3 =
f1 =
0
3
x1 y1 x3 1
x2 = 2 1 2
8
7
3
pivot
1
1/
3
: 3
/ 13 = 7
pivot
0
3
1 3
2 1
y2
2/ (3) = 23
1
1
=
3
3
1/ (3) = 13
y2
2
1
+
5
3
3 = 1
13 /(1/3)
= 1
1
1
3 + 7 3 = 2
- 25-
4
16
1
8 + (4) (2/3) = 16
3
4
4/ (3) = 3
16 + (4) (1/3) = 44
3
1
16
3 + 5 4/3 = 12
4
3/
(1/3) = 4
44
3 + 7 4/3 = 24
(1.3.1)
min
j=n
i=m
X
i=1
j=1
cu conditiile:
(1.3.2)
Pn
xij = ai, i = 1, m
Pj=1
m
, j = 1, n
i=1 xij = bj
Pi=m,j=n
Pm
Pn
xij
i=1 ai =
j=1 bj
i,j=1
xij 0
Exemplul 3.1
Exemplul 3.2
Exemplul 3.3
- 26-
- 27-
x11 ...
x11 ... x1n
... . . .
.
X = ... . . ... ; X =
xm1 ...
xm1 ... xmn
b1 ...
x11 = min{a1, b1}. La ex. 1 x11 = 100.
- 28-
x1n
...
xmn
bn
a1
...
am
0
0
0
0
0
4
0
2 20
3 85
0 105
0
0
0
0
- 29-
1
0 0
5
0 0
4 135 0
0 135 0
0 100
0 180
0 220
0 1270
0
0
0
0
Cost:
100 2 + 25 4 + 135 1 + 20 2 + 85 3 + 135 4 = 1270
Obs. O alta metoda este metoda costului minim: se alege cantitatea maxima n
celula cu cost minim, si apoi se taie linia sau coloana respectiva.
Definitia 4.3 O solutie bazica se numeste aciclica daca nu exista un ciclu cu el. nenule.
Ideea : Solutia optima se cauta printre sol. bazice aciclice.
Definitia 4.4 Solutia bazica X se numeste sol. potentiala daca exista numerele ui, vj
astfel nct:
ui + vj cij
0
P
P
P
X o solutie a sistemului
m
n
i=m,j=n
i=1,j=1 cij xij
a
=
b
x
ij
i=1 i
j=1 j
i,j=1
x0ij 0
Pi=m,j=n
i=1,j=1 cij xij
Pi=m,j=n
Pi=m,j=n
Pi=m,j=n
Pi=m,j=n
0
0
0
0
c
x
(u
+
v
)
x
=
u
x
+
v
x
ij
i
j
i
j
ij
ij
ij
i=1,j=1
i=1,j=1
i=1,j=1
i=1,j=1
P ij P
P
Pm
P
P
n
n
m
m
n
0
0
= i=1 ui
x
v
x
=
u
a
+
+
j
i
i
j=1 ij
j=1
i=1 ij
i=1
j=1 vj bj =
Pm
Pn
Pm
Pn
Pi=m,j=n
!
= i=1 ui j=1 xij + j=1 vj i=1 xij = i=1,j=1 (ui + vj ) xij =
- 31-
Pi=m,j=n
i=1,j=1
O sol. bazica x11 = 100, x21 = 25, x22 = 135, x23 = 20; x33 = 85; x34 = 135
- 32-
u1 + v1 = 2, u1 = 0
u2 + v1 = 4
u2 + v2 = 1
u2 + v3 = 2
u3 + v3 = 3
u3 + v4 = 4
v1 = 2, u2 = 2, v2 = 1, v3 = 0, u3 = 3, v4 = 1.
12 = 3 + 0 1 = 4; 13 = 4 + 0 + 0 = 4; 14 = 1 + 0 + 1 = 0; 24 =
5 + 2 + 1 = 2; 31 = 1 + 3 + 2 = 4?;
32 = 4 + 3 1 = 2.
= 31, e = 25
i0 j0
100 0 0 0
X= 254 135 203 0
1
2
0
85
135
0
100 0 0 0
X = 0 135 45 0
25 0 60 135
- 33-
2 100 0 3
0 4 4
0 4 1
0
0 0 100
4 25 0 1 135
0 2 20
0 5
0 2 0 180
1
0 4 4
0 2 3 85
0 4 135
0 0 220
0 125 2 0 135 1 0 105
0 0 135
1 0 1270
2 100 0 3
0
4 25 0 1 135
1
0 0 4
0
0 125 0 0 135
2 100 0 3
0
4
0 0 1 135
1 25 0 4
0
0 125 0 0 135
0
0
0
0
0
0
0
0
4
0
2 20
3 85
0 105
0
0
0
0
4
0
2 45
3 60
0 105
0
0
0
0
1
0 0
5
0 0
4 135 0
0 135 0
1
0 0
5
0 0
4 135 0
0 135 0
0 100
0 180
0 220
0 1270
0 100
0 180
0 220
0 1170
0
2
3
0
0
0
0
0
0
0
0
0
v1 = 0, u1 + v1 = 2
u2 + v2 = 1; u2 + v3 = 2
u3 + v1 = 1; u3 + v3 = 3; u3 + v4 = 4
2 100
0 3
0
0 4
0
4
0 4 1 135
0 2 45
1 25
0 4
0 2 3 60
0 125
2 0 135
3 0 105
- 34-
0
0
0
4
1
0
4 0 100
0
5
0 2 0 180 2
4 135
0 0 220 1
0 135
5 0 1170
0
2 100 0 3
0
4
0 0 1 135
1 25 0 4
0
0 125 0 0 135
0
0
0
0
4
0
2 45
3 60
0 105
0
0
0
0
0 100
0 180
0 220
0 1170
0
0
0
0
2
0 0
4
0 0
1 125 0
0 125 0
3
0 0 4
0
1 135 0 2 45
4
0 0 3 60
0 135 0 0 105
1 100 0 0 100
5
0 0 0 180
4 35 0 0 220
0 135 0 0 770
0
0
0
0
2
0 4
4
0 4
1 125
0
0 125 2
3
0 4 4
0 4 1 100
0 0 100
1 135
0 2 45
0 5
0 2 0 180
4
0 2 3 60
0 4 35
0 0 220
0 135 1 0 105
0 0 135
1 0 770
0
2
3
0
- 35-
0
0
0
0
1
0 0
5
0 0
4 135 0
0 135 0
2Grafe
2.1 Grafe neorientate
Definitia 1.1 Se numeste graf neorientat un cuplu G = (V, E) unde V este o multime
finita de vrfuri, iar E o multime de perechi neordonate de el. din V numite muchii.
Remarca 1.1 Vom nota vrfurile cu vi sau cu i, iar muchiile cu ej sau cu (vi, vj ) sau
(i, j) .
Exemplul 1.1 Reteaua de drumuri dintr-o tara, vrfurile sunt localitatile, iar muchiile
sunt drumurile ntre localitati.
Definitia 1.2 Daca G = (V, E) este un graf atunci nr. el. lui V se numeste ordinul
grafului, iar nr. el. lui E dimensiunea grafului G.
Definitia 1.3 O muchie (i, i) se numeste bucla.
Definitia 1.4 2 muchii sunt adiacente daca au un vrf comun.
- 36-
Definitia 1.5 O muchie este incidenta cu un vrf daca vrful face parte din perechea
care def. muchia.
Definitia 1.6 2 vrfuri sunt adiacente daca exista o muchie formata din perechea celor
2 vrfuri.
2.1.1 Modalitati de reprezentare a unui graf
1. Metoda grafica: vrfurile sunt puncte, iar muchiile sunt arce de curba care unesc
cele 2 vrfuri.
2. Matricea de adiacenta : daca G = (V, E) este un graf de ordin n se ataseaza o
matrice n n, numita matrice de adiacenta , definita de:
A = [aij ] ,i,j=1,n
Exemplul 1.2
5
V = {1, 2, 3, 4, 5}, E = {(1, 2) , (2, 3) , (3, 4) , (2, 4) , (3, 5) , (5, 1) , (3, 3)} Matricea
de adiacenta :
0 1 0 0 1
1 0 1 1 0
A=0 1 2 1 1
0 1 1 0 0
1 0 1 0 0
- 38-
Matricea de incidenta
1
0
A=
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
- 39-
Teorema 1.2 Daca dimensiunea grafului este m atunci suma gradelor vrfurilor este
2m.
Demonstratie: Fiecare muchie contribuie cu 2 la gradele vrfurilor.
Definitia 1.10 Se numeste ciclu ntr-un graf un lant la care ultimul vrf coincide cu
primul.(!!).
Definitia 1.11 Se numeste lant (ciclu) simplu un lant (ciclu) care nu contine de doua
ori aceeasi muchie.
Definitia 1.12 Se numeste lant (ciclu) eulerian un lant (ciclu) simplu care contine
toate muchiile.
Definitia 1.13 Se numeste lant (ciclu) hamiltonian un lant (ciclu) care contine toate
vrfurile o singura data.
Exemplul 1.4 Este posibil ca un grup de 11 persoane fiecare sa strnga mna la exact
5 persoane?NU: suma gradelor este 55.
- 40-
Atasam un "graf" Vrfuri: 1, (sud), 2(est), 3(nord), 4(insula) ; Muchii (1, 2) , (1, 4) , (1, 4), (2,
(2, 3), (3, 4), (3, 4).Gradele vrfurilor: 3, 3, 3, 5.
Teorema 1.3 Intr-un graf exista un ciclu eulerian daca si numai daca toate gradele
vrfurilor sunt pare.
Teorema 1.4 Intr-un graf exista un lant eulerian daca si numai daca toate gradele
vrfurilor sunt pare cu exceptia a exact doua.
- 41-
2.2 Algoritmi
2.2.1 Definitii si notatii
Definitia 2.1 G = (V, E) graf, se numeste subgraf al lui G graful G1 = (V1, E1) cu
- 42-
V1 V, E1 E.
Definitia 2.2 Graful G = (V, E) se numeste conex daca ntre oricare doua vrfuri
exista un lant.
Definitia 2.3 Un subgraf al unui graf se numeste arbore daca este simplu, conex si
fara cicluri.
Definitia 2.4 Se numeste arbore de acoperire a unui graf conex un arbore care
contine toate vrfurile.
Teorema 2.1 Daca T este este arbore de acoperire pentru graful G de ordin n atunci
T este un subgraf conex, simplu, fara cicluri si de dimensiune n 1 si reciproc.
Definitia 2.5 Se numeste frunza ntr-un arbore un vrf de grad 1.
Definitia 2.6 Daca G1 este subgraf al grafului G se numeste muchie frontiera o
muchie din G care are un vrf n V1 si unul n V \V1.
- 43-
- 45-
2;
FT = {[af ] , [bf ] , [bg] , [bc]} aleg l = [bc] , T = {{a, b, c} , {[ab] , [bc]}} ; df _numar(c) :=
2; i = 3;
FT = {[af ] , [bf ] , [bg] , [cd] , [ce] , [cg]} ; aleg l = [cd]
T = {{a, b, c, d} , {[ab] , [bc] , [cd]}} ; df _numar(d) := 3; i = 4
FT = {[af ] , [bf ] , [bg] , [ce] , [cg] , [de]} ; aleg l = [de]
T = {{a, b, c, d, e} , {[ab] , [bc] , [cd] , [de]}} ; df _numar(e) := 4; i = 5
FT = {[af ] , [bf ] , [bg] , [cg] , [eg] , [ef ]} ; aleg l = [ef ]
T = {{a, b, c, d, e, f } , {[ab] , [bc] , [cd] , [de] , [ef ]}} ; df _numar(f ) := 5; i = 6
FT = {[bg] , [cg] , [eg] , [f g]} ; aleg l = [f g]
T = {{a, b, c, d, e, f, g} , {[ab] , [bc] , [cd] , [de] , [ef ] , [f g]}} ; df _numar(g) :=
- 46-
6; i = 7 > 6 gata.
Am obtinut:
b(1)
a(0)
c(2)
g(6)
f(5)
d(3)
e(4)
Cautare n latime:
T = {{a} , } ; et(a) := [0], i := 1
FT = {[ab] , [af ]} ;aleg l = [ab] , T = {{a, b} , {[ab]}} ;
et(b) := 1; i = 2;
FT = {[af ] , [bf ] , [bg] , [bc]} ; aleg l = [af ]; T = {{a, b, f } , {[ab] , [af ]}} ;
et(f ) := 2; i = 3;
FT = {[bc] , [bg] , [f g] , [f e]} ; aleg: l = [bc] ; T = {{a, b, f, c} , {[ab] , [af ] , [bc]}} ;
et(c) := 3; i = 4;
FT = {[bg] , [f g] , [f e] , [cd] , [ce] , [cg]} ; aleg l = [bg]
T = {{a, b, f, c, g} , {[ab] , [af ] , [bc] , [bg]}} ;
et(g) := 4; i = 5;
FT = {[f e] , [ce] , [cd] , [ge]} ; aleg l = [f e]
T = {{a, b, f, c, g, e} , {[ab] , [af ] , [bc] , [bg] , [f e]}} ;
- 47-
et(e) := 5; i = 6;
FT = {[ed] , [cd]} ; aleg: l = [cd]
T = {{a, b, f, c, g, e, d} , {[ab] , [af ] , [bc] , [bg] , [f e] , [cd]}} ;
et(d) := 6; i = 7 > 6; gata:
b(1)
a(0)
c(3)
g(4)
f(2)
d(6)
e(5)
Pasul de baz
a al algoritmului: ct timp T nu e arbore de acoperire:
1. Se actualizeaza FT ;
2. Se alege muchia frontiera l = {x, y} cu ponderea cea mai mica (x T );
3. Se adauga la T vrful y si muchia l ;
4. et(y) := [i]; i := i + 1.
Teorema 2.2 Arborele aflat cu algoritmul lui Prim este arbore de acoperire de pondere (lungime) minima.
Exemple: Sa se afle prin algoritmul de mai sus arbori de pondere minima n grafele
de mai jos:
b(2)
2
c(4)
d(1)
T = {{b}, } ; et (b) = 0; i = 1;
- 50-
a(0) 3
6
4 1
e(3)
b(2)
c(4)
d(1)
- 55-
Teorema 3.1 Daca graful are n vrfuri si pentru orice 2 vrfuri suma gradelor e mai
mare sau egala cu n, atunci exista un ciclu Hamiltonian.
Un algoritm euristic care obtine o aproximare a sol. problemei comis-voiajorului
se bazeaza pe algoritmul lui Prim.
La primul pas se obtine un arbore de acoperire al grafului cu algoritmul lui Prim.
Apoi se renumeroteaza vrfurile folosind cautarea n adncime si se uneste ultimul vrf
renumerotat cu primul, obtinnd un ciclu Hamiltonian. n acest ciclu se testeaza pentru
ce indici i, j are loc inegalitatea:
si se nlocuieste lantul rosu cu cel negru din figura de mai jos:
- 56-
Exemple:
5
45
55
35
45
105
35
85
55
4
- 59-
Graful aferent:
8
3
P
9
15 11 15
0
81
1
S
19 8
27
20
1
3
0
11
5
S
7
Lungimea: 3 + 8 + 11 + 20 + 13 + 8 = 63
Scurtare: i = 0, j = 2 : p ([P B]) + p ([LM]) = 7 + 18 = 25 <?
p ([P L]) + p ([BM]) = 3 + 11 = 14
i = 0, j = 3 : p ([P M]) + p ([LR]) = 19 + 12 = 27 <?
p ([P L]) + p[MR]) = 3 + 20 = 23
i = 0, j = 4 : p ([P R]) + p ([LS]) = 9 + 15 = 24 <?
p ([P L]) + p ([RS]) = 3 + 13 = 16
i = 1, j = 3 : p ([LM]) + p ([BR]) = 18 + 10 <?
p ([LB]) + p ([MR]) = 8 + 20
i = 1, j = 4 : p ([LR])+p ([BS]) = 12+15 = 27 <?p ([LB])+p ([RS]) = 8+13
i = 2, j = 4 : p ([BR]) + p ([MS]) = 10 + 27
- 62-
Oxford
24
183
61
189
York
220
271
74
37
154
Hull
225
280
231
305
Bristol
84
Exeter
169
- 63-
Leeds
- 64-