You are on page 1of 20

MTODOS DE OTIMIZAO

UNIVERSIDADE FEDERAL DEJ U Z DE F O R A

MTODOS DE
OTIMIZAO

Algoritmo Gentico

NOMES: Vincius Viana Bitencourt


Guilherme Pires Carneiro de Miranda

MATRCULA: 201069036A
201069038B

NOME DO PROFESSOR: Ivo Chaves da Silva Jnior

Juiz de Fora MG 05/08/2016

1
MTODOS DE OTIMIZAO

Sumrio
1 - RESUMO.................................................................................................................................................. 3
2 - INTRODUO .......................................................................................................................................... 3
3 - SUDOKU .................................................................................................................................................. 3
3.1 Regras ................................................................................................................................................. 4
4 AGORITMO GENTICO (AG) ..................................................................................................................... 4
4.1- Caractersticas do AG............................................................................................................................. 5
4.2 Indivduos ............................................................................................................................................ 6
4.2.1 Representao dos Indivduos.............................................................................................................. 6
4.2.2 Funo Aptido ................................................................................................................................... 7
4.2.3 Seleo dos Melhores Indivduos ......................................................................................................... 7
5 METODOLOGIA ........................................................................................................................................ 7
5.1 Modelando o problema .......................................................................................................................... 8
5.1.2 Modelando a FOB (1 problema) .......................................................................................................... 9
5.1.3 Modelando a FOB (2 problema) ........................................................................................................ 10
5.1.4 Modelando a FOB (3 problema) ........................................................................................................ 11
5.1.5 Modelando a FOB (4 problema) ........................................................................................................ 12
5.2 toolbox ................................................................................................................................................. 12
5.2.1 Toolbox (1 problema) ....................................................................................................................... 13
5.2.2 Toolbox (2 problema) ....................................................................................................................... 14
5.2.3 Toolbox (3 problema) ....................................................................................................................... 15
5.2.4 Toolbox (3 problema) ....................................................................................................................... 16
6. RESULTADOS .......................................................................................................................................... 16
6.1 Comentrios......................................................................................................................................... 19
7. CONCLUSO ........................................................................................................................................... 20
8. REFERNCIAS BIBLIOGRFICAS ................................................................................................................ 20

2
MTODOS DE OTIMIZAO

1 - RESUMO
O homem durante todo seu processo de evoluo foi confrontado a situaes de sobrevivncia no qual
se sentia obrigado a encontrar solues que garantisse sua sobrevivncia e a perpetuao de sua espcie,
estamos o tempo todo otimizando, seja o nosso tempo dinheiro etc. Os mtodos de otimizao esto
presentes em nossas vidas e em todo tipo de formas e padres, de forma direta ou no, a prpia natureza,
nos obriga a pensar de forma a encontrar o melhor caminho a sobrevivncia.

Com o tempo aprendemos a modelar matematicamente os fenmenos naturais em nossa volta,afim de


entendermos o funcionamento das leis da naturais, e junto com esse aprendizado cientfico a humanidade
se viu obrigada a botar em prtica o prprio extinto de busca por caminhos que demandasse maior
produo ao menor gasto, seja ele na produo de alimentos a produo de armamentos.

Por fim, esses mtodos desenvolvidos se mostraram eficientes na resoluo de certos problemas como
descrito, porm no mundo moderno as mesmas ferramentas se tornaram limitadas aos atuais problemas
obrigando o homem a procurar novos mtodos para tais problemas. Baseado se na prpia evoluo
humana novas ferramentas foram modeladas a fim de resolver esses problemas com uma melhor
eficincia, com a ajuda da computao pode se desenvolver mtodos que se inspiram na evoluo das
espcies, ou seja, baseia se na perpetuao da espcie baseando se nos genes passados aos descendentes
a fim de melhorar a espcie, tal mtodo proposto hoje conhecido como Algoritmo Gentico no qual
trabalharemos.

