Professional Documents
Culture Documents
MTODOS DE
OTIMIZAO
Algoritmo Gentico
MATRCULA: 201069036A
201069038B
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.
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
3.1 Regras
Os quadrados em branco podem assumir os seguintes valores: 1, 2, 3 e 4.
Entretanto, cada nmero s pode aparecer:
4
MTODOS DE OTIMIZAO
4.1- Caractersticas do AG
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.
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.
6
MTODOS DE OTIMIZAO
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)
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
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
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.
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)))
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;
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.
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)))
fob2=fob2*100000000;
end
10
MTODOS DE OTIMIZAO
fob2=fob2*100000000;
end
fitness = fob2;
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)))
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;
11
MTODOS DE OTIMIZAO
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)))
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;
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
13
MTODOS DE OTIMIZAO
14
MTODOS DE OTIMIZAO
15
MTODOS DE OTIMIZAO
6. RESULTADOS
Aps rodarmos a Toolbox para cada problema chegamos nos seguintes resultados para cada
problema:
16
MTODOS DE OTIMIZAO
17
MTODOS DE OTIMIZAO
18
MTODOS DE OTIMIZAO
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 .
20