Sunteți pe pagina 1din 36

Capitolul 3

Modele de optimizare n grafuri orientate


n acest capitol vom prezenta modele de determinare a drumurilor de
lungime optim i a drumurilor hamiltoniene ntr-un graf orientat, utiliznd
diferite programe informatice.
Teoria grafurilor are aplicaii multiple n activitatea de planificare, de
organizare a reelelor de transport, de circulaie a informaiilor reelelor
informatice, de organizare a unor activiti etc.
De aceea, vom exemplifica modul n care determinarea drumurilor de
lungime optim i drumurile hamiltoniene pot fi aplicate n optimizarea
activitilor din domeniul militar.
3.1 Modelul matematic pentru determinarea drumurilor de lungime optim

Pentru a putea prezenta modelele de optimizare, care pot fi aplicate n


grafurile orientate, vom introduce cteva noiuni specifice.
Definiia 3.1 Fie X i Y dou mulimi i f : X Y o lege prin care fiecrui
element x X i corespunde un unic element y = f(x) Y. O astfel de lege se
numete funcie sau aplicaie univoc.
Definiia 3.2 Fie X i Y dou mulimi i f : X Y o lege prin care fiecrui
element x X i corespunde o submulime (eventual vid) din Y. O astfel de
lege se numete aplicaie multivoc.
Definiia 3.3 Se numete graf ansamblul format dintr-o mulime X i o aplicaie
multivoc : X X. Se noteaz cu G = (X, ).
Dac mulimea X = {x1, x2, , xn}, atunci graful se numete finit de ordinul n.
Definiia 3.4 Fie G = (X, ) un graf n care X = {x1, x2, , xn}. Aceasta are
urmtoarele componente:
elementele x X se numesc vrfurile grafului i se reprezint prin puncte;
perechea de vrfuri (xi, xj), cu xj = (xi) se numete arc cu extremitatea
iniial (sau originea) n xi i extremitatea final (sau terminal) n xj i
se reprezint printr-o linie orientat de la xi la xj.

47

Observaia 3.1 Un arc este deci format din perechea de vrfuri (xi, xj) i se
noteaz uij = (xi, xj). Notnd cu U mulimea arcelor dintr-un graf, atunci putem
nota G = (X, U) = (X, ). Deci un graf poate fi definit ca sistemul format din
mulimea X a vrfurilor xi i mulimea U de perechi ordonate uij = (xi, xj) de arce.
Definiia 3.5 Fie G = (X, ) un graf n care X = {x1, x2, , xn}. Vom defini
urmtoarele noiuni specifice grafurilor orientate:
se numete bucl a grafului, un arc a crei extremitate final coincide
cu cea iniial;
dac un vrf este extremitatea a mai mult de dou arce se numete nod;
dou vrfuri se numesc adiacente, dac sunt distincte i sunt unite
printr-un arc;
dou arce se numesc adiacente, dac sunt distincte i au o extremitate
comun (oricare).
Exemplul 3.1 Se d graful care are urmtoarea reprezentare grafic:

x1
x3
x2

x5

x4

Figura nr. 3.1 Reprezentarea grafic a unui graf orientat


x6
Se cere s se precizeze elementele specifice acestui graf.
Rezolvare Componentele grafului sunt:

1. X = {x1, x2, x3, x4, x5, x6, x7};


2. (x1) = {x1, x2, x3}; (x2) = {x1, x5, x6}; (x3) = {x2, x4, x5};
(x4) = {x3, x5}; (x5) = {x2, x6}; (x6) = ;
3. U = {(x1, x1), (x1, x2), (x1, x3), (x2, x1), (x2, x5), (x2, x6), (x3, x2), (x3, x4),
(x3, x5), (x4, x3), (x4, x5), (x5, x2), (x5, x6)} = {u11, u12, u13, u21, u25, u26,
u32, u34, u35, u43, u45, u52, u56}.
48

Alte elemente specifice grafului dat sunt:


4.
5.
6.
7.

u11 este o bucl;


x1, x2, x3, x4, x5, x6 sunt noduri;
de exemplu x1 i x2 sunt vrfuri adiacente;
de exemplu u12 i u32 sunt arce adiacente.

n continuare vom introduce o noiune esenial cu care vom opera pe tot


parcursul acestui capitol, i anume noiunea de drum.
Definiia 3.6 Se numete drum n graful G = (X, ) o succesiune de arce
adiacente, prin care se poate trece de la un vrf la altul. Un drum poate fi
exprimat prin vrfurile pe care le conine.
Exemplul 3.2 S se scrie un drum relativ la graful din figura nr. 3.1.
Rezolvare n graful din figura nr. 3.1, x1 , x3 , x 4 , x5 , x6 este un drum,
nelegnd c este vorba de arcele adiacente u13, u34, u45 i u56.
Arcele trebuie s fie n aceast succesiune, adic vrful final al arcului
curent este i vrful iniial al arcului urmtor.

O noiune important pe care o introducem n cele ce urmeaz, este cea de


