Sunteți pe pagina 1din 14

1 RUTAREA ŞI OPTIMIZAREA RUTELOR

1.1 Noţiuni generale


Rutarea reprezintă procesul de selecţie a rutelor dintr-o reţea, în scopul transmiterii
fluxurilor de trafic pe acestea.
Rutarea poate fi efectuată pentru orice tip de reţea, inclusiv pentru reţele de
comunicaţii, de transmitere a datelor (Internet), de distribuţie a energiei electrice,
apei, gazelor etc., sau pentru reţelele de transport.
De exemplu, în reţelele pentru comunicaţii de date, rutarea efectuează direcţionarea
pachetelor de date, tranzitul pachetelor logice adresabile de la sursa primară la
destinaţia finală, prin intermediul unor puncte de joncţionare tipice (routere, punţi,
portaluri, switch-uri, firewall-uri etc.), numite noduri.
În reţelele de transport, rutarea poate fi realizată pe diferitele categorii de căi de
transport (canale navigabile, rute aeriene, magistrale feroviare sau şosele), între
puncte de joncţiune specifice (porturi sau noduri fluviale, aeroporturi, staţii de cale
ferată sau intersecţii rutiere).
Procesul de rutare în tehnica de calcul şi transmiterea datelor direcţionează, de
obicei, pachetele de date pe baza unor informaţii din tabele de rutare, ce conţin
înregistrări ale rutelor către diferite destinaţii.
Sistemele de ghidare şi navigare la bordul vehiculelor utilizează acelaşi procedeu,
numai că la baza algoritmilor de optimizare a rutelor stau sisteme informatice
geografice, având memorate distanţele în lungul căilor de transport. La baza rutării
prin sisteme la bordul vehiculelor pot fi aplicate şi alte criterii de optimizare, cum ar
fi drumul cel mai scurt, drumul cel mai rapid, consumul minim de combustibil,
declivitate minimă etc.

1.2 Definiţii
□ Grafuri conexe sau neconexe (toate nodurile unite cu toate nodurile), orientate
sau neorientate (arata sensul în care se poate circula pe legături), ponderate
sau neponderate (cu costuri diferite asociate drumurilor dintre noduri);
□ Distanţe: una din cele mai importante caracteristici ale sistemelor informatice
geografice este aceea că ele sunt modelări ale spaţiului. Pentru a reprezenta
spaţiul şi obiectele spaţiale în poziţiile corespunzătoare acestora, SIG trebuie
să utilizeze elemente de bază precum cele de referinţă spaţială, adică
elipsoidul terestru sau modelul acestuia, sistemul de coordonate asociat şi
sistemul de proiecţie cartografică după care are loc transpunerea în plan a
elementelor spaţiale. Atributele obiectelor spaţiale sunt a doua caracteristică
a sistemelor informatice geografice, acestea presupunând reprezentarea
corectă a unor elemente definitorii pentru toate obiectele ce apar pe o hartă, şi
anume: poziţia şi mărimea acestora, distanţa dintre ele, unghiuri etc. Sunt
cunoscute mai multe forme de reprezentare a spaţiului: carteziană, euclidiană,
peaniană, teserală, fractală şi topologică.
▪ În spaţiul cartezian, viziunea pentru reprezentarea elementelor
spaţiale se face prin referire la sistemul de coordonate carteziene,
notate de obicei cu x, y şi z (ca distanţe faţă de originea unică, de
coordonate 0,0,0 în trei dimensiuni). În acest mod, orice obiect
spaţial poate fi asociat unei poziţii unice şi prin urmare se poate
localiza prin referire la acea poziţie. Pentru a putea utiliza acest
spaţiu de măsură în cazul reprezentărilor suprafeţei terestre a fost
nevoie de realizarea unor puncte de referinţă (origini) ale
spaţiului. Acestea sunt denumite puncte geodezice. În
tehnologiile de început, sistemul a fost unicul folosit şi în prezent
este de asemenea foarte răspândit, datorită posibilităţii utilizării
noţiunilor de geometrie în spaţiu şi geometrie analitică sau de
algebră. Pentru a realiza poziţionarea unor obiecte mai mari decât
un punct, este necesară reprezentarea printr-un şir de coordonate
de poziţie a acestor obiecte.