2 - INTRODUO
Algoritmos Evolucionrios modelam computacionalmente os processos naturais da evoluo, de modo
a construir uma ferramenta para resoluo de problemas nas mais diversas reas do conhecimento.
Este trabalho tem por definio aplicar esse algoritmo na resoluo de um problema bem conhecido
chamado de Sudoku. Esse problema um quebra cabeas baseado na colocao lgica de nmeros 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 so nmeros inseridos em algumas posies, o problema tem algumas regras a serem
seguidas, cada linha, coluna e sub regies(matriz quadrada que contenha n posies ) contenha nmeros
de 1 a 4.
Mais adiante daremos explicaes mais detalhadas do problema e do AG empregado na resoluo.

3 - SUDOKU
O Sudoku como citado anteriormente um quebra cabeas muito comum no qual sua
resoluo emprega o uso de um raciocnio lgico, o problema o mostrado abaixo.
3
MTODOS DE OTIMIZAO

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 nmero s pode aparecer:

Uma vez em cada linha

Uma vez em cada coluna

Uma vez nos quadrados menores

4 AGORITMO GENTICO (AG)


Inspirado na maneira como o darwinismo explica o processo de evoluo das espcies o AG tem por
finalidade modelar os problemas reais o mais prximo da realidade possvel tendo como princpio que
para todo Algoritmo Evolucionrio que o mesmo inspirado na natureza e o mesmo no uma cpia fiel
da mesma.

4
MTODOS DE OTIMIZAO

4.1- Caractersticas do AG

Segundo o neo-darwinismo, os preceitos bsicos do processo de evoluo das espcies seriam:

Indivduos de mesma ou diferentes espcies disputam continuamente por limitados


recursos presentes no meio ambiente;

dentre os vrios concorrentes presentes em um determinado meio, alguns, por conta


de suas sobrevivncia. Tais indivduos so ditos mais adaptados ao ambiente;

Indivduos mais adaptados possuem uma maior probabilidade de sobrevivncia e


conseqentemente reproduo;

visto que no processo de reproduo um grande nmero de caracterstica do(s) pai(s)


so repassadas ao(s) filho(s), indivduos que se reproduzem mais tendem a propagar
mais significativamente suas caractersticas nas geraes subseqentes;

logo, ao longo do processo de evoluo, caractersticas mais desejveis tendem a se


propagar na espcie, aumentando assim o grau de adaptao desta como um todo;

o processo de reproduo no ocorre sem falha durante a replicao e transmisso


dos genes aos novos indivduos criados o fenmeno conhecido como mutao pode
ocorrer. Este fenmeno geralmente prejudicial ao indivduo, mas em alguns casos
pode incorporar a ele uma caracterstica desejvel no contida no conjunto de genes
dos seus pais. Desta forma a natureza adquire a capacidade de explorar um nmero
maior de combinaes e possibilidades.

AGs so tcnicas probabilsticas, e no tcnicas determinsticas.

Iniciando um GA com a mesma populao inicial e o mesmo conjunto de parmetros


podemos encontrar solues diferentes a cada vez que executamos o programa.

AGs so em geral programas extremamente simples que necessitam somente de:


Informaes relativas adequabilidade do ponto como soluo do
problema em questo

No necessitam de derivadas ou qualquer outra informao


adicional.

Extremamente aplicveis a problemas do mundo real que em geral


incluem descontinuidades severas.

AGs trabalham com uma grande populao de solues.

Um AG diferencia-se dos esquemas enumerativos pelo fato de no procurar em todos


os pontos possveis, mas sim em um subconjunto destes pontos .

5
MTODOS DE OTIMIZAO

AGs diferenciam-se de esquemas aleatrios por serem uma busca que utiliza
informao pertinente ao problema e no trabalham com caminhadas aleatrias
(random walks ) pelo espao de solues.

4.2 Indivduos
Os indivduos so a unidade fundamental de um algoritmo gentico: eles codificam possveis
solues para o problema a ser tratado, e atravs de sua manipulao (pelo processo de evoluo) que
respostas so encontradas.

4.2.1 Representao dos Indivduos


A escolha de representao para os indivduos a etapa mais importante para o desenvolvimento
de um AG, visto que ela ser a principal responsvel para o desempenho do programa.

Dessa forma um indivduo se resume ao conjunto de genes que possui seu (gentipo), porm toda
a parte de representao do algoritmo se baseia em seu fentipo (conjunto de caractersticas observveis
no objeto resultante do processo de decodificao dos genes), ou seja, podemos representar o mesmo da
seguinte forma abaixo.

