Académique Documents
Professionnel Documents
Culture Documents
Facultatea de Transporturi
Departamentul Transporturi Trafic si Logistica
ALGORITMI DE RUTARE
Strategii de rutare:
Fixă
Flooding
Aleatoare
Adaptivă
1. Algoritmul Dijkstra
Clasicul algoritm Dijkstra prezinta un process de gasire a rutei cu cel mai mic cost
plecand de la un nod la celelalte pe infrastructura unui oras.
Dijsktra este un algoritm bazat pe metoda “ etichetarii” (trecerea prin toate nodurile).
F. Benjamin considera ca pentru gasirea celei mai scurte rute in problema “ one-to-one”
se considera algoritmul Dijkstra finalizat atunci cand nodul destinatie a fost atins, cee ace
inseamna ca ruta cea mai scurta este gasita.
Astfel, algoritmul Dijkstra găseşte cea mai scurtă cale de la nodul origine la toate
celelalte noduri, prin dezvoltarea traseelor o dată cu creşterea lungimii traseelor.
N =numărul de noduri din reţea
O = nodul origine
T = numărul de noduri cuprinse până acum în algoritm
w(i, j) = costul legăturii între nodul i şi nodul j
w(i, i) = 0
w(i, j) = ∞ dacă nodurile nu sunt conectate direct
w(i, j) ≥ 0 dacă nodurile sunt conectate direct
L(n) = costul traseului de cost minim de la nodul O la nodul n cunoscut până acum.
La terminarea algoritmului, L(n) e costul traseului de cost minim de la nodul
O la nodul n.
Exemplu:
Definiţie
Găseşte cea mai scurtă cale de la un nod sursă, cu constrângerea că există cel mult 1
legătură.
Găseşte cea mai scurtă cale de la un nod sursă, cu constrângerea că există cel mult 2
legături, si aşa mai departe.
O= nodul origine;
w(i, j) = costul traseului de la nodul i la nodul j;
w(i, i) = 0;
w(i, j) = ∞ dacă nodurile nu sunt conectate direct;
w(i, j) ≥ 0 dacă nodurile sunt conectate direct;
h = numărul maxim de legături la un moment dat;
Lh(n) = costul traseului de nivel minim de la O la n cu mai puţin de n
legături.
Pasul 1 [Initializare]
L0(n) = ∞, pentru n ≠ O;
Lh(s) = 0, pentru orice h;
Pasul 2 [Update]
Pentru fiecare h ≥ 0;
Pentru fiecare n ≠ O, calculează Lh+1(n)=min j[Lh(j)+w(j,n)];
Conectează n cu nodul predecesor j care asigură minimul traseului;
Elimină orice conexiune a lui n cu alt nod predecesor format la o iteraţie
anterioară;
Traseul de la O la n se termină cu legătura de la j la n.
Exemplu:
4. Algoritmul A*
Bazele RTA *
Acest lucru conduce la o decizie mai informată din S, dacă trebuie luată "Acțiunea în
lumea reală a mișcării" fie în stare y, a, sau x.
Dacă realizarea unui transport în mod repetat cu aceeași destinatie, dar cu o origine
diferită, atunci ar fi de dorit un algoritm care să-și îmbunătățească performanța în timp.
Îmbunatatirea preformantei în timp real a algoritmului A * (LRTA *) este un astfel de
algoritm. Se comportă aproape identic cu RTA *, cu excepția faptului că, în loc să stocheze a
doua valoare cea mai bună a functiei f a unui nod ca fiind noua sa valoare euristică, acesta
stochează cea mai bună valoare în schimb. Odată ce o problemă este rezolvată, valorile
euristice stocate sunt salvate și devin valoarea minimă pentru următoarea problemă.
În timp ce LRTA * este mai puțin eficient decât RTA * pentru rezolvarea unei singure
instanțe de problemă, dar dacă începe cu valori euristice inițiale admisibile în urma
încercărilor repetate, valorile euristice acoperă eventual valorile lor exacte. În acest punct
algoritmul returnează soluții optime.
5. Algoritmul „ TABU ”
Algoritmul a fost aplicat problemei rutarii transporturilor de catre Liao. Este o cautare
locala meta-euristica trecand prin cateva iteratii. Pe parcursul fiecarei iteratii, cea mai buna
solutie din vecinatatea solutiei curente este aleasa ca noua solutie, chiar daca va creste costul.
Prin urmare, o solutie locala slaba este imbunatatita. O memorie de scurata durata,
denumita ca lista „TABU”, este necesara pentru a stoca atributele solutiilor recente. Acest
lucru ajuta la evitarea ciclurilor pe termen scurt. Cautarea se opreste dupa un numar fix de
iteratii sau dupa un anumit numar de iteratii fara nicio imbunatatire a celei mai bune solutii
cunoscute.
Algoritmul „TABU” utilizează o procedură de căutare locală sau in vecinatate pentru a
trece dintr-o soluție potențială, x la o soluție îmbunătățită x' aflata în vecinătatea lui x.
Procedurile de căutare locală se blochează adesea în zonele congestionate sau în zonele în
care nu se poate circula. Pentru a evita aceste capcane și pentru a explora regiuni ale spațiului
de căutare care ar fi lăsat neexplorat de alte proceduri de căutare locale, algoritmul „TABU”
explorează cu atenție vecinătatea fiecărei soluții în timp ce căutarea continua. Soluțiile admise
în noua vecinatate, N ^* (x), sunt determinate prin utilizarea structurilor de memorie. Folosind
aceste structuri de memorie, căutarea progresează trecând treptat de la soluția curentă x la o
soluție x' in N * (x).
6. Algoritmul bazat pe coloniile de furnici
Acest algoritm meta-euristic este inspirat din natura, unde furnicile comunica si
coopereaza intre ele pentru a gasi rutele cele mai scurte de la cuib pana la sursa de hrana.
Cand o furnica gaseste ruta de la colonie la sursa de hrana, aceasta lasa in urma sa o substanta
chimica (feromoni) rezultand astfel un traseu. Daca celelalte furnici vor gasi aceasta urma , o
vor urma in loc sa caute o noua ruta.
Cand aceasta teorie este aplicata in Problema Rutarii Vehiculelor furnicile pastreaza in
memorie nodurile vizitate cat si duratele estimate pana la ajungerea la ele.
Acest algoritm a fost utilizat in cautarea celei mai scurte legaturi in PRV astfel incat sa
reactioneze la schimbarile conditiilor de trafic.
Primul algoritm bazat pe coloniile de furnici a fost numit „sistemul de furnic” și a fost
destinat să rezolve problema comisului voiajor, în care obiectivul este de a găsi cea mai scurtă
ruta ciclica care sa lege o serie de orașe. Algoritmul general este relativ simplu și se bazează
pe un set de furnici, fiecare realizând una dintre posibilele călătorii ciclice de-a lungul
orașelor.
În fiecare etapă, furnica alege să se mute dintr-un oraș în altul, conform unor reguli:
Trebuie să viziteze fiecare oraș exact o dată;
Un oraș îndepărtat are mai puține șanse de a fi ales;
Cu cât traseul de feromoni este mai intens pe o margine între două orașe, cu
atât este mai mare probabilitatea ca acea margine să fie aleasă;
După încheierea călătoriei, furnicile depozitează mai multi feromoni pe toate
marginile pe care le-a traversat, în cazul în care călătoria este scurtă;
După fiecare repetare, urme de feromoni se evaporă.
7. Algoritmul genetic (GA)
Algoritmul genetic este utilizat pentru a rezolva problema cautarii si optimizarii rutelor.
Algoritmul simuleaza modul in care speciile evolueaza si se adapteaza mediului, conform
principiului lui Darwin, despre selectia naturala.
Pentru inceput se genereaza un nr de rute, apoi in momentul utilizarii uneia dintre
acestea, algoritmul o va compara cu celelalte rute furnizand solutii imbunatatite ale acesteia ,
sau chiar oferind o ruta noua, superioara din punct de vedere al costului fata de celelalte.
III. BIBLIOGRAFIE
1. V. Tran Ngoc, S.Djahel, J. Murphy, „A Comparative Study of Vehicles’ Routing
Algorithms for Route Planning in Smart Cities”, UCD School of Computer Science
and Informatics, Ireland.
2. C. Zaharia, Curs 10 „Metode de rutare”, TDRC, 2006.
3. https://en.wikipedia.org