Fig. 1 Spaţiul cartezian – reprezentarea unui punct


▪ În spaţiul euclidian obiectele din plan sunt delimitate de
segmente de dreaptă. Excepţie de la această regulă face cercul.
Pentru a reprezenta linii care nu sunt drepte se utilizează
segmente de linie dreaptă. Astfel, obiectele din spaţiul euclidian
sunt o sumă de poligoane. Dacă unghiurile acestor poligoane sunt
cunoscute, atunci se pot afla şi laturile acestora. Nu există
legături funcţionale sau relaţionale cu obiectele vecine. Prin
urmare, fiecare obiect din spaţiul euclidian este independent din
punct de vedere geometric. Pentru a măsura depărtarea dintre
obiecte se utilizează distanţa euclidiană. Pentru hărţile
electronice, acest mod de reprezentare este cel mai utilizat în
vederea navigării, întrucât într-o reţea de drumuri, calea cea mai
scurtă dintre două puncte este o linie frântă, datorită intersectării
străzilor cu clădiri, parcuri, alte străzi etc. Datorită practicii
taximetriei s-a impus o altă măsură a distanţei euclidiene, numită
distanţă Manhattan, care urmăreşte trama stradală urbană şi nu
„sare peste clădiri şi obstacole” pentru a realiza o distanţă mai
scurtă, dar imposibil de efectuat în practică. Sistemele de
navigaţie la bordul vehiculelor terestre (versiunile comerciale)
sunt capabile să calculeze rutele pe baza distanţei Manhattan.
Distanţa Manhattan este mai mare decât distanţa euclidiană.
Distanţa Manhattan este utilizată pe scară largă la interogări şi
identificarea punctelor de interes1 dintr-o rută programabilă.
Distanta Manhattan
Destinatie
B

Supermarket

Clad Parc Distanta Euclidiana


Benzinarie Cladire
Trama stradala
Food Mart

Cladire
Clad
A
Origine

Fig. 2 Diferenţa dintre distanţa euclidiană şi distanţa Manhattan


În matematică, distanţa euclidiană este măsura segmentului de
dreaptă ce uneşte cele două puncte. Dacă cele două puncte sunt
definite prin intermediul unor coordonate carteziene,
A = A( x1 , y1 , z1 ) şi
B = B( x2 , y2 , z2 ) , atunci

DAB = ( x1 − x2 ) 2 + ( y1 − y2 ) 2 + ( z1 − z2 ) 2 (Ec. 1).

1
Points of interest (POI)
Norma euclidiană reprezintă măsura distanţei euclidiene de la un
punct oarecare la originea spaţiului euclidian:
A = x12 + y12 + z12 (Ec. 2)
Dacă cele două puncte (originea A şi destinaţia B) sunt definite
prin coordonate polare A(r1 ,1 ) şi B(r2 , 2 ) , atunci distanţa dintre
punctele A şi B va fi:
DAB = r12 + r22 − 2r1r2 (1 −  2 ) (Ec. 3).
Pe suprafaţa Pământului, distanţa dintre două puncte A( ,  ) şi
B ( ,  ) , unde  ,  reprezintă respectiv longitudinea şi latitudinea,
este reprezentată de lungimea arcului de cerc:
DAB = arccos[sin 1  sin 2 + cos1  cos2  cos(1 − 2 )] (Ec. 4).
▪ În spaţiul peanian, punctul este văzut ca o limită a unui pătrat ale
cărui laturi tind către zero. În ceea ce priveşte linia, aceasta
beneficiază de o altă dimensiune ce tinde la zero: lăţimea. Linia
curbă este un şir de trepte ale căror dimensiuni tind de asemenea
la zero. Extinzând aceste concepte la linia curbă în spaţiu, aceasta
poate fi reprezentată ca o spirală a cărei secţiune tinde la zero.
Unii matematicieni preferă denumirea de spaghetti pentru
reprezentarea liniei curbe. Spaţiul peanian reprezintă un mod de
reprezentare discretă a obiectelor spaţiale. Spaţiul peanian este
unul rasterizat, specific imaginilor satelitare ce depind de
numărul de megapixeli ai camerelor foto şi de aceea acest sistem
de reprezentare stă la baza a numeroase SIG-uri spaţiale.
▪ Spaţiul teseral este format din elemente geometrice cu forme
regulate (hexagoane, pătrate, triunghiuri echilaterale etc.) sau
neregulate. Prin repetarea acestor forme după algoritmi
cunoscuţi se ajunge la definirea spaţiului teseral. De exemplu,
spaţiul teseral definit pe baza unor hexagoane regulate are
distanţele dintre centrele acestor poligoane constantă, în timp ce
spaţiul definit pe baza unor pătrate se poate agrega în mod
recursiv. Algoritmi asemănători stau la baza definirii sistemelor
de gestiune a bazelor de date. Unele spaţii teserale definite pe
baza unor poligoane neregulate (de exemplu triunghiuri2) au