Figura 2: Representao do funcionamento do gentipo e fentipo

6
MTODOS DE OTIMIZAO

4.2.2 Funo Aptido


A funo aptido a maneira utilizada pelos AGs para determinar a qualidade de um indivduo
como soluo do problema, ela uma nota dada ao indivduo na resoluo do problema.

A mesma uma nota dada ao indivduo na resoluo do problema, o valor da funo de aptido
usada para a escolha dos indivduos pelo mdulo de seleo de pais, sendo a forma de diferenciar entre as
boas e ms solues para um problema, dada a generalidade doa AGs, a funo de avaliao em muitos
casos a nica ligao verdadeira do algoritmo com o problema real.

= (Problemas de Maximizao)

1
= (Problemas de Minimizao)

4.2.3 Seleo dos Melhores Indivduos


O mtodo de seleo de pais deve simular o mecanismo de seleo natural, alm de privilegiar os
indivduos com funo de avaliao alta, sem desprezar completamente aqueles indivduos com funo de
avaliao extremamente baixa, pois at os indivduos com pssima avaliao podem conter caractersticas
genticas que sejam favorveis a criao de um indivduo timo.

Outro parmetro de extrema importncia o cruzamento e a mutao, depois de selecionados


dois pais pelo mdulo de seleo de pais, um ponto de corte selecionado no qual constitui em uma
posio entre dos genes de um cromossomo, a medida que fazemos os cruzamentos estaremos criando
dois filhos substituindo os pais, ou seja, aps o nmero de filhos gerado seja igual ao tamanho da
populao original esses vo sendo armazenados.

Vale ressaltar que no AG ter essa taxa de mutao de extrema importncia, pois tendo essa taxa
nem muito alta e nem muito baixa podemos assegurar a diversidade de cromossomos na populao.

5 METODOLOGIA
O primeiro passo para solucionar o nosso problema modelar o problema do Sudoku afim de
minimizar o problema, para modelarmos adotamos as seguintes variveis na qual foi aplicada para cada
problema proposto.

7
MTODOS DE OTIMIZAO

Figura 3: Representao das variveis Figura 4: Sodoku 1 a ser resolvido

5.1 Modelando o problema

Dessa forma podemos fazer a seguinte anlise, se multiplicarmos todos os nmeros 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 restries:

8
MTODOS DE OTIMIZAO

Figura 5: Restries

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((2-
x(7)*x(8)))+abs((2-x(2)*x(5)))+abs((1-x(7)))+abs((8-x(1)*x(3)*x(6)))+abs((6-
x(4)*x(8)))+abs((1-x(2)))+abs((24-x(1)*x(3)*x(4)))+abs((2-x(5)*x(7)))+abs((2-
x(6)*x(8)))

