Sunteți pe pagina 1din 56

Universitatea Babe-Bolyai

Cristina Mihil







Tez de doctorat

Calculul evolutiv n probleme
de alocare





Coordonator
D. Dumitrescu







Cluj-Napoca, 2011
Abstract
Conceptul de alocare de sarcini i resurse nu este unul nou: acum 5000 de ani, Sun Tzu
a scris despre alocare i strategii din persepctiv militar, piramidele sunt vechi de peste 3000 de
ani iar cile ferate transcontinentale se construiesc de vreo 200 de ani n coace. Nici una dintre
aceste activiti nu s-ar fi putut realiza fr o form de alocare, adic fr nelegerea sarcinilor i
a secvenialitii acestora [Weaver2006].
Astzi, alocarea de sarcini i resurse este o form de luare de decizii care joac un rol
important n multe domenii: de la decizii ce in de viaa personal (stabilirea unei agende zilnice
sau planificarea itinerariului de dezvoltare personal) pn la decizii la nivel guvernamental
(stabilirea unei strategii de cretere economic, sau de asigurare a calitii n educaie), de la
decizii de ordin cultural (organizarea unei expoziii sau producerea unui film) pn la decizii de
ordin economic (introducerea unui nou produs pe pia sau relocalizarea unei fabrici).
Alocarea de sarcini i resurse este acum studiat de ctre cercettori n domeniul
managementului, al ingineriei industriale, al cercetrii operaionale i n domeniul informaticii.
Dat fiind importana i complexitatea problemelor de programare, lucrarea de fa investigheaz
dac paradigma calculului evolutiv, n esen de tip euristic, reprezint un bun candidat pentru a
rezolva mai bine i/sau mai repede anumite instane ale diferitelor probleme de alocare de sarcini
i resurse.



Cuvinte cheie: alocare de sarcini i resurse, algoritmi evolutivi


Lista publicaiilor
Dumitrescu, D., Iantovics, B., Florea, C., Multi-Agent Systems: a new allocation protocol and
evolutionary search for equilibrium; , in Proceedings of Symposium Zilele academice
clujene - Computer Science Section, 119-133, Cluj-Napoca, Romania, 2002.
Dumitrescu, D., Florea, C., Patranjan; P., Evolutionary Reorganization in MAS; , in
Proceedings of the European Conference on Information Technology (ECIT02), 1-5, Iasi,
Romania, 2002.
Dumitrescu, D., Florea, C., Patranjan; P., A New Evolutionary Model for Multi Agent Systems,
in Proceedings of the 4th International Workshop on Symbolic and Numeric Algorithms
for Scientific Computing (SYNASC02), 137-143, Timisoara, Romania, 2002.
Groan, C., Oltean, M., Florea, C., NP-complete problems using Evolutionary Algorithms,
Lucrarile Seminarului de Didactica Matematicii al Universitatii Babes-Bolyai, Vadu-
Crisului, Romania, 2003.
Florea, C., Dumitrescu, D., Negotiation in Multiagent Systems; in Proceedings of Conference
on Applied and Industrial Mathematics (CAIM03), Oradea, Romania, 2003.
Mihaila, C., Dumitrescu, D., Quantum Computing and Multiagent Systems, in Proceedings of
the Symposium Colocviul Academic Clujean de Informatica, Cluj-Napoca, Romania,
2005.
Mihi, A., Creu, C., Mihil, C., erban, C., Code Simplification using Boolean Functions
Simplification, in Proceedings of the International Conference of Mathematics &
Informatics, Supplement of Studii i cercetri tiinifice. Seria Matematic, no.16,
University of Bacau, 493-502, Bacu, Romnia, 2006.
Nichi, I.., Mihil, A., Mihil, C., About Project Management Planning Optimization using
Genetic Algorithms, in Proceedings of the International Conference on Knowledge
Engineering Principles and Technologies, Special issue of Studia Universitatis Babes-
Bolyai Informatica Series, 79-82 ,Cluj-Napoca, Romnia, 2007.
Nichi, I.., Avram-Nichi, R., Mihil, A., Mihil, C., About the Logical Model for Intelligent
Agents, in Proceedings of the International Conference on Knowledge Engineering
Principles and Technologies, Special issue of Studia Universitatis Babes-Bolyai
Informatica Series, 83-90, Cluj-Napoca, Romnia, 2007.

Nichi, I.., Avram-Nichi, R., Mihil, A., Mihil, C., On the collaborative systems for e-
business, in Proceedings of the International Conference on Competitiveness and
European Integration, 266-272, Cluj-Napoca, Romnia, 2007.
Mihil C., Cobrzan C., Evolutionary approach for multimedia caching, in IEEE Proceedings
of the Evolutionary Techniques in Data Processing Workshop, International Conference
on Database and Expert Systems Application (DEXA), 531-536, Torino, Italia, 2008
Mihil C., Mihil A., An Evolutionary Algorithm for Uniform Parallel Machines Scheduling,
in IEEE Proceedings of the European Modelling Symposium, 76-80, Liverpool, United
Kingdom, 2008.
Cobrzan C., Mihil C., A Genetic Algorithm for Utility Based Video Proxy-Caching, in
Proceedings of the International Symposium on Symbolic and Numeric Algorithms for
Scientific Computing (SYNASC), 231-238, Timioara, Romnia, 2008
Mihil A., Mihi A., Mihil C., Genetic Algorithm for Logical Topic Text Segmentation, in
IEEE Proceedings of the International Conference on Digital Information Management,
500-505, London, United Kingdom, 2008
Mihil A., Mihil C., Uniform Parallel Machines Scheduling using an Evolutionary
Algorithm, in IEEE Proceedings of the International Workshop on Evolutionary
Multiobjective Optimization Design and Applications, International Conference on
Intelligent Systems Design and Applications (ISDA), 401-406, Kaohsiung, Taiwan, 2008
Mihil C., Nichi, I.., R., Mihil, A., Coro R., A genetic algorithm for permutation flow
shop scheduling problem, in Annals of Tiberiu Popoviciu Seminar of Functional
Equation, Approximation and Convexity, p. 241-250, Cluj-Napoca, Romnia, 2008
Oltean M., Groan C., Dioan L., Mihil C., Genetic Programming with Linear Representation
a Survey, International Journal on Artificial Intelligence Tools, 197-238, 2009


Cuprins
Abstract ........................................................................................................................................... 3
Lista publicaiilor ............................................................................................................................ 5
Cuprins ............................................................................................................................................ 7
Introducere ...................................................................................................................................... 9
Partea A Contextul ..................................................................................................................... 12
1. Alocarea de sarcini i resurse .................................................................................................... 12
1.1. Alocarea determinist de sarcini i resurse ........................................................................ 12
1.2. ntrzierea n comunicare i sarcinile multiprocesor .......................................................... 15
1.3. Alocarea cu disponibilitate limitat a procesorului ............................................................ 16
1.4. Alocarea cu constrngeri de resurse ................................................................................... 16
1.5. Probleme de alocare multicriterial .................................................................................... 17

2. Complexitatea problemelor de alocare ...................................................................................... 18
2.1. Probleme, algoritmi i complexitate ................................................................................... 18
2.2. Reducerea polinomial ....................................................................................................... 20
2.3. Ierarhia complexitii ......................................................................................................... 23

3. Calculul evolutiv ....................................................................................................................... 25
3.1. Algoritmi evolutivi ............................................................................................................. 25
3.2. Clasificarea tehnicilor de control al parametrilor ............................................................... 28
3.3. Calculul evolutiv vs. optimizarea clasic ........................................................................... 29

Partea B Contribuii .................................................................................................................... 30
4. Problem de alocare pe maini paralele i uniforme ................................................................. 30
4.1. Introducere ......................................................................................................................... 30
4.2. O problema de alocare pe maini paralele i uniforme ...................................................... 31
4.3. Algoritmul genetic propus .................................................................................................. 31
4.4. Rezultate experimentale ..................................................................................................... 32
4.5. Concluzii i direcii viitoare de cercetare ........................................................................... 34

5. Problem de alocare de tip flow shop ....................................................................................... 35


5.1. Introducere ......................................................................................................................... 35
5.2. O problem de alocare de tip permutation flow shop ........................................................ 36
5.3. Algoritmul genetic propus ................................................................................................. 37
5.4. Rezultate experimentale ..................................................................................................... 38
5.5. Concluzii i direcii viitoare de cercetare ........................................................................... 40

6. Problem de alocare a unui video-proxy cache ........................................................................ 41
6.1. Introducere ......................................................................................................................... 41
6.2. Sistemul distribuit de video-proxy cache prpous ............................................................... 42
6.3. Algoritmul genetic propus ................................................................................................. 43
6.4. Rezultate experimentale ..................................................................................................... 44
6.5. Concluzii i direcii viitoare de cercetare ........................................................................... 46

Concluzii i direcii viitoare de cercetare ...................................................................................... 48
Bibliografie ................................................................................................................................... 50


Introducere

n ultimii ani, cercetarea n domeniul alocrii de sarcini i resurse a avut un impact tot
mai mare asupra problemelor practice, o serie de tehnici de alocare fcndu-i cu adevrat loc n
lumea dezvoltrii aplicaiilor. Modele bazate pe constrngeri mbin acum o nalt flexibilitate
reprezentaional cu managementul constrngerilor i cu procedurile de cutare foarte scalabile.
In mod similar, instrumentele de alocare matematic sunt acum capabile s abordeze probleme la
o scar fr precedent, n timp ce meta-euristicile ofer capaciti solide pentru optimizarea
alocrilor. Avnd n vedere aceste succese precum i progresele realizate, ar putea fi tentant s
concluzionm c principalele piedici tehnice care stau la baza problemelor de alocare de sarcini
i resurse au fost nlturate. Totui, o astfel de concluzie (n cel mai bun caz) presupune o
interpretare mai degrab ngust i specializat a alocrii i (n cel mai ru caz) ignor o mare
parte a procesului i a contextul mai larg al alocrii din majoritatea mediilor cu aplicaie practic
[Smith2005].
Sumariznd starea de fapt actual, putem identifica o serie de puncte tari din perspectiv
tehnologic [Smith2005]:
scalabilitatea tehnicile actuale de alocare de sarcini i resurse sunt capabile s rezolve
probleme mari (adic zeci de mii de activiti, sute de resurse) ntr-un timp rezonabil.
flexibilitatea modelrii tehnicile actuale sunt capabile s genereze alocri sub
constrngeri mari i diversificate de natur temporal i de capacitate a resurselor.
optimizarea cercetarea n domeniul aplicrii structurilor de cutare globale, locale i
meta-euristice asupra problemelor de alocare a dus la o serie de abordri generale
asupra optimizrii alocrilor. n acelai timp, integrarea tehnicilor de cercetare bazate
pe inteligena artificial cu instrumentele matematice de cercetare produce abiliti de
optimizare destul de puternice.
n ciuda avantajelor prezentate de tehnicile curente, problemele abordate sunt n general
grele din punct de vedere al timpului nedeterminist polinomial i sunt rezolvate doar
aproximativ. Exist mult spaiu pentru mbuntirea acestor tehnici, pentru acomodarea
diferitelor clase de constrngeri precum i pentru optimizarea n funcie de diferite seturi de
criterii obiective [Smith2005].
Introducere

10
Scopul lucrrii de fa este s investigheze utilizarea tehnicilor de calcul evolutiv n
vederea rezolvrii diferitelor clase de probleme de alocare de sarcini i resurse. n acest sens,
prima parte a lucrrii (capitolele 1-3) prezint unele aspecte teoretice, din literatura de
specialitate, legate de teoria alocrii de sarcini i resurse i a calculului evolutiv, n timp ce
partea a doua (capitolele 4-6) introduce o serie de rezultate personale obinute n urma aplicrii
tehnicilor de calcul evolutiv unor clase de probleme de alocare.
Capitolul 1 introduce unele noiuni de baz (sarcini, resurse, funcii obiectiv), concepte
utilizate n teoria alocrii de sarcini i resurse precum i o schem de clasificare utilizat n
codarea problemelor de alocare. Sunt prezentate de asemenea unele aspecte legate de problemele
de alocare cum ar fi ntrzierea n comunicare i sarcinile multiprocesor, alocarea cu
disponibilitate limitat a procesorului, alocarea cu resurse limitate i alocarea multicriterial.
Capitolul 2 ilustreaz complexitatea problemelor de programare. Reducia n timp
polinomial i ierarhia complexitii sunt de asemenea prezentate.
Capitolul 3 este dedicat tehnicilor de calcul evolutive subliniind mecanismele de lucru ale
acestora. Totodat, sunt prezentate i o serie de aspecte legate de principalele elemente
(reprezentarea, funcia fitness, selecia, ncruciarea, mutaia, parametrii) care influeneaz
performana unui algoritm evolutiv.
Capitolul 4 prezint un algoritm genetic pentru rezolvarea unei probleme de alocare de
sarcni i resurse pe maini/procesoare paralele i uniforma (uniform parallel machines
scheduling problem). Mainile/procesoarele uniforme reprezint clase speciale de resurse n care
mainile/procesoarele au diferite viteze ns viteza este constant i nu depinde de sarcin.
Capitolul 5 prezint o serie de rezultate obinute n urma aplicrii unui algoritm genetic
hibrid pentru determinarea unei soluii a unei probleme de alocare de tip permutation flow shop
(permutation flow shop scheduling problem). Obiectivul unei astfel de probleme de alocare este
s gseasc o secven pentru procesarea unui set de sarcini utiliznd un set de maini/procesoare
astfel nct un anumit criteriu s fie optimizat, lundu-se n calcul faptul c fiecare
main/procesor proceseaz sarcina n aceeai ordine.
Capitolul 6 prezint o problem de alocare a unui video proxy-cache precum i o serie de
rezultate obinute n vederea determinrii coeficienilor unor funcii de utilitate care stau la baza
mecanismului de nlocuire a cache-ului.
Principalele contribuii ale lucrrii de fa constau n:
un nou algoritm genetic pentru o problem de alocare pe maini paralele i uniforme
[Mihil&Mihil2008a]. Algoritmul propus nu doar c obine rezultate mai bune
dect ali algoritmi dar i calculeaz rezultatul mai repede [Mihil&Mihil2008b].
un nou algoritm genetic hibrid pentru o problem de alocare de tip permutation flow
shop [Mihil et.al.2008b]. Noutatea adus de algoritmul propus const n utilizarea
unei combinaii ntre o procedur de iniializare aleatorie i o procedur de iniializare
bazat pe euristica constructiv NEH, n definirea unui nou operator de ncruciare i
n utilizarea unui operator de mutaie definit ca o combinaie ntre un operator bazat
pe euristica constructiv NEH i mutaia prin translatare (shift mutation). Rezultatele
obinute de ctre algoritmul propus sunt comparabile cu rezultatele obinute de un
algoritm de tip greedy iterativ.
Introducere
11
dou noi metode de definire a utilitii obiectelor stocate ntr-un video proxy-cache i
un nou algoritm genetic utilizat pentru determinarea coeficienilor care apar n aceste
dou definiii cu scopul de a maximiza byte hit rate [Mihil&Cobrzan2008].
Rezultatele obinute de algoritmul propus i cu una din cele dou funcie de utilitate
sunt similare sau chiar mai bune dect cele obinute prin intermediul altei metrici
[Cobrzan&Mihil2008].


Partea A Contextul
1. Alocarea de sarcini i resurse
Scopul acestui capitol este s prezinte elementele de baz ale unei probleme de
alocare (sarcini, resurse i funcii obiectiv) precum i o serie de aspecte legate de
aceste elemente. Este prezentat de asemenea i o schem de clasificare a
problemelor de alocare de sarcini i resurse