2
TIN – Triangular Irregulated Network – reţea triangulară neregulată
importante aplicaţii în geodezie şi definirea morfologiei
terenului.
▪ Spaţiul fractal. Scara unei hărţi face ca lungimea unei linii
neregulate să difere de la un factor de magnificaţie la altul, în
timp ce o linie dreaptă îşi păstrează lungimea constantă în raport
cu scara de reprezentare a hărţii. Mandelbrot a propus o metodă
de estimare a neregularităţilor unei linii în funcţie de raportul
scării, notat cu r, şi de numărul de paşi folosit pentru măsurarea
lungimii, notat cu N: D = log N / log r. Curba neregulată a fost
numită fractal, iar D dimensiunea fractală. Dimensiunea fractală
pentru o linie aflată în plan variază între 1 şi 2. Pentru D = 1,
linia este dreaptă, iar pentru D = 2, linia se va caracteriza prin
neregularităţi extreme.

Fig. 3 Etape de configurare a unei curbe (Koch) prin fractali


Aplicaţiile acestui mod de reprezentare sunt legate mai ales de
calculul perimetrelor, al distanţelor şi al altor elemente
geometrice sau de formă legate de acestea.
▪ În spaţiul topologic se studiază mai ales forma obiectelor spaţiale
în mod independent de sistemul de coordonate în care acestea se
află. Spaţiul de tip topologic implică probleme de vecinătate şi
reclamă identificarea structurilor de tipul grafurilor. Viziunea
topologică asupra spaţiului are aplicaţii multiple în domeniul
SIG, în special în cel al interogărilor şi al operaţiilor spaţiale.
Indiferent de modul de reprezentare a spaţiului într-un SIG, aşa cum s-a arătat şi mai
înainte, o hartă poate să prezinte o anumită categorie de fenomene, devenind astfel
o hartă tematică. Aceasta reprezintă modul de distribuire spaţială a unui fenomen
singular sau obiect de un anumit gen, cu ajutorul unor linii curbe la care intensitatea
fenomenului sau densitatea obiectelor în spaţiu este constantă, numite izolinii.
Izoliniile unesc acele puncte în care valorile fenomenului reprezentat sunt egale.
Relaţiile spaţiale dintre obiectele spaţiale precizează caracteristici legate de
conectivitate, incluziune şi adiacenţă. Astfel, în cadrul SIG obiectele au o anumită
poziţie, formă şi respectiv atribute. Mai mult, este important ca sistemul să ştie care
sunt dependenţele dintre două entităţi geografice, dacă o entitate este sau nu cuprinsă
în alta, în ce măsură două entităţi sunt sau nu vecine.
Aceste lucruri pot fi rezolvate cu ajutorul unor metode matematice de definire a
relaţiilor dintre entităţi şi anume prin topologie. Prin topologie, vom înţelege studiul
acelor proprietăţi ale unei figuri geometrice care nu sunt dependente de coordonatele
sale. Astfel, entităţile definite prin puncte, linii, poligoane, vor căpăta proprietăţi care
nu depind neapărat de poziţia lor. SIG va putea deci să înţeleagă noţiuni ca stânga -
dreapta, inclus în, vecin cu, etc.
Proprietăţile topologice ale entităţilor sunt una dintre principalele diferenţe dintre
sistemele SIG şi sistemele CAD3. Acestea din urmă pot să realizeze desene - hărţi
dar nu în modul complet ca în cazul sistemelor informatice geografice.