circuit. Aceasta mparte grafurile orientate n dou mari categorii cele care
admit circuite i cele care nu admit circuite problemele de determinare a
drumurilor optime i hamiltoniene fiind tratate complet diferit.
Definiia 3.7 Un drum finit pentru care vrful iniial al drumului coincide cu
vrful final al acestuia se numete circuit.
Exemplul 3.3 S se studieze dac graful dat n figura nr. 3.1 admite circuite.
Rezolvare n graful din figura nr. 3.1, x1 , x3 , x 2 , x1 este un circuit i deci
este un graf care admite circuite.
Definiia 3.8 Se numete drum simplu, un drum care folosete o singur dat
fiecare arc al su. n caz contrar se numete compus.
Exemplul 3.4 S se scrie un drum simplu i unul compus relativ la graful dat n
figura nr. 3.1.
Rezolvare n graful din figura nr. 3.1, 1 x1 , x3 , x 4 , x5 , x6 este un drum
simplu, iar 2 x 2 , x1 , x3 , x 4 , x3 , x 2 , x1 este un drum compus, deoarece are n
compunere arcul u21 de dou ori.
49

Definiia 3.9 Se numete drum elementar, un drum care trece o singur dat prin
fiecare vrf al su. n caz contrar se numete neelementar.
Exemplul 3.5 S se scrie un drum elementar i unul neelementar relativ la graful
dat n figura nr. 3.1.
Rezolvare n graful din figura nr. 3.1, 1 x1 , x3 , x 4 , x5 , x6 este un drum

elementar, iar 3 x 2 , x1 , x3 , x 4 , x3 , x5 , x6 este un drum neelementar, deoarece


are n compunere vrful x3 de dou ori.

Definiia 3.10 Se numete drum hamiltonian, un drum elementar care trece prin
toate vrfurile grafului.
Exemplul 3.6 S se studieze dac graful dat n figura nr. 3.1 admite drumuri
hamiltoniene.
Rezolvare Drumul x 2 , x1 , x3 , x 4 , x5 , x6 este un drum hamiltonian.
Definiia 3.11 Fiecrui graf finit G = (X, ) i putem asocia o matrice ptratic
(cij), de acelai ordin cu cel al grafului, definit n felul urmtor:
1, dac xi , x j U
cij
0, dac xi , x j U

(3.1)

i numit matricea boolean sau conex ataat grafului i se noteaz cu (C).


Aceast matrice ofer o caracterizare complet a grafului, fiind foarte simplu
s se reprezinte grafic un graf a crui matrice boolean ataat este cunoscut.
Exemplul 3.7 Fie graful din figura de mai jos.
x1
x3

x2

Figura nr. 3.2 Reprezentarea grafic a unui graf orientat


S se scrie matricea boolean ataat.
Rezolvare Matricea boolean corespunztoare este urmtoarea:

50

x1 x2 x3
x1 1 1 1

C= x2 1 0 0 .
x3 0 1 0

n acelai fel se procedeaz dac se cunoate matricea boolean pentru


construirea grafului orientat corespunztor acesteia.
Definiia 3.12 Se numete lungime a unui drum numrul arcelor ce-l compun.
Exemplul 3.8 S se determine lungimea drumului x1 , x3 , x4 , x5 , x6 din

cadrul grafului din figura nr. 3.1.


Rezolvare Lungimea drumului x1 , x3 , x4 , x5 , x6 este 4, deoarece acesta

este compus din 4 arce.


Numeroase aplicaii ale grafurilor sunt legate de determinarea drumului
de valoare minim sau maxim dintre dou vrfuri xi X i xj X ale grafului
G = (X, ) = (X, U).
Problema drumului optim nu se reduce numai la gsirea numrului minim
sau maxim de arce care-l compun ci, pe lng distana dintre dou vrfuri,
trebuie luate n considerare i alte elemente: dificultatea de parcurgere, costurile
de parcurgere (financiare, materiale etc.). De aceea, fiecrui arc uij U i atam
o valoare l(xi, xj) 0.
Definiia 3.13 Valoarea l(xi, xj) pe care o atam unui arc (xi, xj) U se numete
valoarea arcului (bucla are valoarea 1). Fie drumul xi1 , xi2 , ..., xik , atunci

valoarea drumului se definete cu ajutorul relaiei:


l()=

l ( xi , xi
j 1

j 1

) , ( xi j , xi j 1 ) U, ( ) j 1, k .

(3.2)

Drumul optim corespunde valorii optime (minime sau maxime) a unui


drum n interiorul unui graf ntre dou vrfuri fixate xi i xj ale acestuia.
Definiia 3.14 Cel mai lung drum dintr-un graf se numete drum critic.

Aa cum precizam anterior, exist o serie de algoritmi de determinare a


drumurilor de lungime optim ntr-un graf, cum ar fi algoritmii lui Ford,
Bellman-Kalaba, Chen i alii.
51

3.2 Determinarea drumurilor de lungime optim cu aplicaia STORM

n continuare vom vedea cum poate fi utilizat programul STORM pentru


determinarea drumurilor de lungime minim sau maxim dintr-un graf.
Exemplul 3.9 Timpul de transmitere a ordinelor ntre 9 subuniti care
desfoar mpreun o operaie militar este dat n graful de mai jos. S se
determine limita maxim de timp n care un ordin ajunge de la subunitatea l la
subunitatea 9.

Figura nr. 3.3 Graful corespunztor fluxului de transmitere a ordinelor


