Sunteți pe pagina 1din 12

Tem Curs Huluba Florin

Problema comis-voiajorului prin


metode euristice de rezolvare
n ceea ce urmeaz o s rezolv problema comis-voiajorului prin cele 4 metode euristice
de rezolvare. Am s prezint cteva noiuni teoretice legate de euristicele 1, 2, 3 i 4, dup care
rezolvm o problem prin care s respectm restriciile i cerinele.
Aspecte teoretice
De obicei, soluia optim a unei TSP este foarte greu de gsit (dac nu chiar imposibil de
gsit) atunci cnd numrul oraelor de vizitat este mare (peste 50). Pentru determinarea unei
soluii mcar acceptabile au fost elaborate mai multe procedee euristice. Aceste procedee merit
atenie din dou puncte de vedere:

se poate da un "certificat de garanie" pentru soluia obinut n sensul c este posibil


evaluarea "deprtrii" maxime de soluia optim;
soluia aproximativ este gsit cu un efort de calcul relativ moderat i ntr-un timp
rezonabil, aceasta nsemnnd c cei doi parametri depind polinomial de dimensiunea
problemei (adic numrul de orae);

In multe situaii practice, procedeele euristice au condus chiar la soluia optim dar acest
lucru a fost confirmat numai prin aplicarea unui algoritm exact. In principiu, o metod euristic
construiete o soluie prin tatonare, din aproape n aproape, fcnd la fiecare pas, cea mai bun
alegere posibil. Din nefericire, aceast "schem" nu conduce, de regul, la cea mai bun alegere
global. In continuare, vom prezenta mai multe euristici pentru rezolvarea problemei euclidiene a
comis-voiajorului, adic a problemei n care cij sunt distane ce satisfac:
condiia de simetrie: cij = cji:
inegalitatea triunghiului cik cij + cjk;
(Nica, 2001)
Problem
O companie aerian din Statele Unite, cu sediul n Atlanta, ncheie un contract cu un
productor de armament n vederea distribuirii ctre clieni. Armamentul v-a fi distribuit n 9
mari orae din State (Atlanta, Chicago, Dallas, Detroit, Houston, Los Angeles, New York,
Philadelphia, Washington D.C.).
Pentru a respecta contractul compania are la dispoziie un avion special cu o capacitate
suficient de mare nct s livreze tot armamentul n oraele meninute mai sus. Un angajat al
companiei a calculat distanele dintre oricare dou orae pentru a gsi un tur astfel nct distan a
s fie ct mai mic . Care este metoda euristic este mai avantajoas ?
Orae

Atlan

Chica

Dall

Detr

Houst

Los

New

Philadel

Washington

Tem Curs Huluba Florin


ta
Atlanta
Chicago
Dallas
Detroit

589
720
598

Houston
Los
Angeles
New York
Philadelphi
a
Washingto
n DC

go
589

806
237

702
1935

943
1744

747

712

666

664

543

594

as
720
806

100
0
225
123
9
137
2
129
9
118
3

oit
598
237
1000

on
702
943
225
1107

Angeles
1935
1744
1239
1982

York
747
712
1372
481

phia
666
664
1299
442

1107
1982

1372

481

DC

1372

1419
2448

1341
2391

1220
2297

1419

2448

81

204

442

1341

2391

81

123

394

1220

2297

204

123

543
594
1183
394

Tabel 1 Tabel cu distanele euclidiene dintre orae

Euristica E1 (mergi la cel mai apropiat vecin)


se pleac din oraul Atlanta ctre oraul cel mai apropiat;
din ultimul ora vizitat avionul pleac ctre cel mai apropiat ora nevizitat; n caz c nu
mai exist orae nevizitate se revine n locul de plecare; (Nica, 2001)

Fig. 1 - Harta iniial oraelor e trebuie parcurs

Tem Curs Huluba Florin

Rezolvare E1 (mergi la cel mai apropiat vecin)


-

oraul din care pleac trenul cu autoturisme este Atlanta;