Alocarea de sarcini i resurse se ocup de alocarea de resurse limitate unor sarcni cu
scopul de a optimiza una sau mai multe criterii (msuri) de performan [Leung2004].
1.1. Alocarea determinist de sarcini i resurse
Problemele de alocare de sarcini i resurse sunt caracterizate de trei seturi
[Blazewicz2007]:
setul T= {T
1
, T
2
, , T
n
} a n sarcini,
setul P = {P
1
, P
2
, , P
m
} a m procesoare sau maini i
setul R = {R
1
, R
2
, , R
s
} a s tipuri de resurse adiionale.
Alocarea, n general vorbind, nseamn atribuirea unui procesor/main din P i (dac
este necesar) resurse din R unor sarcini din T pentru a ndeplini toate sarcinile sub constrngerile
impuse.
In teoria alocrii clasice exist dou constrngeri generale:
fiecare sarcin poate fi procesat de ctre cel mult un/o procesor/main odat (plus
posibilele cantiti de resurse adiionale specificate) i
fiecare procesor/main este capabil s proceseze cel mult o sarcin odat (aceast
constrngere poate fi relaxat).
Procesoarele pot fi fie paralele, adic procesoare care execut aceleai funcii, sau
dedicate, adic specializate pe executarea anumitor sarcini [Blazewicz2007]. n funcie de vitez
lor exist trei tipuri de procesoarele paralele [Blazewicz2007]: identice (au viteze egale de
Alocarea de sarcini i resurse
13
procesare a tuturor sarcinilor), uniforme (au viteze diferite de procesare ns viteza fiecrui
procesor este constant i nu depinde de tipul sarcinii procesate) i nerelaionate (au viteze
diferite i aceste viteze depind de tipul sarcinilor). n cazul procesoarelor dedicate exist trei
modele de procesare a seturilor de sarcini (un set de sarcini formeaz o activitate):
[Blazewicz2007]: flow shop, open shop i job shop.
n general o sarcin T
j
T este caracterizat de urmtoarele date [Blazewicz2007]:
vectorul timpilor de procesare p
j
= [p
1j
, p
2j
,, p
mj
]
T
, unde p
ij
este timpul necesar
procesorului P
j
pentru procesarea sarcinii T
j
.
momentul sosirii (sau momentul pregtirii) r
j
, care reprezint momentul n care sarcina
T
j
este pregtit pentru procesare. Dac momentul sosirii este aceleai pentru toate
sarcinile din T, atunci se presupune c r
j
= 0 pentru orice j.
data termen

d
j
, care specific timpul limit pn la care T
j
trebuie s fie ndeplinit;
de obicei sunt definite funcii de penalizare n concordan cu acest timp limit.
termenul limit

d
j
, care este un termen limit concret pn la care sarcina T
j
trebuie
ndeplinit.
prioritatea w
j
, care exprim gradul de urgen a sarcinii T
j
.
cererea de resurse suplimentare (dac este cazul).
O alocare se numete ntreruptibil (preemptiv) dac fiecare sarcin poate fi ntrerupt n
orice moment i repornit ulterior fr nicio pierdere, probabil pe un alt procesor. Dac nu este
permis ntreruperea tuturor sarcinilor atunci alocarea se numete nentreruptibil
[Blazewicz2007].
n setul T pot fi definite, printre sarcini, constrngeri de preceden. T
i
p T
j
semnific
faptul c procesarea sarcinii T
i
trebuie s fie terminat nainte ca sarcina T
j
s poat ncepe s fie
procesat. Cu alte cuvinte, n setul T se definete o relaie de preceden p .

Figura 1.1 Un exemplu de preceden a sarcinilor [Blazewicz2007]

O alocare este o atribuire de procesoare din setul P (i posibil resurse din setul R) unor
sarcini din setul T, astfel nct urmtoarele condiii s fie satisfcute [Blazewicz2007]:
Alocarea de sarcini i resurse

14
n fiecare moment fiecrui procesor i este atribuit cel mult o sarcin i fiecare
sarcin este procesat de cel mult un procesor,
sarcina T
j
este procesat n intervalul de timp [r
j
, ),
toate sarcinile sunt finalizate,
dac sarcinile T
i
, T
j
se afl n relaia T
i
p T
j
, procesarea sarcinii T
j
, nu ncepe pn
cnd nu este finalizat sarcina T
i
,
n cazul unei alocri nentreruptibile nicio sarcin nu se ntrerupe altfel numrul
ntreruperilor fiecrei sarcini este finit,
constrngerile legate de resurse, dac exist, sunt satisfcute.

Programele pot fi reprezentate prin diagrama Gantt ca n Figura 1.2.

Figura 1.2 Exemplul unei diagrame Gantt [Blazewicz2007]

Pentru fiecare sarcin T
j
, j = 1, 2, , n, procesat pot fi calculai urmtorii parametri
[Blazewicz2007]:
completion time C
j
,
flow time F
j
= C
j
- r
j
, reprezentnd suma timpurilor de ateptare i de procesare;
lateness L
j
= C
j
- d
j
,;
tardiness D
j
= max {C
j
- d
j
, 0};
earliness E
j
= max { d
j
- C
j
, 0}.

Timpul de completare a unei sarcini este momentul la care procesarea ultimei operaiuni a
sarcinii a fost finalizat. [Conway et. al. 1967]. Flow-time al unei sarcini este timpul total
petrecut de ctre sarcin n shop [Conway et. al. 1967].
Pentru evaluarea alocrilor se folosesc urmtoarele criterii (msurtor) de performan
sau criterii de optimalitate [Blazewicz2007]:
schedule length (makespan)
C
max
= max{C
j
} ,
mean flow time

=
=
n
j
j
F
n
F
1
1
,
or mean weighted flow time

=
=
n
j
j j w
w Fj w F
1
/ ,
Alocarea de sarcini i resurse
15
maximum lateness
{ }
j
L L max
max
=
sau alte criterii nrudite.

O alocare pentru care valoarea unui anumit criteriu de performan este la valaorea
minim se va numi optimal, iar valoarea corespunztoare lui va fi reprezentat de *
[Blazewicz2007].
O problem de alocare este definit ca un set de parametri dintre care nu toi au valori
numerice, precum i de un criteriu de optimalitate. O instan I a problemei se obine
preciznd valori specifice pentru toi parametrii problemei [Blazewicz2007].
Un algoritm de alocare este un algoritm care construiete un program pentru o
problem dat.

Teoria alocrii de sarcini i resurse se caracterizeaz printr-un numr nelimitat de tipuri
de probleme [Brucker2007]. Pentru a face fa acestei varieti a problemelor de programare, s-a
introdus un sistem de notare alctuit din trei cmpuri | | [Brucker2007]:
descrie caracteristicile procesorului/maini,
descrie caracteristicile sarcinii i a resurselor,
denot un criteriu de optimalitate (msur a performanei).
1.2. ntrzierea n comunicare i sarcinile multiprocesor
n ultimii ani, avnd n vedere dezvoltarea rapid a sistemelor paralele i distribuite,
constrngerea care impune ca fiecare sarcin s fie executat de un singur procesor odat, poate
fi relaxat. n acest context, ntrzierile cauzate de comunicarea ntre sarcini nu pot fi ignorate.
Exist trei modele care descriu problemele de comunicare n contextul problemelor de alocare.
n acest sens, modelul sarcinilor din teoria alorii clasice a fost mbogit pentru a ncorpora
ntrzierile cauzate de comunicare. Aceste ntrzieri pot fi gestionate implicit sau explicit. n
primul caz, intervalele de comunicare sunt deja incluse n timpul alocat procesrii sarcinii. De
obicei, o sarcin necesit mai mult de un procesor odat. O astfel de sarcin se numete sarcin
multiprocesor. Sarcinile multiprocesor pot specifica cerinele procesorului fie n termeni de
procesoare solicitate simultan, fie n termenii unei specificri explicite a unui set de procesore
(sau seturi de procesoare subsets) care este/sunt necesar/necesare pentru procesare. n primul
caz vom vorbi despre cerine ale procesoarelor paralele, n timp ce n al doilea caz vom vorbi
despre cerine ale procesoarelor dedicate [Blazewicz2007].
Alocarea de sarcini i resurse

16
1.3. Alocarea cu disponibilitate limitat a procesorului
Un sistem de procesoare/maini cu disponibilitate limitat este un set de
procesoare/maini care nu opereaz continuu; fiecare procesor/main fiind pregtit/pregtit
pentru procesare doar n anumite intervale temporale de disponibilitate [Blazewicz2007]. n
acest caz se dorete determinarea unei alocrii fezabile, dac exist, astfel nct toate sarcinile s
poat fi procesate n intervalele de disponibilitate date ale procesoarelor/mainilor, optimiznd
anumite criterii de performan.
Termenul ntreruptibil este utilizat conform definiiei anterior menionate. Adesea, n
locul acestui termen se folosete termenul de reluare (resumability). n acest scenariu n care
activitatea se reia, o sarcin poate fi ntrerupt atunci cnd o main nu mai este disponibil i
reluat n momentul n care maina redevine disponibil, fr a se aplica vreo penalizare. n
situaia n care activitatea nu se reia, ntreruperea este de obicei interzis. Cel mai general
scenariu este cel de semi-reluare (semi-resumability) [Blazewicz2007].
1.4. Alocarea cu constrngeri de resurse
Modelul de alocare cu constrngeri de resurse este mai complicat dect cele precedente,
deoarece orice sarcin, pe lng procesoare/maini, mai poate solicita pentru procesare i
anumite resurse adiionale, limitate.
Resursele, n funcie de natura lor, pot fi clasificate n tipuri i categorii [Blazewicz2007].
Clasificarea pe tipuri ia n considerare doar funciile pe care le ndeplinesc resursele: resursele de
acelai tip se presupune c ndeplinesc aceleai funcii [Blazewicz2007]. Clasificarea pe
categorii are n vedere dou aspecte. Mai nti, se disting trei categorii de resurse din punct de
vedere al constrngerilor resurselor. Vom numi o resurs regenerabil numai dac ntreaga sa
utilizare (adic disponibilitatea temporal n fiecare moment) se afl sub constrngeri. O resurs
se numete neregenerabil doar dac ntreg consumul su (adic disponibilitatea integral pn la
orice moment dat) se afl sub constrngeri (cu alte cuvinte, odat ce aceast resurs a fost
utilizat de ctre o sarcin nu mai poate fi utilizat de ctre alt sarcin). O resurs se numete
dublu-constrns dac att utilizarea total i consumul total sunt constrnse. n al doilea rnd, se
disting dou categorii de resurse din punct de vedere al divizibilitii resurselor: resurse discrete
(adic discret-divizibile) i resurse continue (adic continuu-divizibile). U alte cuvinte, printr-o
resurs discret vom nelege o resurs care poate fi alocat sarcinilor n cantiti discrete dintr-
un set finit de alocri posibile, care, n mod special, poate s consiste ntr-un singur element.
Resursele continue, pe de alt parte, pot fi alocate n cantiti arbitrare, ne prestabilite, din
intervale date [Blazewicz2007].
Alocarea de sarcini i resurse
17
1.5. Probleme de alocare multicriterial
Multe probleme de alocare din domeniul produciei sau al serviciilor implic mai multe
criterii. Ca regul general, luarea n calcul a unei serii de criterii faciliteaz oferirea unei soluii
mai realiste factorului de decizie. O problem de alocare multicriterial este o problem care
const n calcularea unui optim Pareto pentru mai multe criterii conflictuale. Aceast problem
poate fi divizat n trei sub-probleme [Tkindt&Billaut2006]:
modelarea problemei, a crei rezolvare duce la determinarea naturii problemei de
alocare date, precum i la determinarea definiiei criteriului care se ia n calcul,
luarea n calcul a criteriului, a crei rezolvare duce la indicarea contextului de
rezolvare i la modul n care vrem s se ia n calcul criteriul. Analistul finalizeaz un
modul de ajutor de decizie pentru problema multicriterial, de asemenea numit modul
pentru luarea n calcul a criteriului.
alocarea, a crei rezolvare ne duce la gsirea soluiei pentru problem. Analistul
finalizeaz un algoritm pentru rezolvarea problemei de programare, numit i modul de
rezolvare a problemei de programare.

n etapa de luare n calcul a criteriului i innd cont de informaiile pe care acesta le
stabilete, analistul alege o abordare a rezolvrii problemei de alocare i astfel se definete o
problem de alocare. Lund n calcul diversitatea de metode de determinare a optimului Pareto,
funciile de optimizat pentru problema de alocare pot lua diferite forme. Fiecare se traduce
printr-o metod de determinare a optimului Pareto. Criteriile nu se schimb i corespund acelor
criterii definite n cadrul etapei de modelare a problemei [Tkindt&Billaut2006].
O problem de programare multicriterial, dup etapa de modelare, poate fi notat ntr-un
mod general folosind sistemul de notare cu trei cmpuri, unde cmpul conine lista de criterii:
k
Z Z Z , , , | |
2 1
K .[Tkindt&Billaut2006].


2. Complexitatea problemelor de alocare
Scopul acestui capitol este s arate complexitatea problemelor de alocare de
sarcini i resurse n general i s prezinte ierarhia problemelor descriind relaiile
dintre diferite probleme de alocare.