Rezolvare Pentru determinarea drumurilor de lungime maxim, vom utiliza
programul STORM. n figura de mai jos sunt opiunile programului STORM,
din care vom selecta Distance Networks.

Figura nr. 3.4 Opiunile programului STORM


Dup selectarea tipului de model pe care dorim s-l aplicm sunt
introduse datele problemei, aa cum se poate vedea n figura de mai jos.
52

Figura nr. 3.5 ncrcarea datelor problemei n program


Dup finalizarea procesului de introducere a datelor problemei, se apas
tasta F7 pentru rularea programului, care ne va furniza opiunile pe care le
putem alege, aa cum se poate vedea n figura de mai jos.

Figura nr. 3.6 Opiuni pentru drumurile dintr-un graf


n figurile de mai jos sunt prezentate nodurile iniial i respectiv final ntre
care dorim s determinm drumurile de lungime maxim i valoarea acestora.

53

Figura nr. 3.8 Alegerea nodului final

Figura nr. 3.7 Alegerea nodului iniial

n final gsim drumurile de lungime optim ntre vrfurile selectate,


acestea fiind prezentate n figura de mai jos.

Figura nr.3.9 Soluia optim a problemei


Astfel, succesiunea vrfurilor care intr n compunerea drumurilor de
lungime maxim este:
x4
x6
x8
x9
x2
x1
x5
x7
x9
x5
x7
x9
x3
Figura nr. 3.10 Reprezentarea schematic a drumurilor
de lungime maxim ntre vrfurile selectate
Aa cum se poate vedea n figura nr. 3.10, avem 3 drumuri de lungime
maxim:
1 = (x1, x2, x4, x6, x8, x9), 2 = (x1, x2, x5, x7, x9) i 3 = (x1, x3, x5, x7, x9).
54

Exemplul 3.10 Graful din figura de mai jos reprezint un sistem de comunicare
a informaiilor ntre 8 subuniti ale unei structuri militare. Se cere determinarea
drumului de valoare minim a transmiterii informaiilor ntre prima i ultima
subunitate.

x7

Figura nr. 3.11 Graful corespunztor fluxului de comunicare a informaiilor


Rezolvare i aceast problem va fi soluionat utiliznd programul STORM,
de data aceasta ns vom selecta opiunea pentru drumurile de lungime minim.
Dup selectarea tipului de model pe care dorim s-l aplicm, sunt
introduse datele problemei, aa cum se poate vedea n figura de mai jos.

Figura nr. 3.12 ncrcarea datelor problemei n program


55

Dup finalizarea procesului de introducere a datelor problemei, se apas


tasta F7 pentru rularea programului, care ne va furniza opiunile pe care le
putem alege, de data aceasta fiind selectat opiunea pentru drumurile de
lungime minim, aa cum se poate vedea n figura de mai jos.

Figura nr. 3.13 Opiuni pentru drumurile dintr-un graf


n figurile de mai jos sunt prezentate nodurile iniial i respectiv final ntre
care dorim s determinm drumurile de lungime minim i valoarea acestora.

Figura nr. 3.14 Alegerea nodului iniial

Figura nr. 3.15 Alegerea nodului final

n final gsim drumurile de lungime optim ntre vrfurile selectate,


acestea fiind prezentate n figura de mai jos.
56

Figura nr. 3.16 Soluia optim a problemei


Astfel, succesiunea vrfurilor care intr n compunerea drumurilor de
lungime minim este:
x4
x8
x6
x4
x8
Figura nr. 3.17 Reprezentarea schematic a drumurilor
de lungime minim ntre vrfurile selectate
x1

x3

Aa cum se poate vedea n figura nr. 3.17, avem 2 drumuri de lungime


minim:
1=(x1, x3, x6, x4, x8) i 2=(x1, x3, x4, x8).
3.3 Aplicarea modelului drumurilor de lungime optim n domeniul militar

Vom exemplifica n continuare modalitatea n care modelul drumurilor de


lungime optim ntr-un graf poate fi aplicat sau adaptat pentru diferite situaii
din domeniul militar.
Exemplul 3.11 (Stabilirea traseului optim ntre dou localiti) Comandantul
unei structuri militare trebuie s stabileasc traseul optim de deplasare ntre
localitile Al Barah i Al Mawsil. Acesta are la dispoziie o hart a zonei, n
care urmeaz s se desfoare aceast operaie, prezentat n figura de mai jos, i
a reuit, cu ajutorul programului Autorout s determine distanele dintre
localitile menionate pe hart. Pe baza acestor informaii s se stabileasc
57

modalitatea n care trebuie s fie organizat deplasarea ntre localitile Al


Barah i Al Mawsil n aa fel nct subunitatea s ajung ntr-un timp ct mai
scurt la destinaie i s treac prin localitatea Bagdad.

Figura nr. 3.18 Zona de operare a structurii militare


Distanele corespunztoarea localitilor din zona de operaii sunt date n
tabelul de mai jos.
58

Tabelul nr. 3.1 Distanele ntre localitile din zona de operaii


