Sunteți pe pagina 1din 5

ALGORITMUL FURNICII

Literatura de specialitate menioneaz numeroase i variate definiii ale noiunii de agent


inteligent. De exemplu, unii autori consider c sistemele de filtrare a potei electronice sunt ageni
inteligeni. Cu toate acestea, majoritatea cercettorilor sunt de acord c elementul central al unui
agent inteligent este adaptabilitatea sau capacitatea de a nva. Ca urmare, o definiie concis ar
putea fi urmtoarea: un agent inteligent este o entitate care percepe, nva i acioneaz ntr-un
anumit mediu.
Cteva dintre proprietile remarcabile ale agenilor inteligeni sunt urmtoarele:
- autonomia descrie capacitatea agenilor de a lua decizii sau de a face alegeri pe baza
propriei experiene, folosind i informaii i cunotine din i despre mediul n care acioneaz:
- adaptabilitatea descrie capacitatea agenilor ca pe msur ce reacioneaz la stimuli sau
interacioneaz cu mediul exterior, s nvee, mbuntindu-i performanele n timp;
- capacitatea de colaborare asigur partajarea cunotinelor i experienelor consumate cu
ali ageni;
- mobilitatea descrie capacitatea agenilor de a se deplasa n mediul exterior pe baza deciziei
proprii.
Se poate spune c un agent care rspunde cu succes tuturor acestor cerine este un agent
inteligent dac realizeaz ntotdeauna acea aciune care maximizeaz indicatorul su de performan,
n contextul unei secvene de cunotine avut la dispoziie pn n acel moment.
Una din direciile de dezvoltare ale agenilor inteligeni, care a fost iniiat la nceputul anilor
1990, este cea cunoscut sub numele de modelul de optimizare dup muuroiul de furnici sau, pe
scurt, algoritmul furnicii (AF). Cercettorii din domeniul etiologiei i tiinelor comportamentale la
animale au elaborat o serie de modele care s explice unele aspecte particulare ale comportrii
sociale a insectelor, cum ar fi de exemplu procesul de auto-organizare. Ulterior, inspirndu-se din
aceste modele, ali cercettori au elaborat o serie de algoritme specializate pentru rezolvarea unor
probleme dificile din punctul de vedere al efortului de calcul.
Prima form a AF a fost propus de Marco Dorigo n 1992, autorul considernd c acest
algoritm face parte dintr-un concept mai larg, cel al inteligenei mulimilor. (n englez, swarm
intelligence).
Principiul de funcionare al algoritmului furnicii
Dac se urmrete comportarea furnicilor n natur, se constat c acestea pot gsi drumul cel
mai scurt de la adpost la sursa de hran n absena oricror informaii vizuale i fr o comunicare
direct ntre ele. De asemenea, aceleai furnici sunt apte s se adapteze la schimbrile mediului
nconjurtor. AF ncearc s foloseasc aceste abiliti ale furnicilor reale n scopul rezolvrii anumitor
tipuri de probleme de optimizare.
Urmrind o colonie de furnici, se constat c fiecare din ele pare s se mite la ntmplare, fr
un scop precis. Totui, deodat, grupuri din ce n ce mai mari de furnici se concentreaz pe direcii
comune. Aceast comportare pare s indice formarea unei inteligene colective, ce are la baz
comportarea fiecrui individ.
n natur, exist o multitudine de ci pe care furnicile ajung s formeze o inteligen colectiv.
Dintre acestea, AF folosete capacitatea furnicilor de a elibera feromoni, lsnd o urm invizibil a
traseului lor. Feromonii sunt substane chimice produse de un animal i servesc, n principal, ca stimuli
pentru ali indivizi din aceeai specie, pentru anumite rspunsuri comportamentale.
Pentru a nelege cum folosesc furnicile feromonii pentru cutarea drumului de lungime minim
ntre dou puncte oarecare, n prezena obstacolelor, se consider cazul a dou grupuri de furnici,
avnd acelai numr de membri (de exemplu, cte 3 furnici de fiecare grup). Cele dou grupuri trebuie
s se deplaseze ntre punctele A i B, unde A reprezint adpostul sau locul de depozitare a hranei,
iar B sursa de hran (Fig. 1.a). Trebuie spus de la bun nceput c, plecnd din A, furnicile nu-i
cunosc destinaia, deplasarea lor avnd loc, fr o int prealabil, n cutarea hranei. Admitem ns
c singurul loc din vecintatea adpostului A n care se gsete hran este punctul B.
n mod natural, furnicile vor cuta traseul pentru care deplasarea de la A la B i napoi la A s se
fac n timpul cel mai scurt. Desigur, acest timp va corespunde distanei minime dintre punctele A i B.
Furnicile nu cunosc lungimile celor dou ci ntre punctele A i B, ns cele dou grupuri de furnici
pornesc simultan din A, pe Calea 1 i Calea 2, ctre B. Deoarece Calea 1 este mai scurt, primul grup
va ajunge n B naintea celui de-al doilea (Fig. 1.b). Pe acest drum cele trei furnici las o urm de
feromoni ntr-o concentraie proporional cu numrul lor, la fel cum se ntmpl i cu furnicile din cel