Teoria complexitii reprezint un instrument important n cercetarea domeniului de
alocare de sarcini i resurse [Leung2004].
Aceasta ofer un cadru matematic n care problemele de calcul sunt studiate astfel nct
s poat fi clasificate drept uoare sau grele [Brucker2007]. Aceast clasificare este util
pentru a vedea dac exist un algoritm eficient, n special din punct de vedere al timpului, pentru
rezolvarea unei anumite probleme. O problem ine de o clas de complexitate care ne ofer
informaii despre complexitatea celui mai bun algoritm capabil s o rezolve. Astfel, dac o
anumit problem se dovedete a aparine clasei problemelor uoare, nseamn c putem s
gsim un algoritm n timp polinomial pentru a o rezolva. De obicei aceasta este o veste bun, dar
din pcate acest lucru nu se ntmpl foarte des n cazul problemelor complexe. Prin urmare,
dac o problem aparine clasei problemelor grele nu poate fi rezolvat n timp polinomial ceea
ce, cu alte cuvinte, implic faptul c pentru unele instane timpul CPU necesar rezolvrii devine
exponenial [Tkindt&Billaut2006].
2.1. Probleme, algoritmi i complexitate
O problem este descris dac se d [Garey&Johnson1979]:
o descriere general a tuturor parametrilor si i
un enun despre ce proprieti trebuie s satisfac rspunsul sau soluia.
O instan I a problemei se obine preciznd valori specifice pentru toi parametrii
problemei [Garey&Johnson1979]. Fiecrei instane i se atribuie o mrime. Mrimea unei
instane se refer la lungimea irului de date necesar pentru a preciza instana i ea depinde de
magnitudinea celui mai mare element [Tkindt&Billaut2006]. Aceasta se mai numete i
lungime (mrime) a schemei de codare [Pinedo2008]. O schem de codare cartografiaz
instanele problemei sub form de iruri care le descriu [Garey&Johnson1979].
Complexitatea problemelor de alocare
19
Algoritmii sunt proceduri generale de rezolvare a problemelor pas cu pas. Un algoritm
rezolv o problem dac gsete o soluie pentru orice instan I a problemei [Blazewicz
et. al. 2007].
n general, ne intereseaz s gsim cel mai eficient algoritm pentru rezolvarea unei
probleme. n sensul su cel mai larg, noiunea de eficien implic toate diferitele resurse
necesare pentru rezolvarea algoritmului. Totui, de obicei, prin cel mai eficient se nelege cel
mai rapid. De vreme ce cerinele referitoare la timp sunt adesea factorul dominant care determin
dac un anumit algoritm este sau nu suficient de eficient n practic, acesta este singura resurs
luat n calcul n contextul analizei complexitii unui algoritm [Garey&Johnson1979].
Timpul de funcionare a unui algoritm este msurat n funcie de numrul etapelor de
calcul de baz pe care le efectueaz [Leung2004]. Pentru a defini o etap de calcul se folosete
un model standard de calcul, maina Turing. Orice text standard referitor la complexitatea
calculului conine presupunerile fcute de maina Turing [Pinedo2008].
Teoretic, funcia de complexitate a timpului unui algoritm A car rezolv o problem
este o funcie care cartografiaz fiecare lungime intrrii (input) a unei instane I a reprezentnd
un numr maxim de etape elementare (sau uniti de timp) ale unui computer, necesare pentru
rezolvarea unei instane a mrimii respective prin algoritmul A [Blazewicz et. al. 2007]. Aceast
funcie nu este bine definit pn cnd nu se realizeaz [Garey&Johnson1979]:
schema de codare de folosit la determinarea lungimii (mrimii) input i
computerul sau modelul de computer de folosit pentru determinarea timpului de
execuie a etapelor de baz.
Diferii algoritmi au o varietate mare de funcii de complexitate a timpului i definirea
celor care sunt suficient de eficiente i a celor care sunt prea ineficiente va depinde
ntotdeauna de situaie. Totui, informaticienii recunosc o mic diferen care ofer informaii
aprofundate legate de aceste aspecte. Este vorba de diferena dintre algoritmii n timp polinomial
i algoritmi n timp exponenial [Garey&Johnson1979].
Aa cum sa menionat anterior, eficiena unui algoritm se msoar n comparaie cu
limita superioar (upper bound) T(n) la numrul etapelor de calcul efectuate de algoritm pentru a
rezolva instana I a unei probleme [Brucker2007]. Cu alte cuvinte eficiena unui algoritm
pentru o anumit problem se msoar n funcie de numrul maxim (cel mai ru caz) de etape
de calcul necesare pentru a obine o soluie optim ca funcie a mrimii instanei [Pinedo2008].
n cele mai multe cazuri va fi greu s se calculeze forma exact a lui T. De aceea, forma
exact a lui T este nlocuit cu ordinul su asimptotic. De aceea, spunem c T(n) O(g(n)) dac
exist constante c > 0 i un numr ntreg nenegativ n
0
astfel nct T(n) cg(n) pentru toate
numerele ntregi n n
0
[Brucker2007].
Un algoritm n timp polinomial este definit ca fiind un algoritm a crui funcie de
complexitate a timpului este O(g(n)) pentru o funcie polinomial g, unde n este folosit pentru a
reprezenta lungimea intrrii (input) [Garey&Johnson1979]. Orice algoritm a crui funcie de
complexitate a timpului nu se poate limita n acest fel, se numete algoritm n timp exponenial
(totui, ar trebui notat faptul c aceast definiie include anumite funcii de complexitate a
timpului non-polinomial, cum ar fi n
log n
, care nu sunt n mod normal considerate funcii
exponeniale) [Garey&Johnson1979].
Complexitatea problemelor de alocare

20
Diferenierea ntre aceste dou tipuri de algoritmi are o importan semnificativ atunci
cnd lum n considerare soluia unor instane mari ale unor probleme.
Este n majoritate acceptat faptul c o problem nu a fost bine rezolvat pn cnd nu
se cunoate un algoritm n timp polinomial pentru aceasta. De aceea, o problem se numete greu
de rezolvat(intractable) dac este att de grea nct nici un algoritm n timp polinomial nu o
poate rezolva [Garey&Johnson1979]. Definiia termenului "intractable" ofer un cadru teoretic
cu o generalitate i o putere considerabile. Caracterul de intractability al unei probleme se
dovedete a fi fundamental independent de schema de codare respectiv i de modelul de
computer utilizat pentru determinarea complexitii timpului [Garey&Johnson1979] dac sunt
utilizate scheme de codare i modele de computer rezonabile .
O schem de codare rezonabil este una care satisface urmtoarele dou condiii:
codarea unei instane I trebuie s fie concis iar nu ticsit cu informaii sau
simboluri inutile i
cifrele care apar n I trebuie s fie reprezentate n baza doi (sau zece sau opt sau n
orice alt baz fix, alta dect 1),
n timp ce un model de computer rezonabil este unul n care exist o limit polinomial asupra
cantitii de lucru care se poate efectua ntr-o singur unitate de timp (astfel, de exemplu, un
model care are capacitatea de a efectua n mod arbitrar mai multe operaii n paralel nu ar fi
considerat rezonabil i, ntr-adevr, nici un calculator existent (sau n stare de proiect) nu are
aceast capacitate [Garey&Johnson1979].
Definiia termenului intractability a permis distingerea ntre dou cauze diferite. Prima,
care este de obicei prima la care ne gndim, este c problema este att de dificil nct este
nevoie de o cantitate exponenial de timp pentru a-i gsi o soluie. A doua cauz este c soluia
n sine se necesit a fi att de extins nct nu poate fi descris printr-o expresie cu o lungime
limitat de o funcie polinomial a lungimii intrrii [Garey&Johnson1979]. n cele ce urmeaz ne
vom ndrepta atenia asupra primului tip de intractability (se vor lua n considerare doar
problemele pentru care lungimea soluiei este limitat de o funcie polinomial a lungimii
inputului).
2.2. Reducerea polinomial
n timp ce teoreticienii continu s caute metode mai puternice prin care s dovedeasc
c unele probleme sunt intractable, n paralel se desfoar eforturi de a afla mai multe despre
modurile n care diverse probleme sunt nrudite n ceea ce privete dificultatea. Principala
tehnic utilizat pentru a demonstra c dou probleme sunt nrudite este aceea a reducerii una
la cealalt, oferind o transformare constructiv care cartografiaz fiecare instan din prima
problem cuplnd-o cu o instan echivalent din cea de-a doua. O astfel de transformare ofer
mijloacele pentru transformarea oricrui algoritm care rezolv a doua problem ntr-un algoritm
corespondent pentru rezolvarea celei de-a doua probleme [Garey&Johnson1979].
Spunem c problema P se reduce la problema P dac pentru fiecare instan a P se poate
construi o instan echivalent a P can be constructed. n teoria complexitii se folosete de
obicei un termen mai riguros. Problema P se reduce n timp polinomial la problema P dac un
Complexitatea problemelor de alocare
21
algoritm n timp polinomial pentru P implic un algoritm n timp polinomial pentru P. reducerea
polinomial a lui P la P este denotat de P P. Dac se tie c dac nu exist un algoritm n
timp polinomial pentru problema P, atunci nu exist un algoritm n timp polinomial nici pentru
problema P[Pinedo2008].
Noiunea de reducie n timp polinomial st la baza teoriei dificultii timpului
nedeterminist polinomial. Aceast teorie se aplic doar la problemele de decizie [Leung2004]. O
problem de decizie este o problem pentru care rspunsul este da sau nu. Avnd n vedere
c majoritatea problemelor de programare sunt probleme de optimizare, se pare c teoria
dificultii timpului nedeterminist polinomial nu este foarte folositoare n teoria programrii. Dar
orice problem de optimizare (maximizare sau minimizare) poate fi convertit ntr-o problem
de decizie corespondent, adugnd un parametru i pur i simplu punnd ntrebarea dac
exist o soluie fezabil astfel nct costul soluiei s fie mai mic sau egal (sau mai mare sau egal
n cazul problemelor de maximizare) dect [Leung 2004].
O problem se numete soluionabil din punct de vedere al timpului polinomial dac
exist un p polinomial astfel nct T(n) O(p(n)) unde n este lungimea intrrii cu privire la o
schem de codare rezonabil, adic dac exist un k astfel nct T(n) O(nk). Dac pentru o
problem T(n) este polinomial cu privire la o codare unar atunci problema se numete pseudo-
polinomial [Brucker2007].
Clasa n care se ncadreaz toate problemele de decizie soluionabile din punct de vedere
polinomial este denumit P [Brucker 2007].
Timpul nedeterminist polinomial se refer la clasa problemelor de decizie care au
certificate succinte care pot fi verificate n timp polinomial. Certificatele succincte sunt
acelea ale cror mrime este limitat de o funcie polinomial a mrimii intrrii [Leung2004].
Despre o problem de decizie Q spunem c este complet din punct de vedere al timpului
nedeterminist polinomial [Leung2004] dac:
Q face parte din clasa timpului nedeterminist polinomial i
Toate problemele din clasa timpului nedeterminist polinomial se pot reduce la Q.
Spunem despre o problem c este dificil din punct de vedere al timpului nedeterminist
polinomial dac satisface doar a doua condiie din definiia de mai sus [Leung2004]. Nu toate
problemele din clasa celor dificile din punct de vedere al timpului nedeterminist polinomial sunt
la fel de dificile. Unele sunt mai dificile dect altele. De exemplu, se poate ca o problem s
poat fi soluionat n timp polinomial ca o funcie a mrimii problemei n codare unar, dar s
nu poat fi soluionat n timp polinomial ca funcie a mrimii problemei n codare binar.
Pentru alte probleme se poate s nu existe algoritmi n timp polinomial nici n codare unar nici
binar. n prima clas problemele sunt mai dificile dect n cea de-a doua. De obicei problemele
din prima clas sunt numite dificile din punct de vedere al timpului nedeterminist polinomial n
sensul clasic (ordinary sense) sau pur i simplu dificile din punct de vedere al timpului
nedeterminist polinomial. Algoritmii utilizai pentru aceast clas de probleme se numesc
pseudo-polinomiali. A doua clas de probleme este denumit de obicei ca fiind foarte dificil din
punct de vedere al timpului nedeterminist polinomial [Pinedo2008].

Pentru a demonstra c o problem este complet din punct de vedere al timpului
nedeterminist polinomial, trebuie s dovedim c toate problemele din clasa timpului
Complexitatea problemelor de alocare

22
nedeterminist polinomial se pot reduce la acea problem. Deoarece n clasa timpului
nedeterminist polinomial exist un numr infinit de probleme nu este clar cum ar putea cineva
demonstra c o problem este complet din punct de vedere al timpului nedeterminist
polinomial. Din fericire, Cook [Cook1971] a adus o dovad c o problem de satisfiabilitate este
complet din punct de vedere al timpului nedeterminist polinomial, realiznd o reducie generic
de la mainile Turing la satisfiabilitate [Leung2004]. Pornind de la problema de satisfiabilitate,
se poate dovedi c i alte probleme sunt complete din punct de vedere al timpului nedeterminist
polinomial reducndu-le la problemele int. Deoarece reductibilitatea este tranzitiv, acest lucru
este echivalent cu a dovedi c toate problemele din clasa timpului nedeterminist polinomial sunt
reductibile la probleme int. Pornind de la satisfiabilitate, Karp [Karp1972] a demonstrat c un
mare numr de probleme de combinatoric sunt complete din punct de vedere al timpului
nedeterminist polinomial [Leung2004].
Problema de satisfiabilitate este definit n felul urmtor: dat fiind un set de variabile i o
serie de condiii definite n funcie de variabile, exist o atribuire a valorilor la variabile pentru
care fiecare din condiii s fie adevrat?[Pinedo2008]. Problema n care fiecare condiie conine
exact 3 literali se numete problem 3-satisfiabilitate (3-SAT) [Brucker2007].
Diagrama din Figura 2.1 arat cteva transformri polinomiale de baz ntre cteva
probleme. Un arc de la P la Q n Figura 2.1 indic faptul c P Q. Deoarece toate problemele
din Figura 2.1 in de clasa celor complete din punct de vedere al timpului nedeterminist
polinomial toate aceste probleme sunt complete din punct de vedere al timpului nedeterminist
polinomial [Brucker2007].

Figura 2.1 Transformri polinomiale de baz [Brucker2007].

Problemele de partiionare (PART), circuit Hamiltonian (HC) i clic (CLIQUE) sunt
deosebit de importante n teoria alocrii de sarcini i resurse deoarece problemele a cror
complexitate este stabilit printr-o reducie dintr-o problem de partiie de obicei permit
algoritmi n timp psudo-polinomial i de aceea sunt dificile din punct de vedere al timpului
nedeterminist polinomial n sensul clasic (ordinary sense). Problemele dificile din punct de
vedere al timpului nedeterminist polinomial la care complexitatea este stabilit prin reducerea de
Complexitatea problemelor de alocare
23
la satisfiabilitate, 3-partiie, circuit hamiltonian sau clic sunt foarte dificile din punct de vedere
al timpului nedeterminist polinomial [Pinedo2008].
2.3. Ierarhia complexitii
Exist n literatura de specialitate o serie de rezultate tradiionale pentru calcularea
complexitii problemelor de alocare. Aceste rezultate demonstreaz legtura dintre diferite
probleme de alocare deterministe cu un singur criteriu. Dac o problem de alocare de sarcini i
resurse se reduce la o alt problem de alocare, algoritmul pentru una din probleme poate fi
aplicat i la cealalt [Tkindt&Billaut2006].
S-au fcut eforturi deosebite pentru a stabili o ierarhie a problemelor care s descrie
relaiile dintre sute de probleme de alocare. Din comparaia dintre complexitile diferitelor
probleme de alocare ne intereseaz s aflm cum o schimbare la un singur element din
clasificarea unei probleme i afecteaz complexitatea. n Figurile 2.2 - 2.4 sunt exemplificate o
serie de grafice care ajut la determinarea ierarhiei complexitii problemelor de alocare
deterministe [Pinedo2008]. Aceste grafice ilustreaz reduciile polinomiale ntre problemele de
alocare. Astfel de grafice exist pentru tipuri de probleme (figura 2.2), tipuri de constrngeri
(figura 2.3) i criterii (figura 2.4) [Tkindt&Billaut2006]:
n figura 2.2, prezena unui arc de la A ctre B nseamn c exist o reducie
polinomial de la o problem A|| la o problem corespunztoare B|| .
n figura 2.3, prezena unui arc de la A ctre B nseamn c exist o reducie
polinomial de la o problem |A| la o problem corespunztoare |B| .
n figura 2.4 prezena unui arc de la A ctre B nseamn c exist o reducie
polinomial de la o problem ||A la o problem corespunztoare ||B problem.


Figura 2.2 Grafic al reduciei pentru caracteristicile procesorului [Blazewicz et.al. 2007]

Complexitatea problemelor de alocare

24


Fagure 2.3 Grafic al reduciei pentru caracteristicile sarcinilor i a resurselor [Blazewicz et.al.
2007]



Fagure 2.4 Grafic al reduciei pentru criteriile de optimalitate [Blazewicz et.al. 2007]


Graficele de reducie prezentate sunt utilizabile doar atunci cnd tim deja care este
complexitatea problemelor de alocare respective. S-au depus eforturi considerabile pentru
stabilirea rezultatelor de complexitate (polinomial soluionabile, pseudo-polinomial soluionabile
i dificile din punct de vedere al timpului nedeterminist polinomial) al unei serii de probleme de
alocare [Brucker2007].



3. Calculul evolutiv
Scopul acestui capitol este s ofere o privire de ansamblu asupra elementelor de
baz ale unui algoritm evolutiv (reprezentare, funcia fitness, mutaie i parametri)
precum i s ofere o serie de reprezentri ale unor programri fezabile.

Problemele de alocare de sarcini i resurse sunt probleme de optimizare. Cnd ne ocupm
de o problem de programare trebuie ntotdeauna s i aflm complexitatea, deoarece aceasta
determin natura algoritmului care trebuie implementat. Dac problema respectiv aparine
clasei P, tim c exist un algoritm n timp polinomial exact pentru a o rezolva. n acest caz este
convenabil s folosim sau s perfecionm un astfel de algoritm. n schimb, dac o problem este
dificil din punct de vedere al timpului nedeterminist polinomial exist dou alternative. Prima
este s se propun un algoritm aproximat, atic unul euristic, care calculeaz n timp polinomial
o soluie care este ct de apropiat posibil de soluia optim. A doua este s se propun un
algoritm care calculeaz soluia optim pentru problem dar a crui complexitate maximal este
exponenial. n acest caz, provocarea const n a crea un algoritm care s poat rezolva
probleme de cele mai mari dimensiuni posibile [Tkindt&Billaut2006]. n aceast lucrare
abordm prima alternativ utiliznd tehnici ale calculului evolutiv pentru a propune un algoritm
aproximat pentru problemele de programare.

3.1. Algoritmi evolutivi
Calculul evolutiv (CE) se refer la sisteme de rezolvare a problemelor bazate pe calcul,
sisteme ce utilizeaz modele de calculare a proceselor evolutive, cum ar fi selecia natural,
supravieuirea celui mai adaptat i reproducerea, ca i componente fundamentale ale unui astfel
de sistem de calcul [Engelbrecht2002]. Evoluia pe calea seleciei naturale a unei populaii de
indivizi selectai arbitrar poate fi considerat ca o cutare n spaiu a unor posibile valori
cromozomiale. n acest sens un algoritm evolutiv (AE) reprezint o cutare stocastic a unei
soluii optime pentru o problem dat [Engelbrecht2002].
Figura 3.1 reprezint o schi a unui algoritm evolutiv simplu [Ahn2006].
Calculul evolutiv

26

Pasul 1. Iniializare
Genereaz populaia iniial P n mod arbitrar sau pe baza unor cunotine avute
n prealabil
Pasul 2. Evaluarea adaptrii (fitness)
Evalueaz calitatea (adaptarea) fiecrui individ din P
Pasul 3. Selecia
Selecteaz un set de candidai promitori S din P
Pasul 4. Reproducerea
Step 4.1. ncruciarea (opional)
Aplic ncruciarea n bazinul (pool) de mperechere S pentru a genera un
set de fii O
Step 4.2. Mutaia (probabilistic)
Aplic mutaia asupra setului de fii O pentru a obine setul modificat O
Pasul 5. nlocuirea
nlocuiete populaia actual P
Pasul 6. Terminarea
Dac criteriile de terminare nu sunt ndeplinite, mergi la pasul 2.

Figura 3.1 Pseudocod pentru algoritmi evolutivi

Acest algoritm evolutiv simplu este mai complex dect pare la prima vedere. Exist cinci
decizii importante care acioneaz ca factori asupra designul algoritmului [Ashlock2006]: Ce
structur a datelor vei folosi? Ce funcie fitness vei folosi? Ce operaii de reproducere
(ncruciare, mutaie) vei folosi? Cum vei selecta prinii din populaie i cum vei introduce
copiii n populaie? Ce condiie de terminare va pune capt algoritmului?
Exist mai multe paradigme CE [Engelbrecht2002]: Algoritmi Genetici (AG),
Programare Evolutiv (PE), Strategii de Evoluie (SE), Programare Genetic (PG), Evoluie
Difireniat (ED), Evoluie Cultural (EC), Co-evoluie (CoE). n cele ce urmeaz ne vom referi
doar la algoritmi genetici (AG), Programare Evolutiv (PE) i Strategii de Evoluie (SE).

Reprezentare
Deoarece structura soluiei variaz de la problem la problem, o soluie a unei probleme
anume poate fi reprezentat n mai multe moduri. De obicei, o metod de cutare este cea mai
eficient n cazul abordrii unei anumite reprezentri i este mai puin eficient n abordarea altor
reprezentri. Astfel, alegerea unei scheme de reprezentare eficiente depinde nu doar de problema
de baz ci i de metoda de cutare aleas. Eficiena i complexitatea unui algoritm de cutare
depinde n mare msur de modul n care soluiile au fost reprezentate i de ct de potrivit este
reprezentarea n contextul operatorilor de cutare de baz. n unele cazuri, o problem dificil
poate fi simplificat prin alegerea unei reprezentri potrivite care funcioneaz eficient cu un
anumit algoritm [DeJong1997].

Populaia iniial
Algoritmii evolutivi sunt algoritmi stohastici de cutare pe baza populaiei. Fiecare AE
menine aadar o populaie de soluii candidat. Primul pas n aplicarea EA pentru rezolvarea
Calculul evolutiv
27
unei probleme de optimizare este generarea populaiei iniiale. Modalitatea standard de a genera
o populaie iniial este s se atribuie o valoare arbitrar din domeniul permis fiecrei gene din
fiecare cromozom. Scopul seleciei arbitrare este s ne asigurm c populaia iniial este o
reprezentare uniform a ntregului spaiu de cutare. Dac unele regiuni din spaiu nu sunt
acoperite de ctre populaia iniial, exist anse ca acele pri s fie neglijate de ctre procesul
de cutare. Mrimea populaiei iniiale are consecine n termeni de complexitate a calculului i
de abiliti de explorare [Engelbrecht2002].

Funcia Fitness
n modelul evoluionist al lui Darwin, indivizii cu cele mai bune caracteristici au cele mai
mari anse s supravieuiasc i s se reproduc. Pentru a determina abilitatea unui individ dintr-
un AE de a supravieui, este folosit o funcie matematic, numit funcia fitness, pentru a
cuantifica ct de bun este soluia reprezentat de un cromozom. Funcia fitness are un rol
important ntr-un algoritm evolutiv deoarece operatorii evolutivi de obicei se folosesc de funcia
fitness a cromozomilor [Engelbrecht2002].

Selecia
Selecia reprezint unul dintre principalii operatori utilizai n algoritmii evolutivi.
Obiectivul principal al operatorului de selecie este s evidenieze soluiile mai bune dintr-o
populaie. Acest operator nu creeaz noi soluii, ci selecteaz soluiile relativ bune dintr-o
populaie tergnd restul soluiilor care nu sunt aa de bune [DeJong1997]. Identificarea unei
soluii bune sau rele n cadrul unei populaii se realizeaz de obicei innd cont de funcia fitness.
Ideea de baz este c o soluie care are un fitness mai bun (care este mai bine adaptat) trebuie s
aib o probabilitate mai mare de selecie. Totui, operatorii de selecie difer n modul n care
atribuie copiile soluiilor mai bune. Unii operatori sorteaz populaia n funcie de fitness i aleg
n mod determinist cele mai bune cteva soluii, n timp ce ali operatori atribuie o probabilitate
de selecie fiecrei soluii n funcie de fitness i fac o copie folosindu-se de acea distribuie de
probabilitate [DeJong1997].
Exist diverse tipuri de operatori de selecie cum ar fi selecia proporional, selecia
turnir, selecia n funcie de rang etc. Operatorii de selecie sunt caracterizai de presiunea lor de
selecie numit i timpul de preluare (takeover time), care se raporteaz la timpul necesar pentru
a produce o populaie uniform. Acesta este definit ca fiind viteza cu care cea mai bun soluie
ocup ntreaga populaie prin aplicarea repetat doar a operatorului de selecie. Un operator cu
presiune de selecie mare face s scad diversitatea n cadrul populaiei mai repede dect
operatorii cu o presiune de selecie sczut, lucru care poate duce la convergena prematur a
soluiilor suboptime. O presiune de selecie mare limiteaz abilitile de explorare ale populaiei
[Engelbrecht2002].

Reproducerea (ncruciarea i mutaia)
Reproducerea este procesul de producere de noi candidai din prini selectai, aplicnd
operatori de ncruciare i/sau mutaie.
ncruciarea este procesul de creare a unuia sau a mai multor indivizi prin combinarea
materialului genetic selectat n mod arbitrar de la doi sau mai muli prini. Dac selecia se
Calculul evolutiv

28
axeaz pe indivizii cei mai adaptai, presiunea seleciei poate cauza convergena prematur
datorat diversitii reduse a noilor populaii [Engelbrecht2002].
Mutaia este procesul prin care se schimb n mod arbitrar valorile genelor ntr-un
cromozom. Principalul scop al mutaiei este s introduc material genetic nou n populaie,
crescnd astfel diversitatea genetic [Engelbrecht2002].

Criteriul de oprire
Operatorii evolutivi sunt aplicai n mod iterativ ntr-un AE pn cnd condiia de oprire
este satisfcut. Cea mai simpl condiie de oprire este s se limiteze numrul de generaii pe
care AE are voie s l produc , sau se stabilete o limit a numrului de evaluri ale funciei
fitness. Aceast limit nu trebuie s fie prea mic, altfel AE nu va avea suficient timp s
exploreze spaiul de cutare [Engelbrecht2002]. Pe lng o limit a timpului de execuie, se
folosete de obicei i un criteriu de convergen pentru a detecta dac populaia a convers.
Convergena este vag definit ca fiind momentul n care populaia stagneaz. Cu alte cuvinte,
atunci cnd nu mai are loc nicio schimbare genotipic sau fenotipic n cadrul populaiei
[Engelbrecht2002]:
3.2. Clasificarea tehnicilor de control al parametrilor
Problema stabilirii valorilor diferiilor parametri ai unui algoritm evolutiv (AE) este
crucial pentru obinerea unei bune performane. n clasificarea tehnicilor de control al
parametrilor unui algoritm evolutiv pot fi luate n considerare mai multe aspecte
[Siarry&Michalewicz2008]:
Ce se schimb (ex. reprezentarea, funcia de evaluare, operatorii, procesul de selecie,
rata mutaiei, mrimea populaiei i aa mai departe)?
Cum se realizeaz schimbarea (adic n mod euristic determinist, euristic bazat pe
feedback sau auto-adaptativ)?
Dovada pe baza creia se realizeaz schimbarea (ex. monitorizarea performanei
operatorilor, diversitatea populaiei i aa mai departe)?
Pentru a clasifica tehnicile de control al parametrilor, din perspectiva a ce componente
sau parametri se schimb [Siarry&Michalewicz2008], este necesar s se convin asupra unei
liste cu toate componentele principale ale algoritmului evolutiv lucru care este dificil n sine:
reprezentarea indivizilor, evaluarea funciilor, variaia operatorilor i a probabilitilor lor,
selecia operatorilor (selecia prinilor sau selecia reproducerii), operatorul de nlocuire
(selectare n funcie de supravieuire sau de mediu), populaia (mrime, tipologie etc.).
Metodele de schimbare a valorii unui parametru (adic aspectul Cum) se pot clasifica ]n
[Siarry&Michalewicz2008]: tuning al parametrului i control al parametrului. Prin tuning
nelegem abordarea practicat n mod obinuit prin care se evalueaz valorile bune pentru un
parametru nainte de aplicarea algoritmului i apoi se aplic algoritmul folosind acele valori,
care rmn fixe n timpul aplicrii. Controlul parametrilor formeaz o alternativ, care permite s
se nceap cu o aplicare cu valorile iniiale ale parametrului, care se schimb n timpul aplicrii.
Controlul parametrilor poate fi mai departe ncadrat n una din urmtoarele trei categorii
Calculul evolutiv
29
[Siarry&Michalewicz2008]: determinist, adaptativ i auto-adaptativ. Aceast terminologie duce
la taxonomia ilustrat n Figura 3.1.