Punct plecare
Punct sosire
Distan (km)
Nr. vrf
Localitate
Nr. vrf
Localitate
(2)
An Niriyah
159
(1)
Al Barah
(5)
Al Amarah
145
(3)
As Samawah
95
(2)
An Niriyah
(4)
Ash Shatrah
42
(4)
Ash Shatrah
75
(3)
As Samawah
(7)
An Najaf
103
(12)
Baqubah
275
(5)
Al Amarah
109
(4)
Ash Shatrah
(6)
Al Hayy
78
(7)
An Najaf
177
(6)
Al Hayy
109
(5)
Al Amarah
(9)
Al Kut
141
(17)
As Sulaymaniya
580
(8)
All Hillah
150
(6)
Al Hayy
(9)
Al Kut
52
(8)
All Hillah
69
(7)
An Najaf
(14)
Ar Ramadi
209
(10)
Karbala
43
(8)
All Hillah
(11)
Bagdad
83
(17)
As Sulaymaniya
335
(8)
All Hillah
125
(9)
Al Kut
(12)
Baqubah
167
(17)
As Sulaymaniya
395
(11)
Bagdad
85
(10)
Karbala
(14)
Ar Ramadi
158
(12)
Baqubah
66
(11)
Bagdad
(13)
Samarra
109
(15)
Anah
260
(14)
Ar Ramadi
150
(12)
Baqubah
(16)
Kirkuk
183
(15)
Anah
180
(13)
Samarra
(16)
Kirkuk
151
(19)
Al Mawsil
250
59

(14)

Ar Ramadi

(15)

Anah

(16)

Kirkuk

(17)
(18)
(19)

As Sulaymaniya
Arbil
Al Mawsil

(13)
(15)
(19)
(15)
(17)
(18)
(18)
(19)

Samarra
Anah
Al Mawsil
Anah
As Sulaymaniya
Arbil
Arbil
Al Mawsil

108
148
225
251
83
100
141
82

Rezolvare Pe baza tabelului nr. 3.1 se poate ntocmi graful corespunztor zonei
de operaii prezentat n figura de mai jos.

Figura nr. 3.19 Graful corespunztor zonei de operaii


Fiecare culoare reprezint o localitate (nod) i drumurile care pleac de la
aceasta.
60

Tabelul i graful anterior conin toate datele necesare determinrii


traseului optim de deplasare ntre localitile Al Barah i Al Mawsil.
n cele ce urmeaz, vom utiliza programul STORM pentru a determina
drumul de lungime minim ntre aceste localiti.
n figura de mai jos sunt introduse datele generale ale problemei, iar n
partea de jos informaiile referitoare la distanele dintre noduri.

Figura nr. 3.20 ncrcarea datelor problemei n program


Dup finalizarea procesului de introducere a datelor problemei, se apas
tasta F7 pentru rularea programului, care ne va furniza opiunile pe care le
putem alege. Pentru problema noastr, vom selecta opiunea pentru drumurile de
lungime minim, aa cum se poate vedea n figura de mai jos.

61

Figura nr. 3.21 Opiuni pentru drumurile dintr-un graf


n figurile de mai jos sunt prezentate nodurile iniial i respectiv final ntre
care dorim s determinm drumurile de lungime minim i valoarea acestora.

Figura nr. 3.22 Alegerea nodului iniial

Figura nr. 3.23 Alegerea nodului final

Pentru prima parte a traseului, ntre localitile Al Barah i Bagdad,


drumurile de lungime optim sunt prezentate n figura de mai jos.

Figura nr. 3.24 Soluia optim a problemei pentru prima parte a traseului
62

Drumul de lungime minim pentru prima parte a traseului este:


Al Barah Al Amarah Al Hayy All Hillah Bagdad

i are o lungime de 487 km.


Mai departe, pentru partea a doua a traseului, vom selecta ca nod de
plecare nodul (11), corespunztor localitii Bagdad i ca destinaie final nodul
(19), corespunztor localitii Al Mawsil, soluia optim fiind prezentat n
figura de mai jos.

Figura nr. 3.25 Soluia optim a problemei pentru partea a doua a traseului
Drumul de lungime minim pentru prima parte a traseului este:
Bagdad Samarra Al Mawsil

i are o lungime de 359 km.


Deci, drumul de lungime optim ntre localitile Al Barah i Al Mawsil
care trece prin Bagdad este
Al Barah Al Amarah Al Hayy All Hillah Bagdad Samarra Al Mawsil

i are o lungime de 846 km.


3.4 Modelul matematic pentru determinarea drumurilor hamiltoniene

Reamintim c un drum hamiltonian este un drum care trece o singur dat


prin fiecare vrf al grafului.
Drumurile hamiltoniene sunt modele matematice extrem de utile n
procesele n care trebuie parcurse o singur dat toate operaiile sau activitile
(reprezentate de vrfurile grafului) care-l compun.
63

Definiia 3.15 Fiecrui graf finit G = (X, ) i putem asocia o matrice ptratic
(tij), de acelai ordin cu cel al grafului, definit n felul urmtor:

1, dac exist drum de la xi la x j


tij
0, dac nu exist drum de la xi la x j

(3.3)

i numit matricea conex terminal ataat grafului i se noteaz cu (T).