1.3 Rutarea
Algoritmii actuali de planificare în reţelele de transport, bazate pe tehnica de calcul,
au cunoscut în zilele noastre ritmuri de dezvoltare susţinute, culminând cu apariţia
unor metode de rutare mai rapide de până la un milion de ori decât algoritmul
Dijkstra. Calculul unei rute optime între două puncte ale unei reţele nodale
reprezintă, în continuare, una din provocările constante ale tehnologiei SIG. Există
numeroase aplicaţii, cum ar fi planificarea logistică a transporturilor de mărfuri, sau
planificarea călătoriilor multimodale sau cu autovehiculul personal, care necesită
algoritmi de calcul al rutelor optimizate după mai multe criterii: durată, distanţă,
combustibil consumat, puncte de interes, categorii de drumuri utilizate etc. Multe
dintre tehnicile utilizate în prezent funcţionează cel mai bine dacă funcţia de analiză
a costurilor (orice amestec de elemente de comparaţie de genul: durate de călătorie,
distanţe, costuri autostrăzi, consum de energie/combustibil, valoare a peisajului
străbătut, valoare a elementelor turistice de pe parcursul rutei etc.) este corelată cu
durata călătoriei.

3
Computed Aided Design – proiectare asistată de calculator
1.4 Algoritmi de optimizare
1.4.1 Algoritmul Dijkstra4
Algoritmul Dijkstra este un procedeu prin care se calculează drumurile minime de
la un nod al unui graf la toate celelalte noduri ale grafului. Grafurile cu care poate
lucra acest algoritm sunt ponderate şi orientate, adică arcele au sensurile de
parcurgere orientate de la un nod la alt nod şi au asociat un anumit cost, de care se
ţine cont la alegerea drumului. Cu toate acestea, algoritmul Dijkstra funcţionează
atât pe grafuri conexe5, căt şi pe grafuri non-conexe.
Dacă graful este neponderat (toate costurile asociate arcelor sunt egale sau acestea
nu au deloc costuri asociate) atunci se consideră că drumul minim dintre două noduri
este drumul format din cel mai mic număr de arce. Pentru a găsi acest drum, de la
un nod origine A la un nod destinaţie B se procedează la o căutare prin cuprindere
pornind de la nodul A (prima apariţe a lui B în coada algoritmului de căutare
semnifică faptul că există un număr de arce de la A la B care poate fi reconstituit).
Pe un astfel de graf neponderat se poate aplica algoritmul lui Dijkstra dacă se
asociază fiecărui arc o pondere de valoare fixă, de exemplu de cost unitar. Drumul
de cost minim între două noduri obţinut în urma aplicării algoritmului Dijkstra va
avea şi un număr minim de arce, deoarece toate arcele au acelaşi cost.
În cazul grafurilor orientate, pentru ca între două noduri să existe un drum într-un
graf, nu este suficient să existe numai o cale între cele două noduri, reprezentată de
o succesiune de arce, ci mai este nevoie şi ca arcele să fie astfel orientate, încât să
permită parcurgerea lor de la nodul origine la cel destinaţie. Dacă acest drum nu este
găsit, atunci algoritmul Dijkstra va returna o distanţă infinită între cele două noduri.
Algoritmul este demarat prin declararea unui graf orientat cu N noduri. Fiecărei căi
îi este asociată o anumită pondere. Pentru a afla toate drumurile minime din graf se
defineşte, de asemenea, un nod origine al grafului. În cele ce urmează se descriu
paşii algoritmului pentru acest exemplu.
− Se marchează nodul X de origine a grafului, de la care se vor estima
toate distanţele la celelalte noduri din graf;
− Algoritmul de căutare începe prin determinarea costului între nodul
X origine (sau sursă) şi un alt nod Y, pe un singur arc. Apoi se
cercetează toate celelalte drumuri posibile, incluzând mai mult de un
arc, căutându-se drumuri mai scurte; se pleacă de la ideea că un drum