Figura 3.1 Taxonomie global a stabilirii parametrilor n AE [Siarry&Michalewicz2008]

3.3. Calculul evolutiv vs. optimizarea clasic
Algoritmii de optimizare clasic s-au dovedit a fi de mare succes (i mai eficieni dect
AE) n probleme liniare, quadratice, puternic convexe, unimodale i alte probleme specializate,
ns algoritmii evolutivi s-au dovedit a fi mai eficieni pentru problemele discontinue,
nedifereniabile, multimodale i noisy. CE i optimizarea clasic (OC) se difereniaz mai ales n
procesul de cutare i n ceea ce privete informaia despre spaiul de cutare folosit pentru a
ghida procesul de cutare [Engelbrecht2002]:
Procesul de cutare: OC utilizeaz reguli deterministe pentru a se deplasa de la un
punct din spaiul de cutare la urmtorul punct. CE, pe de alt parte, utilizeaz reguli
de tranziie probabilistice. De asemenea, CE aplic o cutare paralel a spaiului de
cutare, n timp ce OC utilizeaz cutarea secvenial. O cutare a AE pornete de la
un set de puncte iniiale diverse, ceea ce permite cutare paralel ntr-o zon mare a
spaiului de cutare. OC pornete dintr-un punct ajustnd succesiv acest punct pentru a
se deplasa ctre punctul optim.
Informaii despre suprafaa de cutare: OC utilizeaz informaii despre derivate, de
obicei de primul sau al doilea ordin, din spaiul de cutare pentru a-i ghida calea ctre
punctul optim. CE, pe de alt parte, nu folosete informaia despre derivate. Valorile
fitness ale indivizilor sunt utilizate pentru a ghida cutarea.
Conform teoremei no-free-lunch (NFL) [Wolpert&Macready 1996] nu poate exista nici
un algoritm care s rezolve toate problemele (de optimizare) i care s fie n general (n medie)
superior oricrui competitor, aadar ntrebarea dac AE sunt inferiori sau superiori altor abordri
este lipsit de sens. Singurul lucru care se poate afirma este c AE se comport mai bine dect
alte metode n ceea ce privete rezolvarea anumitor clase de probleme cu consecina c se
comport mai ru n cazul altor clase de probleme [DeJong1997, Baeck. et. al 2000].


Partea B Contribuii
4. Problem de alocare pe maini paralele i uniforme
Scopul acestui capitol este s prezinte un nou algoritm genetic pentru o prblema
de alocare pe maini paralele i uniforma. Algoritmul propus nu doar c obine
rezultate mai bune dar i calculeaz rezultatul mai rapid..

Mainile paralele i uniforme reprezint o clas special de resurse [Blazewicz et. al.
2007] n care mainile au viteze diferite ns viteza este constant i nu depinde de sarcin.
Deoarece problema s-a dovedit a fi dificil din punct de vedere al timpului nedeterminist
polinomial [Garey&Johnson1979] am propus un nou algoritm genetic (GASP) pentru o gsi o
soluie la aceast problem [Mihil&Mihil2008a]. Se raporteaz o serie de rezultate iar
performana abordrii prezentate este comparat cu alte tehnici de optimizare. Rezultatele
empirice indic faptul c GASP este mai eficient [Mihil&Mihil2008b].
4.1. Introducere
Se tie c alocarea de sarcini i resurse este dificil din punct de vedere al timpului
nedeterminist polinomial. De aceea utilizarea euristicii este abordarea de-facto pentru a face fa
acestei dificulti n practic. Pe lng abordrile euristice precum cutarea local
[Ritchie&Levine2003], clirea simulat [Abraham et. al. 2000] [Yarkhan&Dongarra2002],
cutarea tabu [Abraham et. al. 2000] i algoritmii genetici [Abraham et. al.
2000][Zomaya&The2001] au fost utilizai n problemele de alocare. Ritchie i Levine
[Ritchie&Levine2004] au combinat un algoritm de optimizare al unei colonii de furnici cu un
algoritm de cutare tabu pentru o problem de alocare n timp ce Ye et al. [Guangchang et. al.
2006] au formulat o abordare de optimizare multi-obiectiv pentru a optimiza simultan timpul de
terminare i costul total al execuiei. Alte abordri ale acestei probleme includ optimizare
folosind particule swarm [Abraham et. al. 2006], alocare bazat pe teoria fuzzy [Kumar et. al.
2004] i abordri economice [Buyya et. al. 2000].
Problem de alocare pe maini paralele i uniforme
31
4.2. O problema de alocare pe maini paralele i uniforme
Teoretic, problema de alocare poate fi descris n felul urmtor: n sarcini independente T
= {T
1
, T
2
, , T
n
} trebuie s fie alocate unor m maini paralele i uniforma M = {M
1
, M
2
, , M
m
}
avnd n vedere obiectivul de a minimiza timpul de terminare utiliznd resursele n mod eficient.
Viteza fiecrei maini este exprimat n numrul de cicluri pe unitate de timp iar lungimea
fiecrei sarcini este exprimat n n umrul de cicluri. Fiecare sarcin T
i
are nite cerine de
procesare de P
i
cicluri iar mainile M
k
au viteza de S
k
cicluri/secund. Fiecare sarcin T
i
trebuie
s fie procesat de maina M
k
, pn la completare [Grosan et. al. 2007].
Obiectivul problemei noastre de programare este s minimizeze timpul de terminare al
alocarii (makespan).
4.3. Algoritmul genetic propus
Algoritmul ncepe cu o populaie de cromozomi generai n mod arbitrar (poteniale
soluii). Pentru a genera o nou populaie aplicm urmtorii operatori genetici [Baeck et. al.
2000]: selecie turnir bina, pentru selectarea prinilor i ncruciare ntr-un punct de tietura i
mutaie a genelor pentru generarea noilor cromozomi fii care vor constitui noua populaie.
Procesul de evoluie este similar cu schema evolutiv a unui algoritm genetic standard. Am
utilizat n plus o selecie elitist.
Soluia problemei de alocare este reprezentat sub forma unui ir de lungime egal cu
numrul de sarcini. Valoarea care corespunde fiecrei poziii i din ir reprezint maina creia
sarcina i a fost alocat. Dac lum cazul a 13 sarcini i 3 maini atunci un cromozom al atribuirii
de sarcini poate fi reprezentat dup cum urmeaz:



Diagrama Gantt care corespunde acestei codificri este:



Problem de alocare pe maini paralele i uniforme

32
4.4. Rezultate experimentale
Pentru a testa algoritmul propus (GASP) s-au efectuat o serie de experimente folosind
patru instane de testare i s-aucomparat rezultatele obinute cu alte tehnici de optimizare:
Genetic Algorithm (GA), Simulated Annealing (SA), Particle Swarm Optimization (PSO), Ant
Colony Optimization (ACO) and Multi-Objective Evolutionary Algorithm (MOEA).
Fiecare experiment a fost repetat de 10 ori i fiecare testare a fost realizat avnd
urmtorii parametrii stabilii: dimensiunea populaiei 20; numrul de iterri 50 * m * n;
probabilitatea de ncruciare 0.45 (pentru instana 1) i 0.18 (pentru instanele 2, 3, 4 i 5);
probabilitatea de mutaiei 0.35 (pentru instana 1) i 0.02 (pentru instanele 2, 3, 4 and 5).
Makespan-ul mediu i deviaiile standard raportate pentru 10 ncercri sunt ilustrate n
Tabelul 4.1.
Tabelul 4.1. Makespan-ul mediu i deviaia standard
Instana Rezultatul optim Makespan-ul mediu Deviaia standard
1 46 46 0
2 85.5279 85.5431 0.009
3 41.5788 41.7395 0.0856
4 35.1303 35.3785 0.0477
5 59.1658 59.3041 0.0461

Figura 4.1 ilustreaz, pentru instanele 1, 2, 3, 4 i 5, rezultatele (makespan) optime, cele
mai bune i cele medii obinute de GASP.

0
10
20
30
40
50
60
70
80
90
Inst ance 1 Inst ance 2 Inst ance 3 Inst ance 4 Inst ance 5
Opt imum
Best
Average

Figura 4.1. Rezultatele cele mai bune i cele medii obinute de GASP pentru instanele 1, 2, 3, 4
i 5.

Am comparat rezultatele obinute de algoritmul propus pentru problema de alocare
(GASP) cu alte tehnici utilizate pentru optimizarea alocrilor de sarcini i resurse: Genetic
Problem de alocare pe maini paralele i uniforme
33
Algorithm (GA), Simulated Annealing (SA), Particle Swarm Optimization (PSO) and Ant
Colony Optimization (ACO).
Valorile makespan medii [Abraham et. al. 2008] i deviaiile standard raportate pentru
cele 10 ncercri sunt ilustrate n Tabelul 4.2, unde am reprezint makespan mediu iar sd
reprezint deviaia standard (pentru instana 2 a PSO considerm c este vorba de o eroare de
scriere). Rezultatele obinute de algoritmii luai n considerare pentru comparaie au fost preluate
din [Abraham et. al. 2006][Abraham et. al. 2008]. Dup cum putem observa din Tabelul 4.2
algoritmul GASP a oferit cele mai bune rezultate la toate instanele alese. Am realizat un alt
experiment pentru a vedea dac performana rmne valabil i n cazul reducerii numrului de
iteraii. Am testat algoritmul pentru 25*m*n, GASP (2), i pentru m*n, GASP (3), iteraii.
Celelalte setri ale parametrilor au rmas neschimbate.

Tabelul 4.2. Comparaie a performanei.
Instana 1 2 3 4 5
Optimum 46 85.5279 41.5788 35.1303 59.1658
GA
Am 47.1167 85.7431 42.927 38.0428
Sd 0.7700 0.6217 0.415 0.6613
SA
Am 46.6 90.7338 55.4594 41.7889
Sd 0.4856 6.3833 2.0605 8.0773
PSO
Am 46.2667 84.0544 41.9489 37.6668
Sd 0.2854 0.5030 0.6944 0.6068
ACO
Am 46.2667 88.1575
Sd 0.2854 0.6423
GASP Am 46 85.5431 41.7395 35.3785 59.3041
(1) Sd 0 0.0090 0.0856 0.0477 0.0461
GASP Am 46.05 85.5595 41.8042 35.6098 59.3625
(2) Sd 0.15 0.0092 0.0775 0.1398 0.0716
GASP Am 46.5667 85.681 42.3229 36.455 59.7058
(3) Sd 0.3512 0.0803 0.3036 0.6077 0.1683

Dup cum se poate observa n Tabelul 4.2, performana algoritmului GASP rmne
valabil chiar dac njumtim numrul de iteraii. Aceasta nseamn c algoritmul GASP a
obinut rezultate foarte bune mult mai repede dect ceilali algoritmi luai n considerare. n
cazul unui numr de m*n iteraii, algoritmul GASP a dat rezultate foarte bune n comparaie cu
alte tehnici, lund n considerare faptul c alte tehnici au folosit un numr de 50*m*n iteraii.
De asemenea am comparat algoritmul nostru (GASP) cu Multi-Objective Evolutionary
Algorithm (MOEA) [Abraham et. al. 2008]. Rezultatul mediu (makespan) pentru zece ncercri
este prezentat n Tabelul 4.3. Rezultatul pentru MOEA a fost preluat din [Abraham et. al. 2008].
Problem de alocare pe maini paralele i uniforme

34

Tabelul 4.3. Comparaie a performanei cu MOEA
Instana 1 2 3 4 5
Optimum 46 85.53 41.58 35.13 59.17
MOEA am 46 36.68
GASP (1)
am 46 85.55 41.74 35.38 59.37
sd 0 0.0084 0.055 0.067 0.0659
GASP (2)
am 46.15 85.57 41.8 35.67 59.51
sd 0.2291 0.0108 0.074 0.2011 0.1328
GASP (3)
am 46.48 85.65 42.27 35.94 59.84
sd 0.3609 0.0484 0.29 0.3032 0.2112


Figura 4.2 Makespan-ul mediu al MOEA i GASP pentru instana 4.


Dup cum se poate observa din Tabelul 4.3 GASP a dat rezultate bune chiar i atunci
cnd mrimea populaiei i numrul de iteraii s-au njumtit. GASP (3) a dat de asemenea
rezultate bune innd cont de valoarea mrimii populaiei i cea a numrului de iteraii.
Menionm c att GASP (2) ct i GASP (3) au gsit valoarea optim pentru instana 1. Figura
4.2 ilustreaz makespan mediu, pentru instana 4, a MOEA i a GASP (cu 3 setri de parametri)
la 10 testri.
4.5. Concluzii i direcii viitoare de cercetare
Din datele raportate mai sus putem concluziona c GASP a dat rezultate excelente n
comparaia cu alte tehnici. Chiar dac abordarea GASP a obinut rezultate mai bune pentru
problemele de testare luate n calcul, n comparaie cu rezultatele obinute de alte tehnici de
optimizare, se va putea ajunge la mai multe concluzii doar dup o validare ampl utiliznd
probleme mai mari.
Planul nostru viitor de cercetare este s extindem abordarea problemelor de alocare
implicnd maini/procesoare paralele nerelaionate i mani/procesoare dedicate i s testm
algoritmii propui cu date reale.


5. Problem de alocare de tip permutation flow shop
Scopul acestui capitol este prezinte un nou algoritm genetic hibrid pentru o
problem de alocare de tip permutation flow shop. Noutatea algoritmului propus
const n utilizarea unei combinaii ntre o procedur de iniializare arbitrar i o
procedur de iniializare bazat pe euristica constructiv NEH, n definirea unui
nou operator de ncruciare i n utilizarea unui operator de mutaie definit ca o
combinaie ntre un operator bazat pe euristica constructiv NEH i mutaia prin
translatare. Rezultatele obinute de ctre algoritmul propus sunt comparabile cu
rezultatele obinute de un algoritm greedy iterativ.

Obiectivul unei probleme de alocare de tip permutation flow shop este s gseasc o
secven de procesare a sarcinilor care s minimizeze un criteriu dat tiind c toate sarcinile au
aceeai ordine de procesare de ctre maini. Deoarece problema este dificil din punct de vedere
al timpului nedeterminist polinomial s-au propus multe metode euristice i meta-euristice.
Algoritmul propus [Mihil et.al.2008b] utilizeaz euristica constructiv NEH pentru a genera un
procent predefinit de cromozomi ai populaiei iniiale cu scopul de a crete i de a grbi ansele
de gsire a unei soluii bune. Euristica constructiv NEH este de asemenea utilizat de ctre
operatorul de mutaie pentru a mbunti cromozomii obinui. Rezultatele obinute de ctre
algoritmul genetic propus sunt comparate cu cele mai bune rezultate raportate de un algoritm
greedy iterativ.
5.1. Introducere
Problema de alocare de tip permutation flow shop a fost studiat pentru prima oar de
Johnson n 1954 [Johnson1954] iar de atunci s-au propus multe metode euristice i meta-
euristice [Ruiz&Sttzle2007]. Metodele euristice variaz de la euristica constructiv cum ar fi
Rapid Access [Dannenbring1977] sau NEH [Nawaz et. al. 1983] pn la euristica mbuntit
precum RACS i RAES [Dannenbring1977] sau cea propus de Suliman [Suliman2000].
Metodele meta-euristice pot fi de asemenea privite ca metode de euristic mbuntit. Aceste
metode variaz de la acela care mbuntesc un program dat, cum ar fi cutarea tabu
Problem de alocare de tip permutation flow shop

36
[Grabowski&Wodecki2004], [Nowicki&Smutnicki1996], [Taillard1990] clirea simulat
[Osman&Potts1989] sau greedy iterativ [Ruiz&Sttzle2007], pn la cele care lucreaz cu o
colecie de alocri precum algoritmii genetici [Chen et. al. 1995] [Murata et. al. 1996],
[Reeves&Yamada1998], [Ruiz et. al. 2004] sau coloniile de furnici [Rajendran&Ziegler2004].
5.2. O problem de alocare de tip permutation flow shop
Dup cum am menionat deja, obiectivul unei probleme de alocare de tip permutation
flow shop este s gseasc o secven pentru procesarea unui set de n sarcini J = {J
1
, , J
n
} pe
un set de m procesoare sau maini, P = {P
1
, , P
m
} astfel nct un anumit criteriu s fie
optimizat. Criteriul luat n calcul n acest capitol este timpul total de stagnare acumulat pe ultima
main iar obiectivul este ca acest criteriu s se minimizeze.
Fiecare activitate J
i
, i = 1, , n, este compus dintr-un set de m sarcini i fiecare sarcin
k, k = 1, , m, trebuie s fie executat de o alt main, adic, pentru a fi complet, o activitate
trebuie s fie procesat de ctre fiecare main. Timpul de procesare al sarcinii k

din activitatea J
i

este descris de p
i,j
.
n problema de alocare de tip permutation flow shop toate activitile au aceeai ordine
de procesare pe maini i de aceea, odat ce o succesiune de activiti este stabilit pe primele
maini, aceasta va fi meninut pe toate celelalte maini [Blazewicz et. al. 2007]. n timp ce
succesiunea activitilor pentru toate mainile este aceeai, problema este s gsim succesiune a
de activiti care va minimiza criteriul dat [Blazewicz et. al. 2007], n cazul nostru timpul total
de stagnare acumulat pe ultima main.
Problema de alocare de tip permutation flow shop, ca un caz particular de problem de
alocare de tip flow shop, ndeplinete o serie de constrngeri precum [Ruiz&Maroto2004]:
fiecare main poate gestiona doar o activitate odat [Blazewicz et. al. 2007]; fiecare activitate
poate fi realizat doar pe o main odat [Blazewicz et. al. 2007]; nu exist constrngeri legate
de preceden n cadrul sarcinilor diferitelor activiti [Blazewicz et. al. 2007]; toate activitile
sunt disponibile spre procesare la momentul 0 [Ruiz&Maroto2004]; momentele (intervalele) de
set-up al activitilor pe maini sunt neglijabile i de aceea pot fi ignorate [Ruiz&Maroto2004];
nu se permite ntreruperea adic procesarea unei aciuni pe o main nu poate fi ntrerupt
[Ruiz&Maroto2004]; mainile sunt disponibile permanent [Ruiz&Maroto2004]; este permis s
se fac un inventar n timpul procesrii adic dac urmtoare main la rnd este necesar unei
activiti iar ea nu este disponibil, activitatea poate atepta la rnd pentru acea main
[Ruiz&Maroto2004].
n acest capitol s-a luat n considerare o problem de alocare de tip permutation flow
shop scheduling care respect aceste presupuneri. Avnd n vedere c se tie c problema este
grea din punct de vedere al timpului nedeterminist polinomial [Garey&Johnson1979] s-a ales
pentru rezolvarea ei o metod meta-euristic.
Problem de alocare de tip permutation flow shop
37
5.3. Algoritmul genetic propus
Pentru a gsi o soluie a problemei de alocare de tip permutation flow shop, descris n
seciunea precedent, am utilizat un algoritm genetic generaional.
Algoritmii genetici utilizeaz o populaie (colecie) de cromozomi (posibile soluii
codate) care evolueaz, prin operaii genetice, ntr-o nou populaie. Acest proces de evoluie
este ghidat de funcia fitness care msoar ct de buni sunt cromozomii i care se repet de un
numr predefinit de ori pn cnd este satisfcut un criteriu de oprire dat. Cel mai bun cromozom
din ultima populaie se raporteaz ca rezultat al algoritmului. De obicei populaia iniial este
generat n mod arbitrar.
Soluia pentru problema de alocare de tip permutation flow shop este codificat ca un ir
de permutaii ale activitilor. Astfel, cromozomul are o lungime egal cu numrul de activiti
iar valoarea (gena) corespondent fiecrei poziii din ir reprezint o activitate. Ordinea relativ a
activitilor n permutare indic ordinea de procesare a activitilor de ctre maini [Ruiz et. al.
2004].
Pentru a evalua calitatea unui cromozom folosim ca funcie fitness timpul total de
stagnare acumulat la ultima main.
Populaia iniial a fost generat utiliznd o combinaie ntre o procedur de iniializare
arbitrar i o procedur de iniializare bazat pe euristica construcitv NEH [Nawaz et. al. 1983].
Alocarea obinut cu ajutorul euristicii constructive NEH a fost introdus n populaia iniial i
s-a pstrat de asemenea i ca baz, numit de acum n acolo init, pentru construirea de alte alocri.
Procedura de iniializare bazat pe euristica construcitv NEH utilizeaz ideea de faze de
distrugere-construire introduse de [Ruiz&Sttzle2007] pentru un algoritm iterated greedy.
Pentru a genera o nou alocare (cromozom), un anumit procent de activiti sunt extrase
n mod arbitrar din baza init i reinserate folosind euristica construcitv NEH. Noua alocare
obinut se introduce n populaia iniial i se reactualizeaz baza init la valoarea noii alocri
construite. Procedura de iniializare arbitrar utilizeaz de asemenea baza init pentru a genera o
nou alocare dar nu i reactualizeaz valoarea. Pentru a genera o nou alocare (cromozom)
secionm mai nti baza init conform unui ablon generat arbitrar i schimbm cele dou
segmente rezultate ntre ele, dup care executm un numr de n schimburi ntre cele dou
activiti stabilite arbitrar. Populaia iniial este format n proporie de 70% din indivizi creai
prin utilizarea procedurii de iniializare arbitrar n timp ce 30% din indivizi sunt generai
folosind procedura de iniializare bazat pe NEH.
n vederea selectrii cromozomilor pentru operatorul de ncruciare am utilizat selecia
turnir binar [Back et. al. 2000] care const n alegerea arbitrar a doi cromozomi din populaia
curent i selectarea celui mai bun.
n plus, am folosit o selecie elitist [Back et. al. 2000] pentru a preveni pierderea celor
mai buni cromozomi obinui pn acum. n acest sens 20% din cei mai buni cromozomi din
populaia curent au fost copiai n urmtoarea populaie (cea nou).
Operatorul de ncruciare utilizat pentru a produce noi cromozomi poate fi descris n felul
urmtor:
se genereaz arbitrar un punct de tietur
Problem de alocare de tip permutation flow shop

