Sunteți pe pagina 1din 24

CUPRINS

LABORATORUL 3 .............................................................................................................. 1

APLICAȚII DE REȚELE (GRAFURI) ........................................................................................ 1


3.1 Concepte generale despre rețele (grafuri) ........................................................................... 1
3.2 Problema drumului minim (Shortest Route) ................................................................... 2
3.3 Aplicația A3.1 – Drumul minim ..................................................................................... 3
3.4 Aplicația A3.1a – Drumul minim – Rezolvare ca PPL ....................................................... 6
3.5 Aplicația A3.1b – Drumul minim într-o rețea neorientată – Problema 2........................ 11
3.6 Problema drumului minim într-un arbore extins (Minimum Spanning Tree) .................. 15
3.7 Aplicația A3.2 – Drumul minim într-un arbore extins ................................................... 16
3.8 Aplicația A3.3 – Drumul minim – Problema 1............................................................... 19
3.9 Aplicația A3.4 – Fluxul maxim (Maximal Flow) – Problema 4 ............................................. 23
3.10 Aplicația A3.5 – Fluxul maxim (Maximal Flow) – Problema 5 ........................................... 28
3.11 Aplicația A3.6 – Drumul minim într-un arbore extins direcționat ..................................... 34
3.12 Aplicația A3.7 – Fluxul maxim (Maximal Flow) într-o rețea feroviară ............................... 38

3-1
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)1
Networks

3.1 Concepte generale despre rețele (grafuri)


O rețea (network) este un aranjament al unor drumuri conectate în diferite
puncte, denumite noduri, prin care unul sau mai multe elemente se deplasează
de la un punct la altul
În matematică, conceptul utilizat pentru rețele poartă denumirea de graf.
Modelul fluxului rețelei (network flow) descrie fluxul de elemente prin
intermediul unui sistem grafic
Rețelele sunt reprezentate ca diagrame formate din două componente
principale: noduri (nodes) și ramuri (branches).
Nodurile reprezintă punctele de intersecție, iar ramurile conectează nodurile și
reflectă fluxul dintr-un nod din rețea în altul.
Nodurile sunt reprezentate în diagrama rețelei prin cercuri, iar ramurile sunt
reprezentate de liniile care leagă nodurile.
Nodurile reprezintă de obicei localități, cum ar fi orașe, intersecții sau terminale
de cale ferată sau aeriană; ramurile sunt căile care leagă nodurile, cum ar fi
drumurile care leagă orașele și intersecțiile sau căile ferate sau rutele aeriene
care leagă terminalele
Nodul inițial se numește origine, iar ultimul nod in rețea se numește destinație
Nodurile sunt în general numerotate (1, 2, ...)
În mod obișnuit, pentru fiecare ramură este atribuită o valoare care reprezintă
o distanță, o durată de timp sau un cost.
Astfel, scopul rețelei este de a determina distanța cea mai scurtă, durata cea mai
scurtă sau cea mai scurtă rută între nodurile din rețea
Vom discuta despre utilizarea modelelor de flux de rețea pentru a analiza trei
tipuri de probleme:
▪ Problema drumului minim (Shortest Route)
▪ Problema drumului minim într-un arbore (Minimum Spanning Tree)
▪ Problema fluxului maxim (Maximal Flow)

1Lixăndroiu D. – „Modele economice rezolvate în QM”. Editura Universității „Transilvania”,


Braşov, 2017, pag. 27

3-1
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

3.2 Problema drumului minim (Shortest Route)

Problema drumului minim (Shortest Route) este de a determina distanța cea mai
scurtă dintre un punct de origine și mai multe puncte de destinație
Considerăm rețeaua de mai jos, cu 7 noduri, cu originea în nodul 1 și destinația
în nodul 72.
Ramurile conțin duratele de timp (în ore) dintre noduri
Ne interesează să determinăm drumul (ruta) cu durata cea mai scurtă de la
nodul 1 la toate celelalte noduri, până la nodul 7

7
2 5
2 5
2 4

5
1 3 1 7

4 1 3 7

4 6
4

Algoritmul pentru determinarea drumului (rutei) minim(e):


