Sunteți pe pagina 1din 5

Problema Comisului Voiajor

Scaiceanu
Luiza Carmen
Universitatea din Craiova, Facultatea de Matematica s i S iinte ale Naturii

Abstract
Charles Darwin a afirmat teoria evolutiei naturale n originea speciilor. De-a lungul generatiilor, organismele biologice evolueaza pe principiul selectiei naturale - "supravietuirea celui mai adaptat". Formele
perfecte de albatros, similitudinea dintre rechini si delfini si asa mai departe, sunt cele mai bune exemple
de realizare a evolutiei aleatoare peste inteligenta . Asadar, aceasta functioneaza att de bine n natura,
de aceea ar trebui sa fie interesant efectuarea simularii evolutiei naturale si dezvoltarea unei metode, care
rezolva concret, si cauta probleme de optimizare. n natura, individual, ct si ntr-o populatie, indivizii
concureaza unii cu altii pentru resurse vitale, cum ar fi hrana, adapost si asa mai departe. De asemenea,
la aceeasi specie, indivizii concureaza pentru a atrage parteneri pentru reproducere. Datorita aceastei
selectii, indivizii ce au performante slabe au mai putine sanse de a supravietui, si cel mai adaptat sau
"potrivit" individ produce un numar relativ mare de urmasi. Se poate, de asemenea, remarca faptul
ca n timpul reproducerii, o recombinare a caracteristicilor bune ale fiecarui stramos poate produce "cel
mai bun" descendent, ale carui caracteristici sunt mai bune dect cele ale unui parinte. Dupa cteva
generatii, speciile evolueaza n mod spontan pentru a deveni mult mai mult adaptate la mediul lor.

cu care algoritmul genetic lucreaza. Exista


posibilitatea ca urmatoarea iteratie din cautare
sa produca o solutie mai buna. n anumite
cazuri, procesul de cautare ar putea sa dureze
ani de zile, s i sa nu produca nicio solutie mai
buna dect cea furnizata n prima iteratie mai
mica. Un alt tel este convergenta rapida. Cnd
functia obiectiva necesita multe resurse pentru a functiona, convergenta rapida este de
preferat a fi folosita, nsa s ansa de a converge
la un local s i este posibil ca optima de sub
standard sa creasca.

n algoritmii genetici, indivizii reprezinta


numerele binare dintr-o multime de simboluri extrasa dintr-o multime finita. Asa
cum memoria calculatorului este facuta din
s iruri de biti, orice poate fi stocat n calculator s i poate fi codificat printr-un s ir de biti de
o lungime suficienta. Fiecare individ codificat
din populatie poate fi vazut ca o reprezentare
n concordanta cu o codare corespunzatoare a
unei situatii particulare a problemei. Pentru ca
algoritmii genetici sa gaseasca solutia optima
este necesar sa se efectueze anumite operatii
asupra acestor indivizi.
Procesul de cautare nseamna initializarea
populatiei s i apoi nmultirea populatiei pentru a obtine noi indivizi pna cnd conditia
de finalizare este ndeplinita. Pot exista cteva
teluri pentru procesul de cautare, unul putnd
fi de a gasi optimul global. Acest lucru nu
poate fi niciodata asigurat, datorita modelelor

n afara de acestea, mai exista un tel s i


anume acela, de a produce un spectru divers,
dar n acelasi timp s i solutii optime. Cnd
spatiul solutiei contine cteva optime distincte, care sunt similare n fitness, este folositor sa existe posibilitatea de a selecta una
din ele, din moment ce anumite combinatii
de valori factoriale din model, ar putea fi mai
1

folositoare dect altele. De asemenea, anumite


solutii ar putea fi mai fiabile dect altele.
Codificarea este procesul de reprezentare
a genelor individuale. Procesul poate fi pus
n functiune folosind biti, numere, liste de
numere, liste sau orice alt tip de obiect. Codificarea depinde, n mare parte, de rezolvarea
problemei. De exemplu, se pot codifica, n
mod direct, numere reale sau ntregi.

ori mici ale numarului de orase, nsa cum