cel mai apropriat ora este Washington DC (543 de mile)
din Washington DC cel mai apropriat ora nevizitat este Philadelphia (123 de mile)
din Philadelphia cel mai apropriat ora nevizitat este New York (81 de mile)
din New York cel mai apropriat ora nevizitat este Detroit (481 de mile)
din Detroit cel mai apropriat ora nevizitat este Chicago (237 de mile)
din Chicago cel mai apropriat ora nevizitat este Dallas (806 de mile)
din Dallas cel mai apropriat ora nevizitat este Houston (225 de mile)
din Houston cel mai apropriat ora nevizitat este Los Angeles (1372 de mile)
din Los Angeles nu mai sunt orae nevizitate i trenul se ntoarce n Atlanta (1935 de
mile)

Inegalitatea triunghiului este respectat i se poate vedea in tabelul Excel din Arhiva.
Aplicnd aceast euristic se obine un tur de o distana de 543 +123 + 81 +481 + 237 +
806 + 225 + 1372 + 1935 = 5803 de mile. Turul fiind Atlanta Washington Philadelphia
New York Detroit Chicago Dallas Houston Los Angeles Atlanta.

Tem Curs Huluba Florin


Fig. 2 - Turul oraelor parcurse conform E1

Euristica E2 (Ajustare local)


se pleac de la un traseu complet, determinat fie "la ntmplare" fie printr-o alt
euristic;
se caut dou arce (u,v) i (x,y) ale traseului care se ncrucieaz i se compar
distanele
cuv + cxy cu cux + cvy. Dac cuv + cxy > cux + cvy se nlocuiesc arcele (u,v) i (x,y)
cu (u,x) i (v,y) obinndu-se un traseu de lungime mai mic;
procedura se oprete n momentul n care nu mai exist situaii similare cu cea descris;

(Nica, 2001)

Rezolvare E2
Pentru a ilustra metoda folosim lum graficul obinut la E1 Se observ n fig. 2 c se
intersecteaz arcele (Chicago-Dallas) i (Los Angeles - Atlanta) dar avem grij sa nu izola oraul
Houston aa c lum arcele
(Chicago-(Dallas+Houston)) i (Los Angeles - Atlanta)
c Chicago, Dallas + Houston + c Los Angeles ,Atlanta = (806 +225) + 1935 = 2966 de mile
c Chicago, Los Angeles + c Houston+ Dallar, Atlanta = 1744 + 225+ 720 = 2689 de mile
2966 > 2689 rezult c se obine un traseu mai scurt folosind arcele (Chicago - Los
Angeles) i (Dallas - Atlanta)

Tem Curs Huluba Florin


Fig. 3 - Turul oraelor parcurse conform E2

Lungimea noului traseu este va fi 5803 - ( 2966 2689 ) = 5526 de mile


Euristica E3
Se determin un arbore H de lungime minim (aceasta este o problem "uoar"
rezolvabil de exemplu cu algoritmul lui Kruskal);

fiecare muchie a arborelui H e nlocuiete cu dou muchii de aceeai lungime. Se obine


un multigraf H' n care fiecare nod are grad par. Conform teoremei lui Euler n H' exist
un ciclu eulerian; cu alte cuvinte, este posibil s se viziteze oraele astfel nct fiecare
muchie a multigrafului H' s fie parcurs o singur dat.
Fie: 0 x y u v 0

Succesiunea n care muchiile multigrafului H' au fost parcurse. Lungimea acestui "traseu"
este de dou ori mai mare dect lungimea arborelui minimal H. In aceast secven, unul sau mai
multe orae apar de mai multe ori. Se va proceda la urmatoarea operaie de scurtcircuitare:

n succesiunea (0 x y u v 0) se determin prima triplet de orae