[1] Selectăm nodul cu cea mai scurtă rută directă de la origine.
[2] Stabilim o rută permanentă cu nodul de origine și nodul care a fost
selectat în pasul 1.
[3] Determinăm toate nodurile conectate direct la nodurile din ruta
permanentă.
[4] Selectăm nodul cu cel mai scurt traseu (ramificație) din grupul de noduri
conectate direct la nodurile din ruta permanentă.
[5] Repetăm pașii 3 și 4 până când toate nodurile s-au alăturat rutei
permanente
[6] Stabilim rutele cele mai scurte de la origine până la celelalte noduri

2
Lixăndroiu D. – „Modele economice rezolvate în QM”. Editura Universității „Transilvania”, Braşov, 2017, pag.
29, Fig. 2.2.3

3-2
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

Din rețeaua definită anterior rezultă următoarele ramuri:

Ramura Nod initial Nod final Durata


Ramura 1 1 2 2
Ramura 2 1 3 5
Ramura 3 1 4 4
Ramura 4 2 3 2
Ramura 5 2 5 7
Ramura 6 3 4 1
Ramura 7 3 5 4
Ramura 8 3 6 3
Ramura 9 4 6 4
Ramura 10 5 6 1
Ramura 11 5 7 5
Ramura 12 6 7 7

3.3 Aplicația A3.1 – Drumul minim

Considerăm rețeaua cu 7 noduri, cu originea în nodul 1 și destinația în nodul 7,


definită anterior.
Pentru rezolvarea problemei drumului minim în QM utilizăm modulul Networks
cu opțiunea Shortest Route
În ecranul de creare a setului de date alegem opțiunile (Figura 3.1.1):
▪ Number of Branches: 12
▪ Network type: Undirected
Datele de intrare sunt redate în Figura 3.1.2
Rezolvarea problemei este redată în Figura 3.1.3
Drumurile minime sunt redate în matricea din Figura 3.1.4

3-3
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

Figura 3.1.1

Figura 3.1.2

3-4
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

Figura 3.1.3

Figura 3.1.4

3-5
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

Soluția obținută este secventa de noduri: 1  2  3  5  7 cu lungimea


drumului minim: 2 + 2 + 4 + 5 = 13.

7
2 5
2 5
2 4

5
1 3 1 7

4 1 3 7

4 6
4

3.4 Aplicația A3.1a – Drumul minim – Rezolvare ca PPL

Vom rezolva problema drumului minim considerând o problemă de programare


liniara cu variabile binare 0/1.
Definim o variabilă de decizie pentru fiecare ramură din rețea, după cum
urmează:
▪ 𝑥𝑖𝑗 = 0 dacă ramura 𝑖 − 𝑗 nu este selectată ca parte a rutei celei mai
scurte
▪ 𝑥𝑖𝑗 = 1 dacă este selectată ramura 𝑖 − 𝑗 ca parte a rutei celei mai scurte
Considerăm fluxul de la nodul 𝑖 la nodul 𝑖 + 1
Funcția obiectiv este formulată prin minimizarea sumei înmulțirii fiecărei valori
de ramură 𝑥𝑖𝑗 și a timpului de deplasare pentru fiecare ramură:
min {𝑧 = 2𝑥12 + 5𝑥13 + 4𝑥14 + 2𝑥23 + 7𝑥25 + 1𝑥34 + 4𝑥35 + 3𝑥36
+ 4𝑥46 + 1𝑥56 + 5𝑥57 + 7𝑥67 }

3-6
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

Există o constrângere pentru fiecare nod, indicând faptul că tot ce intră într-un
nod trebuie să iasă.
Aceasta se numește conservarea fluxului.
Acest lucru înseamnă că un "mijloc de transport" iese nodul 1 fie către ramura
1-2, ramura 1-3, fie ramura 1-4.

1 3

Această restricție pentru nodul 1 este formulată ca:


𝑥12 + 𝑥13 + 𝑥14 = 1
La nodul 2, un mijloc de transport ar intra prin ramura 1-2 și se va deplasa prin
2-3 sau 2-5:

2 5

1 3

Această restricție pentru nodul 2 este formulată ca:


𝑥12 = 𝑥23 + 𝑥25 ⇔ 𝑥12 − 𝑥23 − 𝑥25 = 0
Restricțiile pentru nodurile 3, 4, 5, 6 și 7 sunt construite în mod similar, rezultând
modelul complet de programare liniară, după cum urmează:

3-7
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

