MÉTODOS DE OTIMIZAÇÃO
UNI UNIVERS VERSID IDAD ADE E FEDE FEDERA RAL L DEJ DEJ U Í Z D E F O R A
MÉTODOS DE OTIMIZAÇÃO
“
Algoritmo Genético”
NOMES: Vinícius Viana Bitencourt Guilherme Pires Carneiro de Miranda
MATRÍCULA: 201069036A 201069038B
NOME DO PROFESSOR: Ivo Chaves da Silva Júnior
Juiz de Fora – MG
05/08/2016 1
MÉTODOS DE OTIMIZAÇÃO
Sumário ................................................................ ................................................................................................... .................................................................... ............................................... .............. 3 .................................................................... ..................................................................................................... .................................................................... ..................................... .. 3 ................................................................ ................................................................................................... .................................................................... ............................................... .............. 3 .................................................................................................. .................................................................... ............................................... .............. 4 3.1 – Regras ............................................................... .............................................................. ................................................................................................. ....................................................... .................... 4 .................................................................................................... ........................................................... ......................... 5 4.1- Características do AG.................................................................. .................................................................................................. ..................................................................... .......................................... ........ 6 4.2 – Indivíduos ............................................................... ............................................................................................................. ............................... 6 4.2.1 Representação dos Indivíduos. .............................................................................. .................................................................................................... ................................................................. ............................... 7 4.2.2 Função Aptidão .................................................................. ............................................................................................... ........................................... .......... 7 4.2.3 Seleção dos Melhores Indivíduos .............................................................. .................................................................. ................................................................................................... .................................................................... ..................................... .. 7 ............................................................................................... ............................................................ ........................... 8 5.1 Modelando o problema .............................................................. ......................................................................................................... ............... 9 5.1.2 Modelando a FOB (1° problema) ........................................................................................... ....................................................................................................... .................. 10 5.1.3 Modelando a FOB (2° problema) ...................................................................................... ....................................................................................................... .................. 11 5.1.4 Modelando a FOB (3° problema) ...................................................................................... ....................................................................................................... .................. 12 5.1.5 Modelando a FOB (4° problema) ...................................................................................... ............................................................................................................................. ..................................................... ................... 12 5.2 toolbox. ........................................................................................... ..................................................................................................... .................................................... .................. 13 5.2.1 Toolbox (1° problema) ................................................................... ..................................................................................................... .................................................... .................. 14 5.2.2 Toolbox (2° problema) ................................................................... ..................................................................................................... .................................................... .................. 15 5.2.3 Toolbox (3° problema) ................................................................... ..................................................................................................... .................................................... .................. 16 5.2.4 Toolbox (3° problema) ................................................................... ............................................................... .................................................................................................. ..................................................................... ........................................ ...... 16 ................................................................................................. ..................................................................... ........................................ ...... 19 6.1 Comentários .............................................................. ................................................................. ................................................................................................... .................................................................... ........................................ ...... 20 ................................................................... .................................................................................................... ............................................. ............ 20
2
MÉTODOS DE OTIMIZAÇÃO
O homem durante todo seu processo de evolução foi confrontado a situações de sobrevivência no qual se sentia obrigado a encontrar soluções que garantisse sua sobrevivência e a perpetuação de sua espécie, estamos o tempo todo otimizando, seja o nosso tempo dinheiro etc. Os métodos de otimização estão presentes em nossas vidas e em todo tipo de formas e padrões, de forma direta ou não, a própia natureza, nos obriga a pensar de forma a encontrar o melhor caminho a sobrevivência. Com o tempo aprendemos a modelar matematicamente os fenômenos naturais em nossa volta,afim de entendermos o funcionamento das leis da naturais, e junto com esse aprendizado científico a humanidade se viu obrigada a botar em prática o próprio extinto de busca por caminhos que demandasse maior produção ao menor gasto, seja ele na produção de alimentos a produção de armamentos. Por fim, esses métodos desenvolvidos se mostraram eficientes na resolução de certos problemas como descrito, porém no mundo moderno as mesmas ferramentas se tornaram li mitadas aos atuais problemas obrigando o homem a procurar novos métodos para tais problemas. Baseado se na própia evolução humana novas ferramentas foram modeladas a fim de resolver esses problemas com uma melhor eficiência, com a ajuda da computação pode se desenvolver métodos que se inspiram na evolução das espécies, ou seja, baseia se na perpetuação da espécie baseando se nos genes passados aos descendentes a fim de melhorar a espécie, tal método proposto hoje conhecido como Algoritmo Genético no qual trabalharemos.
Algoritmos Evolucionários modelam computacionalmente os processos naturais da evolução, de modo a construir uma ferramenta para resolução de problemas nas mais diversas áreas do conhecimento. Este trabalho tem por definição aplicar esse algoritmo na resolução de um problema bem conhecido chamado de Sudoku. Esse problema é um quebra cabeças baseado na colocação lógica de números em uma matriz quadrada n por n, no nosso caso uma matriz 4 x 4 no qual o problema inicial tem algumas pistas iniciais que são números inseridos em algumas posições, o problema tem algumas regras a serem seguidas, cada linha, coluna e sub regiões(matriz quadrada que contenha n posições ) contenha números de 1 a 4. Mais adiante daremos explicações mais detalhadas do problema e do AG empregado na resolução.
O Sudoku como citado anteriormente é um quebra cabeças muito comum no qual sua resolução emprega o uso de um raciocínio lógico, o problema é o mostrado abaixo. 3
MÉTODOS DE OTIMIZAÇÃO
Figura 1: Problema do Sudoku proposto
3.1 – Regras Os quadrados em branco podem assumir os seguintes valores: 1, 2, 3 e 4. Entretanto, cada número só pode aparecer:
Uma vez em cada linha
Uma vez em cada coluna
Uma vez nos quadrados menores
Inspirado na maneira como o darwinismo explica o processo de evolução das espécies o AG tem por finalidade modelar os problemas reais o mais próximo da realidade possível tendo como princípio que para todo Algoritmo Evolucionário que o mesmo é inspirado na natureza e o mesmo não é uma cópia fiel da mesma.
4
MÉTODOS DE OTIMIZAÇÃO
4.1- Características do AG Segundo o neo-darwinismo, os preceitos básicos do processo de evolução das espécies seriam:
Indivíduos de mesma ou diferentes espécies disputam continuamente por limitados recursos presentes no meio ambiente; dentre os vários concorrentes presentes em um determinado meio, alg uns, por conta de suas sobrevivência. Tais indivíduos são ditos mais adaptados ao ambiente; Indivíduos mais adaptados possuem uma maior probabilidade de sobrevivência e conseqüentemente reprodução; visto que no processo de reprodução um grande número de característica do(s) pai(s) são repassadas ao(s) filho(s), indivíduos que se reproduzem mais tendem a propagar mais significativamente suas características nas gerações subseqüentes; logo, ao longo do processo de evolução, características mais desejáveis tendem a se propagar na espécie, aumentando assim o grau de adaptação desta como um todo; o processo de reprodução não ocorre sem falha — durante a replicação e transmissão dos genes aos novos indivíduos criados o fenômeno conhecido como mutação pode ocorrer. Este fenômeno é geralmente prejudicial ao indivíduo, mas em al guns casos pode incorporar a ele uma característica desejável não contida no conjunto de genes dos seus pais. Desta forma a natureza adquire a capacidade de explorar um número maior de combinações e possibilidades. AGs são técnicas probabilísticas, e não técnicas determinísticas. Iniciando um GA com a mesma população inicial e o mesmo conjunto de parâmetros podemos encontrar soluções diferentes a cada vez que executamos o programa. AGs são em geral programas extremamente simples que necessitam somente de: Informações relativas à adequabilidade do ponto como solução do problema em questão
Não necessitam de derivadas ou qualquer outra informação adicional.
Extremamente aplicáveis a problemas do mundo real que em geral incluem descontinuidades severas.
AGs trabalham com uma grande população de soluções. Um AG diferencia-se dos esquemas enumerativos pelo fato de não procurar em todos os pontos possíveis, mas sim em um subconjunto destes pontos . 5
MÉTODOS DE OTIMIZAÇÃO
AGs diferenciam-se de esquemas aleatórios por serem uma busca que utiliza informação pertinente ao problema e não trabalham com caminhadas aleatórias (random walks ) pelo espaço de soluções.
4.2 – Indivíduos Os indivíduos são a unidade fundamental de um algoritmo genético: eles codificam possíveis soluções para o problema a ser tratado, e é através de sua manipulação (pelo processo de evolução) que respostas são encontradas.
4.2.1 Representação dos Indivíduos A escolha de representação para os indivíduos é a etapa mais importante para o desenvolvimento de um AG, visto que ela será a principal responsável para o desempenho do programa. Dessa forma um indivíduo se resume ao conjunto de genes que possui seu (genótipo), porém toda a parte de representação do algoritmo se baseia em seu fenótipo (conjunto de características observáveis no objeto resultante do processo de decodificação dos genes), ou seja, podemos representar o mesmo da seguinte forma abaixo.
Figura 2: Representação do funcionamento do genótipo e fenótipo
6
MÉTODOS DE OTIMIZAÇÃO
4.2.2 Função Aptidão A função aptidão é a maneira utilizada pelos AGs para determinar a qualidade de um indivíduo como solução do problema, ela é uma nota dada ao indivíduo na resolução do problema. A mesma é uma nota dada ao indivíduo na resolução do problema, o valor da função de aptidão é usada para a escolha dos indivíduos pelo módulo de seleção de pais, sendo a forma de diferenciar entre as boas e más soluções para um problema, dada a generalidade doa AGs, a função de avaliação em muitos casos é a única ligação verdadeira do algoritmo com o problema real.
= (Problemas de Maximização)
=
1
(Problemas de Minimização)
4.2.3 Seleção dos Melhores Indivíduos O método de seleção de pais deve simular o mecanismo de seleção natural, além de privilegiar os indivíduos com função de avaliação alta, sem desprezar completamente aqueles indivíduos com função de avaliação extremamente baixa, pois até os indivíduos com péssima avaliação podem conter características genéticas que sejam favoráveis a criação de um indivíduo ótimo. Outro parâmetro de extrema importância é o cruzamento e a mutação, depois de selecionados dois pais pelo módulo de seleção de pais, um ponto de corte é selecionado no qual constitui em uma posição entre dos genes de um cromossomo, a medida que fazemos os cruzamentos estaremos criando dois filhos substituindo os pais, ou seja, após o número de filhos gerado seja igual ao tamanho da população original esses vão sendo armazenados. Vale ressaltar que no AG ter essa taxa de mutação é de extrema importância, pois tendo essa taxa nem muito alta e nem muito baixa podemos assegurar a diversidade de cromossomos na população.
O primeiro passo para solucionar o nosso problema é modelar o problema do Sudoku afim de minimizar o problema, para modelarmos adotamos as seguintes variáveis na qual foi aplicada para cada problema proposto. 7
MÉTODOS DE OTIMIZAÇÃO
Figura 3: Representação das variáveis
Figura 4: Sodoku 1 a ser resolvido
5.1 Modelando o problema Dessa forma podemos fazer a seguinte análise, se multiplicarmos todos os números de uma linha, coluna ou dos quadrados menores pelas regras adotadas podemos verificar que o produto dos mesmos só pode ser igual a 24. Sendo assim a partir de agora podemos modelar nosso problema com suas restrições:
8
MÉTODOS DE OTIMIZAÇÃO
Figura 5: Restrições
5.1.2 Modelando a FOB (1° problema) Para modelar a FOB pensamos da seguinte forma: fob = abs((4-x(1)))+abs((6-x(2)*x(3)*x(4)))+abs((2-x(5)*x(6)))+abs((2x(7)*x(8)))+abs((2-x(2)*x(5)))+abs((1-x(7)))+abs((8-x(1)*x(3)*x(6)))+abs((6x(4)*x(8)))+abs((1-x(2)))+abs((24-x(1)*x(3)*x(4)))+abs((2-x(5)*x(7)))+abs((2x(6)*x(8)))
Ou seja, substituímos nas restrições na nossa FOB os valores das variáveis conhecidas e em seguida usados as restrições na FOB, se o nosso problema convergir nossa FOB será igual a zero, caso contrário nossa FOB é penalizada e vai a procura de mais uma geração . A FOB e as condições ficaram da seguinte forma no Matlab.
function [fitness] = fob1(x)
fob1 = abs((4-x(1)))+abs((6-x(2)*x(3)*x(4)))+abs((2-x(5)*x(6)))+abs((2x(7)*x(8)))+abs((2-x(2)*x(5)))+abs((1-x(7)))+abs((8-x(1)*x(3)*x(6)))+abs((6-
9
MÉTODOS DE OTIMIZAÇÃO
x(4)*x(8)))+abs((1-x(2)))+abs((24-x(1)*x(3)*x(4)))+abs((2-x(5)*x(7)))+abs((2x(6)*x(8))) if x(1)~=4 || x(2)+x(3)+x(4)~=6 || x(5)+x(6)~=3 || x(7)+x(8)~=3 || x(2)+x(5)~=3 || x(7)~=1 || x(1)+x(3)+x(6)~=7 || x(4)+x(8)~=5 || x(2)~=1 || x(1)+x(3)+x(4)~=9 || x(5)+x(7)~=3 || x(6)+x(8)~=3 fob1=fob1*100000000; end if x(1)~=4 || x(2)*x(3)*x(4)~=6 || x(5)*x(6)~=2 || x(7)*x(8)~=2 || x(2)*x(5)~=2 || x(7)~=1 || x(1)*x(3)*x(6)~=8 || x(4)*x(8)~=6 || x(2)~=1 || x(1)*x(3)*x(4)~=24 || x(5)*x(7)~=2 || x(6)*x(8)~=2 fob1=fob1*100000000;
end fitness = fob1; % Tamanho da população 200 % Numero de gerações 150
Com isso atribuímos peso a nossa FOB caso alguma Restrição não fosse atendida penalizando nossa FOB. O mesmo foi feito para os outros três problemas.
5.1.3 Modelando a FOB (2° problema) function [fitness] = fob2(x)
fob2 = abs((6-x(1)*x(2)))+abs((12-x(3)*x(4)*x(5)))+abs((2x(7)*x(6)))+abs((6-x(9)*x(8)))+abs((3-x(1)*x(6)))+abs((8x(3)*x(8)))+abs((6-x(4)*x(7)*x(9)))+abs((6-x(2)*x(5)))+abs((12x(1)*x(3)))+abs((6-x(2)*x(5)*x(4)))+abs((2-x(6)*x(8)))+abs((6x(7)*x(9))) if x(1)+x(2)~=5 || x(3)+x(4)+x(5)~=8 || x(6)+x(7)~=3 || x(9)+x(8)~=5 || x(1)+x(6)~=4 || x(3)+x(8)~=6 || x(4)+x(7)+x(9)~=6 || x(2)+x(5)~=5 || x(1)+x(3)~=7 || x(2)+x(5)+x(4)~=6 || x(6)+x(8)~=3 || x(7)+x(9)~=5 fob2=fob2*100000000; end if x(1)*x(2)~=6 || x(3)*x(4)*x(5)~=12 || x(6)*x(7)~=2 || x(9)*x(8)~=6 || x(1)*x(6)~=3 || x(3)*x(8)~=8 || x(4)*x(7)*x(9)~=6 ||
10
MÉTODOS DE OTIMIZAÇÃO
x(2)*x(5)~=6 || x(1)*x(3)~=12 || x(2)*x(5)*x(4)~=6 || x(6)*x(8)~=2 || x(7)*x(9)~=6 fob2=fob2*100000000;
end fitness = fob2; % Tamanho da população 200 % Numero de gerações 150
5.1.4 Modelando a FOB (3° problema) function [fitness] = fob3(x)
fob3 = abs((6-(x(1)*x(2))))+abs((4-x(3)*x(4)))+abs((4-x(5)*x(6)))+abs((6x(7)*x(8)))+abs((3-x(5)*x(7)))+abs((3-x(1)*x(3)))+abs((8-x(2)*x(4)))+abs((8x(6)*x(8)))+abs((3-x(1)*x(3)))+abs((8-x(2)*x(4)))+abs((3-x(5)*x(7)))+abs((8x(6)*x(8))) if x(1)+x(2)~=5 || x(3)+x(4)~=5 || x(5)+x(6)~=5 || x(7)+x(8)~=5 || x(5)+x(7)~=4 || x(1)+x(3)~=4 || x(2)+x(4)~=6 || x(6)+x(8)~=6 || x(1)+x(3)~=4 || x(2)+x(4)~=6 || x(5)+x(7)~=4 || x(6)+x(8)~=6 fob3 = fob3*100000000; end if x(1)*x(2)~=6 || x(3)*x(4)~=4 || x(5)*x(6)~=4 || x(7)*x(8)~=6 || x(5)*x(7)~=3 || x(1)*x(3)~=3 || x(2)*x(4)~=8 || x(6)*x(8)~=8 || x(1)*x(3)~=3 || x(2)*x(4)~=8 || x(5)*x(7)~=3 || x(6)*x(8)~=8 fob3 = fob3*100000000;
end fitness = fob3; % Tamanho da população 200 % Numero de gerações 150
11
MÉTODOS DE OTIMIZAÇÃO
5.1.5 Modelando a FOB (4° problema) function [fitness] = fob4(x)
fob4 = abs((3-x(1)*x(2)))+abs((4-x(3)*x(4)))+abs((4-x(5)*x(6)))+abs((24x(7)*x(9)*x(8)))+abs((4-x(3)))+abs((12-x(1)*x(4)*x(7)))+abs((8x(2)*x(5)*x(8)))+abs((3-x(6)*x(9)))+abs((12-x(1)*x(3)*x(4)))+abs((1x(2)))+abs((4-x(7)))+abs((24-x(5)*x(6)*x(8)*x(9))) if x(1)+x(2)~=4 || x(3)+x(4)~=5 || x(5)+x(6)~=5 || x(7)+x(9)+x(8)~=9 || x(3)~=4 || x(1)+x(4)+x(7)~=8 || x(2)+x(5)+x(8)~=7 || x(6)+x(9)~=4 || x(1)+x(3)+x(4)~=8 || x(2)~=1 || x(7)~=4 || x(5)+x(6)+x(8)+x(9)~=10 fob4=fob4*10e7; end if x(1)*x(2)~=3 || x(3)*x(4)~=4 || x(5)*x(6)~=4 || x(7)*x(9)*x(8)~=24 || x(3)~=4 || x(1)*x(4)*x(7)~=12 || x(2)*x(5)*x(8)~=8 || x(6)*x(9)~=3 || x(1)*x(3)*x(4)~=12 || x(2)~=1 || x(7)~=4 || x(5)*x(6)*x(8)*x(9)~=24 fob4=fob4*10e7;
end fitness = fob4; % Tamanho da população 200 % Numero de gerações 150
5.2 toolbox O Matlab possui uma toolbox capaz de resolver um AG tendo apenas que passar alguns parâmetros a mesma como o arquivo da FOB, população, numero de gerações, limite inferior e superior no qual o AG vai trabalhar e o número de variáveis.
12
MÉTODOS DE OTIMIZAÇÃO
5.2.1 Toolbox (1° problema) Após a elaboração do problema chamamos a toolbox e passamos a ela os seguintes parâmetros mostrado na figura a abaixo;
Figura 6: Parâmetros Toolbox Problema 1
Além desses parâmerto foram passados também o número de gerações.
13
MÉTODOS DE OTIMIZAÇÃO
5.2.2 Toolbox (2° problema)
Figura 7: Parâmetros Toolbox Problema 2
14
MÉTODOS DE OTIMIZAÇÃO
5.2.3 Toolbox (3° problema)
Figura 8: Parâmetros Toolbox Problema 3
15
MÉTODOS DE OTIMIZAÇÃO
5.2.4 Toolbox (3° problema)
Figura 9: Parâmetros Toolbox Problema 4
Após rodarmos a Toolbox para cada problema chegamos nos seguintes resultados para cada problema: 16
MÉTODOS DE OTIMIZAÇÃO
Figura 10: Resultado do problema 1
17
MÉTODOS DE OTIMIZAÇÃO
Figura 11: Resultado do problema 2
Figura 12: Resultado do problema 3
18
MÉTODOS DE OTIMIZAÇÃO
Figura 13: Resultado do problema 4
6.1 Comentários Podemos observar nos gráficos acima o resultado das interações do AG, cada figura contém dois gráficos, o primeiro traz a informação da penalidade com relação a FOB, ou seja notamos como a FOB é altamente penalizada no começo das gerações, isso se dá pelo fato de no começo haver números repetidos nas linhas, colunas ou quadros, fazendo com que nossa FOB seja penalizada, isso vai se diminuindo com o nascimento de novos indivíduos. O segundo gráfico mostra a solução ótima, quando nossa FOB vai para zero e nosso problema converge, sendo o eixo x as variáveis e o eixo do y o valor dessas variáveis, podemos ver que de fato um problema bem complexo se torna muito fácil usando o AG.
19
MÉTODOS DE OTIMIZAÇÃO
Na engenharia, nos deparamos a cada dia com problemas muito complexos de otimização, no qual a busca pelo melhor custo é algo de extrema importância para o desenvolvimento das tecnologias, tais problemas se tornam muitas vezes problemas de grande porte e extrema complexidade se tornando inviável resolve-los pelos métodos tradicionais de otimização, sendo de extrema importância o uso de algoritmos evolucionários para resolve-los. No problema proposto apesar de pequeno e simples exige uma certa complexidade, o AG se mostrou altamente eficiente em sua resolução, mostrando que de fato o algoritmo funciona e pode ser aplicado em todas as áreas da engenharia.
[1] LUCAS, Diogo C. Algoritmos Genétios: uma Introdução. Porto Alegre, 2002. 48 p. Discipl ina de Ferramentas de Inteligência Artificial . [2]JÚNIOR, Ivo Chaves da Silva. Métodos de Otimização . Disponível em
20