Você está na página 1de 31

MÉTODOS DE OTIMIZAÇÃO

UNIVERSIDADE FEDERAL DEJ UÍ Z DE F O RA

MÉTODOS DE
OTIMIZAÇÃO

Algoritmo Genético

Matheus José Silva


Vanessa Arantes Oliveira
Vinícius Viana Bitencourt

MATRÍCULA: 201269013C
201265268AH
201069036A

Professor: Ivo Chaves da Silva Júnior

Juiz de Fora – MG
07/12/2016
1
MÉTODOS DE OTIMIZAÇÃO

Sumário

1 - RESUMO..................................................................................................................................................... 3
2 - INTRODUÇÃO ........................................................................................................................................... 3
3 - TABULEIRO ............................................................................................................................................... 4
3.1 –Regras ...................................................................................................................................................... 4
4 –AGORITMO GENÉTICO (AG) ................................................................................................................. 4
4.1- Características do AG ............................................................................................................................. 5
4.1–ETAPAS .................................................................................................................................................... 7
4.1.1– Inicialização .......................................................................................................................................... 7
4.1.2– Avaliação .............................................................................................................................................. 7
4.1.3– Seleção ................................................................................................................................................. 7
4.1.4– Reprodução .......................................................................................................................................... 7
4.1.4– Mutação ................................................................................................................................................ 7
4.1.4– Taxa de Cruzamento .......................................................................................................................... 8
4.1.5– Taxa de Mutação ................................................................................................................................. 8
4.1.6–Indivíduos............................................................................................................................................... 8
4.1.7 Representação dos Indivíduos ............................................................................................................ 8
4.1.8 Função Aptidão ...................................................................................................................................... 9
5 –METODOLOGIA......................................................................................................................................... 9
5.1 Modelagem do problema ......................................................................................................................10
5.1.2Modelando a FOB.................................................................................................................................11
5 Toolbox ........................................................................................................................................................12
6 - RESULTADOS .........................................................................................................................................14
6.1 Comentários.............................................................................................................................................30
7. CONCLUSÃO ............................................................................................................................................30
8. REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................................................31

2
MÉTODOS DE OTIMIZAÇÃO

1 - RESUMO

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ópria 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.
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
limitadas aos atuais problemas obrigando o homem a procurar novos métodos para tais
problemas. Baseado se na própria evolução humana novas ferramentas foram modeladas afim 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 afim de melhorar a
espécie, tal método proposto hoje conhecido como Algoritmo Genético no qual trabalharemos.

2 - INTRODUÇÃO
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 o uso da toolbox do MatLab que contem esse algoritmo para
se obter a melhor solução na disposição de oito torres em um tabuleiro de xadrez de modo que
nenhuma possa capturar a outra. Esse problema é baseado em matriz quadrada n por n, no nosso
caso uma matriz 8 x 8 no qual o problema inicial não tem nenhuma pista onde as torres possam
estar, o problema tem algumas regras a serem seguidas:

 A torre move em linha reta horizontalmente e verticalmente pelo número de casas não
ocupadas, até atingir o final do tabuleiro ou ser bloqueado por outra peça.
 A torre não pode pular outras peças.
 A torre captura no mesmo caminho em que se move, ocupando a casa onde se
encontra a peça adversária.
 A torre pode parar em qualquer casa do tabuleiro, sendo por isso uma das peças mais
poderosas do jogo de xadrez
Mais adiante daremos explicações mais detalhadas do problema e do AG empregado na
resolução.

3
MÉTODOS DE OTIMIZAÇÃO

3 - TABULEIRO

O tabuleiro de xadrez é composto de 64 posições que irá gerar 64 variáveis. As 8 torres


podem transitar, no nosso caso as mesmas devem seguir as regras citadas anteriormente, abaixo
temos um desenho com uma torre para entendermos seus movimentos.

FIGURA 1 – ILUSTRAÇÃO DOS MOVIMENTOS DE UMA TORRE NO XADREZ

