Otimização de Funções Contínuas via Algoritmos Genéticos Frederico Heitor Mônica do Amaral Problema Dada uma função contínua, diferenciável ou não, encontrar seu valor máximo dentro de um intervalo dado. Exemplo: Função: ƒ(x) = 0.4 + sinc (4x) + 1.1 sinc (4x + 2) + 0.8 sinc (6x – 2) + 0.7 sinc (6x – 4) Intervalo: x Є [-2 , 2] Onde: 1 , x=0 sinc (x) = sen (л x) / (л x) , x ≠ 0 Método Utilizado Algoritmos Genéticos com os seguintes mecanismos: - Reprodução Escolha dos pais utilizando-se Roleta Russa - Crossover Escolha aleatória do ponto de corte do cromossomo - Mutação Escolha aleatória do bit a ser trocado Modelagem - Cada indivíduo é representado por um vetor binário de 16 posições, que corresponde a um ponto contido no intervalo de definição da função I [1] = [ 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 ] - Para calcular o valor da função objetivo relativo a um determinado indivíduo, utiliza-se a fórmula: fo = - 2 + 4b 65535 onde b é o número decimal que corresponde à seqüência binária de um indivíduo qualquer Modelagem - Reprodução Nesta etapa, dois indivíduos da população são escolhidos através do mecanismo da Roleta Russa, onde aqueles que possuem maior aptidão têm maior probabilidade de serem selecionados. O casal escolhido tem uma probabilidade de gerar filhos. Modelagem - Crossover Um número aleatório entre 1 e 16 determina a posição onde será efetuado o corte no vetor (cromossomo). Exemplo: Número Sorteado: 4 Pai 1: X X X X X X X X X Pai 2: Y Y Y Y Y Y Y Y Y Posição do Corte Filho 1: X X X X Y Y Y Y Y Filho 2: Y Y Y Y X X X X X Modelagem - Mutação Um número aleatório entre 1 e 16 determina o bit a sofrer mutação. Exemplo: Número Sorteado: 9 I =[0110110001101011] Após a mutação: I =[0110110011101011] Implementação Parâmetros utilizados: - Tamanho da população inicial = 30 - Probabilidade de Crossover = 0,80 - Probabilidade de Mutação = 0,01 - Critério de parada = 50 gerações Resultados Encontrados N.° Teste 1 2 3 4 5 6 7 8 9 10 Valor máximo de f(x) 1,495005 1,500772 1,500772 1,495005 1,500772 1,495005 1,495005 1,500772 1,500772 1,500772 Melhor solução encontrada = 1,500772 Média das soluções = 1,4984652 Desvio das soluções = 0,15% Vantagens - Soluções muito boas podem ser encontradas após a convergência, mesmo quando a função é instável. - Encontra-se máximos das funções mesmo em intervalos não diferenciáveis.