( n 1) !
numarul de circuite este 2 , pentru valori
mari ale lui n nu exista metode exacte eficiente. De altfel, este cunoscut ca TSP face
parte din clasa problemelor NP-complete.
Pentru dimensiuni mari problema poate
fi rezolvata utilizend metode euristice. Majoritatea metodelor euristice se bazeaza pe
transformarea iterativea a unuia sau mai multor trasee initiale. Una dintre medelele euristicile cel mai frecvent folosite este euristica
Lin-Kernighan care se bazeaza pe ideea de
a nlocui unele arce ale traseului cu altele n
scopul reducerii costului traseului. Cazul cel
mai simplu este cel n care se nlocuiesc doua
arce ceea ce echivaleaza cu schimbarea ordinii de parcurgere a unei portiuni din traseu
(transformarea 2-opt).

Definitia problemei Comis Voiajorului


Este una dintre cele mai cunoscute probleme de optimizare combinatoriala putnd fi
enuntata dupa cum urmeaza: se considera o
multime de n orase s i un comis voiajor care
trebuie sa viziteze toate orasele, trecnd o singura data prin fiecare s i sa se ntoarca n orasul
de pornire astfel nct costul total al circuitului sa fie ct mai mic.
Din punct de vedere formal, n varianta
classica problema este echivalenta cu cea a
gasirii unui circuit Hamiltonian de cost minim
ntr-un graf complet. Problema este importanta att din punct de vedere teoretic ct s i
din punct de vedere practic ntruct o serie de
probleme concrete pot fi formulate ca TSP:
- Identificarea rutei optime pentru mijloace
de transport (persoane, marfuri)
-Generarea traseelor urmate de dispozitivele de producere a circuitelor integrate Exista diferite variante ale problemei:
- Varianta asimetrica: costul trecerii de la
un nod la altul depinde de sensul circuitului
(Assymetric TSP)
- Variante cu restrictii de precedenta ; restrictiile specifica faptul ca un anumit nod trebuie vizitat naintea altuia (Sequential Ordering Problem - SOP)
- Variante cu mai multe mijloace de
transport cu anumite capacitati care asigura
aprovizionarea (Capacitated vehicle routing
problem - CVRP)
- Variante generalizate n care exista mai
multe trasee directe ntre doua noduri sau
nodurile sunt nlocuite cu clustere de noduri
(Generalized TSP)
Problema poate fi rezolvata exact (prin
analiza tuturor circuitelor posibile) pentru val-

Rezolvarea problemei Comis Voiajorului


Principalele caracteristici ale acestei abordari:
- Retelele de tip Kohonen au o arhitectura constituita din doua unitati de intrare s i
m unitati de iesire plasate n nodurile unei
topologii de tip inel: vecinatatea de dimensiune 2s a unui neuron i contine multimea
de neuroni {i s, i (s 1), , i 1, i, i + 1, , i +
(s 1), i + s}. Numarul de unitati functionale
trebuie sa fie mai mare dect numarul de orase
ale problemei (de exemplu m=5n) .
- Fiecare unitate functionala are asociate
doua ponderi initializate aleator cu valori din
domeniul coordonatelor oraselor.
- Procesul de antrenare consta n parcurgerea de mai multe ori a listei cu coordonate ale
oraselor s i ajustarea ponderilor folosind regula specifica. Pentru fiecare vector de intrare
x (pereche de doua coordonate) se efectueaza
urmatoarele prelucrari:
- Se determina unitatea nvingatoare,i? ,
(cea avnd vectorul de ponderi cel mai
apropiat de x)
- Se ajusteaza ponderile tuturor unitatilor
folosind regula: W i (k + 1) = W i (k) + ( X
W i (k))(i, i? ) unde functia de vecinatate este
(i, i? ) = exp(( I i? )2 (2s2 ))
2

metoda se va modifica astfel: dupa ce s-a ajuns


la convergenta , se salveaza cei mai buni indivizi initializnd aleator restul populatiei s i relund procedeul.