3.1 –Regras
Como citado anteriormente e como ilustrado acima esses são os movimentos possíveis
para a torre, porém o nosso objetivo do problema temos que respeitar as seguintes regra: não se
pode ter duas torres nem na mesma linha e nem na mesma coluna, ou seja, cada torre no final da
aplicação do algoritmo terá a possibilidade de se movimentar livremente em sua linha e coluna
correspondente sem nenhum obstáculo.

4 –AGORITMO GENÉTICO (AG)


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.

4
MÉTODOS DE OTIMIZAÇÃO

4.1- Características do AG

Os AGs são inspirados nos princípios de seleção natural especialmente aqueles declarados
no livro A Origem das Espécies, do inglês Charles Darwin. Essa teoria da evolução das espécies
diz que só os indivíduos mais aptos ao meio ambiente sobrevivem e a estes são dadas a
oportunidade de se reproduzir e deixar suas características em seus descendentes. Segundo o
neodarwinismo, os preceitos básicos do processo de evolução das espécies seriam:

I. NASCIMENTO DOS INDIVÍDUOS


II. SELEÇÃO DOS MELHORES INDIVÍDUOS

 Indivíduos de mesma ou diferentes espécies disputam continuamente por


limitados recursos presentes no meio ambiente;

 Indivíduos de mesma ou diferentes espécies disputam continuamente por


limitados recursos presentes no meio ambiente;

 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, alguns, por


conta de sua sobrevivência. Tais indivíduos são ditos maisadaptados ao
ambiente;

III. REPRODUÇÃO ENTRE ELES

 Indivíduos mais adaptados possuem uma maior probabilidade de sobrevivência


e consequentemente 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
subsequentes;

 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 alguns casos pode incorporar a ele uma característica
desejável não contida no conjunto de genes dos seus pais.

IV. NOVA GERAÇÃO

5
MÉTODOS DE OTIMIZAÇÃO

Inspirado nesse processo, Holland decompôs o AG em etapas. O primeiro passo é a


geração de uma população inicial de cromossomos. O durante o processo evolutivo essa
população é avaliada e cada cromossomo recebe uma nota, refletindo a qualidade da solução. Em
geral os mais aptos são selecionados e os menos são descartados. Parte desses membros
podem sofrer mutações e crossover, gerando novos descentes para a próxima geração. Esse
processo é repetido até que uma solução satisfatória seja encontrada.

FIGURA 2: ALGORITMO DO AG

Umas das características do AG que se pode chamar atenção é pelo fato de ser uma
técnica probabilística e não determinística, iniciando um AG com a mesma população inicial e o
mesmo conjunto de parâmetros podemos encontra soluções diferentes a cada vez que
executamos o programa.

Os Algoritmos Genéticos (AGs) diferem dos métodos tradicionais de busca e otimização,


principalmente por não necessitar de derivadas ou qualquer outra informação adicional e ser
extremamente aplicáveis a problemas do mundo real que em geral incluem descontinuidades,
podendo também trabalhar com uma grande população de soluções. O AG também se diferencia
dos esquemas enumerativos pelo fato de não procurar em todos os pontos possíveis, mas sim em
um subconjunto destes pontos.

6
MÉTODOS DE OTIMIZAÇÃO

4.1–ETAPAS

4.1.1– Inicialização

É dada pela geração dos indivíduos. Tipicamente se faz uso de funções aleatórias para
gerar os indivíduos. Existem várias alternativas entre elas o método randômico uniforme ou não
uniforme e inicialização parcialmente enumerativa.

4.1.2– Avaliação

É a primeira etapa de seleção onde cada indivíduo da população é avaliado para que seja
determinado o seu grau de adaptação. É criada uma função aptidão para essa avaliação com ou
sem penalização.

4.1.3– Seleção

O método de seleção de pais deve simular o mecanismo de seleção natural. Fará com que
depois de muitas gerações, o conjunto inicial de indivíduos gere indivíduos mais aptos. Pode se
utilizar vários métodos exemplo: por ranking, torneio, uniforme ou da roleta. O mais utilizado é o
método da roleta, onde é criado uma roleta (virtual) na qual cada indivíduo é representado na
roleta proporcional à sua avaliação, roda-se essa roleta e cada indivíduo recebe o valor sobre o
qual parar.