38
se copiaz, cu o probabilitate dat, primul sau ultimul segment din cromozomii
prinilor n cromozomii fii, adic dac primul segment al cromozomului primului
printe este copiat ca prim segment n cromozomul primului fiu atunci primul
segment al cromozomului celui de-al doilea printe va fi copiat ca prim segment n
cromozomul celui de-al doilea fiu (aceeai tactic se aplic i n cazul ultimului
segment)
se completeaz prile care rmn din cromozomii fii, ncepnd de la dreapta dup
segmentul copiat anterior pn la capt, cu genele lips din cromozomul printelui
opus, adic cromozomul primului fiu va prelua genele lips din cromozomul celui de-
al doilea printe n timp ce cromozomul celui de-al doilea fiu va fi completat cu gene
din cromozomul primului printe. Dac primul segment a fost copiat nainte, atunci
cromozomii printelui vor fi transferai de la punctul de secionare spre dreapta i
cnd se ajunge la captul cromozomului, ordinea de transfer va ncepe cu prima gen
i va continua pn cnd se gsete punctul de secionare. Dac ultimul segment a
fost copiat nainte, atunci politica de transfer se inverseaz.
Ca operator de mutaie am utilizat o combinaie ntre un operator bazat pe NEH euristica
constructiv NEH, numit de acum ncolo mutaie NEH, care este similar cu procedura de
iniializare bazat pe euristica constructiv NEH i mutaia prin translatare (shift mutation) [Ruiz
et. al. 2004] care const n selectarea arbitrar a poziiei cromozomilor i relocarea genei
(activitii) corespondent poziiei alese ntr-o alt poziie aleas arbitrar n timp ce genele
(activitile) dintre aceste dou poziii se deplaseaz i ele. Mutaia NEH are ca scop
mbuntirea cromozomilor obinui de ctre operatorul de ncruciare n timp ce mutaia prin
translatare introduce noi cromozomi pentru a reduce pierderea n diversitate a populaiei.
Lund n considerare sugestiile din [Ruiz et. al. 2004] am modificat operatorul de
supravieuire al algoritmului genetic generaional n sensul c am inserat n populaia urmtoare
(nou) doar cromozomi distinci pentru a limita efectul de convergen prematur i pentru a
crete diversitatea populaiei.
5.4. Rezultate experimentale
Pentru a testa performana algoritmului nostru am utilizat un set de date standard
[Taillard1993] din care am ales 10 instane cu 50 de activiti i 20 de maini i 10 instane cu
100 de activiti i 20 maini. Aceste instane au fost alese deoarece s-a dovedit c unele din
aceste instane sunt foarte greu de rezolvat [Ruiz&Sttzle2007].
Fiecare experiment a fost repetat de 10 ori. Setrile specifice ale parametrilor pentru
fiecare experiment sunt descrise n Tabelul 5.1.
Tabelul 5.1 Setrile parametrilor
Parametru Valoare
Dimensiunea populaiei 100
Numrul de generaii 1000
Probabilitatea de ncruciare 0.5
Probabilitatea de mutaie 0.1
Problem de alocare de tip permutation flow shop
39
Rezultatele cele mai bune, cele medii i limitele inferioare i superioare indic timpul
total de realizare a unei program, numit i makespan. Pentru a determina makespan-ul
rezultatului nostru am adugat la timpul total de stagnare acumulat la ultima main (calculat n
funcie de funcia fitness) timpul total de execuie a ultimii maini.
Figura 5.1 i Figura 5.2 reprezint grafic, pentru fiecare instan luat n considerare,
rezultatele cele mai bune i cele medii comparate cu cea mai bun limit superioar cunoscut.

3500
3600
3700
3800
3900
4000
ta051 ta052 ta053 ta054 ta055 ta056 ta057 ta058 ta059 ta060
Upper bound Best result Average result

Figura 5.1 Rezultatele cele mai bune i rezultatele medii pentru instanele ta051-ta060

5000
5500
6000
6500
7000
ta081 ta082 ta083 ta084 ta085 ta086 ta087 ta088 ta089 ta090
Upper bound Best result Average result

Figura 5.2 Rezultatele cele mai bune i rezultatele medii pentru instanele ta081-ta090

Dup cum se poate observa din Figura 5.1, rezultatele obinute au fost foarte aproape de
limitele superioare. Diferena dintre rezultatele cele mai bune i limitele superioare se ncadreaz
ntre 0.43% i 1.16% n timp ce diferena dintre rezultatele medii i limita superioar se
ncadreaz ntre 1.05% to 1.74% pentru instanele ta051-ta060.
Rezultatele obinute au fost comparate cu rezultatele obinute de un algoritm greedy
iterativ cu cutare local [Ruiz&Sttzle2007]. Cel mai bun rezultat al algoritmului greedy
iterativa fost preluat din [Ruiz&Sttzle2007]. Comparaia dintre rezultatele cele mai bune este
ilustrat n Figura 5.3 i Figura 5.4.

Problem de alocare de tip permutation flow shop

40
5000
5500
6000
6500
7000
ta081 ta082 ta083 ta084 ta085 ta086 ta087 ta088 ta089 ta090
IG GA

Figura 5.3 Comparaie ntre rezultatele cele mai bune pentru instanele ta051-ta060

3000
3500
4000
4500
ta051 ta052 ta053 ta054 ta055 ta056 ta057 ta058 ta059 ta060
IG GA

Figura 5.4 Comparaie ntre rezultatele cele mai bune pentru instanele ta081-ta090

Dup cum se poate observa din Figura 5.3 i Figura 5.4, rezultatele obinute de algoritmul
genetic propus sunt foarte apropiate de rezultatele obinute de algoritmul greedy iterativ.
Diferena dintre cele mai bune rezultate ale algoritmului greedy iterativ i cele mai bune rezultate
ale algoritmului genetic se ncadreaz ntre 0.40% i 1.08% pentru instanele ta051-ta060 i
1.05% i 2.69% pentru instanele ta081-ta090.

5.5. Concluzii i direcii viitoare de cercetare
n acest capitol a fost prezentat un algoritm genetic pentru rezolvarea unei probleme de
tip permutation flow shop. Rezultatele obinute de ctre algoritmul propus sunt asemntoare cu
rezultatele raportate de ali algoritmi.
n viitor, vor fi luate n considerare alte instane de testare din setul standard (ex. 100 de
activiti i 20 de maini, 200 de activiti i 20 de maini) pentru a testa performana
algoritmului propus i se va investiga influena diferiilor operatori genetici asupra calitii
soluiei.


6. Problem de alocare a unui video-proxy cache
Scopul acestui capitol este s prezinte dou noi moduri de definire a utilitii
obiectelor stocate ntr-un video proxy-cache precum i s prezinte un nou algoritm
genetic pentru determinarea coeficienilor care apar n aceste dou definiii cu
scopul de a maximiza byte hit rate. Rezultatul obinut de ctre algoritmul propus
cu o funcie de utilitate este similar sau chiar mai bun dect rezultatul obinut de o
alt metric.

Pentru problema de alocare a unui video-proxy cache scheduling problem s-au introdus
dou noi funcii de utilitate care iau n considerare utilitatea obiectelor atunci cnd realizeaz
operaiuni de actualizare a cache-ului. Coeficienii care rafineaz aceste funcii sunt determinai
folosind un algoritm genetic [Mihil&Cobrzan2008]. S-au realizat msurtori cu privire la
eficiena n termeni de byte hit rate cnd se folosesc funciile de utilitate iar rezultatele obinute
sunt comparate cu cele produse de algoritmi clasici de nlocuire a cache-ului
[Cobrzan&Mihil2008].
6.1. Introducere
Volumul de materiale multimedia i n special coninutul video de pe Internet a crescut
constant n ultimii ani. Avnd n vedere caracteristicile acestui tip de date (dimensiuni mari,
limite acceptate ale latenei n timpul derulrii etc.) se pune mare presiune asupra infrastructurii
de transport, care de cele mai multe ori este Internetul. Un proxy-cache este o entitate care
acioneaz ca un intermediar ntr-o tranzacie n care un client solicit un obiect
multimedia/video. ntr-un astfel de caz proxy-cache acionnd din partea clientului, ncepe s
recupereze obiectul de pe un server de origine i l transfer (streaming) ctre client. n cazul n
care un cahe este de asemenea activ, coninutul care se transfer, sau pri din acesta, poate fi
salvat local.
Exist numeroase abordri pentru video caching: caching-ul unui prefix n [Sen et. al.
1999], caching-ul unui prefix i a unui set de cadre selectate n [HsiuMa&Du2000], caching-ul
unui prefix combinat cu transmisie periodic n [Yang& Towsley2002] sau caching-ul unor
Problem de alocare a unui video-proxy cache

42
segmente hotspot n [Fabmi et. al. 2001]. Alte propuneri din aceeai categorie includ cahing-ul
unui prefix bazat pe popularitate [Park et. al. 2001], caching cu prefix bazat pe segment [Wu et.
al. 2001], i variable sized chunk caching [Balafoutis et. al. 2002]. Au avut loc i diverse
abordri ale acestei probleme: servere video multiple accesibile via un sistem teriar de stocare
care gestioneaz web-ul [Brubeck&Brubeck1996] sau cooperative caching video server
[Acharya2002] .
6.2. Sistemul distribuit de video-proxy cache prpous
n [Cobrzan2005] a fost introdus un sistem distribuit pentru video proxy-caching care
este capabil s ajusteze dinamic numrul de noduri care particip la sistemul de cache federativ
n funcie de patternul solicitrii clientului i de ncrctura curent. n aceast propunere de
sistem operaiile de nlocuire a cache-ului sunt realizate innd cont de valoarea utilitii
obiectelor, nsemnnd c obiectele cu utilitatea cea mai mic vor fi eliminate cnd trebuie s se
fac loc pentru a primi noi obiecte. Utilitatea unui obiect se calculeaz folosind o funcie u
definit n [Cobrzan2005] dup cum urmeaz R LC u : (LC reprezint coninutul cache-ului
local).

( ) ( )
( )
( ) ( ) o ue qualityVal coef o hitCount coef
o cess timeLastAc
coef o size coef o u + + + =
4 3 2 1
1
,
(6.1)
unde:
size(o) este mrimea obiectului,
timeLastAccess(o) indic ultima dat cnd a fost solicitat obiectul,
hitCount(o) arat de cte ori a fost servit obiectul din cache
qualityValue(o) [0..1] este msura calitii obiectului
coef
1
, coef
2
, coef
3
, coef
4
[0, 1] i coef
1
+ coef
2
+ coef
3
+ coef
4
= 1.
n timpul evalurii iniiale a performanei sistemului am observat c dac folosim
formula aa cum este definit n [Cobrzan2005] impactul timeLastAccess i hitCount este
neglijabil datorit diferenei de ordin al magnitudinii atunci cnd se compar cu size i hitCount.
Pentru a corecta aspectele negative observate, am introdus dou noi moduri de definire a utilitii
unui obiect:
( )
( ) ( )
( )
( ) o ue qualityVal coef
MHC
o hitCount
coef
MTLA
o cess timeLastAc
coef
MSIZE
o size
coef o u
+ +
+ + =
4 3
2 1

(6.2)

i
Problem de alocare a unui video-proxy cache
43
( )
( )
( )
( ) ( )

+ +
+ +
=
o ue qualityVal
coef
o hitCount
coef
o cess timeLastAc
coef
o size
coef
o u
1 1
1 1
4 3
4
2 1
(6.3)
unde:
MSIZE mrimea celui mai mare obiect stocat n cache-ul local LC pn la acel
moment;
MTLA momentul n care s-a fcut ultima dat o solicitare a unui obiect din LC;
MHC de cte ori a fost solicitat cel mai popular obiect din LC .
n plus, coef
1
, coef
2
, coef
3
, coef
4
[0, 1] precum i coef
1
+ coef
2
+ coef
3
+ coef
4
= 1 n continuare
trebuie s fie valabile pentru ambele ecuaii (6.2) i (6.3). Trebuie menionat de asemenea c
formulele (6.2) i (6.3) ar putea necesita o rafinare (tuning) ulterioar deoarece nu am luat n
considerare valoarea calitii obiectelor n timpul msurtorilor noastre.
n [Cobrzan2005] am luat n considerare nite valori fixe ale coef
1
pn la coef
4
. Scopul
nostru este s putem oferi o metod inteligent de determinare a acelor coeficieni astfel nct
diferite metrics s fie maximizate/minimizate (byte hit ratio, object hit ratio/latency). Aceasta a
dus la abordarea noastr actual de a folosi algoritmii genetici. Ca prim pas ne-am axat pe
alegerea celor patru valori coef
1
pn la coef
4
n formulele de utilitate (6.2) i (6.3) pe baza
patternurilor solicitrilor clientului (numrul de solicitri a fiecrui obiect, momentul n care este
solicitat) precum i pe baza caracteristicilor obiectelor (mrime, distribuie) astfel nct byte hit
ratio s fie maximal.
6.3. Algoritmul genetic propus
Pentru a gsi valori bune ale coeficienilor pentru funciile de utilitate definite n (6.2)
i (6.3) am utilizat un algoritm genetic (GeCo) care pornete de la o populaie de soluii
(cromozomi) generate arbitrar. O nou populaie este generat aplicnd urmtorii operatori
genetici [Baeck et. al. 2000]: selecia turnir binar pentru selectarea prinilor i ncruciare
convex i mutaie bazat pe raz pentru generarea de noi cromozomi fii care vor constitui noua
populaie. Procesul de evoluie este similar cu schema evolutiv a algoritmilor genetici standard .
Am folosit de asemenea un proces de selecie elitist.
Soluia este reprezentat ca un ir (cromozomi) de lungime egal cu numrul de
coeficieni minus 1. Am luat n considerare doar primii trei coeficieni lsndu-l la o parte pe
ultimul care are valoarea setat la 0. Pentru problema noastr aceasta nseamn c nu ne
intereseaz calitatea obiectelor solicitate/recuperate. Utilizarea celui dea-al patrulea coeficient
are sens doar dac operaiunile de trasncodare sunt realizate n video proxy-cache. Valoarea care
corespunde fiecrei poziii i din ir reprezint al i
lea
coeficient. Aceste valori variaz de la 0 la 1.
Am utilizat att formula (6.2) ct i formula (6.3) n calcularea utilitii unui obiect.
nainte de aceasta am scalat valorile genei din cromozom pentru a ne asigura c suma
coeficienilor este egal cu 1. Astfel, valoarea fiecrui coeficient este calculat folosind formula:
Problem de alocare a unui video-proxy cache