Fiind data o colectie de orase si costul trecerii ntre fiecare pereche de orase, atunci, problema
comis voiajorului este de a gasi cel mai ieftin mod
de a vizita toate orasele si de ntoarcere n orasul de
start.
Numele problemei provine din analogia
cu un vanzator ambulant care pleaca dintrun oras, care trebuie sa viziteze un numar de
orase dat s i care apoi trebuie sa se ntoarca la
punctul de plecare, cu un efort minim (de
exemplu timpul minim, caz n care costul
fiecarei laturi este egal cu timpul necesar parcurgerii drumului).

- daca dimensiunea populatiei este N, se


genereaza N descendenti folosind
metoda ruletei.
- se sorteaza dupa fitness, multimea formata
din parinti s i descendenti.
- se aleg cei mai buni N indivizi, ce vor forma
generatia urmatoare.
Algoritmul simulatet annealing

Metode de solutionare

Structura acestui algoritm este urmatoarea:


Algoritmul simulated annealing
t:=0
initializeaza P(t)
initializeaza temperatura T
selecteaza aleator un individ curent ic
evalueaza ic
repeat
repeat
selecteaza un nou individ in prin
prin mutatia unui bit n ic
if f (ic ) < f (in )
then ic := in
f (i ) f (i )
else if random[0,1) <exp{ n T c }
then ic := in
until (conditie-terminare)
T:=g(t,T)
t:=t+1
(criteriu de oprire)
Functia random[0, 1) ntoarce un numar
aleator din [0, 1). Conditia de terminare verifica daca a fost atins echilibrul termic, adica
distributia de probabilitate a noului individ
aproximeaza distributia Boltzmann. Totusi, n
multe aplicatii, acest pas este executat de k ori,
k fiind fiind un parametru al metodei.
Temperatura este micsorata n pasul

Functia de evaluare este reprezentata de


suma distantelor euclidiene dintre doua orase
consecutive:
N

Fitness =

( x i x i 1 )2 + ( y i y i 1 )2

i =1

O reprezentare a traseului este cea n care