4.1.4– Reprodução
Uma vez selecionados os indivíduos são recombinados entre eles para geração de novos
‘’filhos’’.

4.1.4– Mutação
A mutação opera sobre os indivíduos resultantes do processo de cruzamento e com uma
probabilidade pré-determinada efetua algum tipo de alteração em sua estrutura.
Após estes passos os indivíduos são atualizados formando uma nova população.
Com uma população pequena o desempenho pode cair, pois deste modo a população
fornece uma pequena cobertura do espaço de busca do problema. No entanto, para se trabalhar
com grandes populações, são necessários maiores recursos computacionais, ou seja, maior o
tempo gasto.

7
MÉTODOS DE OTIMIZAÇÃO

4.1.4– Taxa de Cruzamento


Quanto maior for esta taxa, mais rapidamente novas estruturas serão introduzidas na
população. Mas se esta for muito alta, estruturas com boas aptidões poderão ser retiradas. Com
um valor baixo, o algoritmo pode tornar-se muito lento.

4.1.5– Taxa de Mutação


Uma baixa taxa de mutação previne que uma dada posição fique estagnada. Com uma
taxa muito alta a busca se torna essencialmente aleatória.

4.1.6–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 que respostas
são encontradas.

4.1.7 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 3: REPRESENTAÇÃO DO FUNCIONAMENTO DO GENÓTIPO E FENÓTIPO

8
MÉTODOS DE OTIMIZAÇÃO

4.1.8 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.

(Problemas de Maximização)

(Problemas de Minimização)

5 –METODOLOGIA

O primeiro passo para solucionar o nosso problema é modelar o problema das torres afim
de minimizar o problema, para modelarmos adotamos as seguintes variáveis na qual foi aplicada
para cada problema proposto.

FIGURA 3: REPRESENTAÇÃO DAS VARIÁVEIS

9
MÉTODOS DE OTIMIZAÇÃO

FIGURA 4: TABULEIRO XADREZ ONDE CADA QUADRADO É UMA VARIÁVEL

5.1 Modelagem do problema


Dessa forma podemos fazer a seguinte análise, se somarmos todas as variáveis de uma
linha em um total de oito linhas e cada uma delas sendo menor ou igual a 1, e somarmos todas as
variáveis de uma coluna no total de oito e cada uma delas também sendo menor igual a 1 e por
último somarmos todas as restrições sendo igual a 8 garantimos que que cada linha aparecerá
apenas uma torre sendo que o mesmo vale para as colunas.
A soma de todas restrições sendo iguais a oito diz ao problema que obrigatoriamente no
meu tabuleiro terá que ter 8 torres.
Por último na Toolbox do MatLab restringimos o limite inferior sendo zero e o superior igual
a um e o mesmo problema deve ser da forma inteira, ou seja,os únicos valores possíveis para as
variáveis será ou zero ou um, dessa forma amarramos bem o nosso problema a busca que
queremos.
Sendo assim a partir de agora podemos modelar nosso problema com suas restrições:

10
MÉTODOS DE OTIMIZAÇÃO

5.1.2Modelando a FOB

11
MÉTODOS DE OTIMIZAÇÃO

Para modelar a FOB pensamos da seguinte forma:

fob4 = 8-((x(1)+x(2)+x(3)+x(4)+x(5)+x(6)+x(7)+x(8)-1)+(x(9)+x(10)+x(11)+x(12)+x(13)+x(14)+x(15)+x(16)-
1)+(x(17)+x(18)+x(19)+x(20)+x(21)+x(22)+x(23)+x(24)-
1)+(x(25)+x(26)+x(27)+x(28)+x(29)+x(30)+x(31)+x(32)-1)+
(x(33)+x(34)+x(35)+x(36)+x(37)+x(38)+x(39)+x(40)-1)+(x(41)+x(42)+x(43)+x(44)+x(45)+x(46)+x(47)+x(48)-
1)+ (x(49)+x(50)+x(51)+x(52)+x(53)+x(54)+x(55)+x(56)-
1)+(x(57)+x(58)+x(59)+x(60)+x(61)+x(62)+x(63)+x(64)-1)+ (x(1)+x(9)+x(17)+x(25)+x(33)+x(41)+x(49)+x(57)-
1)+(x(2)+x(10)+x(18)+x(26)+x(34)+x(42)+x(50)+x(58)-1)+ (x(3)+x(11)+x(19)+x(27)+x(35)+x(43)+x(51)+x(59)-
1)+(x(4)+x(12)+x(20)+x(28)+x(36)+x(44)+x(52)+x(60)-1)+ (x(5)+x(13)+x(21)+x(29)+x(37)+x(45)+x(53)+x(61)-
1)+(x(6)+x(14)+x(22)+x(30)+x(38)+x(46)+x(54)+x(62)-1)+ (x(7)+x(15)+x(23)+x(31)+x(39)+x(47)+x(55)+x(63)-
1)+(x(8)+x(16)+x(24)+x(32)+x(40)+x(48)+x(56)+x(64)-1)+
((x(1)+x(2)+x(3)+x(4)+x(5)+x(6)+x(7)+x(8)+x(9)+x(10)+x(11)+x(12)+x(13)+x(14)+x(15)+x(16)+x(17)+x(18)+
x(19)+x(20)+x(21)+x(22)+x(23)+x(24)+
x(25)+x(26)+x(27)+x(28)+x(29)+x(30)+x(31)+x(32)+x(33)+x(34)+x(35)+
x(36)+x(37)+x(38)+x(39)+x(40)+x(41)+x(42)+x(43)+x(44)+x(45)+x(46)+x(47)+x(48)+x(49)+x(50)+x(51)+x(52)
+ x(53)+x(54)+x(55)+x(56)+x(57)+x(58)+x(59)+x(60)+x(61)+x(62)+x(63)+x(64))-8))

fitness = fob4;

Ou seja, colocamos como sendo o valor da nossa Fob no caso escolhemos o nome de
fob4 sendo igual a 8, se o nosso problema convergir para a melhor solução nossa FOB será igual
a 8, temos que ressaltar que o AG trabalha com probabilidade, ou seja ao executá-lo várias vezes
de pendendo dos parâmetros adotados ele nem sempre encontrará o melhor resultado, mas o
mesmo serão mostrados nas simulações.
Vale ressaltar que cada restrição pode ter um objetivo, uma importância maior na nossa
Fob, porém no nosso caso todas as restrições apresentam o mesmo grau de importância, sendo
assim não precisaremos penalizar nossa Fob caso não encontre o valor da Fob desejada.

O arquivo com as restrições e a com a função é salvo como fob4.m na pasta que
escolhemos para trabalhar no MatLab, o mesmo depois é usado na toolbox do AG no MatLab.

5 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, o número de variáveis, população, número de
gerações, os coeficientes das restrições não lineares.
Após a elaboração do problema chamamos a toolbox do AG no MatLab e passamos a ela
os seguintes parâmetros mostrado na figura a abaixo:

12
MÉTODOS DE OTIMIZAÇÃO

FIGURA 5: PARÂMETROS TOOLBOX PARA O PROBLEMA


Com isso passamos todas as informações necessárias para o funcionamento do AG, falta
agora decidir o tamanho da nossa população, isso é muito importante para o AG.
Escolhemos um tamanho de 300 indivíduos, e simulamos algumas vezes para termos uma
base cálculo de probabilidade do AG de encontrar uma boa solução do nosso problema, no nosso
caso fob4 = 8.

FIGURA 6: TAMANHO DA POPULAÇÃO 300

13
MÉTODOS DE OTIMIZAÇÃO

Além disso habilitamos o gráfico que o AG proporciona para vermos o resultado, dessa
forma obtivemos as seguintes respostas.

6 - RESULTADOS

6.1 Resultados para 300 Indivíduos e Reprodução Default do


MatLab

14
MÉTODOS DE OTIMIZAÇÃO

FIGURA 7: SIMULAÇÃO 1 (300 INDIVIDUOS)

