Documentos de Académico
Documentos de Profesional
Documentos de Cultura
05.12.2008
R. Lefticaru
Outline
1
Genetic Algorithms Overview Selection Strategies Recombination (Crossover) Mutation Search-based Software Testing Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
R. Lefticaru
Genetic Algorithms
Clas a particular a de algoritmi evolutivi, inspirat i din principiul select iei naturale (C. Darwin). Sunt algoritmi probabili sti, care combin a elemente de c autare dirijat a si c autare aleatoare, realiz and un echilibru aproape optimal ntre explorarea spat iului st arilor si exploatarea celor mai bune solut ii g asite. Lucreaz a cu o populat ie de indivizi (solut ii potent iale ale problemei c autare global a) si folosesc tehnici inspirate din biologie precum select ia, ncruci sarea (reproducerea) si mutat ia. Algoritmul simuleaz a un proces de evolut ie: la ecare generat ie, solut iile bune se reproduc, iar cele relativ slabe nu supraviet uiesc.
R. Lefticaru An Introduction to Search-based Software Testing
Genetic Algorithms
De regul a elementele populat iei sunt codicate n form a binar a. Operatorul de ncruci sare este cel principal, cel de mutat ie are un rol secundar. AG folosesc funct ii de performant a obt inute prin transform ari simple ale funct iei obiectiv. Nu este necesar ca funct ia obiectiv s a e derivabil a sau s a ndeplineasc a propriet a ti speciale de convexitate. Pot g asi solut ii optime sau aproape optime cu o mare probabilitate. Sunt folosit i n special n rezolvarea problemelor de optimizare combinatorial a.
R. Lefticaru An Introduction to Search-based Software Testing
Genetic Algorithms
X spat iul de c autare (spat iul st arilor problemei). Individ (genotip, cromozom, string) al unei populat ii = un element din X , adic a o solut ie posibil a a problemei.
t , . . . , x t } populat P (t ) = {x1 ia de indivizi de la momentul t . n P (t ) reprezint a o generat ie. P (t ) nu este mult ime, poate cont ine duplicate.
Cromozomul (purt atorul informat iei genetice) este o structur a liniar a format a din gene (tr as aturi, caractere). Genele se gasesc in cromozom pe anumite pozit ii (loci). Alelele reprezint a valorile genelor.
R. Lefticaru
Genetic Algorithms
Genotipul reprezint a o solut ie potent ial a a problemei, iar fenotipul valoarea acestuia. Evaluarea calit a tilor indivizilor se face cu ajutorul unei funct ii de tness (performant a). Operatorul de recombinare R : X p X q realizeaz ao transformare de tipul (p , q ) n care din p p arint i iau na stere q descendent i. Operatorul de mutat ie este o transformare unar a m : X X , care realizeaz a mici perturb ari ale indivizilor. Supraviet uirea determin a n ce m asur a indivizii unei generat ii supraviet uiesc n urm atoarea.
R. Lefticaru An Introduction to Search-based Software Testing
Minimizarea unei funct ii n Matlab, folosind GADS (Genetic Algorithms and Direct Search Toolbox)
Exemplu Funct ia
2 2 Ras (x ) = 20 + x1 + x2 10(cos 2 x1 + cos 2 x2 )
are un punct de minim global in (0, 0). Reprezentarea funct iei, g asirea minimului folosind interfat a grac a a toolbox-ul GADS si apelarea n linia de comand a: >> plotobjective(@rastriginsfcn,[-5 5; -5 5]); >> optimtool(ga); >> [x fval exitflag] = ga(@rastriginsfcn, 2);
R. Lefticaru An Introduction to Search-based Software Testing
R. Lefticaru
AG hibrizi codicare real a lungimea cromozomului variabil a m arimea populat iei variabil a
R. Lefticaru
Descriere
t , . . . , x t } populat P (t ) = {x1 ia de indivizi de la iterat ia t . n
Fiecare solut ie posibil a xit este evaluat a, valoarea rezultat a reprezent and tness-ul acesteia. La iterat ia t + 1 este format a o nou a populat ie prin selectarea unor indivizi din populat ia anterioar a (pasul select). C a tiva membri ai acestei populat ii suport a transform ari prin intermediul operatorilor genetici (mutat ie si recombinare), rezult and noi indivizi. Procedeul este repetat p an a c and criteriul de oprire este satisf acut.
R. Lefticaru
Se calculeaz a probabilitatea de select ie pi a ec arui individ: xi ) pi = f (F Se calculeaz a probabilitatea cumulat a qi a ec arui individ: i qi = j =1 pj
R. Lefticaru
R. Lefticaru
R. Lefticaru
R. Lefticaru
pentru a realiza efectiv ncruci sarea (cu un punct de t aiere): alegem c ate o pereche de indivizi, select am aleator un punct de t aiere i {1, 2, . . . , n 1}, unde n este lungimea cromozomului, si interschimb am segmentele.
R. Lefticaru An Introduction to Search-based Software Testing
R. Lefticaru
Mutat ia
Altereaz a una sau mai multe gene alese arbitrar dintr-un cromozom. pm probabilitatea mutat iei, parametru al algoritmului genetic; num arul a steptat de gene mutate este pm m n, m lungimea unui cromozom; Mutat ia unei gene (bit): modicarea bitului din 0 in 1 sau invers Pentru ecare cromozom, si ecare gen a a acestuia:
se genereaz a un num ar aleator r din intervalul [0..1] dac a r < pm atunci se modic a valoarea genei
R. Lefticaru
Bibliograe AG
D. Dumitrescu. Algoritmi genetici si strategii evolutive - Aplicat ii n inteligent a articial a si n domenii conexe.. Editura Albastr a, Cluj-Napoca, 2000. D. Goldberg. Genetic Algorithms in Search, Optimization and Machine Learning.. Addison-Wesley, 1989. D. Whitley. A genetic algorithm tutorial. Statistics and Computing, 1994. An introduction to genetic algorithms. http://www.obitko.com/tutorials/genetic-algorithms/
R. Lefticaru An Introduction to Search-based Software Testing
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
Source: http://www.sebase.org/sbse/publications/
R. Lefticaru An Introduction to Search-based Software Testing
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
Source: http://www.sebase.org/sbse/publications/
R. Lefticaru An Introduction to Search-based Software Testing
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
Source: http://www.sebase.org/sbse/publications/
R. Lefticaru An Introduction to Search-based Software Testing
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
Relevant publications
M. Harman, B. F. Jones. Search-based software engineering. Information & Software Technology, 2001. P. McMinn. Search-based software test data generation: a survey. Software Testing, Verication and Reliability, 2004. M. Harman. The current state and future of search based software engineering. International Conference on Software Engineering, 2007. Repository of publications on SBSE. http://www.sebase.org/sbse/publications/repository.html
R. Lefticaru An Introduction to Search-based Software Testing
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
R. Lefticaru
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
Exemplu
1 2 3 void example(double x, double y){ if (x >= 10 && x <= 20){ if (y >= 0 && y <= 10){ // TARGET } else { // alte instruct iuni } } else{ // alte instruct iuni } // si alte instruct iuni }
R. Lefticaru An Introduction to Search-based Software Testing
5 6
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
CFG si CDG
1 T 2 T 3 F 4 F
1 T 2
6
6 F 5
T 3
F 4
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
Functia de fitness
1.5
0.5
0 40 20 0 20 40 x 20 40 y 0 40 20
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
Functia de fitness
1.5
0.5
0 40 20 0 20 40 x 20 40 y 0 40 20
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
60
80
100
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
reserve
Reserved
return (a)
Borrowed& Reserved
R. Lefticaru
cancel
w rro bo
reserve
cancel
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
x) nt r(i o b
[x
ret(int x) [ x = getBorCustId() ]
(b)
R. Lefticaru An Introduction to Search-based Software Testing
can(int x) [ x = getResCustId() ]
res(int x) [ x > 0 ]
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
f1 [g1] S1
TA app RGET r M bran oach_le ISSE D ch_ leve vel = m l=o -1 bj(g 1)
f2 [g2] S2
TA app RGET r MIS bran oach_ SED le ch_ leve vel = m l=o -2 bj(g 2)
fm [gm] S3 Sm-1
TA R app GET bran roach MISSE _le D ch_ leve vel = 0 l=o bj(g m)
Sm
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
Exemplu
Fitness value
1.5 1 0.5 0 50 0 50 x2 x1 0 50
res (x1 )
bor (x2 )
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
Axa Ox : num arul solut iilor / num arul elementelor din spat iul de c autare Generare valori pentru 35 de c ai din FSM cu lungimi ntre 2 si 7, folosind JGAP
3.
Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing
Dimensiune populat ie = 20 indivizi, codicat i real Nr. maxim de evolut ii = 200 Valori din [10p , 10p ], p = 1, 2, 3, 4
3.