orasele sunt listate n ordinea n care ele sunt
vizitate.
ncrucisarea traditionala nu este potrivita pentru aceasta problema, deoarece descendentii pot sa nu respecte restrictia de a se trece
o singura data prin fiecare oras.
Mutatia - nici aici nu se va folosi cea
traditionala, n schimb se va putea utiliza mutatia prin interschimbare.(Se selecteaza aleator
doi biti dintr-un cromozom s i se interschimba
valorile).
Selectia - folosind metoda traditionala
bazata pe metoda ruletei, cel mai bun individ are cea mai buna probabilitate de
supravietuire, dar aceasta nu reprezinta
neaparat o certitudine. De aceea, se va folosi
selectia CHC, care asigura ca individul cel mai
bun va supravietui ntotdeauna n noua generatie.
Selectia CHC asigura o convergenta mai
rapida n comp[aratie cu metoda ruletei. Pentru a preveni convergenta la un optim local,

T = g( T, t)undeg( T, t) < T, t

Algoritmul se termina pentru valori mici


ale lui T: criteriul de oprire verifica daca sistemul "ngheata ". Algoritmul de calire simulata poate evita optimul local.

ntr-un algoritm genetic standard, codificarea reprezinta o simpla secventa numerica,


iar ncrucisarea este realizata prin alegerea
aleatorie a unui punct n secventa parinte s i
interschgimbnd fiecare numar din secventa
dupa acest punct.
Dificultatea problemei comisului voiajor
este reprezentata de faptul ca fiecare oras
poate fi utilizat o singura data ntr-o ruta.
Daca o noua ruta generata contine de doua ori
numele unui oras din ruta parinte, aceasta este
invalida. Codificarea nu poate fi reprezentata
ca o lista a oraselor vizitate. Alte metode de
codificare au fost create pentru a rezolva problema ncrucisa rii . Desi aceste metode nu vor
crea rute invalide, nu pot lua n considerare
faptul ca, de exemplu, ruta "A B C D E F G"
este aceeasi cu ruta "G F E D C B A".
Pentru a rezolva corect problema, algoritmul de ncrucisare va trebui sa fie ceva mai
complicat. n cazul aplicatiei, se stocheaza
legaturile n ambele sensuri pentru fiecare
ruta. Operatia de ncrucisare nu se rezuma
doar la combinarea a doua s iruri. Aceasta
va lua fiecare legatura ce exista ntre parinti
s i o va plasa s i n noile rute generate. Apoi,
pentru primul "copil" va alterna ntre alegerea
legaturilor de la al doilea parinte s i apoi
de la primul. Pentru al doilea "copil", va
alterna ntre al doilea parinte s i primul n
alegerea altei multimi de legaturi. Pentru
alti copii exista probabilitatea ca o legatura sa
creeze o ruta, astfel nct n locul unei singure cai de acces, sa existe mai multe deconectate. Aceste legaturi trebuie respinse.
Pentru a completa legaturile ramase, orasele
sunt alese aleator. Deoarece ncrucisarea nu se
efectueaza complet aleator, aceasta este considerata a fi greedy.
n cele din urma, algoritmul genetic va
genera solutii identice. Acest lucru nu se
doreste. O data ce fiecare ruta este identica,
algoritmul nu va putea gasi solutia optima.
Exista doua posibilitati pentru a evita acest lucru. Prima este aceea de a folosi o populatie
initiala ce contine uin numar foarte mare de
indivizi, ceea ce va necesita o cantitate de timp
semnificativa pentru ca algoritmul sa genereze

Drumul parcurs de catre comisul voiajor lam denumit tur. Testnd fiecare probabilitate
pentru un traseu cu N orase, rezultatul este
N fasctorial. Astfel o ruta ce va contine 30 de
orase, ar avea po distanta totala de 2.65 1032
rute diferite. adaugnd doar un singur oras la
acest traseu, timpul ar creste cu 31 factorial.
Utilizarea unui algoritm genetic este
folosita pentru a gasi oi solutie ntr-un timp
mult mai scurt. Desigur, aceasta ar putea sa fie
cea mai buna solutie, dar poate gasi o solutie
apropiata de cea optima pentru 100 de orase
n mai putin de 1 minut.
Pentru a rezolva problema comisului voiajor, trebuie urmati ctiva pasi:
- n primul rnd, trebuie creat un grup aleator
de rute numit populatie. Acest algoritm
utilizeqaza o populatie initiala greedy, ce
ofera posibilitatea de a alatura orasele
apropiate.
- se aleg cele mai bune doua rute (cele mai
scurte) ce vor deveni parintii din populatie, s i combinndu-le vom genera doua
rute noi(copiii).
- n scurt timp, rutele noi obtinute vor suferii
mutatii. Astfel, se reduce posibilitatea ca
noile rute obtinute sa coincida.
- noile rute obtinute sunt introduse n populatie, nlocuind pe cele mai lungi,
astfel dimensiunea populatiei ramne
neschimbata.
- noile rute sunt create n mod repetat pna se
ajunge la solutia dorita.
Cele mai mari probleme n folosirea algoritmilor genetici pentru rezolvarea problemei comisului voiajos le reprezinta codificarea
rutelor s i algoritmul de ncrucisare folosit pentru a combina rutele "parinti" pentru a genera
noile rute "copii".
4

solutii identice. A doua este reprezentata de


mutatie, unde cteva rute "copii" sunt alterate
aleator pentru a produce o noua ruta unica.
Algoritmul folosit n aplicatie utilizeaza o
populatie initiala greedy. Legaturile dintre
orase nu sunt complet aleatoare. Acesta va
crea legaturi ntre orasele cele mai apropiate.
Acest lucru nu se ntmpla tot timpul, pentru
fiecare data pornind de la populatia incde
itiala se vor genera rute identice.

References
[1] I. Iancu, Calcul Evolutiv, Ed. Universitaria,
Craiova, 2009
[2] S.N. Sivanandam, S.N. Deepa, Introduction to Genetic Algorithms, Springer-Verlag
Berlin Heidelberg, New York, 2008
[3] D. Seniw, A Genetic Algorithm for the Traveling Salesman Problem, MSc Thesis, Univ.
OfNorth Carolina at Charlotte, 1991

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