Observaia 3.2 Matricea conex terminal se obine din matricea conex sau
boolean ataat grafului, cu ajutorul operaiei de adunare boolean (0 + 0 = 0,
0 + 1 = 1, 1 + 0 = 1 i 1 + 1 = 1).
Definiia 3.16 Se numete puterea de atingere a vrfului xi, suma elementelor
liniei i din matricea conex terminal (T).
Puterea de atingere a vrfurilor se trece n partea dreapt a matricei
conexe terminale (T).
Teorema 3.1 Un graf orientat nu admite circuite dac i numai dac n matricea
conex terminal (T) nu avem elemente de 1 pe diagonala principal i
n
n n 1
pi 2 , unde pi, i 1, n , este puterea de atingere a vrfurilor grafului
i 1

xi, i 1, n .
Pentru nceput va fi rezolvat problema existenei drumurilor
hamiltoniene ntr-un graf orientat i fr circuite, principalul rezultat fiind
prezentat mai jos.
Teorema 3.2 (de existen i unicitate a drumului hamiltonian) Un graf orientat
i fr circuite admite un unic drum hamiltonian dac i numai dac suma puterii
de atingere a tuturor vrfurilor grafului sau suma tuturor elementelor nenule din
n n 1
matricea conex terminal (T) este
.
2