FIGURA 8: SIMULAÇÃO 2 (300 INDIVIDUOS)

15
MÉTODOS DE OTIMIZAÇÃO

FIGURA 9: SIMULAÇÃO 3 (300 INDIVIDUOS)

16
MÉTODOS DE OTIMIZAÇÃO

FIGURA 10: SIMULAÇÃO 4 (300 INDIVIDUOS)

17
MÉTODOS DE OTIMIZAÇÃO

FIGURA 11: SIMULAÇÃO 5 (300 INDIVIDUOS)

18
MÉTODOS DE OTIMIZAÇÃO

FIGURA 12: SIMULAÇÃO 6 (100 INDIVIDUOS)

19
MÉTODOS DE OTIMIZAÇÃO

FIGURA 13: SIMULAÇÃO 7 (100 INDIVIDUOS)

20
MÉTODOS DE OTIMIZAÇÃO

FIGURA 14: SIMULAÇÃO 8 (100 INDIVIDUOS)

21
MÉTODOS DE OTIMIZAÇÃO

6.2 Resultados para 300 Indivíduos e Reprodução igual a 100

FIGURA 15: SIMULAÇÃO 1 (300 INDIVÍDUOS REPRODUÇÃO IGUAL A 100)

22
MÉTODOS DE OTIMIZAÇÃO

FIGURA 16: SIMULAÇÃO 2 (300 INDIVÍDUOS REPRODUÇÃO IGUAL A 100)

23
MÉTODOS DE OTIMIZAÇÃO

FIGURA 17: SIMULAÇÃO 3 (300 INDIVIDUOS REPRODUÇÃO IGUAL A 100)

24
MÉTODOS DE OTIMIZAÇÃO

FIGURA 18: SIMULAÇÃO 4 (300 INDIVIDUOS REPRODUÇÃO IGUAL A 100)

25
MÉTODOS DE OTIMIZAÇÃO

FIGURA 19: SIMULAÇÃO 5 (300 INDIVIDUOS REPRODUÇÃO IGUAL A 100)

26
MÉTODOS DE OTIMIZAÇÃO

FIGURA 20: SIMULAÇÃO 6 (300 INDIVIDUOS REPRODUÇÃO IGUAL A 100)

27
MÉTODOS DE OTIMIZAÇÃO

FIGURA 21: SIMULAÇÃO 7 (300 INDIVIDUOS REPRODUÇÃO IGUAL A 100)

28
MÉTODOS DE OTIMIZAÇÃO

FIGURA 22: SIMULAÇÃO 8 (300 INDIVIDUOS REPRODUÇÃO IGUAL A 100)

29
MÉTODOS DE OTIMIZAÇÃO

6.1 Comentários
Podemos observar nas simulações que se mantermos uma reprodução adequada ao
problema podemos ter um aproveitamento maior do que se mantermos uma taxa muito baixa.
Na simulação com população de 300 indivíduos usando o default do MatLab em total de 8
simulações 2 não convergiram para o esperado, seja, houve 75% de aproveitamento, enquanto
na simulação com 300 indivíduos e trabalhando com uma reprodução igual a 100 tivemos um
melhor aproveitamento, de 100%, porém o método é probabilístico, pode ser que em demais
simulações almas podem não convergir para o valor esperado.

7. CONCLUSÃ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 e extremamente adequado.
Retornando uma solução ótima. Concluindo assim que de fato o algoritmo funciona e
pode ser aplicado em todas as áreas da engenharia e outras.

30
MÉTODOS DE OTIMIZAÇÃO

8. REFERÊNCIAS BIBLIOGRÁFICAS

[1] LUCAS, Diogo C. Algoritmos Genétios: uma Introdução. Porto Alegre, 2002. 48 p. Disciplina de
Ferramentas de Inteligência Artificial .

[2]JÚNIOR, Ivo Chaves da Silva. Métodos de Otimização . Disponível em


<http://www.ufjf.br/ivo_junior/ensino/material-aula-graduacao/estabilidade-de-sistemas-eletricos-
de-potencia/transparencias-aulas/>

31

Você também pode gostar