Академический Документы
Профессиональный Документы
Культура Документы
Crditos autorais
Este curso e estes slides so parcialmente adaptados da bibliograa citada e das aulas do professor Luiz Pereira Calba - COPPE/UFRJ
www.lps.ufrj.br/caloba
Introduo
Charles Robert Darwin (1809-1882) Evoluo das espcies John Holland Adaptation in Natural and Articial Systems (dcada de 70) It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is the most adaptable to change. - Charles Darwin
Introduo
Algoritmos Genticos so algoritmos de busca baseados em regras (heursticas), onde essas regras so inspiradas nos mesmos mecanismos envolvidos na evoluo das espcies.
Evolution Strategies Evolutionary Algorithms Evolutionary Computing Swarm Intelligence Evolutionary Programming Genetic Programming Genetic Algorithms Ant Colony Optimization Particle Swarm Optimization Intelligent Water Drops
Aplicaes
Geralmente aplicados em problema conhecidos como NP-Hard, quando necessrio otimizar vrias variveis conitantes com requisitos, onde geralmente outros algoritmos de otimizao falham. Sntese de circuitos analgicos e digitais Projetos em mecnica Indstria farmacutica Telecomunicaes Medicina
Algoritmos Genticos
Consiste em uma populao de solues candidatas (tambm chamadas de indivduo ou fentipo); Cada indivduo formado por uma string binria dividida em partes chamadas de cromossomos ou gentipos; Cada cromossomo codica (em binrio) uma varivel a ser otimizada. Logo, um problema com n variveis a serem otimizadas requer um indivduo com n cromossomos; O AG requer uma funo de medida de desempenho (tness function) que permita atribuir uma nota de desempenho a cada um dos indivduos.
Algoritmos Genticos
Cada indivduo recebe um nota atravs da avaliao realizada pela tness function sobre os valores de suas variveis codicadas; Cada iterao completa do algoritmo sobre a populao chamada de gerao; Indivduos com as melhores notas so selecionados, pareados e sofrem troca de cromossomos, seguida ou no de mutao em um dos cromossomos, formando assim uma nova populao; A nova populao avaliada e o algoritmo segue at que um determinado critrio de parada seja satisfeito.
Algoritmos Genticos
Vantagens No necessita de um modelo matemtico do problema, apenas uma funo de avaliao das solues; Robustez razovel em relao a mnimos e mximos locais; Existem diferentes implementaes disponveis Facilmente paralelizvel, o que o torna interessante para aplicaes que rodam em computadores de arquiteturas paralelas e multincleos.
Algoritmos Genticos
Desvantagens A criao de uma funo de desempenho nem sempre fcil; Tempo de convergncia proibitivo em algumas aplicaes; Dicilmente atinge o mnimo global de forma exata; No conseguem resolver problemas onde a nica medida de desempenho seja certo ou errado.
Algoritmos Genticos
Fases do Algoritmo 1. Inicializao da Populao 2. Aptido dos indivduos 3. Seleo 4. Gerao da nova populao Operador Crossover 5. Modicaes na populao Operador Mutao 6. Mecanismo de Elitismo (opcional)
Algoritmos Genticos
Indivduo ou fentipo A Figura abaixo apresenta duas variveis x1 e x2 codicadas em dois cromossomos de quatro bits cada.
Algoritmos Genticos
Populao Uma coleo de indivduos forma uma populao, que pode ser iniciada de forma aleatria ou a partir de algum conhecimento prvio do problema.
Algoritmos Genticos
Seleo Na fase de seleo, os melhores indivduos so selecionados, aleatoriamente, para a fase de cruzamento e, assim, gerar descendentes que sero novas solues.
Algoritmos Genticos
Crossover Na fase de crossover um ponto de corte sorteado, e uma das partes de um indivduo trocada com a parte correspondente do outro.
Figura 4: As partes trocadas entre dois indivduos geram dois outros indivduos.
Prof. Joo Marcos Meirelles da Silva p. 14/26
Algoritmos Genticos
Seleo Na fase de mutao, cada indivduo submetido a um sorteio para vericar se ele sofrer mutao ou no. Em caso armativo, sorteia-se qual dos bits do indivduo ser invertido.
Exemplo
Vamos encontrar os valores das variveis x1 e x2 que minimizam a funo de duas variveis abaixo:
2 + x f (x1 , x2 ) = x2 1 2
Sabemos de antemo que os valores timos so f (0, 0) = 0. 1. Denir o range das variveis: 10 x1 +10 10 x2 +10 2. Denir o nmero de bits necessrios para codicar cada varivel: x1 = 4 bits x2 = 4 bits
Prof. Joo Marcos Meirelles da Silva p. 16/26
Exemplo
3. Denir o nmero de indivduos: Popsize = 30 NumGeracoes = 50 4. Os demais parmetros como taxa de mutao, sero deixados com seus valores default do Matlab. Usaremos o toolbox de algoritmos genticos do Matlab para esse exemplo.
Exemplo
% ExemploAG.m % % Este script encontra os valores das variveis x1 e x2 que minimizam % a funo: % % f(x1,x2) = x1^2 + x2^2 % clear all close all clc % Definio de parmetros nvars = 2; % Nmero de variveis lb = [-10 -10]; % Lower Bounds para x1 e x2. ub = [+10 +10]; % Upper Bounds para x1 e x2. SizePop = 30; % Nmero de indivduos. NumGeracoes = 50; % Nmero mximo de geraes.
Prof. Joo Marcos Meirelles da Silva p. 18/26
Exemplo
options = gaoptimset(PopulationType,DoubleVector,PopulationSize, SizePop, Generations, NumGeracoes,StallGenLimit, 10, PlotFcns, @gaplotbestf); [variaveis fval] = ga(@ExemploAGFitness, nvars, [ ], [ ], [ ], [ ], lb, ub, [ ], options); variaveis fval
Exemplo
Os algoritmos genticos necessitam de uma funo de desempenho. No caso, a funo foi chamada de ExemploAGFitness:
% ExemploAGFitness.m % % Fitness function para o script ExemploAG.m % % Autor: Joo Marcos Meirelles da Silva % % Data de criao: 11/05/2013 function [J] = ExemploAGFitness(x) J = x(1)^2 + x(2)^2; end
Exemplo
A Figura abaixo mostra a evoluo do algoritmo gentico em sua busca pelos valores timos.
Best: 3.62638e06 Mean: 0.000328894 1.4
Best fitness Mean fitness
1.2
1 Fitness value
0.8
0.6
0.4
0.2
10
20 Generation
30
40
50
RNAs e AGs
Algoritmos genticos tambm podem ser utilizados para treinar uma rede neural feedfoward em vez de usarmos o algoritmo de aprendizado backpropagation. Vamos tomar como exemplo a rede neural do Exemplo 1 da aula anterior:
RNAs e AGs
W(1) Matriz de pesos da camada escondida (1) (1) (1) (1) w10 w11 w12 w13 (1) , W = (1) (1) (1) (1) w20 w21 w22 w23 W(2) Matriz de pesos da camada de sada
(2) w10 (2) w20 (2) w30 (2) w11 (2) w21 (2) w31 (2) w12 (2) w22 (2) w32
W(1) R24
(2)
W(2) R33
RNAs e AGs
O Algoritmo Gentico deve codicar todos os elementos das matrizes de pesos W(1) e W(2) da rede neural. Dado um padro, o Algoritmo Gentico ir buscar o conjunto de elementos dessas matrizes que minimizam o erro mdio quadrtico da rede neural.
Veja o ExemploMLP03.m
Prof. Joo Marcos Meirelles da Silva p. 24/26
Referncias
1. Goldberg, D. E., Genetic Algorithms in Search, Optimization and Machine Learning, Addison-Wesley, 1989. 2. Bandyopadhyay, S., Pal, S. K., Classication and Learning Using Genetic Algorithms - Applications in Bioinformatics and Web Intelligence, Springer, 2007. 3. Alba, H., Dorronsoro, E., Cellular Genetic Algorithms, Springer, 2008.
FIM