succesiv vizitate cu proprietatea c oraul j "din mijloc" mai apare ulterior n succesiune.
Se nlocuiete secvena i j k cu arcul i k. Prin aceast scurtcircuitare:
fiecare ora continu s fie vizitat cel puin o dat;
noul traseu este mai scurt pentru c cij + cjk cik; operaia de scurtcircuitare se repet pn
cnd n secvena "actualizat" fiecare ora, cu excepia oraului 0 care apare o singur
dat. (Nica, 2001)

Rezolvare E3
Stabilim minimul din fiecare rnd din tabelul cu distanta. Conform algoritmului lui
Kruskal pe distantele din tabelul distanelor avem: Atlanta Washington, Washington
Philadelphia, Philadelphia New York, Detroit Chicago, Dallas Houston, Washington Detroit,
Los Angeles Dallas, Houston Atlanta .

Tem Curs Huluba Florin


Fig. 4 - Distanele minime pentru H

Un ciclu eulerian n multigraful H', dedus din H prin "dublarea" muchiilor acestuia, arat
astfel:
Atlanta => Washington => Philadelphia => New York => Philadelphia => Washington =>
Detroit => Chicago => Detroit => Washington => Atlanta => Houston => Dallas => Houston =>
Los Angeles => Dallas => Atlanta
1 Succesiunea Atlanta => Washington => Philadelphia vom nlocui aceasta succesiune
direct Atlanta => Philadelphia pentru o distana cu condiia ca distanta sa fie mai mic sau egal.
Adic distana Atlanta => Washington => Philadelphia = 666 pe cat distan a Atlanta =>
Philadelphia = 666 este la fel, deci nlocuim succesiunea
2 Succesiunea Atlanta => Philadelphia => New York vom nlocui aceasta succesiune
direct Atlanta => Philadelphia pentru o distana cu condiia ca distanta sa fie mai mic sau egal.
Adic distana Atlanta => Philadelphia => New York = 747 pe cat distana Atlanta => New York
=747 este la fel, deci nlocuim succesiunea
3 Succesiunea Philadelphia => Washington => Detroit vom nlocui aceasta succesiune
direct Philadelphia => Detroit pentru o distana cu condiia ca distanta sa fie mai mic sau egal.
Adic distana Philadelphia => Washington => Detroit = 517 pe cat distan a Philadelphia =>
Detroit = 442 mai mica dect 517
4 Succesiunea Philadelphia => Detroit => Chicago vom nlocui aceasta succesiune direct
Philadelphia => Chicago pentru o distana cu condiia ca distanta sa fie mai mic sau egal. Adic
distana Philadelphia => Detroit => Chicago = 679 pe cat distan a Philadelphia => Chicago =
664 mai mica dect 679
5 Succesiunea Washington => Atlanta => Houston vom nlocui aceasta succesiune direct
Washington => Houston pentru o distana cu condiia ca distanta sa fie mai mic sau egal. Adic
distana Washington => Atlanta => Houston = 1245 pe cat distana Washington => Houston =
1220 mai mica dect 1245
6 Succesiunea Washington => Houston => Dallas vom nlocui aceasta succesiune direct
Washington => Houston pentru o distana cu condiia ca distanta sa fie mai mic sau egal. Adic
distana Washington => Houston => Dallas = 1445 pe cat distana Washington => Houston =
1183 mai mica dect 1445
7 Succesiunea Washington => Dallas => Los Angeles vom nlocui aceasta succesiune
direct Houston => Los Angeles pentru o distana cu condiia ca distanta sa fie mai mic sau egal.
Adic distana Washington => Dallas => Los Angeles = 2422 pe cat distan a Washington =>
Los Angeles = 2297 mai mica dect 2422
Continund procesul de scurtcircuitare se obine n final traseul complet: Atlanta =>
New York => Philadelphia => Chicago => Detroit => Washington => Los Angeles => Dallas =>
Houston => Atlanta cu un tur de 6586 mile dar se ncrucieaz n arcele (Atlanta-

Tem Curs Huluba Florin

NYC,Washington-Detroit)(Atlanta-NYC,Philadelhia-Chicago)(Washington-Detroit,ChicagoPhiladelphia)