n cazul n care graful admite drum hamiltonian, acesta este dat de scrierea
vrfurilor corespunztoare grafului n ordine descresctoare a puterii de atingere.
Observaia 3.3 Considernd matricea conex terminal trianghiularizat
superior (T'), n care vrfurile grafului sunt aranjate n ordinea puterii de

64

n n 1
elemente de 1 vor ocupa toate poziiile din matricea (T')
2
aflate deasupra diagonalei principale.

atingere, cele

Algoritmul practic de determinare a drumului hamiltonian:


Pasul 1 Se construiete matricea conex a grafului;
Pasul 2 Se determin matricea conex terminal corespunztoare grafului;
Pasul 3 Se verific dac graful admite circuite i drum hamiltonian (s nu fie 1
pe diagonala principal i numrul elementelor de 1 din matricea conex
n n 1
terminal s fie
);
2
Pasul 4 Drumul hamiltonian se obine prin scrierea vrfurilor grafului n ordine
descresctoare a puterii de atingere.

Pentru grafurile orientate care admit circuite, problema determinrii


drumurilor hamiltoniene este mai complicat.
Exist dou abordri: cea oferit de algoritmul lui Foulkes i cea oferit
de metoda matricelor latine.
Vom prezenta foarte succint algoritmul lui Foulkes, fr a intra n detalii.
Definiia 3.17 Un graf G = (X, ) se numete tare conex, dac pentru orice
pereche de vrfuri (xi , xj) ale grafului exist un drum de la vrful xi la vrful xj.

Ideea algoritmului lui Foulkes pentru determinarea drumurilor


hamiltoniene ntr-un graf cu circuite este descompunerea acestuia n subgrafe
tare conexe (clase de echivalen), aezate ntr-o anumit succesiune (ordinea
este dat de determinarea claselor de echivalen).
Drumurile hamiltoniene vor fi construite n felul urmtor: vom scrie toate
drumurile hamiltoniene pariale din fiecare clas de echivalen, pe care apoi le
asamblm n ordinea obinerii claselor de echivalen cu ajutorul arcelor dintre
clase, obinnd n acest fel drumuri hamiltoniene complete.
De exemplu, oricare vrf din prima clas poate fi ales ca nceput de drum,
dup cum oricare vrf din ultima clas de echivalen poate fi sfritul drumului
hamiltonian.
Evident c vom gsi mai multe drumuri hamiltoniene, iar n funcie de
cerina problemei l vom alege pe cel optim.
Metoda matricelor latine este utilizat pentru determinarea tuturor
drumurilor elementare formate dint-un arc, din dou arce, i din n 1 arce
65

(numrul maxim de arce pentru un drum elementar ntr-un graf cu n vrfuri,


deoarece ntr-un drum elementar un vrf poate s apar doar o singur dat).
Metoda const n determinarea unor matrice C(1), C(2), C(3), , C(n 1), unde
n este numrul vrfurilor grafului, C(1) fiind matricea conex ataat grafului, iar
celelalte fiind obinute prin nmulirea matricei anterioare cu matricea conex C,
nmulirea matricelor realizndu-se cu ajutorul operaiei de concatenare.
Matricea C(n 1) este cea care conine drumurile hamiltoniene, deoarece aici
sunt drumurile elementare care trec prin toate vrfurile grafului (avnd n 1 arce).
Dup determinarea drumurilor hamiltoniene, se evalueaz lungimile
acestora i se aleg drumurile cu cea mai mic sau cea mai mare lungime, n
funcie de cerinele problemei, care se modeleaz cu ajutorul acestora.
Algoritmul lui Foulkes se poate dovedi ineficient n cazul n care avem o
singur clas de echivalen i mai are dezavantajul c oricum, n interiorul
claselor de echivalen trebuie determinate drumurile hamiltoniene n care
trebuie s inem seama de arcele care leag clasele de echivalen.
3.5 Determinarea drumurilor hamiltoniene cu o aplicaie specializat

n continuare vom utiliza un program proiectat n limbajul Turbo Pascal,


care determin drumurile hamiltoniene ntr-un graf orientat, indiferent dac acesta
admite sau nu circuite.
Programul distinge mai nti, pe baza determinrii matricei conexe
terminale, dac graful admite sau nu circuite pentru a utiliza, n funcie de aceste
situaii, algoritmul care trebuie aplicat.
n cazul n care graful nu admite circuite, se utilizeaz algoritmul lui Chen,
fiind n msur s redea drumul hamiltonian, n cazul n care graful admite drum
hamiltonian, sau s genereze matricea conex terminal triunghiularizat superior
(matrice care se obine din matricea conex terminal prin rearanjarea vrfurilor
n ordinea puterii de atingere) pentru a ne da posibilitatea s corijm graful
prin completarea arcurilor care se afl deasupra diagonalei principale (i care
sunt 0 n matricea conex terminal triunghiularizat superior).
n cazul n care graful admite circuite, programul utilizeaz algoritmul lui
Foulkes pentru determinarea drumurilor hamiltoniene.
Exemplul 3.12 Prelucrarea unui produs se realizeaz prin efectuarea a
6 operaii, care trebuie s respecte urmtoarele restricii:
P1 trebuie s fie ultima operaie;
66

dup P2 poate urma P1, P3 sau P6;


dup P3 poate urma doar P1;
dup P4 poate urma P3, P5 sau P6;
dup P5 poate urma P1, P2 sau P6;
dup P6 urmeaz P3.
S se studieze dac produsul poate fi realizat sau cu alte cuvinte dac
graful orientat ataat admite drum hamiltonian.
Rezolvare Fluxul de prelucrare al respectivului produs poate fi reprezentat sub
forma unui graf, aa cum se poate vedea n figura de mai jos.

Figura nr. 3.26 Reprezentarea grafic a operaiilor de realizare a produsului


Pentru determinarea drumurilor hamiltoniene n acest graf vom utiliza
programul informatic amintit la nceputul acestui paragraf.
n figura de mai jos este prezentat modul n care sunt introduse datele
problemei n program.
Pentru nceput se introduce numrul de noduri, dup acest pas fiind necesar
introducerea tuturor arcelor grafului.
n cadrul aplicaiei, pentru uurina utilizrii acesteia, este specificat modul
n care datele grafului trebuie introduse.
Se poate constata cu uurin c practic este introdus matricea conex a
grafului, prin completarea, pe rnd, a liniilor acesteia.
n cazul nostru, graful avnd 6 noduri, trebuie introduse cele 36 de valori ale
matricei conexe (C) ataate grafului dat.

67

Figura nr. 3.27 Introducerea datelor problemei


Mai departe este generat matricea conex, se determin matricea conex
terminal i este prezentat mesajul referitor la existena drumurilor hamiltoniene,
aa cum se poate vedea n figura de mai jos.

Figura nr. 3.28 Soluia problemei


68

Aceasta nseamn c drumul hamiltonian este:


dH: P4, P5, P2, P6, P3, P1.
Exemplul 3.13 Pentru efectuarea unor activiti legate de desfurarea unei
alarme este necesar efectuarea a ase operaii importante de ctre comanda
unitii a cror succesiune este condiionat de urmtoarele restricii:

dup x1 poate urma x2 sau x3;


dup x2 poate urma x3;
dup x3 poate urma x4;
x4 trebuie s fie ultima operaie;
dup x5 poate urma oricare dintre x1, x3, x4 sau x6;
dup x6 poate urma doar x4.
S se determine ordinea n care trebuie executate aceste activiti, astfel
nct s fie parcurse toate operaiile o singur dat.
Rezolvare Succesiunea n care sunt efectuate operaiile poate fi reprezentat sub
forma unui graf, aa cum se poate vedea n figura de mai jos.

Figura nr. 3.29 Reprezentarea grafic a operaiilor dintr-o unitate economic


Pentru studierea existenei drumurilor hamiltoniene, iar n cazul n care
acestea exist i determinarea lor, vom utiliza acelai program, n figura de mai jos
fiind introduse datele problemei n program.

69

Figura nr. 3.30 Introducerea datelor problemei


Mai departe este generat matricea conex, se determin matricea conex
terminal i este prezentat mesajul referitor la existena drumurilor hamiltoniene,
aa cum se poate vedea n figura de mai jos.

Figura nr. 3.31 Existena drumurilor hamiltoniene pentru graful dat


Aa cum se poate constata, acest graf nu admite drumuri hamiltoniene.
n imaginea de mai jos se poate vedea c n cazul n care graful nu admite drum
70

hamiltonian, programul ne furnizeaz automat matricea conex terminal


triunghiularizat superior.
Prin adugarea arcelor corespunztoare elementelor, care sunt 0 deasupra
diagonalei principale n aceast matrice, graful nou obinut va admite drum
hamiltonian.

Figura nr. 3.32 Corijarea grafului pentru a admite drum hamiltonian


Aa cum se poate constata, trebuie adugat un singur arc, drumul
hamiltonian n acest caz fiind
dH: x5, x1, x2, x3, x6, x4.
Exemplul 3.14 Pentru ndeplinirea unei misiuni trebuie parcurse 8 activiti.
n tabelul de mai jos sunt trecute intervalele de timp necesare pentru a trece de la
o activitate la alta i evident modul n care acestea sunt condiionate una de alta.
Se cere s se determine cursul optim de aciune, n aa fel nct misiunea s fie
ndeplinit ntr-un timp ct mai scurt.
MC A1
0
A1
0
A2
0
A3
0
A4
0
A5
0
A6
0
A7
0
A8

A2
3
0
0
0
7
5
0
0

A3
5
6
0
0
3
4
4
0

A4
2
6
4
0
4
5
4
0
71

A5
7
0
0
0
0
0
0
0

A6
6
0
0
0
6
0
0
0

A7
4
6
0
0
7
6
0
5

A8
4
5
5
6
5
4
0
0

Rezolvare n figura de mai jos sunt introduse datele problemei n program.

Figura nr. 3.33 Introducerea datelor problemei


72

Mai departe este generat matricea conex, se determin matricea conex


terminal i este prezentat mesajul referitor la faptul c de aceast dat graful dat
admite circuite i n consecin se va aplica algoritmul lui Folkes, aa cum se
poate vedea n figura de mai jos.

Figura nr. 3.34 Tipul grafului i algoritmul care se aplic


73

Mai departe se aplic algoritmul i sunt afiate drumurilor hamiltoniene,


aa cum se poate vedea n figura de mai jos.

Figura nr. 3.35 Drumurile hamiltoniene ale grafului


Aa cum se poate constata sunt 15 drumuri hamiltoniene, cel de lungime
minim fiind:
dH: A5, A6, A1, A2, A8, A7, A3, A4.

74

3.6 Aplicarea modelului drumurilor hamiltoniene n domeniul militar

Algoritmul utilizat este cel oferit de metoda matricelor latine mpreun cu


operaia de concatenare i este realizat n mediul Visual Studio 2010
Professional C (Si Sharp).
Programul dezvoltat permite determinarea drumurilor hamiltoniene
indiferent de situaia n care ne gsim, aceasta fiind evideniat dup
introducerea matricei ataat grafului.
O caracteristic important a acestui program este aceea c poate fi
adaptat att pentru determinarea drumurilor de lungime minim ct i pentru
cele de lungime maxim i presupune numai introducerea informaiilor
referitoare la matricea ataata grafului.
Exemplul 3.15 Principalele subansamble din compunerea echipamentului de
rulare al unui vehicul blindat sunt urmtoarele:
O pregtirea iniial;
A asamblare limitator curs ridicare coborre galei;
B asamblare supori balansoare;
C asamblare balansoare;
D asamblare galei;
E montare bare torsiune;
F montare galei pe balansoare (dup operaiile C i D);
G montare supori balansoare (dup operaia B);
H montare limitator curs (dup operaia A);
I finalizare montare balansoare galei (dup operaiile G i H).
Principalele elemente ale sistemului de rulare pentru un vehicul blindat
greu sunt prezentate n figura de mai jos.

Figura nr. 3.36 Principalele elemente ale sistemului de rulare


75

Principalele elemente ale sistemului de rulare sunt: 1 suportul


balansorului, 2 senila, 3 amortizorul, 4 roata motoare, 5 galet,
6 tamponul amortizor, 7 balansorul galetului, 8 crapodina balansorului,
9 limitatorul balansorului, 10 bara de torsiune i 11 roata de ntindere.
Schematic, ordinea efecturii operaiilor pentru un astfel de echipament este
prezentat n figura de mai jos.

Figura nr. 3.37 Legturile


dintre operaii

Figura nr. 3.38 Graful orientat ataat procesului


de realizare a unui subansamblu din compunerea
unui vehicul blindat

Trebuie determinat ordinea efecturii operaiilor de asamblare a sistemului


de rulare, n aa fel nct timpul de realizare a acestuia s fie ct mai mic.
Rezolvare n figura nr. 3.38 este reprezentat graful orientat corespunztor
operaiilor de montaj pentru subansamblele sistemului de rulare ale unui vehicul
blindat.
Graful de mai sus are ataat urmtoarea matrice boolean sau conex:
0 1 1

0 0 1
0 1 0

0 1 1
C 0 1 1

0 0 1

0 0 1
0 0 0

0 0 0

1
1
1
0

1
1
1
1

0 0
1 0
0 0
0 1

0
0
1
0

1
1
0
0
0

0
1
0
0
0

0 1 0
0 1 1
0 0 1
0 1 0
0 0 0

1
1

0
0
0
0

76

Pentru matricea conex capacitat vom trece valorile arcelor grafului


ataat operaiilor de montaj pentru subansamblele sistemului de rulare ale unui
vehicul blindat. Acestea reprezint timpul necesar trecerii de la o operaie la alta,
dar evident i legturile care exist ntre aceste operaii, aa cum se poate vedea
mai jos.

'
C

5 ,21

2 ,07

4 ,03

2 ,74

0
0

0
5 ,23

2 ,09
0

4 ,06
4 ,05

2 ,77
2 ,76

0 ,26
0

0
0

0
1,17

52 ,47

2 ,10

2 ,78

122 ,52

0
0

52 ,52
0

2 ,11
2 ,13

4 ,07
4 ,10

0
2 ,81

0
0

12 ,26
12 ,28

0
1,22

2 ,73

1,81

0
0

0
0

0
0

0
0

0
0

0
0

12 ,23
0

0
0

0
0

0
0

3 ,65
3 ,00

0
0

n acest program destinat determinrii drumurilor hamiltoniene avem


posibilitatea s introducem elementele matricei C sau pe cele ale matricei C'.
Dac introducem numai matricea conex, vom obine toate drumurile
hamiltoniene, iar dac vom introduce valorile matricei C', pe lng drumurile
hamiltoniene, vom vedea i care dintre acestea sunt optime (minime sau maxime).
Primul pas este introducerea numrului de noduri ale grafului i
confirmarea acestuia prin activarea butonului OK. Acesta va genera o matrice
ptratic cu ordinul egal cu numrul de noduri ale grafului care se completeaz
cu matricea ataat acestuia. Dup aceste operaii se apas butonul ncarc
datele. Toate aceste etape sunt prezentate n figura de mai jos.

Figura nr. 3.39 Introducerea datelor matricei C sau C'


77

n continuare, prin activarea butonului Prelucrare date are loc procesarea


datelor, programul afieaz situaia n care ne aflm (dac graful este cu circuite
sau fr circuite) i n funcie de aceasta ne ofer informaii referitoare la soluia
optim, aa cum se poate observa n figura urmtoare.

Figura nr. 3.40 Fluxul optim de desfurare a procesului de asamblare


78

Lungimea acestui drum este 31,49 ore, avnd n vedere c valorile


introduse n program au fost obinute nmulind cu 100 valorile reale, pentru a
lucra cu numere naturale.
Aceasta nseamn c succesiunea operaiilor care trebuie parcurse pentru
optimizarea procesului de realizare a subansamblului din compunerea unui
vehicul blindat este urmtoarea:
2,74
1

4,07
5

2,10
4

5,23
3

0,26
2

12,28
6

1,81
7

3,00
8

Figura nr. 3.41 Succesiunea operaiilor care trebuie parcurse pentru optimizarea
procesului de realizare a subansamblului din compunerea unui vehicul blindat
n graful din figura de mai jos este reprezentat drumul hamiltonian obinut
anterior.

Figura nr. 3.42 Drumul hamiltonian de lungime minim


n concluzie, soluia optim pentru optimizarea procesului de realizare a
subansamblului din compunerea unui vehicul blindat este realizarea operaiunilor n
ordinea prezentat n figura de mai sus.
Probleme propuse

1. Fie o mulime finit X = {1, 2. 3, 4, 5, 6} i aplicaia multivoc a lui X n


X, dat de egalitile:
79

(1) = {1, 2, 4, 6};


(2) = {3, 5}:
(3) = {l, 2, 5};
(4) = {2, 3, 5};
(5) = {4, 5, 6};
(6) = {1, 2, 3}.

Se cere s se construiasc graful G = (X, ) corespunztor. S se


enumere buclele, nodurile i vrfurile finale. S se scrie U x2 , U x4 i 1 (x3).
S se identifice drumurile simple, elementare, hamiltoniene i circuitele
grafului, precum i matricea boolean asociat acestuia.
2. O coloan de blindate trebuie s parcurg un traseu, astfel nct s plece din
localitatea x1 i s ajung n localitatea x9. Cheltuielile de timp i transport sunt
reprezentate n graful de mai jos. Se cere s se determine traseul optim, astfel
nct cheltuielile s fie minime, iar coloana s treac prin ct mai multe puncte.

3. Un avion are misiunea s plece din baza x1 i s ajung la o alt baz x9. Pe
parcurs trebuie s distrug i anumite obiective, acestea fiind trecute n graful de
mai jos, precum i timpul necesar de parcurgere a distanelor respective.
S se determine limita maxim de timp n care acesta ajunge la baza x9 i
numrul de obiective distruse.
S se determine limita maxim de timp n care acesta ajunge la baza x9 i
numrul de obiective distruse, dac trebuie s treac prin baza x5.
80

4. Trecerea unei subuniti de lupt din starea n cazarm la starea de lupt


n dispozitivul de lupt, implic parcurgerea a 7 etape obligatorii a cror
succesiune i durat este dat de graful de mai jos. Se cere determinarea
timpului minim necesar dintre nceputul activitilor care ncep din vrful xi i
sfritul lor ce intr n alt vrf xj. S se determine intervalul minim de timp
dintre activitile x1 i x7 i drumul critic corespunztor.

5. Pentru ndeplinirea unei misiuni trebuie parcurse 8 activiti. n tabelul de mai


jos sunt trecute intervalele de timp necesare pentru a trece de la o activitate la
alta i evident modul n care acestea sunt condiionate una de alta. Se cere s se
determine cursul optim de aciune, n aa fel nct misiunea s fie ndeplinit
ntr-un timp ct mai scurt.

81

MC A1
0
A1
3
A2
0
A3
2
A4
0
A5
6
A6
4
A7
0
A8

A2
0
0
0
6
7
5
0
0

A3
5
6
0
0
3
0
4
0

A4
0
0
4
0
4
5
4
0

82

A5
7
0
0
0
0
0
7
0

A6
0
0
4
0
6
0
6
0

A7
0
6
0
0
0
0
0
5

A8
4
5
5
6
5
4
0
0

S-ar putea să vă placă și