Funcția obiectiv:
min {𝑧 = 2𝑥12 + 5𝑥13 + 4𝑥14 + 2𝑥23 + 7𝑥25 + 𝑥34 + 4𝑥35 + 3𝑥36
+ 4𝑥46 + 𝑥56 + 5𝑥57 + 7𝑥67 }
Restricții:
𝑥12 + 𝑥13 + 𝑥14 = 1
𝑥12 − 𝑥23 − 𝑥25 = 0
𝑥13 + 𝑥23 − 𝑥34 − 𝑥35 − 𝑥36 = 0
𝑥14 + 𝑥34 − 𝑥46 = 0
𝑥25 + 𝑥35 − 𝑥56 − 𝑥57 = 0
𝑥36 + 𝑥46 + 𝑥56 − 𝑥67 = 0
𝑥57 + 𝑥67 = 1
{ 𝑥𝑖𝑗 = 0/1
În QM utilizăm modulul Integer Programming & Mixed Integer Programming
În ecranul de creare a setului de date alegem opțiunile (Figura 3.1a.1):
▪ Number of Constrains: 7
▪ Number of Variables: 12
▪ Objective: Minimize
Datele de intrare sunt redate în Figura 3.1a.2
Rezultatele soluției calculate sunt redate în Figura 3.1a.3/4

3-8
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

Figura 3.1a.1

Figura 3.1a.2

3-9
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

Figura 3.1a.3

Figura 3.1a.4
Am obținut soluția: 𝑥12 = 1, 𝑥23 = 1, 𝑥35 = 1, 𝑥57 = 1, de unde rezultă
secvența de ramuri 1  2  3  5  7 și soluția minimă optimă 13, care este
lungimea drumului minim.

3-10
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

3.5 Aplicația A3.1b – Drumul minim într-o rețea neorientată – Problema 23

O firmă de logistică și distribuție dorește optimizarea activității de transport prin


stabilirea rutei optime între două localități, o localitate de plecare și o localitate
de destinație. Costul asociat drumului dintre cele două localități este o funcție
agregată care depinde de distanță, gradul de dificultate, consumul de
combustibil, timpul necesar parcurgerii.
Pe traseele dintre cele două localități există noua localități intermediare, care
vor constitui nodurile unei rețele (graf) neorientate. S-au determinat costurile
de transport dintre cele 14 perechi de localități care reprezintă ramurile rețelei
(muchiile grafului).
Rețeaua de transport este dată în figura următoare:

3
1 7 9

8
5

3
Lixăndroiu D. – „Modele economice rezolvate în QM”. Editura Universității „Transilvania”, Braşov, 2017, pag.
33

3-11
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

Costurile de transport aferente rețelei anterioare sunt următoarele:


Ramura Nod initial Nod final Costul
Ramura 1 1 2 70
Ramura 2 1 3 50
Ramura 3 1 4 60
Ramura 4 1 5 30
Ramura 5 2 3 60
Ramura 6 2 6 45
Ramura 7 3 6 55
Ramura 8 3 7 80
Ramura 9 3 8 40
Ramura 10 4 8 75
Ramura 11 5 8 35
Ramura 12 6 9 35
Ramura 13 7 9 70
Ramura 14 8 9 50

Pentru rezolvarea problemei drumului minim utilizăm modulul Networks cu


opțiunea Shortest Route
În ecranul de creare a setului de date alegem opțiunile (Figura 3.1b.1):
▪ Number of Branches: 14
▪ Network type: Undirected
Datele de intrare sunt redate în Figura 3.1b.2
Rezolvarea problemei este redată în Figura 3.1b.3
Drumurile minime sunt redate în matricea din Figura 3.1b.4

Figura 3.1b.1

3-12
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

Figura 3.1b.2

Figura 3.1b.3

3-13
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

Figura 3.1b.4

3-14
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

3.6 Problema drumului minim într-un arbore extins (Minimum Spanning


Tree)

În problema drumului minim prezentată în secțiunea anterioară, obiectivul a


fost acela de a determina cele mai scurte rute între origine și nodurile de
destinație din rețea.
Problema drumului minim într-un arbore este similară celei mai scurte probleme
de rută, cu excepția faptului că obiectivul este de a conecta toate nodurile din
rețea astfel încât lungimile totale ale ramurilor să fie reduse la minimum.
Rețeaua rezultată se extinde (conectează) toate punctele din rețea la o distanță
(sau lungime) totală minimă.
Etapele metodei soluției drumului minim într-un arbore sunt următoarele:
[1] Selectăm orice nod de pornire (convențional, este selectat nodul 1).
[2] Selectăm nodul cel mai apropiat de nodul de pornire pentru a-l alătura
arborelui extins.
[3] Selectăm cel mai apropiat nod care nu se află în prezent în arborele extins.
[4] Repetăm pasul 3 până când toate nodurile s-au alăturat arborelui extins.
Considerăm rețeaua din secțiunea anterioară

7
2 5
2 5
2 4

5
1 3 1 7

4 1 3 7

4 6
4

3-15
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

3.7 Aplicația A3.2 – Drumul minim într-un arbore extins

Pentru rezolvarea problemei cu rețeaua de mai sus a drumului minim într-un


arbore extins în QM utilizăm modulul Networks cu opțiunea Minimal Spanning
Tree
În ecranul de creare a setului de date alegem opțiunile (Figura 3.2.1):
▪ Number of Branches: 12
▪ Datele de intrare sunt redate în Figura 3.2.2
▪ Rezolvarea problemei este redată în Figura 3.2.3/4

Figura 3.2.1

3-16
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

Figura 3.2.2

Figura 3.2.3
3-17
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

Figura 3.2.4

Am obtinut secvența de ramuri 1, 4, 6, 8, 10, 11 care conțin toate nodurile


rețelei 1, 2, ..., 6, 7, cu drumul minim de lungime 2 + 2 + 1 + 3 + 1 + 5 = 14.

7
2 5
2 5
2 4

5
1 3 1 7

4 1 3 7

4 6
4

3-18
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

3.8 Aplicația A3.3 – Drumul minim – Problema 14

O firmă de instalații rețele electrice studiază posibilitatea de legare a 7


consumatori (C1, C2, ..., C7) la punctul de alimentare (A). Condițiile tehnice de
instalare permit stabilirea unui număr de 14 legături. Legăturile i costurile de
instalare sunt date în tabelul următor:
A C1 C2 C3 C4 C5 C6 C7
A - 15 25 10 20 - - -
C1 - 12 - - - - -
C2 - 18 - 11 - 15
C3 - 10 8 - -
C4 - - 17 20
C5 - 13 -
C6 - 18
C7 -

Să se determine modul de realizare a conexiunilor astfel încât costul total de


instalare să fie minim.
Rezolvare
Avem o problemă de determinare a drumului minim într-un arbore extins,
pentru a lega punctul de alimentare (A) cu toți consumatorii C1, C2, ..., C7.
Vom redenumi nodurile:
Consumator A C1 C2 C3 C4 C5 C6 C7
Nodul 1 2 3 4 5 6 7 8

Pe baza datelor din tabelul de mai sus și după renumerotarea nodurilor, obținem
o rețea cu 8 noduri și 14 ramuri:

4
Lixăndroiu D. – „Modele economice rezolvate în QM”. Editura Universității „Transilvania”, Braşov, 2017, pag.
31

3-19
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

Ramura Nod initial Nod final Costul


Ramura 1 1 2 15
Ramura 2 1 3 25
Ramura 3 1 4 10
Ramura 4 1 5 20
Ramura 5 2 3 12
Ramura 6 3 4 18
Ramura 7 3 6 11
Ramura 8 3 8 15
Ramura 9 4 5 10
Ramura 10 4 6 8
Ramura 11 5 7 17
Ramura 12 5 8 20
Ramura 13 6 7 13
Ramura 14 7 8 18

Utilizăm modulul Networks cu opțiunea Minimal Spanning Tree


În ecranul de creare a setului de date alegem opțiunile (Figura 3.3.1):
▪ Number of Branches: 14
▪ Datele de intrare sunt redate în Figura 3.3.2
▪ Rezolvarea problemei este redată în Figura 3.3.3/4

Figura 3.3.1

3-20
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

Figura 3.3.2

Figura 3.3.3

3-21
LABORATORUL 3
APLICAȚII DE REȚELE (GRAFURI)

Figura 3.3.4

Observăm că drumul minim în arborele extins cu toate nodurile incluse și cost


minim de 79 u.m. este:

A(1)
10

C3(4)
8 ) 10

C5(6) C4(5)
11 ) 13
)
C2(3) C6(7)
12 ) 15
)
C1(2) C7(8)
) )

3-22

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