4 Edsger Wybe Dijkstra (născut la 11 mai 1930 în Rotterdam – a murit la 6 august 2002, în Nuenen) - informatician
olandez, conform Wikipedia. Numele său se pronunţă aproximativ ['eds-hăr 'deyk-stra].
5
Un graf este conex dacă din orice nod al acestuia este interconectat cu orice alt nod.
minim poate avea cel mult N-1 arce, pornind căutarea mai întâi de la
drumurile cu număr mic de arce, dar mai mare de 1 (2, 3 etc.);
− După pasul k, cu k  [1, N − 1] , tabloul de valori ale costurilor C va
conţine lungimile drumurilor minime de la nodul origine X la toate
celelalte noduri, drumuri alcătuite din cel mult k arce;
− Se obţine că C(Y)=L,adică costul parcurgerii distanţei de la X la Y
este L, tocmai distanţa minimă după k paşi; aceasta nu înseamnă însă
că din totalitatea posibilităţilor de deplasare în graful orientat C(Y)
are valoarea minimă; aceasta se va obţine abia la finalul algoritmului,
la pasul N-1, când vor fi evaluate toate drumurile din graful orientat.
Lungimea maximă a acestor drumuri va fi de N-1 arce; la fiecare
evaluare a drumurilor dintr-un nod sursă se face marcarea acestuia,
prin urmare la începutul unui pas oarecare k se va obţine un set de k-
1 noduri marcate, pentru care se cunoaşte drumul minim iniţial. La
fiecare iteraţie k se execută o serie de operaţiuni:
o Se găseşte un nod Y nemarcat pentru care C(Y) este minim şi se
marchează;
o Pentru fiecare alt nod Z încă nemarcat se execută algoritmul:
if C[Z] > C[Y] + Arc(Y , Z) then begin
C[Z] := C[Y] + Arc(Y , Z);
T[Z] := Y
end
o C(Y) conţine costurile (lungimile) drumului minim de la nodul origine
X la nodul destinaţie Y ce parcurge un traseu format numai din noduri
marcate şi are un număr de k-1 arce.
o C(Z) conţine lungimea celui mai scurt drum de la nodul origine la nodul
Z (format din k-1 arce cel mult), trece prin noduri marcate şi nu ţine
cont de faptul că de la ultima iteraţie a fost marcat şi nodul Y.
o Unicul drum de la nodul origine X la nodul destinaţie Z care trece numai
prin noduri marcate este cel dinainte, care include drumul prin noduri
marcate de la originea X la destinaţia intermediară Y la care se adaugă
arcul direct de la Y la Z. Costul parcurgerii acestui ultim arc va fi C(Y)
= Arc (Y,Z).
G
9
A
1 5
3
C

2
D

1
2
9
1
5
E
H
4 1 4
F
B

Fig. 4 Exemplu de graf orientat pentru calculul distanţelor minime


