Documente Academic
Documente Profesional
Documente Cultură
Comutaţia de pachete
1
11. Comutaţia de pachete
minim şi constituie totdeauna un element de comparaţie pentru orice drum real dintre două
noduri oarecare ale reţelei. În general, un arbore este un graf conex fără cicluri.
În stabilirea arborelui minim se pleacă de la cunoaşterea grafului reţelei şi a lungimii
fiecărui arc. Algoritmul se compune din executarea etapelor următoare:
• se ordonează arcele după lungimea lor în sens crescător.
• cel sau cele mai scurte arce fac parte din arborele minimal. Se formează astfel
subarborele iniţial şi se elimină din listă arcul sau arcele astfel considerate.
• dintre arcele rămase în listă se aleg în continuare cel sau cele mai scurte (de aceeaşi
lungime) care nu formează un ciclu cu subarborele precedent. Se obţine astfel un al doilea
subarbore.
• se continuă în acelaşi mod până ce au fost reţinute cele N − 1 arce ale arborelui
minimal.
Aplicaţia 11.1
Se consideră o reţeaua cu 7 noduri de comutaţie, ce sunt interconectate conform
grafului din figura 11.4(a). Determinaţi arborele minim al acestei reţele.
B 4 C C
B 4
8
9 A
A 4 6 5 4 5
8
G 10
3 7
7 7 3
D G
9 8
D
F 11 9 8
9
F
13
(a) (b) E
E
Rezolvare: ordonarea arcelor după lungimea lor, exprimată în unităţi convenţionale este
următoarea:
Lungime: 3 4 5 6 7 8 9 10 11 13 infinit
Arc: AF BC CD CG BF AB AC AD AE EF Toate arcele care nu există
BG DG AG DE (de exemplu BD, CF etc.)
CE DF
EG
Începând cu cel mai scurt arc (AF = 3) sunt considerate toate arcele grafului, în ordinea
crescătoare a lungimii lor, eliminându-se cele care închid contururi împreună cu cele anterior
reţinute (în tabel sunt subliniate arcele reţinute). Arborele care rezultă în urma aplicării
algoritmului este reprezentat în figura 11.4(b); acest arbore are lungimea:
L = 3 + 2 × 4 + 5 + 8 = 31
***
Trebuie precizat ca o observaţie importantă că arborele minim nu reprezintă drumul cel
mai scurt prin reţea pentru orice pereche de noduri. El poate fi doar un ghid în aprecierea
eficienţei drumurilor prin reţea: nici un drum real între două noduri oarecare ale reţelei nu
trebuie să fie mai lung decât arborele minim.
2
11. Comutaţia de pachete
(u ) = ij (ce poate reprezenta o distanţă, un cost, un timp etc.) având valori reale. Pe baza
acestor mărimi, se poate calcula lungimea drumului µ cel mai scurt dintre o sursă şi o
destinaţie:
D= ∑u∈µ (u ) (11.1)
adică prin considerarea lungimilor tuturor arcelor înlănţuite în acest drum. Drumul minim este cu
siguranţă ales dintre mai multe drumuri elementare posibile între perechea de noduri (sursă –
destinaţie) considerate.
Dkj ji
Dki
Nodul k sursă Nodul curent i
Figura 11.5 Trasee de acces între o pereche de noduri k – i
În ecuaţia (11.2) Dki este lungimea drumului minim de la sursa k la destinaţia i, iar j este
un alt nod al reţelei, care este adiacent destinaţiei, aflându-se la distanţa cunoscută ji faţă de
aceasta, şi pentru care se ştie cu certitudine că Dkj este minim (figura 11.5). (adiacenţa a două
noduri este materializată prin existenţa un arc între ele.) Dacă Dkj nu ar fi drum minim, atunci
cu siguranţă că alt nod intermediar j ar fi fost considerat. Sursa este totdeauna la distanţa 0 faţă
de ea însăşi.
Ecuaţia (11.2) face parte dintr-un sistem de ecuaţii de optimizare care consideră ca
sursă şi respectiv ca destinaţie toate cele N noduri ale reţelei ( i , j , k = 1,…, N ).
Algoritmul Bellman-Ford-Moore (1957) impune ca fiecărui nod să i se asocieze o
etichetă ( p ki , D ki ), conţinând două câmpuri:
- câmpul p ki – precizează identitatea nodului precedent (predecesor), aflat pe drumul
de la nodul sursă k la nodul curent i ,
- câmpul Dki – distanţa de la nodul sursă până la nodul curent, de-a lungul celui mai
bun drum cunoscut.
Iniţial, nici o cale nu este cunoscută, deci în mod convenţional, etichetele provizorii ale
tuturor nodurilor sunt (-1,-1), mai puţin eticheta nodului sursă k, aceasta fiind evident (k,0).
Eticheta sursei este considerată validă şi nu se va modifica ulterior (figura 11.6). Etichetele
provizorii ale nodurilor se modifică iterativ pe măsură ce se derulează procedura de minimizare
a drumului, ajungând evident la o formă finală, după un număr de paşi de rulare a algoritmului.
Un pas de rulare se efectuează pentru un nod anumit al grafului. El presupune
considerarea tuturor succesorilor lui şi reactualizarea etichetelor provizorii ale acestor noduri, în
raport cu lungimile arcelor de acces spre ele.
Reactualizarea etichetelor se “judecă” pe baza comparaţiei dintre vechile distanţe Dki
∗
ale nodurilor şi noile distanţe Dki , ce sunt calculate pe trasee care includ nodurile predecesoare
şi care deţin valori valide în etichetele lor. O valoare este considerată validă dacă ea s-a păstrat
în iteraţia anterioară. Distanţa şi identitatea predecesorului vor fi modificate numai dacă
3
11. Comutaţia de pachete
∗ ∗
Dki = −1 sau dacă Dki < Dki unde Dki = Dki + ji cu j ≠ −1. Altfel, se păstrează eticheta de la
pasul anterior.
Numărul maxim de iteraţii care trebuie a fi executate în cadrul algoritmului pentru
identificarea drumul minim de la o anumită sursă este N − 1 .
nodul 2 nodul 3 nodul 2 nodul 3
(-1,-1) 3 (-1,-1) (1,2*) 3 (1,5*)
2 5 5 2 5 5
nodul 6 nodul 1 nodul 6
nodul 1 2 1 2 1
3 (-1,-1) (1,0) 3 (-1,-1)
(1,0)
1 1 2 1 1 2
2 5 5 2 5 5
2 5 5 nodul 6 2 5 5
nodul 1 (3,10)
2 3 1 2 3 1 nodul 6
(1,0) nodul 1
2 2
(5,4*)<(3,10)
1 1 (1,0) 1 1
Aplicaţia 11.2
Utilizaţi algoritmul Bellman-Ford-More pentru stabilirea celor mai scurte drumuri pentru
reţeaua cu 6 noduri din figura 11.6.
Indicaţie: În figura 11.6 sunt precizate cele 5 reactualizări ale etichetelor nodurilor
raportate la nodul 1 considerat ca sursă; prima reactualizare se face în raport cu sursa şi
evident sunt modificate etichetele celor 3 succesori ai acesteia: nodurile 2, 3 şi 4. De fiecare
dată se marchează cu steluţă (*) etichetele modificate şi se desenează cu linie îngroşată arcul
participant la drumul minim curent, stabilit până în acel moment.
Fiecare reactualizare se execută faţă de un anumit nod intermediar; nodul respectiv este
marcat printr-un cerc suplimentar. Dacă distanţa până la sursă, considerând acest nod ca
predecesor este mai mică pentru un nod oarecare decât la pasul anterior, atunci eticheta lui se
modifică; în caz contrar sau de egalitate, se menţine eticheta anterioară.
După cinci reactualizări s-a obţinut drumul minim care leagă nodul sursă nr.1 cu toate
4
11. Comutaţia de pachete
destinaţiile lui, celelalte noduri ale grafului. Acest drum este desenat cu linie groasă continuă,
iar cu linie întreruptă sunt desenate arcele care nu sunt folosite în cuprinsul acestuia.
***
Rezultatul stabilirii tuturor drumurilor cele mai scurte pentru un graf se concentrează într-
o matrice de rutare:
ℜ = {p ki } (11.3)
în care fiecare element p ki reprezintă penultimul nod (predecesorul) aflat pe traseul ales, dintre
nodul sursă k şi nodul destinaţie i.
Aplicaţia 11.3
Determinaţi matricea de rute pentru reţeaua din aplicaţia anterioară.
Rezolvare: Matricea de rute este precizată alăturat. În general, introdusă într-o bază de
date, ea poate fi folosită în identificarea drumului între orice sursă şi spre orice destinaţie din
reţea; de exemplu:
- plecând de la sursa 4 spre destinaţia 3, se urmează traseul: 0 1 5 1 4 5
4 – 5 – 3;
- de la sursa 6 la destinaţia 2 se urmează traseul: 2 0 2 2 4 5
6 – 5 – 4 – 2;
4 3 0 5 3 5
ℜ =
- de la sursa 1 la destinaţia 5 se urmează traseul: 1 – 4 – 5. 4 4 5 0 4 5
***
4 4 5 5 0 5
Aplicaţia 11.4 4 4 5 5 6 0
Determinaţi arborele minim pentru reţeaua din figura 11.6
şi comparaţi lungimea lui cu distanţele dintre noduri măsurate pe
drumurile minime.
***
Aplicaţia 11.5
Precizaţi care sunt tabelele de rutare folosite în reţea, corespunzător drumurilor minime
deduse în aplicaţia 11.2.
Rezolvare: pentru nodul nr.1 sunt necesare doar 2 fascicule diferite de joncţiuni, pe
care sunt îndrumate comunicaţiile pentru toate cele 5 destinaţii diferite din reţea, conform
drumului minim precizat anterior; tabela de rutare are conţinutul următor:
Nod de destinaţie nr. 2 3 4 5 6
Fascicul de ieşire nr. 1 2 2 2 2
***
11.2.3.2 Algoritmul Dijkstra
Algoritmul Dijkstra, utilizat prima dată în reţeaua ARPANET (1959), este o variantă
simplificată şi perfecţionată a algoritmului Bellman-Ford-Moore. El se bazează pe afirmaţia
următoare: dacă nodul k este parte a drumului cel mai scurt între nodurile i şi j, atunci drumul
cel mai scurt între i şi j trebuie să rezulte din calea cea mai scurtă între i şi k urmată de calea
cea mai scurtă între k şi j.
Înseamnă că de fapt ar rezulta o formulă de optimizare de forma:
Dij = min(Dik + Dkj ) (11.4)
(k )
şi că în derularea algoritmului Bellman-Ford-Moore se poate aduce o simplificare esenţială:
după prima reactualizare a etichetelor se va considera ca nod “activ” succesorul sursei care
deţine o etichetă minimă (cel ce prezintă distanţa cea mai mică până la sursă); cu siguranţă că
acest succesor se va afla pe drumul cel mai scurt. Acesta va fi nodul de referinţă în pasul
următor, toate etichetele succesorilor lui putând să fie acum reactualizate etc.
Aplicarea algoritmului se încheie atunci când au fost parcurse toate arcele reţelei, fără
însă a fi necesar ca toate nodurile să fie pe rând considerate ca noduri active.
5
11. Comutaţia de pachete
Aplicaţia 11.6
Reluaţi aplicaţia 11.2 folosind algoritmul Dijkstra.
Indicaţii: considerând ca sursă nodul nr.1, algoritmul se desfăşoară conform figurii 11.7.
În fiecare pas de aplicare al algoritmului nodul activ este haşurat, iar toate etichetele
reactualizate ale nodurilor succesoare sunt marcate cu steluţă (*). Iniţial, cum nu se cunoaşte
nici o cale, etichetele provizorii ale nodurilor au forma (i , ∞) , deoarece orice nod i se află
deocamdată la o distanţă infinit de mare faţă de sursă. Eticheta sursei k este evident de forma
(k ,0) , deoarece un nod este totdeauna la distanţă nulă faţă de el însuşi.
(1,2)* (1,5)* (1,2) (1,5)
3 3
2 3 2 3
2 5 2 5
5
(6, ∞) 5
1 1
1 6 1 6
2 2
(1,0) 1 2 (1,0) 1 2 (6, ∞)
1 1
4 5 4 5
(1,1)* (5, ∞) (1,1) (4,2)*
Reactualizarea 1 Reactualizarea 2
(1,2) (5,3)* (1,2) (5,3)
3 3
2 3 2 3
2 5 2 5
(1,0)
5 1 5 1
1 6 1 6
2 2
1 2 (5,4)* 1 2 (5,4)
(1,0)
1 1
4 5 4 5
(1,1) (4,2)* (1,1) (4,2)
(1,2) (5,3)
Reactualizarea 3 Reactualizarea 4
3
2 3
2
(1,0)
5 1
1 6
2
1 2 (5,4)
1
4 5
(1,1) (4,2)
Reactualizarea 5
Figura 11.7 Aplicarea algoritmului Dijkstra (exemplu)
6
11. Comutaţia de pachete
2 2 1
7 1 2 3 4
3 2 4 4 5 1
1 2 3 2 2 3 3 1 4 4
2 6 5
1 2 2
1 1 4 5 4 5 5 6 7
1 1 2 3
4 5 6 4 2 1 3 4 3
5 5 1 7
8 9 10
Figura 11.8 Grafuri propuse pentru analiză
***
7
11. Comutaţia de pachete
DESTINAŢII
A B C D E F
A 9 4 1 7 5
AB ABC ABFD AE ABF
B 20 C 9 8 3 2 4
B
20 10 BA BC BFD BFE BF
A D 4 8 3 3 2
SU R SE
20 20 C
20 10 CBA CB CD CE CEF
E 50 F 1 3 3 3 4
D
DFBA DFB DC DCE DF
7 2 3 3 4
E
EA EFB EC ECD EF
4 4 2 4 5
F
FBA FB FEC FD FE
Figura 11.12 Topologia reţelei, capacităţile link-urilor, matricea de trafic şi de rute – aplicaţia 11.9
Cu datele din tabel şi cu expresia (11.6) se obţine valoarea: E [T ] = 137,1 msec (în evaluare
s-au considerat şi valorile pentru celălalt sens de utilizare a arcelor din graful reţelei)
Pentru a evalua un alt algoritm de îndrumare, se repetă aceeaşi procedură, dar
considerând pentru încărcările link-urilor valorile ce corespund acelui algoritm. Pentru fiecare
relaţie sursă – destinaţie există într-o reţea un număr limitat de rute posibile (una singură este
însă aceea de lungime minimă), deci procedura se poate repeta pentru fiecare din ele. În final,
varianta care oferă valoarea minimă a timpului mediu pe reţea este cea recomandată.
***