Calea 2

Calea 2

Calea 1

(a)

(b)

Calea 1

(c)

Fig. 1 Cum folosesc furnicile feromonii pentru stabilirea traseului de lungime minim.
de-al doilea grup. Dup ce au luat hrana din punctul B, furnicile primului grup pornesc pe drumul de
ntoarcere spre A, folosind aceeai cale, i ajung n A la un moment n care cel de-al doilea grup de
furnici se afl undeva pe Calea 2, la dus sau la ntors (nu conteaz). Pe drumul de ntoarcere furnicile
din primul grup las o nou urm de feromoni, care se suprapune peste prima, astfel nct
concentraia de feromoni pe Calea 1 se dubleaz (linia groas din Fig. 1.c). n acest moment, din A
pleac alte grupuri de furnici care, dintre cile posibile (n general, pot fi oricte, nu doar dou ca n
exemplul din Fig. 1), vor alege-o pe cea pe care concentraia de feromoni este maxim, adic Calea 1
(altfel spus, calea de lungime minim). Astfel, fr a utiliza inteligen individual, furnicile reuesc s
gseasc calea de lungime minim i s formeze o inteligen colectiv.
Caracterul dus-ntors al drumului urmat de furnici este esenial n formarea acestui
comportament, deoarece n momentul plecrii din adpost furnicile nu cunosc distana pe care o au de
parcurs, iar n momentul n care ajung la sursa de hran nu pot transmite localizarea acesteia
celorlalte furnici. Primele furnici plecate n cutarea hranei joac de fapt rolul unor cercetai. n ipoteza
unui teren virgin, fr urme de feromoni, aceti cercetai i aleg cile la ntmplare. Att timp ct nici
unul din cercetai nu a parcurs drumul complet, napoi la adpost, alte furnici care ar porni pe urmele
cercetailor ar alege la ntmplare una din cile deschise de acetia, n mod echiprobabil, deoarece
concentraia de feromoni este aceeai pe toate aceste ci. Abia n momentul n care unul dintre
cercetai revine la adpost, concentraia de feromoni de pe calea urmat de acesta se dubleaz, iar
dintre furnicile ce pornesc la drum, o proporie mai mare va alege aceast cale, contribuind la
creterea suplimentar a concentraiei de feromoni. n acest fel, treptat, un numr tot mai mare de
furnici vor parcurge drumul dintre adpost i sursa de hran i napoi pe calea de lungime minim
deschis de primul cerceta.
Copierea acestui comportament natural n cadrul unui algoritm artificial se face, de regul, diferit,
n funcie de tipul de problem de optimizare ce se dorete a fi rezolvat. De asemenea,
implementarea AF introduce o serie de modificri n raport cu modelul natural, modificri care au, n
general, un caracter simplificator. De exemplu, deoarece distanele dintre diferite puncte din spaiul
problemei sunt mrimi cunoscute, nu mai este necesar ipoteza drumului dus-ntors, iar echivalentul
concentraiei de feromoni din modelul natural, pentru calea respectiv, se alege invers proporional cu
lungimea acelei ci.

Implementarea algoritmului furnicii pentru problema comisului voiajor


Problema comisului voiajor este una dintre cele mai cunoscute probleme de optimizare i se
enun astfel: un comis voiajor trebuie s viziteze o serie de clieni ce locuiesc ntr-un anumit numr
de orae. Se dorete s se stabileasc ordinea n care trebuie vizitate oraele astfel nct lungimea
total a itinerarului parcurs de comis voiajor s fie minim.
Se consider un graf complet ce conine N noduri (oraele vizitate de comisul voiajor) i toate
laturile ce pot fi definite ntre aceste noduri (Fig. 2). Implementarea AF pentru problema considerat
este prezentat n Caseta 1.
Fiecrei laturi (i,j) din graful complet i se asociaz o concentraie de feromoni ij, care va fi
folosit pentru selectarea traseului urmat de colonia de furnici, care n continuare vor fi denumite
ageni. Iniial, concentraiile ij se stabilesc la valori pozitive mici (de exemplu, c = 0.01).

Fig. 2 Graful complet pentru problema comisului voiajor.