44

=
=
3
1 i
i
i
i
gene
gene
coef (6.4)
unde chromosome = (gene
1
, gene
2
, gene
3
).
Evaluarea calitii fiecrei soluii (cromozom) a fost realizat calculnd byte hit ratio.
Scopul nostru a fost s maximizm aceast valoare.
6.4. Rezultate experimentale
Algoritmul GeCo a fost testat aplicnd o serie de experimente n timpul crora ne-am
axat pe valorile obinute pentru byte hit ratio. Am folosit un numr de 12 instane de testare. Am
comparat rezultatele obinute atunci cnd am utilizat strategii de nlocuire a cache-ului bazate pe
utilitate (funciile de utilitate (6.2) i (6.3) a cror coeficieni sunt determinai folosind GeCo) cu
cele calculate folosind algoritmi clasici de nlocuire a cache-ului (LRU i LFU)
[Podlipnig&Bszrmnyi2003].
Cnd am realizat msurtorile am pornit de la presupunerea c nu se folosete
segmentarea obiectelor video (tratare a obiectelor n stil web) i c odat solicita, un obiect este
complet recuperat de pe un server de origine (dac nu este deja cached) i este vizionat de la
nceput pn la sfrit fr ntreruperi sau anulri. De asemenea, nu au fost luate n considerare
limitri n ce privete limea de band sau erorile de transmisie. Realiznd c aceste
presupuneri nu sunt realiste, rezultatele obinute reprezint un bun punct de referin pentru cazul
ideal.
Datele folosite pentru experimente au fost generate utiliznd WebTraff
[Markatchev&Williamson2002] un generator artificial de trafic web. Caracteristicile celor 12
instane utilizate sunt prezentate n Tabelul 6.1.

Tabelul 6.1 Caracteristici ale instanelot generate
Trace ID Number of
requests
Number of
objects
One-Timers(% of
total objects)
Zipf slope
1 1000 300 70 0.3
2 1000 300 30 0.3
3 1000 300 70 0.75
4 1000 300 30 0.75
5 5000 1500 70 0.3
6 5000 1500 30 0.3
7 5000 1500 70 0.75
8 5000 1500 30 0.75
9 10000 3000 70 0.3
10 10000 3000 30 0.3
11 10000 3000 70 0.75
12 10000 3000 30 0.75

Problem de alocare a unui video-proxy cache
45
Intenia noastr a fost s msurm byte hit ratio pe o distribuie a popularitii obiectelor
att lightly skewed (Zipf = 0.3) ct i more severe skewed (Zipf = 0.75) cu o cantitate
variat de one-timers (obiecte solicitate o singur dat) (30% pentru instanele 2, 4, 6, 8, 10 i 12
vs. 70% n instanele 1, 3, 5, 7, 9 i 11). Am variat de asemenea i mrimea cache-ului de al 1%
la 10% din mrimea total a obiectelor solicitate (mrimea tuturor obiectelor solicitate de mai
multe ori a fost luat n considerare doar o dat).
Valoarea optim pentru fiecare dintre cele 12 instane a fost calculat folosind formula:

edData fTransferr TotalSizeO
ects fUniqueObj TotalSizeO
1 (5)

Algoritmul genetic (GeCo) pe care l-am folosit are urmtoarele setri: mrimea
populaiei: 100, numrul de generaii: 10, probabilitatea de ncruciare: 0.7 i probabilitatea de
mutaie: 0.6.
Am prezentat rezultatele n termeni de byte hit rate n Figura 6.1 i Figura 6.2 obinute
pentru instanele 11 i 12 cu coeficienii. Dac studiem rezultatele putem observa c folosirea
utilitii (6.2) duce la rezultate mai bune dect folosirea utilitii (6.3). n cazurile n care
distribuia popularitii obiectelor este more severe skewed (Zipf = 0.75) utilitatea (6.2)
genereaz n mod clar rezultate mai bune dect LRU n timp ce n cazul n care distribuia
popularitii obiectelor este lightly skewed (Zipf = 0.3) utilitatea (6.2) produce rezultate
comparabile cu LRU (dar totui ceva mai bune) (Figura 6.2).
Este de asemenea interesant s observm c pentru instane mari, creterile n termeni de
byte hit ratio sunt neglijabile pentru o dimensiune a cache-ului mai mare de 7%. Aceasta
nseamn c nu avem nevoie de dimensiuni extrem de mari ale cache-ului pentru a obine valori
ale byte hit ratio bune, ceea ce se traduce printr-o reducere a utilizrii limii de band externe.

0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
1 2 3 4 5 6 7 8 9 10
LRU LFU Average U2 Average U3

Figura 6.1 Valorile byte hit ratio pentru instana 11

Problem de alocare a unui video-proxy cache

46
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
1 2 3 4 5 6 7 8 9 10
LRU LFU Average U2 Average U3

Figura 6.2 Valorile byte hit ratio pentru instana 12

Tabelul 6.2 red pe scurt cu ct exact este utilitatea (6.2) mai bun dect LRU cnd se
iau n considerare rezultatele bune i medii ale byte hit rate. Medie este de aproximativ 1.7%,
procent semnificativ dac e s lum n considerare modele de stabilire a preului.

Tabelul 6.2 Mean BHR difference between situations when using utility
Trace ID Mean Best Mean Average
1 1.0287% 0.6782%
2 1.1965% 0.9833%
3 4.0188% 3.7725%
4 0.3896% 0.1306%
5 1.1521% 0.6752%
6 0.3955% 0.0694%
7 2.4681% 2.1730%
8 0.8924% 0.6412%
9 1.0731% 0.8707%
10 0.7187% 0.4404%
11 1.8760% 1.7511%
12 1.3319% 1.1791%
Average 1.3784% 1.1137%
6.5. Concluzii i direcii viitoare de cercetare
Am propus dou noi modaliti (ecuaiile (6.2) i (6.3)) de definire a utilitii obiectelor
stocate ntr-un video proxy-cache care ofer o mai bun echilibrare ntre caracteristicile luate n
considerare (size, timeLastAccess, hitCount) pentru fiecare obiect. Am folosit de asemenea un
algoritm genetic (GeCo) pentru determinarea coeficienilor care apar n acele dou definiii cu
Problem de alocare a unui video-proxy cache
47
scopul de a maximiza byte hit rate. Rezultatele obinute n termeni de byte hit rate cnd s-au
folosit algoritmul GeCo i funcia de utilitate (6.2) sunt similare sau chiar mai bune dect cele
obinute pentru LRU.
Intenionm s utilizm o abordare similar a algoritmului GeCo prezentat pentru a
determina coeficienii care reglementeaz dinamica sistemului propus n [Cobrzan2005] i
[Cobrzan&Bszrmnyi2007] mai precis adugarea de noi noduri proxy-cache la sistemul
federativ de cache, respectiv eliminarea lor atunci cnd acetia nu mai sunt necesari. Strategiile
de segmentare a obiectelor video cache folosind algoritmul GeCo merit de asemenea
investigaii suplimentare.



Concluzii i direcii viitoare de cercetare
Scopul acestei lucrri a fost s cerceteze utilizarea algoritmilor genetici n rezolvarea
diferitelor clase de probleme de alocare. Deoarece problemele abordate sunt grele din punct de
vedere al timpului nedeterminist polinomial alternativa de a folosi algoritmi genetici s-a dovedit
a fi una de succes.
n acest sens au fost mai nti prezentate elemente de baz ale problemelor de alocare
(sarcini, resurse i funcii obiectiv), o serie de aspecte legate de aceste elemente, o schem de
clasificare a problemelor de programare precum i complexitatea acestor probleme. Apoi am
realizat o imagine de ansamblu asupra elementelor de baz ai algoritmilor genetici (reprezentare,
funcia fitness, selecia, ncruciarea, mutaia i parametrii)
Utiliznd bazele menionate mai sus, am abordat trei probleme de programare:
o problem de alocare pe maini/procesoare paralele i uniforme care a fost rezolvat
folosind un nou algoritm genetic. Algoritmul propus a obinut rezultate mai bune
dect ali algoritmi.
o problem de alocare de tip permutation flow shop care a fost rezolvat folosind un
nou algoritm genetic hibrid. . Noutatea algoritmului propus const n utilizarea unei
combinaii ntre o procedur de iniializare arbitrar i o procedur de iniializare
bazat pe euristica constructiv NEH precum i n definirea unui nou operator de
ncruciare i n folosirea unui operator de mutaie definit ca o combinaie ntre un
euristica constructiv NEH i mutaia prin translatare. Rezultatele obinute de ctre
algoritmul propus sunt comparabile cu rezultatele obinute de ali algoritmi.
o problem de alocare a unui video proxy-cache. Pentru aceast problem au fost
definite dou noi formule pentru utilitatea obiectelor stocate ntr-un video proxy-
cache. A fost utilizat un nou algoritm genetic pentru a determina coeficienii care apar
n aceste dou definiii cu scopul de a maximiza byte hit rate. Rezultatul obinut de
ctre algoritmul propus cu o funcie de utilitate este similar sau chiar mai bun dect
rezultatele obinute de alt metric.
Concluzii i direcii viitoare de cercetare
49

Intenionez s mi ndrept viitoarele cercetri n urmtoarele direcii convergente:
alocarea de sarcini i resurse n managementul proiectelor pentru a investiga
domeniul proiectelor care pare s reprezinte motorul dezvoltrii economice,
optimizarea multi-obiectiv pentru a lua n considerare mai mult dect o funcie
obiectiv ca scop al optimizrii,
optimizarea n medii dinamice pentru a simula/capta schimbrile care apar n timpul
ciclului de via al unui proiect
programare stocastic pentru a simula mai bine situaiile reale din via.


Bibliografie
[Abraham et. al. 2000] Abraham A., Buyya R. and Nath B., Nature's Heuristics for Scheduling
Jobs in Computational Grids, in Proceedings of 8th IEEE International Conference on
Advanced Computing and Communications, Tata McGraw-Hill Publishing Co. Ltd, New
Delhi, pp. 45-52, 2000.
[Abraham et. al. 2006] Abraham A, Liu H, Zhang W, Chang TG, Scheduling Jobs on
Computational Grids Using Fuzzy Particle Swarm Algorithm, Proceedings of 10th
International Conference on Knowledge-Based & Intelligent Information & Engineering
Systems, England, pp. 500-507, 2006.
[Abraham et. al. 2008] Abraham A, Liu H., Grosan C., and Xhafa F., Nature Inspired
Metaheuristics for Grid Scheduling: Single and Multiobjective Optimization Approaches,
Metaheuristics for Scheduling: Distributed Computing Environments, Studies in
Computational Intelligence, Springer Verlag, Germany, pp. 247-272, 2008.
[Acharya2002] S. Acharya and B. Smith. Middleman: A video caching proxy server. In
Proceedings of the 10th International Workshop on Network and Operating System
Support forDigital Audio and Video, 2002.
[Ashlock2006] Ashlock, D., Evolutionary Computation for Modeling and Optimization,
Springer, 2006
[Back et. al. 2000] Back T., D.B. Fogel, and Z. Michalewicz (Eds), Evolutionary Computation:
Basic Algorithms and Operators, Vol. 1 and Vol. 2, Institute of Physics Publishing,
Philadelphia, PA, 2000.
[Baeck2000] Baeck, T., Fogel, D., Michalewicz. (eds)., Evolutionary Computation, vol. 1 and 2,
Institute of Physics Publishing, 2000.
[Balafoutis et. al. 2002] E. Balafoutis, A. Panagakis, N. Laoutaris, and I. Stavrakakis. The impact
of replacement granularity on video caching. In IFIP Networking 2002, volume 2345 of
Lecture Notes in Computer Science. Springer, 2002.
[Blazewicz et. al. 2007] Blazewicz, J., Ecker, K., Pesch, E., Schmidt, G. and Weglarz, J.,
Handbook on scheduling. From Theory to Applications, Springer, 2007.
Bibliografie
51
[Blazewicz1983] Blazewicz J., Lenstra, J.K., A.H.G. Rinnooy Kan, Scheduling subject to
resource constraints: classification and complexity, Discrete Applied Mathematics 5, p.
11-24, 1883
[Brubeck&Brubeck1996] D. W. Brubeck and L. A. Rowe. Hierarchical storage management in a
distributed vod system. IEEE MultiMedia, 3(3):3747, 1996.
[Brucker1999] Brucker, P., Drexl, A., Moehring, R., Neumann, K., Pesch, E., Resource-
Constrained Project Scheduling: Notation, Classification, Models and Methods,
European Journal of Operational Research, no. 112, pp. 3-41, 1999.
[Brucker2007] Brucker, P., Scheduling Algorithms, Springer, 2007
[Budiu1999] Budiu, M., 1999, http://www.cs.cmu.edu/~mihaib/articole/
[Buyya et. al. 2000] Buyya R, Abramson D, Giddy J, Grid Resource Management, Scheduling,
and Computational Economy, International Workshop on Global and Cluster Computing,
Japan, 2000.
[Chen et. al. 1995] Chen, C.-L., Vempati, V. S., and Aljaber, N. (1995). An application of
genetic algorithms for flow shop problems. European Journal of Operational Research,
80(2):389396.
[Cobrzan&Bszrmnyi2007] C. Cobrzan and L. Bszrmnyi. Further developments of a
dynamic distributed video proxy-cache system. In Proceedings of the 15th Euromicro
International Conference on Parallel, Distributed and Network-Based Processing (PDP
2007), pages 349357. IEEE Computer Society, 2007.
[Cobrzan2005] C. Cobrzan. Dynamic proxy-cache multiplication inside LANs. In Euro-Par
2005, volume 3648 of Lecture Notes in Computer Science, pages 890900. Springer,
2005.
[Cobrzan&Mihil2008] Cobrzan C., Mihil C., A Genetic Algorithm for Utility Based
Video Proxy-Caching, in Proceedings of the International Symposium on Symbolic and
Numeric Algorithms for Scientific Computing (SYNASC), 231-238, Timioara, Romnia,
2008
[Conway2003] R. Conway, W. Maxwell and L. Miller. Theory of scheduling. Dover Publications
Inc., reprint edition, 2003.
[Cook1971] Cook, S., The Complexity of Theorem Proving Procedures, in Proceedings of the
third annual ACM symposium on Theory of computing, pp.151158, 1971.
[Dannenbring1977] Dannenbring, D. G. An evaluation of flow shop sequencing heuristics.
Management Science, 23, 11 (1977), 1174--1182.
[Demeulemeester2002] Demeulemeester, E.L., Herroelen, W.S., Project Scheduling: A Research
Handbook, Kluwer Academic Publishers, Dordrecht, 2002.
[Drozdowski1996] Drozdowski M., Selected Problems of Scheduling Tasks in Multiprocessor
Computer Systems, Poznan University of Technology Press, Poznan, 1996.
Bibliografie