Fig. 5 - Tur iniial prin E3

Urmeaz s rezolvm ncrucirile create aadar, pentru a ilustra se observ n fig. 5 c


se intersecteaz arcele (Washington-Detroit) i (Chicago-Philadelphia)
c Washington, Detroit + c Chicago, Philadelphia = 394 + 664 = 1058 de mile
c Washington, Chicago + c Detroit, Philadelphia = 594 + 442 = 1036 de mile
1058 > 1036 rezult c se obine un traseu mai scurt folosind arcele (Washington-Detroit)
i (Chicago-Philadelphia)
Distana turului a sczut, dar mai sunt 3 ncruciri i anume (Atlanta-NYC, WashingtonChicago)(Atlanta-NYC, Philadelphia- Detroit) (Atlanta-NYC, Washington- Los Angeles)
c Atlanta-NYC + c Washington, Chicago = 747+ 594 = 1341 de mile
c Atlanta, Chicago + c Washington, NYC = 589 + 204 = 802 de mile
1341 > 802 rezult c se obine un traseu mai scurt folosind arcele (Atlanta- Los Angeles)
i (Washington -NYC)
Distana turului a sczut, mai avem de rezolvat ncrucirile (Washington-NYC,
Philadelphia- Detroit) i (Atlanta- Chicago, Washington- Los Angeles)

Tem Curs Huluba Florin

c Washington, NYC + c Philadelphia, Detroit = 204+ 442= 646 de mile


c Washington, Philadelphia + c Detroit, NYC = 123 + 614 = 604 de mile
646 > 604 rezult c se obine un traseu mai scurt folosind arcele (WashingtonPhiladelphia) i (Detroit - NYC)
Rezolvarea ultimei intersecii ntre muchiile (Atlanta- Chicago, Washington- Los
Angeles)
c Atlanta, Chicago + c Washington, Los Angeles = 589 + 2297= 2886 de mile
c Atlanta, Washington + c Chicago, Los Angeles = 543 + 1935 = 2478 de mile
2886 > 2478 rezult c se obine un traseu mai scurt folosind arcele (Atlanta-Washington)
i (Chicago - Angeles)

n final distana turului dup rezolvarea tuturor ncrucirilor este = 6586 (1058 1036)
(1341 802) (646 604) (2886 2478) = 5566 mile

Fig. 5 - Tur final prin E3

Euristica E4
Aceast procedur, datorat lui Cristofides, este o rafinare a euristicii precedente.
Deoarece suma gradelor nodurilor din arborele H este par, numrul nodurilor de grad impar este
par! Folosind numai aceste noduri i muchiile dintre ele vom determina cuplajul C de pondere
minim, ponderile muchiilor luate n calcul fiind distanele dintre extremit i. Fie H' graful
rezultat din H prin adugarea muchiilor cuplajului C, cu meniunea c dac ntre dou noduri

Tem Curs Huluba Florin

avem o muchie n H i o alta n C, graful H' va avea ntre nodurile respective dou muchii. Prin
construcie n H fiecare nod are grad par, astfel c H are un ciclu eulerian. Plecnd de aici i
utiliznd tehnica scurtcircuitrii se ajunge la un traseu complet
Se poate arta c lungimea acestui traseu nu depete 3/2 din lungimea traseului optim
(Nica, 2001)
Rezolvare E4
Se reia fig. 4, unde am stabilim minimul din fiecare rnd din tabelul cu distanta. Conform
algoritmului lui Kruskal pe distantele din tabelul distanelor avem: Atlanta Washington,
Washington Philadelphia, Philadelphia New York, Detroit Chicago, Dallas Houston, Los
Angeles Dallas, Dallas Washington, Washington Detroit (vezi fig. 4 )
Stabilim gradul unui nod. Gradul este dat de numrul de muchii incidente n nodul
respectiv. Astfel nodurile cu grad impar sunt: Chicago, Dallas, Houston, Los Angeles, New York,
Washington D.C.
Numrul nodurilor impare din graful din fig.4 este par. Se determina cuplajul minim ntre
nodurile cu grad impar dup cum se vede n tabelul de mai jos. Cuplajul se determin aplicnd
algoritmul ungar.
Orae
Chicago
Los
Angeles
New York
Washingto
n DC