Caseta 1 Algoritmul furnicii pentru problema comisului voiajor.
1.

2.

3.

4.
5.
6.
7.

Date iniiale: N numrul de orae; NA numrul de ageni; (xi , yi), i = 1,N


coordonatele oraelor; c concentraia de feromoni pentru iniializarea probabilitilor; Q
cantitatea total de feromoni ai unui agent; - factorul de evaporare; Tmax numrul maxim
de iteraii.
Iniializarea concentraiilor de feromoni pe laturi i calculul distanelor dintre noduri.
for i = 1 to N do
for j = 1 to N do
if i j then ij = c
if i < j then dij = sqrt((xi xj)2 + (yi yj)2)
else if i > j then dji = dij
Amplasarea agenilor n noduri (cte NA / N ageni n fiecare nod).
m = NA / N
for k = 1 to NA do
o = (k 1) div m // Partea ntreag a ctului
Orask = o + 1
Iniializri: traseul de lungime minim (LMin = ) i contorul de iteraii (t = 1).
Iniializarea poziiei n listele tabu (s = 1).
Inserarea primului ora n lista tabu a fiecrui agent.
for k = 1 to NA do Tabuk(s) = Orask
Formarea traseelor (completarea listelor tabu).
repeat
// Repet pn la umplerea listelor tabu
s=s+1
// Incrementarea poziiei n listele tabu
for k =1 to NA do
// Pentru fiecare agent
i = Orask // Oraul de origine
// Probabilitile de deplasare n oraele vecine
Sum = 0
for j = 1 to N do
if j Tabuk then Sum = Sum + (ij)(1 / dij)
for j = 1 to N do
if j Tabuk then Pij = (ij)(1 / dij) / Sum
else Pij = 0
// Selectarea oraului de deplasare
Pmax = 0; j* = 0
for j = 1 to N do
if j Tabuk then
if Pij > Pmax then
Pmax = Pij
j* = j
Orask = j*
// Mutarea agentului k n nodul j*
Tabuk(s) = j*
// nscrierea nodului j* n lista tabu
until s = N

8.

nchiderea traseelor agenilor (mutarea fiecrui agent n oraul de origine).


for k = 1 to NA do Tabuk(s+1) = Tabuk(1)

Calculul lungimii totale a traseului fiecrui agent.


for k = 1 to NA do
Lk = 0
for p = 1 to s do
i = Tabuk(p)
j = Tabuk(p+1)
Lk = Lk + dij
10. Memorarea traseului de lungime minim.
for k = 1 to NA do
if Lk < Lmin then Lmin = Lk
11. Actualizarea concentraiilor de feromoni pe laturile grafului.
for k = 1 to NA do
// Calculul coreciei concentraiei de feromoni
for p = 1 to s do
i = Tabuk(p)
j = Tabuk(p+1)
ij = ij +Q / Lk
// Modificarea concentraiei de feromoni
for i = 1 to N do
for j =1 to N do
if i j then ij = ij + ij
12. Criteriul de oprire: dac t = Tmax, algoritmul se ncheie; n caz contrar, se golesc
listele tabu:
for k = 1 to NA do
for p = 1 to s+1 do
Tabuk(p) = 0
i se revine la pasul 5.
9.

Deoarece problema urmrete determinarea unei valori minime, lungimea traseului minim se
iniializeaz cu o valoare foarte mare, notat simbolic LMin = . n continuare, cei NA ageni se
distribuie uniform (dac este posibil) ntre nodurile din graf. Dac se admite c numrul de noduri i
numrul de ageni se aleg astfel nct NA = m N (unde m este un ntreg oarecare), n fiecare nod se
vor distribui m = NA / N ageni. Nodul n care se afl la un moment dat fiecare agent k este notat
Orask.
Avnd n vedere c problema conine restricia conform creia fiecare agent trebuie s treac
prin fiecare ora fr a forma cicluri (un ora se viziteaz o singur dat, cu excepia primului ora, n
care se nchide turul), memorarea traseului fiecrui agent se face ntr-o list tabu, care va conine N +
1elemente, care descriu succesiunea n care sunt vizitate oraele. De exemplu, dac cele 5 orae din
Fig. 1 sunt vizitate de un agent n ordinea 3, 1, 4, 5 i 2, lista tabu a acestuia va avea forma (3, 1, 4, 5,
2, 3).
Dup distribuirea agenilor n nodurile grafului, lista tabu asociat fiecrui agent este iniializat
n prima poziie cu numrul de ordine al oraului n care a fost distribuit acel agent. n continuare,
urmeaz ca agenii s se deplaseze n diferite noduri ale grafului, pn la completarea tuturor listelor
tabu, moment n care fiecare agent va fi ncheiat un tur complet al grafului. Astfel, pentru fiecare agent
k, se consider oraul de origine i = Orask i se alege oraul destinaie j*, care nu trebuie s figureze
n lista tabu a agentului k, pe baza unor probabiliti calculate n funcie de concentraia de feromoni
de pe laturile (i , j) i vizibilitatea nodurilor j privite din nodul i, apreciat prin inversul distanei dintre
noduri, dij. Aceste probabiliti se calculeaz cu o relaie de forma:

