Escolar Documentos
Profissional Documentos
Cultura Documentos
ALGORITMII GENETICI
ALGORITMII GENETICI sunt o familie de modele inspirate de teoria
evoluiei, sunt programe inteligente capabile s soluioneze probleme folosind un
conceptul al evoluiei speciilor. Aceti algoritmi codific soluiile posibile ale unor
probleme specifice ntr-o structur de date de tip cromozom i aplic acestor structuri
operatori de recombinare, pentru a pstra informaia util.
Un cromozom este un vector sau un ir de gene. Poziia unei gene este numit
locusul ei. Valorile pe care le poate lua o gen sunt numite alele, sunt mulimi finite
de numere ntregi, intervale de numere reale, sau chiar structuri complexe de date.
Alele variaz de la un locus la altul.
Sarcina unui algoritm genetic e s descopere cromozomi din ce n ce mai buni, pn
la atingerea unei valori a raportului dintre evaluarea asociat unui ir i evaluarea
medie a tuturor irurilor populaiei (fitness) despre care se tie c este optimal, sau
pn cnd algoritmul genetic nu mai poate aduce mbuntiri.
Implementarea unui algoritm genetic ncepe cu o populaie de cromozomi
(aleas aleator). Se evalueaz, apoi, aceste structuri i se aloc faciliti reproductive
astfel nct acei cromozomi, care reprezint o soluie mai bun pentru problema int,
s aib mai multe anse de a se reproduce dect acei cromozomi care sunt soluii mai
puin bune. Definirea unei soluii bune se face n raport cu populaia curent.
ntr-un sens mai larg, algoritm genetic este orice model bazat pe ideea de
populaie i care folosete selecie i operatori de recombinare pentru a genera noi
puncte ntr-un spaiu de cutare. Multe modele au fost introduse de cercettori dintr-o
perspectiv experimental. Cercettorii sunt orientai spre aplicaii, fiind interesai de
algoritmii genetici doar ca mijloace de optimizare.
Ei sunt recomandai pentru aflarea soluiilor neliniare ale unor probleme atunci
cnd nu este posibil modelarea matematic i nici euristic n domeniu.
Adevraii profesioniti combin adesea cele mai variate tehnologii inteligente
n scopul exploatrii avantajelor fiecreia, obinnd aa-numitele sisteme hibride.
Sunt posibile combinri de genul:
1. folosirea reelelor neuronale la ajustarea parametrilor n sistemele expert
fuzzy,
2. extragerea cunoaterii din reele neuronale pentru a fi utilizat n
sistemele expert,
1
Algoritmi genetici
Algoritmi genetici
Algoritmi genetici
Algoritmi genetici
Un asemenea ciclu se repet pn cnd este identificat cea mai bun soluie la
problema n cauz.
Abandonarea
Populaia
Evaluarea
Selecia
Reproducerea
fazele ciclului algoritmilor genetici
Datorit structurii lor inerent paralele, sisteme inteligente bazate pe algoritmi
genetici s-au dovedit performante n problemele de cutare i identificare a
structurilor i relaiilor specifice n cadrul bazelor de date i bazelor de cunotine
voluminoase (data mining). Un succes particular s-a obinut cu ele n problemele de
optimizare referitoare la selectrea personalului i selectrea portofoliilor.
i aceste sisteme, deorece pot nva relaii i structuri complexe n cadrul
seturilor de informaii i cunotine incomplete, se pot adapta schimbrilor survenite
n mediile n care funcioneaz, i pot fi utilizate ca instrumente pentru descoperirea
unor cunotine noi.Ele pot oferi explicaii la deciziile luate ntr-un format perceptibil
de ctre om.
Aplicaiile acestor sisteme s-au diversificat rapid i s-au dovedit utile domeniul
afacerilor financiare, comerului cu titluri, evalurii creditelor, deteciei fraudelor i
prediciei falimentului. De exemplu, unii cercettori au folosit asemenea sisteme la
inferarea unor reguli pentru predicia falimentului ntreprinderilor, pe baza
indicatorilor financiari obinui din bilan (financial ratios). Ali cercettori descriu
5
Algoritmi genetici
Problem :
Se consider {0,1}L mulimea irurilor binare de lungime L. Pentru un ir s din
aceast mulime notm cu s1 numrul de componente egale cu 1 ale irului. Fie N un
numr natural nenul mai mic dect L, i f o funcie care asociaz fiecrui ir s o
valoare egal cu s1 dac s1 nu este multiplu de N, i 2s1 n caz contrar. S se gseasc
un ir s* care maimizeaz f. Se va lua valorile L=10 i N=3.
Exemplu de utilizare :
Program ce const n maximizarea unei funcii definite f(s)=s 1 Se deschide
fiierul ex1.prj din Borland i se modific fiierul ex1.c. Fiierul rezultat va avea
forma :
#include<stdio.h>
#includesugar.h
int evaluate(SuChromosome*chrom,double*fitness);
main( int argc,char*arvg[] )
{
SuaEvaluationFunction=evaluate;
SuRun( ex1.cfg,argc,argv );
}
int evaluate (SuChromosome*chrom,double*fitness);
{
int i;
int N=3;
int count=0;
double result=0.0;
for( i=0; i<chrom->length;++i )
count+=SuGetBit( chrom->string,i );
if(count%N==0)result=2*count;
6
Algoritmi genetici