Chica
go

1744

Los
Angeles
1744

New
York
712
2448

Washington
DC
594
2297

minim
linie
594
1744

712
594

2448
2297

204

204

204
204

Tabel 2 - Tabel noduri impare minim linii

Din tabelul de mai sus se scade minimul din fiecare linie i se obine:
Orae
Chicago
Los
Angeles
New York
Washingto
n DC
minim
coloan

Chica
go

Los
Angeles
1150

New
York
118

Washington
DC
0

0
508

2244

704

553
0

390

2093

1150

Tabel 3 - Tabel noduri impare minim coloane

Tem Curs Huluba Florin

La fel ca i mai sus se scade minimul de pe fiecare coloan i vom obine


Orae
Chicago
Los
Angeles
New York
Washingto
n DC

Chica
go

Los
Angeles
0

New
York
118

Washington
DC
0

0
508

1094

704

553
0

390

943

minim
linie
594
1744
204
204

Tabel 4 - Tabel ncadrare zero-uri

Cu galben sunt 0-uri ncadrate, iar cu rou 0-uri n plus, legturile noi create sunt ntre
Chicago Los Angeles i Washington New York. Distanele sunt euclidiene, i legturile pe
graf vor arta c n fig. 6

Fig. 6 - Tur iniial prin E4

Tem Curs Huluba Florin

Turul este Atlanta => Washington => New York => Philadelphia => Washington =>
Detroit => Chicago => Los Angeles => Dallas => Houston => Atlanta cu un tur de 5492
1 Succesiunea Atlanta => Washington => New York vom nlocui aceasta succesiune
direct Atlanta => New York pentru o distana cu condiia ca distanta sa fie mai mic sau egal.
Adic distana Atlanta => Washington => New York = 747 pe cat distana Atlanta => New York=
747 este la fel, deci nlocuim succesiunea.
Aadar turul devine format din succesiunea oraelor Atlanta => New York =>
Philadelphia => Washington => Detroit => Chicago => Los Angeles => Dallas => Houston =>
Atlanta

Rezolvarea ultimei intersecii ntre muchiile (Atlanta- NYC, Washington- Detroit)


c Atlanta, NYC + c Washington, Detroit = 747 + 394 = 1141 de mile
c Atlanta, Washington + c Detroit, NYC = 543 + 481 = 1024 de mile
1141 > 1024 rezult c se obine un traseu mai scurt folosind arcele (Atlanta-Washington)
i (NYC - Detroit)
Ordinea este Atlanta => Washington => Philadelphia => New York => Detroit =>
Chicago => Los Angeles => Dallas => Houston => Atlanta are distana turului de 5375 mile

Tem Curs Huluba Florin


Fig. 6 - Tur final prin E4

Concluzie
Dup calcul, cea mai avantajoas metod euristica a fost E4 distana fiind de 5375 de
mile. n timp ce prin metodele E1, E2 i E3 rezultatele ob inute cu privire la distan a au fost de
5803, 5526, respectiv 5566 mile. Aadar, compania livra armamentul n oraele meninute mai
sus, n ordinea ce urmeaz: Atlanta => Washington => Philadelphia => New York => Detroit =>
Chicago => Los Angeles => Dallas => Houston => Atlanta.

Bibliography
Nica, V. (2001). Capitole speciale ale Cercetri operaionale. Bucureti: Editura ASE .
Cursuri i seminarii Cercetri operaionale
Calcul distante euclidiene - http://tjpeiffer.com/crowflies.html
Calcul distante euclidiene - http://www.distancefromto.net/distancefrom/New+York/to/Los+Angeles