Se caută lungimile minime ale drumurilor de la nodul A la toate celelalte noduri din
graf. Pentru început se consideră nodul A nod de start. La sistemele de navigare la
bordul vehiculelor, reţelelor de drumuri li se pot asocia „costuri” (timp petrecut pe
legătură, distanţă între noduri, consum de combustibil, noxe emise etc.) sau
„ponderi” pentru fiecare legătură între două noduri, acestea reprezentând elementele
în funcţie de care se efectuează optimizarea traseului. Fie C(x) un descriptor de acest
gen, reprezentat de costul pe care un vehicul l-ar plăti dacă ar parcurge în mod direct
distanţa de la nodul de start A la fiecare nod cu care nodul A este interconectat
(respectând orientarea grafului se observă că nu toate drumurile sunt posibile, de
exemplu de la A la H sau la F nu există un drum direct).
Fie T(n) indicele asociat nodului de start. Se va obţine următorul tabel:
C(n) - 9 1 3 ∞ ∞ 9 ∞
T(n) A A A A A A A A
Noduri A B C D E F G H
destinaţie
/ marcate

În tabel simbolul ∞ reprezintă lipsa unui arc direct. Se observă că pornind din nodul
A există drumuri directe numai către nodurile B, C, D şi G. Drumul către nodul A
însuşi nu are sens, aşa că în căsuţa corespunzătoare costului acestui drum s-a trecut
simbolul [-].
Următorul pas constă în compararea costurilor rezultate:
F(A) = min {C(B), C(C), C(D), C(G)} = 1,
adică determinarea costului minim dintre cele evaluate. Se consideră în continuare
nodul C nod de start. Se obţine un nou tablou parţial de costuri, considerând doar
costurile având ca origine nodul C:
C(n) - ∞ - ∞ 2 5 ∞ ∞
T(n) C C C C C C C C
Noduri A B C D E F G H
destinaţie
/ marcate

Evaluarea minimului:
F(C) = min {C(E), C(F)} = 2
Pentru toate celelalte noduri care nu au fost marcate se verifică dacă nu există căi
alternative, ce pornesc din A şi trec prin nodul C, ale căror costuri asociate să fie mai
mici decât cele iniţiale:
• Pentru nodul B: C(B) = C(A) + arc (C-B) = 1 + ∞ = ∞; prin urmare, nu există
un drum mai scurt şi C(B) nu se modifică;
• Pentru nodul E: C(E) = C(A) + arc (C-E) = 1 + 2 = 3 < ∞ care era înainte,
prin urmare se marchează nodul E;
• Pentru nodul F: C(F) = C(A) + arc (C-F) = 1 + 5 = 6 < ∞; se marchează
nodul F pentru că pe calea ce trece prin C apare un drum mai mic decât cel
din iteraţia precedentă;
• Pentru nodul G: C(G) = C(A) + arc (C-G) = 1 + ∞ = ∞;
• Pentru nodul H: C(H) = C(A) + arc (C-H) = 1 + ∞ = ∞; se obţine tabloul
general:

C(n) - 9 1 3 3 6 9 ∞
T(n) A A A A C C A A
Noduri A B C D E F G H
destinaţie
/ marcate

Următorul nod pentru care se face evaluarea globală va fi ales nodul încă neevaluat,
cu cea mai mică intrare în tabloul de costuri şi anume nodul D; se obţine următorul
tablou parţial, având ca origine nodul D:
C(n) - - - - - - 5 -
T(n) D D D D D D D D
Noduri A B C D E F G H
destinaţie
/ marcate

Pentru toate celelalte noduri care nu au fost marcate se verifică dacă nu există căi
alternative, ce trec prin nodul D şi pornesc din A, ale căror costuri asociate să fie
mai mici decât cele iniţiale:
• Pentru nodul B: C(B) = -;
• Pentru nodul E: C(E) = -;
• Pentru nodul F: C(F) = -;
• Pentru nodul H: C(H) = -;
• Pentru nodul G: C(G) = C(D) + arc (D-G) = 3 + 5 = 8 < 9 care fusese
determinat la iteraţia precedentă; noul tablou general al costurilor va fi:

C(n) - 9 1 3 3 6 8 ∞
T(n) A A A A C C D A
Noduri A B C D E F G H
destinaţie
/ marcate

Se observă că dintre nodurile nemarcate în tabloul general, nodul E are valoarea de


