Você está na página 1de 6

OTIMIZAÇÃO FUNÇÕES UTILIZANDO ALGORITMOS GENÉTICOS NO

APLICATIVO MS EXCEL

Miquéias Augusto Ferreira Nantes1, Douglas Peixoto de Carvalho1 (Alunos do Curso de


Matemática da Universidade Anhanguera - Uniderp) Celso Correia de Souza e José
Francisco dos Reis Neto2 (Orientadores: Professores da Universidade Anhanguera -
Uniderp)

RESUMO

Problemas de otimização de funções (máximo/mínimo), são bastante conhecidos e estudados


intensivamente em cursos de graduação, na disciplina de Cálculo Diferencial. Para a aplicação do
Cálculo Diferencial na otimização de uma função, é necessário que a mesma seja derivável no
espaço de busca, o que nem sempre é possível assegurar. Existem vários métodos iterativos na
literatura para a resolução desse problema, mas a maioria deles está atrelado à derivada da função.
A técnica dos Algoritmos Genéticos, modelo matemático pertencente às metas-heurísticas, é eficiente
na busca de soluções otimizadas, ou aproximadamente ótimas, numa grande variedade de
problemas, dado que não possuem as diversas das limitações encontradas nos métodos tradicionais
de busca, como essa exigência da derivada da função. O objetivo desse trabalho foi o de otimizar
uma função de duas variáveis utilizando Algoritmos Genéticos na sua implementação. Os resultados
foram considerados bons visto que se conseguiu o ótimo da função sem passar pela derivabilidade
da mesma.

INTRODUÇÃO

A otimização visa determinar a melhor configuração de projeto de um dado sistema


sem ter que testar todas as possibilidades. Em síntese, pode-se dizer que otimização é o
processo de ajuste de características de um dado processo, matemático ou experimental,
para se encontrar o valor máximo ou mínimo da função associada ao referido processo, que
represente seu desempenho, obedecendo a todas as restrições impostas.
Otimização liga-se à matemática através da investigação dos máximos e mínimos
locais de funções. Isto é, dos "valores estacionários da função" (que ocorrem quando a
derivada se anula) se quisermos utilizar a linguagem apropriada do Cálculo Diferencial
(GUIDORIZZI, 2001; LEITHOLD, 1994) .
Acontece que nem sempre o "ótimo" sai de pronto, num único cálculo. É necessário
um processo sistemático de busca. Um procedimento iterativo de cálculos que, passo a
passo, de candidato a candidato, permita-nos ir melhorando a seleção. Até que o ótimo seja
encontrado, ou até que estejamos satisfeitos. Estamos, portanto, falando de algoritmos. A
construção de bons algoritmos é a principal vocação da otimização.
Algoritmos Genéticos são algoritmos de busca estocásticos que têm
desenvolvimento e funcionamento vinculados à genética, em que todas as novas espécies
são produzidas por meio de uma seleção natural em que os mais aptos sobrevivem,
gerando descendentes. Cada individuo na população representa uma possível solução para
um dado problema, o que o Algoritmo Genético faz é buscar aquela solução que seja muito
boa ou a melhor do problema, analisado através da criação de população de indivíduos
cada vez mais aptos, levando à otimização da função (GOLDBARG.e PACCA, 2000).
Otimizar funções sujeitas a restrições em seu conjunto de busca, com o auxílio dos
Algoritmos Genéticos na forma binária, com a utilização do aplicativo MS Excel.
MATERIAL E MÉTODOS

Na forma analógica, a implementação dos Algoritmos Genéticos parte de uma