ij 1 / d ij

Pij ip 1 / d ip
pTabuk

j Tabu k

(1)

j Tabu k

Dintre toate nodurile j n care se admite deplasarea din nodul i, se alege nodul j* pentru care
probabilitatea Pij* este maxim. n consecin, agentul k se va deplasa n nodul j* (Orask = j*), iar nodul
j* va fi introdus n lista tabu (Tabuk(s) = j*). n relaia (1) i sunt doi parametri care controleaz

ponderea cu care intervin concentraia de feromoni ( ij) i vizibilitatea (1 / dij) n calculul probabilitii
Pij. De exemplu, pentru = 0, probabilitile Pij se stabilesc numai n funcie de concentraia de
feromoni, iar pentru = 0 numai n funcie de vizibilitatea nodurilor (distanele dintre noduri).
Dup parcurgerea a N pai, cnd toi agenii au trecut prin toate nodurile grafului, traseul fiecrui
agent se nchide prin revenirea n nodul de origine. n continuare, se calculeaz lungimile traseelor
pentru toi agenii i, dintre acestea, se memoreaz lungimea minim. n acest moment se ncheie un
pas / o iteraie a algoritmului.
nainte de trecerea la pasul urmtor, se procedeaz la actualizarea concentraiei de feromoni de
pe fiecare latur a grafului. Aceasta se face o singur dat, la ncheierea fiecrui ciclu / iteraie, atunci
cnd fiecare agent a parcurs un tur complet n graf. n acest caz, cantitatea de feromoni adugat pe
fiecare latur este invers proporional cu lungimea ntregului traseu parcurs de agentul respectiv. Ca
urmare, acesta este modelul de actualizare a concentraiilor de feromoni pe laturile grafului folosit n
algoritmul prezentat n Caseta 1 i folosete o relaie de forma:

ij ij ij

(2)

unde este un coeficient subunitar, astfel nct (1 - ) reprezint rata de evaporare a feromonilor de
pe traseele formate. Coeficientul se alege ntotdeauna subunitar, astfel nct s se evite acumularea
nelimitat de feromoni pe laturile grafului (de exemplu, = 0.1). ij reprezint corecia concentraiei
de feromoni pe latura (i , j), determinat de numrul total de ageni care se deplaseaz din nodul i n
nodul j. Aceste corecii se calculeaz cu relaia:
NA

ij ijk

(3)

k 1

unde ij este cantitatea de feromoni lsat pe latura (i , j) de agentul k:


k

Lk
0
k
ij

daca i, j Tabu k si i Tabu k ( p); j Tabu k ( p 1)

(4)

in caz contrar

Criteriul de oprire folosit n cadrul algoritmului este atingerea unui numr maxim de iteraii, Tmax.
Att timp ct t < Tmax, se reiniializeaz listele tabu ale agenilor i se reia procedura prin reiniializarea
primului element din fiecare lista tabu cu numrul de ordine al oraului n care se afl fiecare agent.
APLICAIE
n cadrul lucrrii, cu ajutorul funciei ANTS, se va rula n MATLAB problema comisului voiajor
pentru diverse valori ale parametrilor de intrare ale algoritmului furnicii.
Funcia solicit urmtorii parametri de intrare:
-

N numrul de orae ce trebuie parcurs de comisul voiajor.


NA numrul de ageni (furnici) un multiplu al numrului de orae N ;
c concentraia iniial de feromoni de pe trasee;
ro rata de evaporare a feromonilor;
alpha, beta parametrii de control ai ponderii concentraiei de feromoni i ai vizibilitii;
tmax numrul maxim de iteraii ala algoritmului
a vector de forma [x1,y1, x2, y2, , xN, yN] care codific coordonatele spaiale ale oraelor vizitate
de comisul voiajor.

Rezultatele algoritmului sunt urmtoarele:


tabopt - bucla cu distanta minima parcursa de un agent
lmin - lungimea totala a drumului optim, calculat conform listei tabu optime tabopt i a
coordonatelor oraelor

Se vor trage concluzii referitor la performanele algoritmului pentru diverse valori ale
parametrilor N, NA, alpha i beta.

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