cost minimă. Pentru următoarea iteraţie de evaluare se alege acest nod şi se
marchează:
C(n) - 9 1 3 3 6 9 ∞
T(n) A A A A C C A A
Noduri A B C D E F G H
destinaţie
/ marcate

Se determină costurile deplasărilor către toate celelalte noduri, care au ca origine


nodul E şi se obţine următorul tablou parţial:
C(n) - 4 - - - 1 ∞ -
T(n) E E E E E E E E
Noduri A B C D E F G H
destinaţie
/ marcate

Pentru toate nodurile rămase nemarcate se determină dacă există vreun drum cu
nodul A ca origine şi trece prin E, având un cost mai mic decât cel estimat iniţial:
• Pentru nodul B: C(B) = C(E) + arc (E-B) = 3 + 4 = 7 < 9;
• Pentru nodul F: C(F) = C(E) + arc (E-F) = 3 + 1 = 4 < 6;
• Pentru nodul G: C(G) = C(E) + ∞ = ∞;
• Pentru nodul H: C(H) = C(E) + - = -; rezultă următorul tablou general:
C(n) - 7 1 3 3 4 9 ∞
T(n) A E A A C E A A
Noduri A B C D E F G H
destinaţie
/ marcate

În tabloul de mai sus costul deplasării către nodul F are valoare minimă. Se alege
acest nod, se marchează şi se determină costurile parţiale ale deplasării de la nodul
origine A către toate nodurile rămase nemarcate, pe traseul ce trece prin nodul F. Se
obţine următorul tablou parţial:
C(n) - - - - - - 1 -
T(n) F F F F F F F F
Noduri A B C D E F G H
destinaţie
/ marcate

Pentru nodurile nemarcate se obţine:


• Pentru nodul B: C(B) = C(F) + arc(F-B) = 4 + - = -;
• Pentru nodul G: C(G) = C(F) + arc (F-G) = 4 + 1 = 5 < 9;
• Pentru nodul H: C(H) = C(F) + arc (F-H) = 4 + - = -;
Se obţine astfel o nouă cale, cu un cost mai scăzut, de la nodul F la nodul G, rezultând
următorul tablou general de costuri:
C(n) - 7 1 3 3 4 5 ∞
T(n) A E A A C E F A
Noduri A B C D E F G H
destinaţie
/ marcate
În tabloul de mai sus costul minim al deplasării către nodurile nemarcate aparţine
nodului G. Se alege acest nod, se marchează şi se determină tabloul costurilor
parţiale având ca punct de pornire nodul G:
C(n) - - - - - - - -
T(n) G G G G G G G G
Noduri A B C D E F G H
destinaţie
/ marcate

Se observă că nu există drumuri cu cost mai redus ce pornesc din nodul G către
celelalte noduri.
Se continuă iteraţia prin alegerea unui alt nod nemarcat, şi anume B. Se obţine
următorul tablou general:
C(n) - 7 1 3 3 4 5 ∞
T(n) A E A A C E F A
Noduri A B C D E F G H
destinaţie
/ marcate

Pentru singurul nod rămas nemarcat (H - destinaţie) se evaluează costul deplasării


de la A (origine) către acest nod, cu condiţia ca traseul să treacă prin nodul B (punct
intermediar), deoarece până în prezent, către destinaţia aleasă acesta este drumul cu
cost minim:
• Pentru nodul H: C(H) = C(B) + arc (B-H) = 7 + - = -; se constată că acest
drum nu este permis, datorită sensului de parcurgere a arcului B-H. Se
marchează şi acest nod.
Aici se încheie iteraţia, deoarece nu au mai rămas noduri neevaluate. Costurile
minime ale deplasărilor de la nodul origine A la toate celelalte noduri din reţea sunt
date de linia C(n) din tabloul de mai jos, în timp ce linia T(n) reprezintă ultimul nod
din traseu (punct intermediar).
C(n) - 7 1 3 3 4 5 ∞
T(n) A E A A C E F A
Noduri A B C D E F G H
destinaţie
/ marcate

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