população indivíduos gerados aleatoriamente (configurações iniciais de um problema),
realiza-se a avaliação de cada um (em relação a função objetiva), seleciona os mais aptos e
promove os manipuladores ou operadores genéticos como cruzamento e mutação,
originando novas gerações de indivíduos. Cada individuo na população representa uma
possível solução para um dado problema, o que o AG faz é buscar aquela solução que seja
muito boa ou a melhor do problema analisado através da criação de população de
indivíduos cada vez mais aptos levando à otimização da função objetiva.
A aplicação dos Algoritmos Genéticos consta dos seguintes passos (LINDEN, 2008;
VIANNA, 1998):
a) Escolha da População - a inicialização da população é feita da forma mais
simples possível, fazendo-se uma escolha aleatória independente para cada individuo da
população inicial ou por processo heurístico, isto é, simplesmente escolher n indivíduos
dentro do espaço de busca. Essa técnica permite gerar uma boa distribuição, cobrindo um
espaço maior no espaço de busca, sem interessar se são boas soluções ou não, assim
como na natureza, para haver evolução é necessário diversidade.
b) Avaliação - a função de avaliação, ou função objetiva, é utilizada para determinar
a qualidade de um individuo como solução do problema, ou seja, é uma forma de mensurar
quão aptos estão os indivíduos da população. A função de avaliação deve refletir os
objetivos a serem alcançados na resolução de um problema e é derivada diretamente das
condições impostas pelo problema;
c) Seleção - a seleção dos indivíduos da população deve simular o mecanismo de
seleção natural, sobrevivência dos mais fortes , em que os pais mais aptos geram mais
filhos. O algoritmo permite, também, que alguns indivíduos menos aptos gerem filhos,
garantindo a diversidade entre os indivíduos melhores e os piores. Se apenas os melhores
indivíduos se reproduzirem a população tenderá a ser cada vez mais semelhante, não
ocorrendo à evolução.
Há diversas formas de seleção dos indivíduos reprodutores, entre elas foi usada
neste trabalho o método da Roleta Viciada que emprega o principio da probabilidade de
sobrevivência do mais apto, ou seja, que possui a melhor função objetiva associada.
Assim, os indivíduos com alta aptidão recebem uma proporção maior na roleta e os
indivíduos com baixa aptidão uma porção relativamente menor na roleta. O ato de rodar a
roleta deve ser completamente aleatório, podendo ser simulado escolhendo-se um número
aleatório r no intervalo [0, 1] e comparar seu valor com a probabilidade acumulada qi ,
considerando q 0 0 . Assim, se qi 1 r qi deve-se selecionar o individuo xi .
d) Elitismo - visa preservar os melhores cromossomos de uma geração para outra
sem alterações, garantindo sempre melhor solução encontrada em qualquer uma das
gerações será mantida até o final do processo. Geralmente usa-se nos Algoritmos
Genéticos uma taxa de elitismo de 30% do total de indivíduos gerados.
A principal vantagem deste método é que a convergência é garantida, isto é, se o máximo
global for descoberto, o Algoritmo Genético converge para esse máximo, entretanto, da
mesma forma existe o risco da estagnação em um máximo local.
e) Cruzamento - o cruzamento ou crossover é em processo de recombinação de
partes das seqüências de caracteres entre pares de cromossomos, com o objetivo de gerar
nova descendência. Esta troca de material genético garante a recombinação da população,
possibilitando, assim, uma probabilidade maior de produzir indivíduos mais evoluídos que
seus pais. No cruzamento é usual atribuir um percentual PX de indivíduos para
cruzamentos, na faixa de 25% a 75% da população. Existem muitos tipos de cruzamento,
serão apresentados os mais comuns:
f) Mutação - este operador é responsável pela introdução e manutenção da
diversidade genética na população. O operador de mutação inverte os valores de bits, ou
seja, muda o valor de dado bit de 1 para 0 ou de 0 para 1, com o objetivo de tentar
regenerar algum individuo que possa ter sido eliminado de forma inesperada. Para que uma
determinada população não sofra muitas alterações, esta operação é processada para um
pequeno percentual PM de seus elementos, em torno de 1% de todos os genes.
Após as operações de cruzamento e mutação, com a obtenção de uma nova
população, que deve ser avaliada nos novos pontos do espaço de busca. Espera-se que os
novos valores da função sejam melhores do que o anterior, atingindo umas precisão
desejada. Se a solução atual não satisfizer a precisão adotada, repetem-se os passos
anteriores para a nova população gerada.

RESULTADOS E DISCUSSÃO

O problema a ser minimizado foi uma função não-linear de duas variáveis no domínio
de busca considerado (Eq. 1).
Min F ( x, y ) x2 y2 (3 x 4y 26) 2 (Eq. 1)
0 x 10
s/a
0 y 20

A entrada de dados (população inicial) constou de 20 indivíduos dispostos em uma


planilha Excel (Quadro 1).

Quadro 1: População inicial em x e y, os seus correspondentes binários e os


valores das aptidões.

Nas duas primeiras colunas foram geradas duas populações aleatórias para x e para
y, em seguida, na terceira e na quarta colunas, os números decimais foram transformados
em códigos binários, depois se obteve os valores das populações de x e de y dentro de
intervalo de busca, (Eq.1), para serem substituídas na função. Como o problema é de
mínimo calculou-se, na última coluna do Quadro 1, os valores de 1/F(x,y), para que se
pudesse aplicar o algoritmo de maximização desenvolvido no referencial teórico..
Após dezoito iterações, feitas em planilhas MS Excel, o algoritmo convergiu para o
ótimo da função (Eq. 1), obtendo-se os valores x= 3 e y = 4 e 1/F(3,4) = 26, o valor mínimo.
No Quadro 2 estão representados somente 4 elementos após a convergência, mesmo
porque todas as 20 linhas são perfeitamente iguais (convergência).

Quadro 2: População final x e y ótima após a convergência em 18 iteraçãoes.

CONCLUSÕES

Os Algoritmos Genéticos podem ser aplicados em uma série de problemas de


difíceis otimizações, quando não existe nenhuma outra técnica especifica para resolver o
problema, pois o seu custo computacional é alto, principalmente quando implementado no
MS Excel. Assim, pode-se citar: otimização de funções numéricas em geral (de uma ou mais
variáveis); otimização combinatória tais como o problema do caixeiro viajante, o problema
clássico da mochila e o problema de empacotamento; alocação de recursos; e aprendizado
de máquina.

REFERÊNCIAS BIBLIOGRÁFICAS

GOLDBARG, M. C. e PACCA, H. L. L. Otimização Combinatória e Programação Linear:


Modelos e Algoritmos. Rio de Janeiro: Editora Campus, 2000.

GUIDORIZZI, H.: Um Curso de Cálculo (4 volumes). LTC, 2001.

LEITHOLD, L.: O Cálculo com Geometria Analítica (2 volumes). Harbra, 1994

LINDEN, R. Algoritmos genéticos. Rio de Janeiro: Brasport, 2008.

VIANA, G. V. R,. Metas-heuristicas e programação paralela em otimização


combinatória, Fortaleza: EUFC, 1998.
This document was created with Win2PDF available at http://www.win2pdf.com.
The unregistered version of Win2PDF is for evaluation or non-commercial use only.

Você também pode gostar