52
[Dumitrescu2000] Dumitrescu, D., Lazzerini, B., Jain, L., Dumitrescu, A., Evolutionary
Computation. CRC Press, Boca Raton, FL, 2000.
[Dumitrescu et.al.2002a] Dumitrescu, D., Iantovics, B., Florea, C., Multi-Agent Systems: a new
allocation protocol and evolutionary search for equilibrium; , in Proceedings of the
Symposium Zilele academice clujene - Computer Science Section, 119-133, Cluj-
Napoca, Romania, 2002.
[Dumitrescu et.al.2002b]Dumitrescu, D., Florea, C., Patranjan; P., Evolutionary Reorganization
in MAS; , in Proceedings of the European Conference on Information Technology
(ECIT02), 1-5, Iasi, Romania, 2002.
[Dumitrescu et.al.2002c]Dumitrescu, D., Florea, C., Patranjan; P., A New Evolutionary Model
for Multi Agent Systems, in Proceedings of the 4th International Workshop on Symbolic
and Numeric Algorithms for Scientific Computing (SYNASC02), 137-143, Timisoara,
Romania, 2002.
[Eiben2003] Eiben, A.E., Smith, J.E., Introduction to Evolutionary Computing, Springer, 2003.
[Fabmi et. al. 2001] H. Fabmi, M. Latif, S. Sedigh-Ali, A. Ghafoor, P. Liu, and L. Hsu. Proxy
servers for scalable interactive video support. Computer, 34(9):5460, 2001.
[Florea&Dumitrescu2003] Florea, C., Dumitrescu, D., Negotiation in Multiagent Systems; in
Proceedings of the Conference on Applied and Industrial Mathematics (CAIM03),
Oradea, Romania, 2003.
[Fogel1966] Fogel, L.J., Owens, A.J., Walsh, M.J., Artificial Intelligence through Simulated
Evolution, John Wiley, 1966.
[Garey&Johnson1979] M. R. Garey and D. S. Johnson. Computers and intractability: A guide to
the theory of NP-completeness. W. H. Freeman, New York, 1979.
[Garey1979] Garey, M.R., Johnson, D.S., Computers and Intractability: A Guide to the Theory
of NP-Completeness, WH Freeman&Co, San Francisco, 1979.
[Goldberg1989] Goldberg, D.E., Genetic Algorithms in Search, Optimization and Machine
Learning, Kluwer Academic Publishers, Boston, MA, 1989.
[Grabowski&Wodecki2004] Grabowski, J. and Wodecki, M. (2004). A very fast tabu search
algorithm for the permutation flow shop problem with makespan criterion. Computers &
Operations Research, 31(11):18911909.
[Graham1979] Graham, R.L., Lawler, E.L., Lenstra, J.K., A.H.G. Rinnooy Kan, Optimization
and approximation in deterministic sequencing and scheduling theory: a survey, Annals
of Discrete Mathematics 5, p. 287-326, 1979
[Groan et.al.2003] Groan, C., Oltean, M., Florea, C., NP-complete problems using
Evolutionary Algorithms, Lucrarile Seminarului de Didactica Matematicii al
Universitatii Babes-Bolyai, Vadu-Crisului, Romania, 2003.
[Grosan et. al. 2007] Grosan, C., Abraham, A., and Helvik, B., Multiobjective Evolutionary
Algorithms for Scheduling Jobs on Computational Grids, IADIS International
Conference, Applied Computing 2007, pp. 459-463, 2007.
Bibliografie
53
[Guangchang et. al. 2006] Guangchang Ye, Ruonan Rao, Minglu Li, A Multiobjective Resources
Scheduling Approach Based on Genetic Algorithms in Grid Environment, Fifth
International Conference on Grid and Cooperative Computing Workshops, pp. 504-509,
2006.
[Holland1975] Holland, J.H., Adaptation in Natural and Artificial Systems, University of
Michigan Press, Ann Arbor, 1975.
[HsiuMa&Du2000] W. Hsiu Ma and D. H.-C. Du. Reducing bandwidth requirement for
delivering video over wide area networks with proxy server. In IEEE International
Conference onMultimedia and Expo (II), pages 991994. IEEE Computer Society, 2000.
[Johnson1954] Johnson, S. M. Optimal two-and three-stage production schedules. Naval
Research Logistics Quarterly, 1 (1954), 61--68.
[Karp1972] Karp, R.M., Reducibility Among Combinatorial Problems, Complexity of Computer
Computations, pp. 85-103, Plenum Press, 1972
[Kumar et. al. 2004] Kumar , K.P., Agarwal , A., and Krishnan, R., Fuzzy based resource
management framework for high throughput computing, in Proceedings of the 2004
IEEE International Symposium on Cluster Computing and the Grid, 555-562, 2004.
[Leung2000] Leung, J.Y-T. (ed.), Handbook of Scheduling. Algorithms, Models and
Performance Analysis, Chapman & Hall/CRC Press, Boca Raton, 2000.
[Leung2004] Leung, J.Y-T, Anderson, J.H., Handbook of Scheduling: Algorithms, Models, and
Performance Analysis, Chapman and Hall / CRC, Boca Raton, Florida, 2004.
[Liu1995] Liu, Z., Sanlaville, E., Preemptive scheduling with variable profile, precedence
constraints and due dates, Discrete Applied Mathematics 58, p. 253-280, 1995
[Markatchev&Williamson2002] N. Markatchev and C. Williamson. Webtraff: A gui for web
proxy cache workload modeling and analysis. In MASCOTS02: Proceedings of the 10th
IEEE International Symposium on Modeling, Analysis, and Simulation of Computer and
Telecommunications Systems (MASCOTS02). IEEE Computer Society, 2002.
[Mihil&Cobrzan2008] Mihil C., Cobrzan C., Evolutionary approach for multimedia
caching, in IEEE Proceedings of the Evolutionary Techniques in Data Processing
Workshop, International Conference on Database and Expert Systems Application
(DEXA), 531-536, Torino, Italia, 2008
[Mihil&Dumitrescu] Mihil, C., Dumitrescu, D., Quantum Computing and Multiagent
Systems, in Proceedings of the Symposium Colocviul Academic Clujean de
Informatica, Cluj-Napoca, Romania, 2005.
[Mihil&Mihil2008a] Mihil C., Mihil A., An Evolutionary Algorithm for Uniform
Parallel Machines Scheduling, in IEEE Proceedings of the European Modelling
Symposium, 76-80, Liverpool, United Kingdom, 2008.
[Mihil&Mihil2008b] Mihil A., Mihil C., Uniform Parallel Machines Scheduling using
an Evolutionary Algorithm, in IEEE Proceedings of the International Workshop on
Evolutionary Multiobjective Optimization Design and Applications, International
Bibliografie

54
Conference on Intelligent Systems Design and Applications (ISDA), 401-406,
Kaohsiung, Taiwan, 2008
[Mihil et.al.2008a] Mihil A., Mihi A., Mihil C., Genetic Algorithm for Logical Topic
Text Segmentation, in IEEE Proceedings of the International Conference on Digital
Information Management, 500-505, London, United Kingdom, 2008
[Mihil et.al.2008b] Mihil C., Nichi, I.., R., Mihil, A., Coro R., A genetic algorithm for
permutation flow shop scheduling problem, in Annals of Tiberiu Popoviciu Seminar of
Functional Equation, Approximation and Convexity, p. 241-250, Cluj-Napoca, Romnia,
2008
[Mihi et.al.2006] Mihi, A., Creu, C., Mihil, C., erban, C., Code Simplification using
Boolean Functions Simplification, in Proceedings of the International Conference of
Mathematics & Informatics, Supplement of Studii si cercetari stiintifice. Seria
Matematic, no.16, University of Bacau, 493-502, Bacu, Romania, 2006.
[Montana2007]Montana, D., Hussain, T., Vidaver, G., A Genetic-Algorithm-Based
Reconfigurable Scheduler, Evolutionary Scheduling, Springer, 2007.
[Murata et. al. 1996] Murata, T., Ishibuchi, H., and Tanaka, H. (1996). Genetic algorithms for
flowshop scheduling problems. Computers & Industrial Engineering, 30(4):10611071.
[Nawaz et. al. 1983] Nawaz, M., Enscore Jr., E. E., and Ham, I. A heuristic algorithm for the m-
machine, n-job flow shop sequencing problem. OMEGA, 11, 1 (1983), 91--95.
[Nichi et.al.2007a] Nichi, I.., Mihil, A., Mihil, C., About Project Management Planning
Optimization using Genetic Algorithms, in Proceedings of the International Conference
on Knowledge Engineering Principles and Technologies, Special issue of Studia
Universitatis Babes-Bolyai Informatica Series, 79-82 ,Cluj-Napoca, Romnia, 2007.
[Nichi et.al.2007b] Nichi, I.., Avram-Nichi, R., Mihil, A., Mihil, C., About the Logical
Model for Intelligent Agents, in Proceedings of the International Conference on
Knowledge Engineering Principles and Technologies, Special issue of Studia
Universitatis Babes-Bolyai Informatica Series, 83-90, Cluj-Napoca, Romnia, 2007.
[Nichi et.al.2007c] Nichi, I.., Avram-Nichi, R., Mihil, A., Mihil, C., On the
collaborative systems for e-business, in Proceedings of the International Conference on
Competitiveness and European Integration, 266-272, Cluj-Napoca, Romnia, 2007.
[Nowicki&Smutnicki1996] Nowicki, E. and Smutnicki, C. (1996). A fast tabu search algorithm
for the permutation flowshop problem. European Journal of Operational Research,
91(1):160175.
[Oltean et.al.2009] Oltean M., Groan C., Dioan L., Mihil C., Genetic Programming with
Linear Representation a Survey, International Journal on Artificial Intelligence Tools,
197-238, 2009
[Osman&Potts1989] Osman, I. and Potts, C. (1989). Simulated annealing for permutation flow-
shop scheduling. OMEGA, The International Journal of Management Science,
17(6):551557.
Bibliografie
55
[Park et. al. 2001] S.-H. Park, E.-J. Lim, and K.-D. Chung. Popularity-based partial caching for
vod systems using a proxy server. In Proceedings of the 15th International Parallel &
Distributed Processing Symposium (IPDPS-01). IEEE Computer Society, 2001.
[Podlipnig&Bszrmnyi2002] S. Podlipnig and L. Bszrmnyi. Replacement strategies for
quality based video caching. In IEEE International Conference on Multimedia and Expo
(ICME), Vol. 2, pages 4953. IEEE Computer Society, 2002.
[Podlipnig&Bszrmnyi2003] S. Podlipnig and L. Bszrmnyi. A survey of web cache
replacement strategies. ACMComput. Surv., 35(4):374398, 2003.
[Rajendran&Ziegler2004] Rajendran, C., and Ziegler, H. Ant-colony algorithms for permutation
flowshop scheduling to minimize makespan/total flowtime of jobs. European Journal of
Operational Research, 155, 2 (2004), 426--438.
[Rechenberg1973] Rechenberg, I., Evolution Strategy , Frommann-Holzboog, Stuttgart, pp.147-
159, 1973.
[Reeves&Yamada1998] Reeves, C. and Yamada, T. (1998). Genetic algorithms, path relinking,
and the flowshop sequencing problem. Evolutionary Computation, 6(1):4560.
[Rejaie&Kangasharju2001] R. Rejaie and J. Kangasharju. Mocha: A quality adaptive multimedia
proxy cache for internet streaming. In Proceedings of the International Workshop on
Network and Operating Systems Support for Digital Audio and Video, pages 310. ACM
Press, 2001.
[Ritchie&Levine2003] Ritchie, G. and Levine, J., A fast, effective local search for scheduling
independent jobs in heterogeneous computing environments, Technical report, Centre for
Intelligent Systems and their Applications, School of Informatics, University of
Edinburgh, 2003.
[Ritchie&Levine2004] Ritchie, G. and Levine, J., A hybrid ant algorithm for scheduling
independent jobs in heterogeneous computing environments, in 23rd Workshop of the UK
Planning and Scheduling Special Interest Group, 2004.
[Ruiz et. al. 2004] Ruiz, R., Maroto, C., and Alcaraz, J. (2004). Two new robust genetic
algorithms for the flowshop scheduling problem. OMEGA, the International Journal of
Management Science.
[Ruiz&Maroto2004] Ruiz, R. and Maroto, C. (2004). A comprehensive review and evaluation of
permutation flowshop heuristics. European Journal of Operational Research. In press.
[Ruiz&Sttzle2007] Ruiz, R., and Sttzle, T. A simple and effective iterated greedy algorithm
for the permutation flowshop scheduling problem. European Journal of Operational
Research, 177 (2007), 2033--2049.
[Sasabe et. al. 2001] M. Sasabe, N. Wakamiya, M. Murata, and H. Miyahara. Proxy caching
mechanisms with video quality adjustment. In Proceedings of SPIE International
Symposium on The Convergence of Information Technologies and Communications,
pages 276284, 2001.
[Schmidt1984] Schmidt, G., Scheduling on semi-identical processors, Zeitschrift fr Operations
Research. A28, p. 153-162, 1984
Bibliografie

56
[Sen et. al. 1999] S. Sen, J. Rexford, and D. F. Towsley. Proxy prefix caching for multimedia
streams. In IEEE INFOCOM, pages 13101319. IEEE Computer Society, 1999.
[Smith 2005] Smith, S.F., Is Scheduling a Solved Problem?, Multidisciplinary Scheduling:
Theory and Applications, Springer, pp. 3-17, 2005.
[Suliman2000] Suliman, S. (2000). A two-phase heuristic approach to the permutation flow-shop
scheduling problem. International Journal of Production Economics, 64:143152.
[Taillard1990] Taillard, E. Some efficient heuristic methods for the flowshop sequencing
problems. European Journal of Operational Research, 47 (1990), 65--74.
[Taillard1993] Taillard, E. (1993). Benchmarks for basic scheduling problems. European Journal
of Operational Research, 64(2):278285.
[Taillard2004] Taillard, E. (2004). Summary of best known lower and upper bounds of Taillards
instances. http://mistic.heig-vd.ch/taillard/.
[Tompkins2003] Tompkins, M. F., Optimization Techniques for Task Allocation and Scheduling
in Distributed Multi-Agent Operations, Master's thesis, Massachusetts Institute of
Technology, Cambridge, MA, 2003.
[Veltman1993] Veltman, B., Multiprocessor Scheduling with Communication Delays, Ph.D
Thesis, CWI-Amstrerdam, 1993.
[Weawer2006] Weawer Patrick, A brief history of scheduling, myPrimavera06, Canberra, 2006,
http://www.pmforum.org/library/papers/2006/A_Brief_History_of_Scheduling.pdf
[Wu et. al. 2001] K.-L. Wu, P. S. Yu, and J. L. Wolf. Segment-based proxy caching of
multimedia streams. In WWW 01: Proceedings of the 10th international conference on
World Wide Web, pages 3644. ACM Press, 2001.
[Yang& Towsley2002] S. S. Yang Guo and D. Towsley. Prefix caching assisted periodic
broadcast for streaming popular videos. In Proceedings of ICC (International Conference
on Communications), pages 2607 2612. IEEE Computer Society, 2002.
[Yarkhan&Dongarra2002] Yarkhan, A. and Dongarra, J., Experiments with scheduling using
simulated annealing in a grid environment, in 3rd International Workshop on Grid
Computing (GRID2002), 232-242, 2002.
[Zomaya&The2001] Zomaya, A.Y. and The, Y.H., Observations on using genetic algorithms for
dynamic load-balancing, IEEE Transactions On Parallel and Distributed Systems,
12(9):899-911, 2001.

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