Ou seja, substitumos nas restries na nossa FOB os valores das variveis conhecidas e em seguida
usados as restries na FOB, se o nosso problema convergir nossa FOB ser igual a zero, caso contrrio
nossa FOB penalizada e vai a procura de mais uma gerao . A FOB e as condies 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((2-
x(7)*x(8)))+abs((2-x(2)*x(5)))+abs((1-x(7)))+abs((8-x(1)*x(3)*x(6)))+abs((6-

9
MTODOS DE OTIMIZAO

x(4)*x(8)))+abs((1-x(2)))+abs((24-x(1)*x(3)*x(4)))+abs((2-x(5)*x(7)))+abs((2-
x(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 populao 200


% Numero de geraes 150

Com isso atribumos peso a nossa FOB caso alguma Restrio no fosse atendida penalizando nossa
FOB. O mesmo foi feito para os outros trs 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((2-
x(7)*x(6)))+abs((6-x(9)*x(8)))+abs((3-x(1)*x(6)))+abs((8-
x(3)*x(8)))+abs((6-x(4)*x(7)*x(9)))+abs((6-x(2)*x(5)))+abs((12-
x(1)*x(3)))+abs((6-x(2)*x(5)*x(4)))+abs((2-x(6)*x(8)))+abs((6-
x(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
MTODOS DE OTIMIZAO

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 populao 200


% Numero de geraes 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((6-
x(7)*x(8)))+abs((3-x(5)*x(7)))+abs((3-x(1)*x(3)))+abs((8-x(2)*x(4)))+abs((8-
x(6)*x(8)))+abs((3-x(1)*x(3)))+abs((8-x(2)*x(4)))+abs((3-x(5)*x(7)))+abs((8-
x(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 populao 200


% Numero de geraes 150

11
MTODOS DE OTIMIZAO

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((24-
x(7)*x(9)*x(8)))+abs((4-x(3)))+abs((12-x(1)*x(4)*x(7)))+abs((8-
x(2)*x(5)*x(8)))+abs((3-x(6)*x(9)))+abs((12-x(1)*x(3)*x(4)))+abs((1-
x(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 populao 200


% Numero de geraes 150

5.2 toolbox
O Matlab possui uma toolbox capaz de resolver um AG tendo apenas que passar alguns parmetros
a mesma como o arquivo da FOB, populao, numero de geraes, limite inferior e superior no qual o AG
vai trabalhar e o nmero de variveis.

12
MTODOS DE OTIMIZAO

5.2.1 Toolbox (1 problema)


Aps a elaborao do problema chamamos a toolbox e passamos a ela os seguintes
parmetros mostrado na figura a abaixo;

Figura 6: Parmetros Toolbox Problema 1

Alm desses parmerto foram passados tambm o nmero de geraes.

13
MTODOS DE OTIMIZAO

5.2.2 Toolbox (2 problema)

Figura 7: Parmetros Toolbox Problema 2

14
MTODOS DE OTIMIZAO

5.2.3 Toolbox (3 problema)

Figura 8: Parmetros Toolbox Problema 3

15
MTODOS DE OTIMIZAO

5.2.4 Toolbox (3 problema)

Figura 9: Parmetros Toolbox Problema 4

6. RESULTADOS
Aps rodarmos a Toolbox para cada problema chegamos nos seguintes resultados para cada
problema:
16
MTODOS DE OTIMIZAO

Figura 10: Resultado do problema 1

17
MTODOS DE OTIMIZAO

Figura 11: Resultado do problema 2

Figura 12: Resultado do problema 3

18
MTODOS DE OTIMIZAO

Figura 13: Resultado do problema 4

6.1 Comentrios
Podemos observar nos grficos acima o resultado das interaes do AG, cada figura contm dois
grficos, o primeiro traz a informao da penalidade com relao a FOB, ou seja notamos como a FOB
altamente penalizada no comeo das geraes, isso se d pelo fato de no comeo haver nmeros repetidos
nas linhas, colunas ou quadros, fazendo com que nossa FOB seja penalizada, isso vai se diminuindo com o
nascimento de novos indivduos.

O segundo grfico mostra a soluo tima, quando nossa FOB vai para zero e nosso problema
converge, sendo o eixo x as variveis e o eixo do y o valor dessas variveis, podemos ver que de fato um
problema bem complexo se torna muito fcil usando o AG.

19
MTODOS DE OTIMIZAO

7. CONCLUSO
Na engenharia, nos deparamos a cada dia com problemas muito complexos de otimizao, no
qual a busca pelo melhor custo algo de extrema importncia para o desenvolvimento das
tecnologias, tais problemas se tornam muitas vezes problemas de grande porte e extrema
complexidade se tornando invivel resolve-los pelos mtodos tradicionais de otimizao, sendo de
extrema importncia o uso de algoritmos evolucionrios para resolve-los.
No problema proposto apesar de pequeno e simples exige uma certa complexidade, o AG se
mostrou altamente eficiente em sua resoluo, mostrando que de fato o algoritmo funciona e
pode ser aplicado em todas as reas da engenharia.

8. REFERNCIAS BIBLIOGRFICAS

[1] LUCAS, Diogo C. Algoritmos Gentios: uma Introduo. Porto Alegre, 2002. 48 p. Disciplina de
Ferramentas de Inteligncia Artificial .

[2]JNIOR, Ivo Chaves da Silva. Mtodos de Otimizao . Disponvel em


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

20

You might also like