universidade federal de santa catarina programa … · viajante, e os resultados obtidos estão...
TRANSCRIPT
UNIVERSIDADE FEDERAL DE SANTA CATARINA PROGRAMA DE PS-GRADUAO EM CINCIA DA
COMPUTAO
RANGEL GUSTAVO RAULINO
UMA ABORDAGEM HBRIDA PARA SOLUCIONAR PROBLEMAS DE OTIMIZAO ATRAVS DOS
ALGORITMOS: GENTICO E SIMULATED ANNEALING
Dissertao submetida Universidade Federal de Santa Catarina como parte dos requisitos para a obteno, do grau de Mestre em Cincia da Computao
Prof. Jos Mazzucco Junior, Dr. Orientador
Florianpolis, Maio de 2002
UMA ABORDAGEM HBRIDA PARA SOLUCIONARPROBLEMAS DE OTIMIZAO ATRAVS DOS
ALGORITMOS: GENTICO E SIMULATED ANNEALING
RANGEL GUSTAVO RAULINO
Esta dissertao foi julgada adequada para a obteno do Ttulo de
Mestre em Cincia da Computao
rea de Concentrao: Sistemas de Computao, e aprovada em sua forma final pelo Curso de Ps-Graduao em Cincia da Computao - CPGCC
Dedico este trabalho minha famlia, pelo apoio recebido,
no apenas neste momento, mas durante
toda minha vida acadmica.
IV
Agradecimentos
Primeiramente a Deus, pois ele o responsvel por tudo de bom que me acontece, inclusive
a concluso deste trabalho.
Ao professor Jos Mazzucco Junior pela orientao, mas acima de tudo pela amizade que
ele demonstrou em todos os momentos.
A meus pais, Sirio Jos Raulino e Isalete Raulino, por toda a fora e incentivo que me
deram ao longo de minha vida.
A minha namorada, presena importante em minha vida, ela contribuiu em muito, me
apoiando e incentivando durante todo o tempo.
A todos os colegas e amigos, principalmente ao meu amigo Danton Cavalcante Franco
Junior. Com certeza foi atravs do apoio destes que encontrei motivao para seguir em
frente.
A todos aqueles que direta ou indiretamente contriburam para a realizao deste trabalho.
Resumo
Este trabalho tem como objetivo principal o desenvolvimento de uma abordagem
hbrida para a soluo de problemas de otimizao, em especial os combinatrios.
Esta nova abordagem tem como base dois dos mais importantes modelos
computacionais inteligentes utilizados na otimizao de problemas, os algoritmos: gentico
e simulated annealing. O primeiro baseia-se na evoluo natural e cromossmica das
espcies vivas e o segundo no recozimento (annealing) de slidos. Ambos so algoritmos
de otimizao (algoritmos que buscam por uma soluo aceitvel, o que no garante que a
mesma seja a melhor).
Nesta abordagem, o algoritmo gentico utilizado como algoritmo principal e o
algoritmo simulated annealing introduzido no processo do algoritmo gentico como
sendo um operador gentico.
Para avaliar o desempenho desta nova abordagem, foram realizados testes utilizando
um dos mais conhecidos benchmarks na rea de otimizao, o problema do caixeiro
viajante, e os resultados obtidos esto demonstrados neste trabalho.
vi
Abstract
This work has as main objective the development of a hybrid approaching for the
solution of optimization problems, specially the combinatorious.
This new approaching has as base two of the most important and intelligent
computational models used in the optimization of problems, the algorithms: genetic and
simulated annealing. The first one is based on the natural and chromosomic evolution of
live species and the second on the annealing of solids. Both are optimization algorithms
(algorithms that search for an acceptable solution, what does not guarantee it will be the
best solution).
In this approaching the genetic algorithm is used as the main algorithm and the
simulated annealing algorithm is introduced in the process of the genetic algorithm as being
a genetic operator.
Understanding the execution this approaching, tests were made using on of the most
well-known benchmarks in the optimization field, the travelling salesman problem, and the
results are demonstrated in this work.
Sumrio
1 Introduo ................................................................................................................................1
1.1 Motivao.........................................................................................................................3
1.2 Objetivo do trabalho........................................................................................................ 3
1.3 Organizao do texto....................................................................................................... 3
2 Otimizao ................................................................................................................................5
2.1 Conceituao bsica......................................................................................................... 5
2.2 Especificao formal....................................................................................................... 7
2.3 Critrios para otimizao................................................................................................. 8
2.4 Mtodos de otimizao....................................................................................................8
2.4.1 Programao linear.............................................................................................9
2.4.2 Branch and bound...............................................................................................9
2.4.3 Busca local................................................. .......................................................10
2.5 Problemas NP-Completos............................................................................................. 12
2.6 timo local e global......................................................................................... ;............ 13
2.7 Problemas conhecidos...................................................................................................13
2.7.1 Corte e empacotamento.................................................................................... 14
2.7.2 Planejamento de tarefas.................................................................................... 14
2.7.3 Caixeiro viajante...............................................................................................14
3 Algoritmo Gentico..................................................................................................................17
3.1 Introduo.......................................................................................................................17
3.2 O que so algoritmos genticos.................................................................................... 21
3.3 Representao cromossmica...................................... ................................................23
3.4 Fluxo do algoritmo gentico.........................................................................................25
3.4.1 Processo de inicializao.................................................................................. 26
3.4.2 Processo de avaliao....................................................................................... 26
3.4.3 Processo de seleo........................................................................................... 27
3.4.4 Operadores genticos........................................................................................ 32
3.4.4.1 Cruzamento (Crossover) ............................................................................... 32
3.4.4.2 Mutao (Mutation) ....................................................................................... 38
3.4.4.3 Inverso.......................................................................................................... 41
3.4.5 Condies de trmino....................................................................................... 42
3.5 Teorema dos esquemas.................................................................................................. 43
3.6 Blocos de construo..................................................................................................... 43
3.7 Variaes de algoritmos genticos............................................................................... 44
3.7.1 Algoritmos genticos elitistas.......................................................................... 44
3.7.2 Algoritmos genticos paralelos........................................................................ 45
3.7.3 Algoritmos genticos com populao de tamanho varivel............................45
3.7.4 Algoritmos genticos hbridos......................................................................... 46
3.8 Problemas prticos de algoritmos genticos.................................................................46
3.8.1 Determinao de parmetros............................................................................ 47
3.8.2 Erros de amostragem.........................................................................................47
3.8.3 Convergncia prematura................................................................................... 48
3.8.4 Balano explorao-explorao....................................................................... 49
3.8.5 Tempo de processamento................................................................................. 49
4 Algoritmo Simulated Annealing.............................................................................................. 50
4.1 Introduo.......................................................................................................................50
4.2 Simulated annealing no processo de otimizao......................................................... 52
4.3 Desempenho do algoritmo............................................................................................. 54
4.3.1 Temperatura inicial...........................................................................................54
4.3.2 Decremento da temperatura............................................................................. 55
4.3.3 Tamanho da busca.............................................................................................55
4.3.4 Critrio de parada..............................................................................................56
4.4 Simulated annealing paralelo........................................................................................ 56
viii
4.5 Consideraes tericas..................................................................................... ............ 57
5 Mtodo desenvolvido...............................................................................................................58
5.1 Introduo.......................................................................................................................58
5.2 Definio formal do problema...................................................................................... 59
5.3 Modelagem.....................................................................................................................60
5.4 Mtodo proposto............................................................................................................61
5.4.1 Descrio do mtodo........................................................................................ 61
5.4.2 Fluxo do algoritmo gentico AS...................................................................... 62
5.4.3 Representao cromossmica.......................................................................... 65
5.4.4 Avaliao da populao.................................................................................... 65
5.4.5 Seleo da populao........................................................................................ 66
5.4.6 Operadores genticos........................................................................................ 66
5.4.7 Operador de mutao SA.................................................................................. 67
5.5 Implementao...............................................................................................................67
5.6 Estrutura de dados..................................................... ............ ........................................67
5.6.1 Procedimentos...................................................................................................69
6 Anlise dos resultados..............................................................................................................76
6.1 Metodologia utilizada....................................................................................................76
6.1.1 Origem das instncias....................................................................................... 77
6.1.2 Avaliao...........................................................................................................78
6.1.3 Populao inicial...............................................................................................79
6.2 Ajuste dos parmetros...................................................................................................79
6.2.1 Ajuste dos parmetros relacionados ao algoritmo gentico............................80
6.2.2 Ajuste dos parmetros relacionados ao algoritmo simulated annealing........81
6.3 Resultados obtidos.........................................................................................................82
6.4 Comentrios finais.........................................................................................................86
7 Consideraes finais.................................................................................................................87
7.1 Concluses......................................................................................................................87
7.2 Proposta para novas pesquisas......................................................................................88
Lista de figuras
Figura 1: Busca local presa em um mnimo local...................................................................... 11
Figura 2: Instncia de um problema do caixeiro viajante..........................................................15
Figura 3: Figura 3: Termos mais utilizados em algoritmos genticos......................................24
Figura 4: Converso do valor da aptido para o valor da expectativa MAZZUCCO (1999)...29
Figura 5: Mtodo de seleo denominado de roleta...............................................................31
Figura 6: Exemplo de cruzamento de um ponto........................................................................ 33
Figura 7: Exemplo de cruzamento multiponto...........................................................................34
Figura 8: Exemplo de cruzamento invlido............................................................................... 35
Figura 9: Exemplo de cruzamento com o operador OX............................................................ 36
Figura 10: Exemplo de cruzamento com o operador PMX....................................................... 36
Figura 11: Exemplo de um cruzamento com o operador CX.................................................... 37
Figura 12: Exemplo de mutao................................................................................................. 39
Figura 13: Exemplo de mutao baseada em posio................................................................40
Figura 14: Exemplo de mutao baseada em ordem..................................................................40
Figura 15 Exemplo de mutao mista........................................................................................ 41
Figura 16: Exemplo de inverso................................................................................................. 42
Figura 17: Exemplo de seleo................................................................................................... 48
Figura 18: Estratgia do algoritmo simulated annealing...........................................................54
Figura 19. Exemplo de instncia em grade 4X4........................................................................ 78
Figura 20: Resultados obtidos com as instncias de 76 el52 cidades...................................... 83
Figura 21: Resultados obtidos com as instncias de 299 e 1004 cidades................................. 83
Figura 22: Resultados obtidos com as instncias de 100 e 144 cidades................................... 85
Figura 23: Resultados obtidos com as instncias de 324 e 1024 cidades................................. 85
Lista de quadros
Quadro 1: Algoritmo de busca local........................................................................... ............... 11
Quadro 2: Fluxo bsico de um algoritmo gentico....................................................... ............ 25
Quadro 3: Fluxo bsico do algoritmo simulated annealing.......................................................53
Quadro 4: Fluxo do algoritmo gentico original........................................................................63
Quadro 5: Fluxo do algoritmo gentico SA................................................................................63
Quadro 6: Fluxo do operador de mutaoSA............................................................................ 64
Quadro 7: Estrutura de uma cidade.............................................................................................68
Quadro 8: Estrutura de uma rota................................................................................................. 69
Quadro 9: Estrutura da populao.............................................................................................. 69
Quadro 10: Funo de clculo da distncia entre duas cidades.................................................70
Quadro 11: Funo que calcula o tamanho de um percurso......................................................70
Quadro 12: Procedimento algoritmo gentico............................................................................71
Quadro 13: procedimento de clculo da aptido........................................................................72
Quadro 14: Procedimento de seleo..........................................................................................73
Quadro 15: Procedimento que aplica os operadores genticos................................................. 74
Quadro 16: Procedimento que aplica os operadores genticos.................................................75
xi
CAPTULO 1
Introduo
A pesquisa sobre modelos computacionais inteligentes tem, nos ltimos anos, se
caracterizado pela tendncia em buscar a inspirao na natureza (lugar onde se pode dizer
que existem inmeros processos considerados inteligentes). Para cientistas de
computao, matemticos e engenheiros, muitas das solues que a me natureza
encontrou, para problemas complexos de adaptao, fornecem modelos prticos
interessantssimos. Com base nestas solues tem-se buscado inspirao para a criao de
modelos computacionais que auxiliam na resoluo de problemas das mais diversas reas
TANOMARU (1995).
Inspirado na natureza, a rea de otimizao teve um considervel aumento em
estudos baseados em tais modelos. Um dos principais motivos que levam ao estudo destes
modelos o fato de que a maioria dos problemas de otimizao de larga escala no
possuem uma soluo tima em um tempo vivel, podendo apenas ser resolvido de forma
aproximada. No contexto de otimizao, grande parte dos problemas so ditos NP-
Completos (um problema no polinomial, indicando que o espao de busca por solues
cresce exponencialmente com as dimenses do problema) LAARHOVEN & AARTS
(1987).
Para a resoluo destes problemas existem inmeras pesquisas com abordagens
baseadas em tcnicas de otimizao de busca local. Estas tcnicas de otimizao
normalmente utilizam como base os algoritmos: gentico, tabu search e simulated
annealing MAZZUCCO (1999).
2
Este trabalho concentra-se no estudo da utilizao de dois destes modelos para a
soluo de problemas de otimizao, os algoritmos: gentico e simulated annealing. O
enfoque principal o algoritmo gentico, que ter um novo operador chamado de mutao
SA (baseado no algoritmo simulated annealing).
Algoritmos genticos (AGs) so mtodos computacionais de busca baseados nos
mecanismos da evoluo natural e na gentica. Em AGs, uma populao de possveis
solues para o problema em questo evolui de acordo com operadores probabilsticos
concebidos a partir de metforas biolgicas, de modo que h uma tendncia de que, na
mdia, os indivduos representem solues cada vez melhores medida que o processo
evolutivo continua TANOMARU (1995).
Segundo BENDER (1985) e AARTS & KORST (1989), simulated annealing (S A)
um mtodo computacional para resoluo de problemas de otimizao baseado no
recozimento de slidos que foi inicialmente introduzido pelos trabalhos de KIRKPATRIK
et al. (1983) e CERNY (1985).
Este trabalho pretende utilizar a potencialidade destes dois mtodos, em conjunto,
para obter melhores resultados, quando aplicados a problemas de otimizao.
Para demonstrar os resultados obtidos com esta nova abordagem utilizado um dos
mais conhecidos e estudados problemas de otimizao, denominado de problema do
caixeiro viajante. Este um problema aparentemente bem simples, onde um caixeiro
viajante possui um determinado nmero de cidades a percorrer e o deve fazer passando uma
e somente uma vez por cada cidade e retomar ento a cidade inicial, visando minimizar o
custo da viagem LIN (1965). A escolha do problema do caixeiro viajante foi baseada no
fato deste problema ser um dos benchmarks mais utilizados para avaliar a eficincia dos
mtodos de otimizao. Os resultados obtidos com esta nova abordagem esto descritos
neste trabalho.
3
1.1 Motivao
Este trabalho foi motivado no crescente estudo de modelos computacionais para a
soluo de problemas de otimizao, demonstrando ser uma rea de estudos muito
interessante e com um futuro promissor.
1.2 Objetivo do trabalho
O objetivo principal deste trabalho est centrado no desenvolvimento de uma nova
abordagem, com a utilizao dos algoritmos: gentico e simulated annealing, combinados,
para a otimizao de problemas, em especial o problema do caixeiro viajante.
1.3 Organizao do texto
A estrutura bsica deste trabalho esta dividida em 7 captulos organizados da
seguinte forma:
No captulo 2, introduzido uma fundamentao bsica conceituai a respeito de
problemas de otimizao, problemas NP-Completos e alguns dos mtodos utilizados na
resoluo dos mesmos.
O captulo 3 aborda inicialmente o processo da evoluo biolgica natural que
constitui a inspirao inicial do algoritmo gentico. Ento, o algoritmo introduzido
atravs da apresentao de seu processo e seus principais operadores. Finaliza com a
apresentao formal de sua potencialidade.
No captulo 4, introduzida uma fundamentao bsica a respeito do algoritmo:
simulated annealing, onde os principais elementos bsicos deste mtodo so revistos.
No captulo 5, esto definidos os mtodos utilizados para a utilizao em conjunto
dos algoritmos estudados.
4
No captulo 6 apresentada a metodologia utilizada para a obteno dos resultados,
bem como as argumentaes sobre decises e ajustes de parmetros. Tambm fez parte
desse captulo uma anlise comparativa entre os resultados computacionais obtidos com o
mtodo proposto.
O trabalho termina com o captulo 7, onde so apresentadas as consideraes finais e
tambm propostas para novos estudos no assunto.
CAPTULO 2
Otimizao
O objetivo deste captulo introduzir uma viso geral do contexto no qual este
trabalho se insere. Inicialmente apresentada uma viso geral a respeito dos problemas de
otimizao e alguns dos mtodos utilizados para a soluo dos mesmos, incluindo o mtodo
de busca local (mtodo que serve como base para os algoritmos estudados). Em seguida so
abordados alguns dos problemas de otimizao mais conhecidos, incluindo o problema do
caixeiro viajante (problema utilizado para avaliar os resultados obtidos).
2.1 Conceituao bsica
Entendemos por otimizao, no um processo de busca do melhor absoluto, mas a
procura sistemtica do melhor prtico. Algumas vezes, conhecer o mecanismo de um certo
problema, determinando as relaes entre suas variveis, j constitui um avano
considervel no caminho de sua soluo NOVAES (1978).
Segundo YONEYAMA & NASCIMENTO (2000), o processo de otimizao pode
ser descrito da seguinte forma: a determinao de uma ao que proporciona um mximo
de benefcio, medido por um critrio de desempenho pr-estabelecido.
Um problema de otimizao pode ser tanto um problema de minimizao ou
maximizao, dependendo do problema, e especificado por um conjunto de instncias
(provveis solues) do problema em questo AARTS & KORST (1989).
6
Estes problemas esto naturalmente divididos em duas categorias: os problemas com
variveis contnuas e os problemas com variveis discretas, chamados combinatrios. Nos
problemas contnuos o que se procura um conjunto de nmeros reais ou mesmo uma
funo, nos problemas combinatrios o que se procura um objeto dentre um finito ou
contabilmente infinito conjunto de provveis solues (tipicamente um inteiro, permutao,
conjunto ou grfico) PAPADIMITRIOU (1982).
Durante as ltimas dcadas, uma grande coleo de problemas desta natureza tem
surgido (nas mais diversas reas como a cincia, computao, engenharia, etc), junto com
uma coleo correspondente de tcnicas para a soluo dos mesmos. Estas tcnicas so
quase sempre essencialmente iterativas e sua convergncia estudada utilizando a
matemtica da anlise real PAPADIMITRIOU (1982).
Uma importante descoberta no campo de otimizao, obtida no final da dcada de
1960, a suposio, ainda no verificada, de que existe uma classe de problemas de
otimizao de tal complexidade que qualquer algoritmo, resolvendo cada instncia do
problema para um resultado timo, requer um esforo combinatrio que cresce super-
polinomialmente com o tamanho do problema AARTS & KORST (1989). Isto resultou na
distino entre problemas fceis e problemas difceis, denominados NP-Completos.
Entretanto, estes problemas ainda precisam ser resolvidos e na construo de
algoritmos para soluo dos mesmos pode-se optar por dois caminhos. Um caminho que
ainda busca por solues timas sobre o risco de tempos de execuo muito longos ou
possivelmente impraticveis. Outro caminho que busca por solues rpidas sobre o risco
de solues sub-timas (solues prximas s timas) em um tempo de processamento
aceitvel TANOMARU (1995).
Adicionalmente os dois casos ainda podem ser distinguidos entre algoritmos gerais e
algoritmos costurados (tailored). Os algoritmos gerais podemser aplicados a uma grande
variedade de problemas podendo ser chamados de independentes do problema, j os
algoritmos costurados usam informaes especficas acerca do problema tomando sua
aplicao limitada a um nmero restrito de problemas TANOMARU (1995).
7
2.2 Especificao formal
Segundo AARTS & KORST (1989), NOVAES (1978) e PAPADEVflTRIOU (1982),
uma instncia de um problema de otimizao pode ser formalizada como sendo um par (S,
J), onde o espao de solues S indica o conjunto finito de todas as possveis solues e a
funo de custo/ um mapeamento definido como:
f :S -> lR (2.1)
No caso de minimizao, o problema achar uma soluo Iopt S que satisfaa:
f(I0pt) ^f(l), para todo I S (2.2)
No caso de maximizao, achar Iopt que satisfaa:
f(Iopt) >f(I),para todoIeS (2.3)Resumindo, encontrar uma soluo com a menor (ou maior) funo de custo dentre
todas as possveis solues. Em muitos exemplos a funo de custo receber somente
valores inteiros no negativos.
Tal soluo Iopt denominada de timo-global, mnima ou mxima, ou
simplesmente tima, mnima ou mxima;./p* =ffloPt) indica o custo timo e Sopt o conjunto
de solues timas NOVAES (1978).
E importante se fazer uma distino entre problema e instncia de problema.
Informalmente, em uma instncia temos os dados de entrada e temos informao
suficiente para se obter uma soluo; um problema uma coleo de instncias, geralmente
todas geradas da mesma forma PAPADEVUTRIOU (1982).
8
2.3 Critrios para otimizao
Segundo NOVAES (1978), as tcnicas de otimizao so baseadas em duas
premissas implcitas de conseqncias importantes na aplicao prtica. Em primeiro lugar
admite-se que possa ser definida uma "funo objetivo" (funo que exprime atravs de
uma escala nica a medida de mrito do sistema analisado, ou seja, o quanto a soluo
analisada boa dentro do problema em questo). A segunda premissa refere-se ao carter
determinstico da avaliao: admite-se que as relaes entre as variveis dependentes e os
parmetros independentes ocorram deterministicamente, em outras palavras, um
determinado conjunto de valores das variveis independentes deve produzir apenas um
resultado na funo objetivo.
Na prtica estas premissas freqentemente no so satisfeitas. Em muitos casos
observa-se uma pluralidade de objetivo a satisfazer. Este problema pode ser resolvido
buscando uma medida de custo aproximada (mas nica), efetuando-se uma anlise de
sensibilidade dos resultados para se levar em conta as eventuais caractersticas aleatrias
das variveis envolvidas NOVAES (1978).
2.4 Mtodos de otimizao
Segundo TANOMARU (1995), dentro de uma classificao grosseira, existem
essencialmente trs mtodos gerais de otimizao: mtodos numricos, enumerativos e
probabilsticos.
Mtodos numricos: os mtodos numricos podem ser divididos em analticos ou
baseados em clculos numricos. Os mtodos analticos de otimizao so aplicveis
basicamente quando a funo de custo/ explicitamente conhecida e derivvel, ou pode ser
aproximada por alguma funo derivvel at o grau desejado de preciso. Neste caso, basta
resolver as equaes que resultam de igualar as derivadas da funo a zero dentro do
espao de busca. Nos mtodos baseados em clculo numrico, quando o espao de busca
linear e, portanto, convexo, tcnicas de pesquisa operacional, como o mtodo simplex, so
9
suficientes. J em ambientes no-lineares, tcnicas de gradientes ou de estatsticas de alta
ordem so geralmente empregadas.
Mtodos enumeratvos: estes mtodos examinam cada ponto do espao de busca,
um a um, em busca dos pontos timos. A idia pode ser intuitiva mas obviamente
impraticvel quando o nmero de pontos a examinar toma-se extremamente grande ou,
como em muitos casos, possivelmente infinito.
Mtodos probabilsticos: mtodos probabilsticos so mtodos que empregam a
idia de busca probabilstica, o que no quer dizer que so mtodos totalmente baseados na
sorte, como o caso dos chamados mtodos aleatrios.
2.4.1 Programao linear1
Programao linear uma tcnica utilizada para resolver uma determinada classe de
problemas em que se procura alocar recursos limitados a atividades ou decises diversas, de
maneira tima. Este tipo de problema aparece freqentemente nos setores de planejamento
e operaes de indstrias, empresas de transporte, rgos governamentais, etc. Dentre as
diversas tcnicas de pesquisa operacional, a programao linear talvez a mais conhecida e
utilizada em suas diversas formas NOVAES (1978).
2.4.2 Branch and bound
Mtodos branch and bound fazem parte dos mtodos de otimizao enumeratvos.
So mtodos que buscam por uma soluo tima atravs da verificao exaustiva de todas
as possibilidades.
1 O termo linear significa que todas as funes definidas do modelo matemtico que descreve o problema
devem ser lineares.
10
O princpio do branch and bound a enumerao de todas as solues viveis de
um problema de otimizao, diga-se um problema de minimizao, tal que propriedades ou
atributos no compartilhados por qualquer soluo tima so detectados to cedo quanto
possvel. Um atributo (ou ramo da rvore de enumerao) define um subconjunto do
conjunto de todas as solues viveis do problema original onde cada elemento do
subconjunto satisfez este atributo CURY (1999).
2.4.3 Busca local
Os algoritmos de busca local constituem uma interessante classe dos mtodos de
otimizao. So algoritmos baseados em melhoramento gradativo de uma soluo para a
outra pela explorao de sua vizinhana de acordo com algumas regras bem definidas
AARTS & KORST (1989) e PIRLOT (1992).
Uma estratgia de busca local,inicia de uma soluo arbitrria I S e a cada passo n
uma nova soluo In + i escolhida a partir da vizinhana V(lr) da soluo atual /. Isto leva
a definio de uma estrutura de vizinhana em S; para cada I S associado um sub
conjunto V(I) - S chamado de vizinhana de I. A vizinhana de I obtida a partir de I
atravs de um movimento elementar (pequena modificao na soluo corrente que resulta
em uma nova soluo vivel do problema) PIRLOT (1992).
A evoluo da soluo atual In n = 1,2... desenha uma trajetria no espao de busca
S. O critrio mais comum para a escolha da prxima soluo I + 1 escolhendo a melhor
soluo dentre a vizinhana de I, ou seja, uma soluo I + i V(In) que satisfaa:
f( in+i) f(I) VIE V(I) (2.5)
11
Ento In + 1 toma-se a nova soluo corrente caso seja melhor que a soluo atual I,
caso contrrio, a busca acaba. O quadro 1 traz um exemplo de algoritmo de busca local.
Nota-se que a escolha de uma boa estrutura de vizinhana extremamente
importante para a eficincia do processo que tem como ponto fraco a inabilidade de escapar
de um mnimo-local, como no exemplo da figura 1, onde um mnimo-local foi escolhido
como sendo a soluo para o problema. Neste caso, todas as possveis solues em sua
vizinhana V(I,) so piores do que a soluo atual embora mais adiante exista uma
soluo melhor que no pode ser alcanada.
Figura 1 : Busca local presa em um mnimo local.
12
AARTS & KORST (1989) sugerem algumas tcnicas alternativas para evitar as
desvantagens de um algoritmo de busca local, tais como:
executar o algoritmo vrias vezes com diferentes instncias inicias (com o custo de um
aumento no tempo de processamento). Escolhem-se os melhores resultados obtidos (o fato
de se executar o algoritmo com diferentes estados iniciais, embora parea bastante intuitivo,
no traz nenhuma garantia de que uma soluo tima ser encontrada, alm de criar um
novo problema a respeito de quantos diferentes estados iniciais seria necessrio para se
obter um resultado aceitvel);
usar as informaes obtidas das execues anteriores do algoritmo para melhorar a
escolha da instncia inicial para a prxima execuo;
introduzir um mecanismo de gerao do prximo estado mais complexo, na tentativa de
saltar os mnimos locais (quanto mais complexo o mecanismo mais conhecimento a
respeito do problema requerido), e
aceitar transies que correspondem a um incremento na funo de custo de um modo
limitado.
2.5 Problemas NP-Completos
Problemas NP-Completos so problemas no-polinomiais, indicando que o espao
de busca por solues cresce exponencialmente com o tamanho do problema. Como
conseqncia direta, estes problemas no podem ser resolvidos, para uma soluo tima,
em uma quantidade razovel de tempo. Intuitivamente, um problema NP-Completo um
problema computacional que to difcil quanto qualquer outro problema
PAPADBVDTRIOU (1982).
Segundo BENDER (1987), CORMEN et al. (1990) e PAPADIMITRIOU (1982)
esta classe de problemas tem as seguintes propriedades:
13
nenhum problema NP-Completo pode ser resolvido por qualquer algoritmo polinomial
conhecido (mesmo com os esforos persistentes de muitos pesquisadores brilhantes durante
dcadas), e
se existir um algoritmo polinomial para qualquer problema NP-Completo, ento
existem algoritmos polinomiais para todos os problemas NP-Completos.
Com base nestes fatos muitas pessoas presumiram que no pode existir nenhum
algoritmo polinomial para qualquer problema NP-Completo, entretanto, ningum conseguiu
provar isto. De feto se acredita que esta prova nunca vir sem o desenvolvimento de
tcnicas matemticas totalmente novas PAPADIMITRIOU (1982).
Os problemas NP-Completos aparecem nas mais diversas reas, tais como: lgica
booleana, grficos, aritmtica, modelagem de redes, problemas de particionamento,
problemas de armazenamento e recuperao, sequenciamento e escalonamento,
programao matemtica, lgebra, jogos, otimizao de programas, etc CORMEN &
LEISERSON (1990)
r
2.6 Otimo local e global
Achar uma soluo dita timo global para uma instncia de alguns problemas
pode ser muito difcil ou mesmo impossvel, mas ainda possvel achar uma soluo / que
a melhor no sentido de que no existe nenhuma soluo melhor em sua vizinhana V(Ir).
A esta soluo damos o nome de timo local PAPADIMITRIOU (1982).
2.7 Problemas conhecidos
Esta seo descreve alguns dos problemas de otimizao mais conhecidos, como:
problemas de corte e empacotamento, planejamento de tarefes e o problema do caixeiro
viajante (problema utilizado para avaliar a abordagem desenvolvida neste trabalho).
14
2.7.1 Corte e empacotamento
Problemas de corte e empacotamento apresentam problemas relacionados
determinao de padres de corte, de unidades de material, de modo a produzirem um
conjunto de unidades menores, satisfazendo a determinadas restries. Dependendo do tipo
de objeto (barra, placas, caixas, e outros) temos os chamados problemas unidimensionais,
bidimensionais, tridimensionais e outros. Os problemas especficos da rea so propcios ao
uso de heursticas2 LORENA (2001).
2.7.2 Planejamento de tarefas
Este um campo interessante e importante na prtica. O problema mais
representativo o chamado job-shop scheduling. Informalmente, o problema da
programao da produo do tipo job-shop pode ser descrito da seguinte forma. So dados
um conjunto de jobs e um conjunto de mquinas. Cada job consiste de uma cadeia de
operaes em que cada uma das quais deve ser processada durante um perodo de tempo
ininterrupto, de um dado tamanho, em uma determinada mquina. Cada mquina pode
processar no mximo uma operao por vez. Um programa consiste da alocao das
operaes em cada mquina. O problema determinar um programa que realize todas as
operaes, no menor tempo possvel MAZZUCCO (1999).
2.7.3 Caixeiro viajante
O problema do caixeiro viajante , provavelmente, um dos mais conhecidos na rea
de otimizao e pode ser definido da seguinte forma: um caixeiro viajante requisitado a
2 Qualquer tcnica usada para melhorar a busca que depende de informaes especiais acerca do problema em
questo WINSTON (1998).
15
visitar cada uma das n cidades uma e somente uma vez. O viajante deve iniciar de qualquer
cidade e retomar a cidade inicial. Que rota, ou excurso ele deve escolher visando
minimizar o total da distncia a percorrer ? LIN (1965).
Na prtica, um problema com n cidades tem seu espao de busca definido pela
permutao:
S = ( n - 1)1/2 (2.6)
Onde S o nmero de rotas distintas que podem ser percorridas. Isto d um nmero
formidvel mesmo para poucas cidades. Para n - 30, por exemplo, h um total de 4,42 X
IO30 rotas distintas. Com um computador capaz de analisar um milho de rotas por
segundo, a busca exaustiva levaria o equivalente a IO7 vezes a idade do universo
TANOMARU (1995).
Na figura 2 temos uma instncia de um problema do caixeiro viajante com oito
cidades e uma possvel soluo definida / = (1, 2, 3, 4, 5, 6, 7, 8). Aqui o espao de busca S
definido, atravs da equao 2.6, pela permutao das 8 cidades somando um total de
2.520 rotas distintas. A funo / a ser minimizada busca encontrar o menor custo para
percorrer todas as cidades entre as possveis rotas. Pode-se notar que, mesmo para uma
quantidade muito pequena de cidades, o espao de busca toma-se assustador.
16
Segundo BRASSARD & BRATLEY (1996), a soluo do problema do caixeiro
viajante, utilizando-se qualquer algoritmo conhecido, toma-se impraticvel para largas
instncias do problema (atualmente problemas com at 4461 cidades j podem ser
resolvidos).
Uma boa amostra de problemas do caixeiro viajante pode ser encontrada em
REINELT (2002).
CAPTULO 3
Algoritmo Gentico
Este captulo aborda, inicialmente, o processo da evoluo biolgica natural que
constitui a inspirao inicial do algoritmo gentico. Ento o algoritmo introduzido atravs
da apresentao de seu processo e seus principais operadores. Finaliza com a apresentao
formal de sua potencialidade.
3.1 Introduo
A teoria da evoluo atravs da seleo natural1 foi inicialmente apresentada por
Charles Darwin em 1853. No ano seguinte, Darwin publica seu livro On the Origin o f
Species by Means o f Natural Selection DARWIN (1953), com sua teoria completa
sustentada por muitas evidncias colhidas durante suas viagens a bordo do Beagle
CARVALHO (2002).
O processo evolutivo se caracteriza pela produo de descendentes modificados de
seus geradores e pela sobrevivncia seletiva de alguns dos descendentes que produziro
novos descendentes. Estes dois aspectos: mudanas durante a reproduo e sobrevivncia
seletiva so suficientes para produzirem geraes de indivduos cada vez melhores (para
1 Princpio da natureza de incorporar nos descendentes de um ser, modificaes que condicionam vantagens
para a sobrevivncia de sua espcie RICIERI (1994).
18
realizarem aquelas tarefas que contribuem para sua habilidade de reproduo) NILSSON
(1998).
Segundo MAZZUCCO (1999), muitas experincias comprovam que a seleo
natural um fato incontestvel, podendo no ser o nico mecanismo evolutivo, porm sem
dvida um dos fatores principais do processo. Uma das principais constataes dessa
evoluo foi alcanada atravs de uma experincia realizada com bactrias. As bactrias
foram expostas a doses de penicilina cada vez maiores e somente as bactrias mais fortes
sobreviviam e se reproduziam. Este processo se repetiu por cinco geraes e no final
apresentou-se uma linhagem de bactrias resistente a uma dose de penicilina duas mil e
quinhentas vezes maior do que a inicial. O importante aqui o fato de que a resistncia
penicilina no foi uma caracterstica desenvolvida individualmente e sim herdada das
geraes anteriores.
Outra constatao interessante foi observada em uma populao de pombos. Os
pombos viviam perto de uma mina de carvo e tinham como cor predominante, a cor preta
(isto porque, com a mina de carvo, o ambiente onde os pombos viviam era sujo e com a
cor preta os pombos conseguiam mais facilmente se camuflar e escapar de seus predadores
naturais). Quando a mina de carvo fechou, com o passar dos tempos observou-se uma
gradativa alterao na cor predominante daquela populao. Os pombos passaram a ter
cores mais claras, (como a mina havia fechado, o ambiente tomara-se mais limpo e com
isso os pombos mais claros se escondiam mais facilmente de seus predadores).
Vista de uma forma global, a evoluo natural implementa mecanismos adaptativos
de otimizao que embora estejam longe de serem uma forma de busca aleatria, com
certeza evoluem aleatoriamente. Na evoluo natural, o problema que cada espcie enfrenta
a busca por adaptaes benficas para um ambiente .complicado e de constantes
mudanas.
Embora os mecanismos que conduzem evoluo natural no estejam ainda
plenamente compreendidos, algumas de suas importantes caractersticas so conhecidas. A
19
evoluo dos seres vivos se processa nos cromossomos2 e parte da criao de um ser vivo
realizada atravs de um processo de decodificao de cromossomos.
Segundo GOLDBERG (1989) e MAZZUCCO (1999), os processos especficos de
codificao e decodificao dos cromossomos ainda no esto totalmente esclarecidos, mas
existem algumas caractersticas gerais na teoria desse assunto que esto plenamente
consolidadas:
a evoluo um processo que se realiza nos cromossomos e no nos seres que os
mesmos codificam;
a seleo natural a ligao entre os cromossomos e o desempenho de suas estruturas
decodificadas. Os processos da seleo natural determinam que aqueles cromossomos bem
sucedidos devem ser reproduzidos mais freqentemente do que os mal sucedidos;
no processo de reproduo que a evoluo se realiza. Atravs da mutao (mutation) o
cromossomo de um ser descendente pode ser diferente do cromossomo de seu gerador.
Atravs do processo de cruzamento (crossover) dos cromossomos de dois seres geradores
tambm possvel que os cromossomos do ser descendente se tomem muito diferentes
daqueles dos seus geradores, e.
a evoluo biolgica no possui memria, a produo de um novo indivduo depende
apenas de uma combinao de genes da gerao que o produz.
O professor John Holland (da universidade de Michigan), em suas exploraes dos
processos adaptativos de sistemas naturais e suas possveis aplicabilidades em projetos de
softwares de sistemas artificiais, no final da dcada de 1970, conseguiu incorporar
importantes caractersticas da evoluo natural em um algoritmo que denominado de
algoritmo gentico. Seus estudos foram formalmente introduzidos em seu livro
Adaptation in Natural and Artifial Systems HOLLAND (1993), MAZZUCCO (1999) e
VACA (1995).
2 Dispositivos orgnicos onde as estruturas destes seres so codificadas.
20
HOLLAND (1993) ficou convencido de que as caractersticas da evoluo biolgica
poderiam ser incorporadas em um algoritmo para construir um mtodo extremamente
simples para a resoluo de complexos problemas, imitando o processo natural da
evoluo. Desta forma, ele comeou a trabalhar em algoritmos que manipulavam cadeias de
dgitos binrios, as quais chamou de cromossomos. Tal como no processo biolgico, seus
algoritmos realizavam evolues simuladas em populaes de cromossomos sem nada
conhecer a respeito do problema a ser resolvido. A nica informao que era concedida, era
a funo de avaliao de cada cromossomo. Desta forma, os cromossomos que melhor
evoluam apresentavam uma tendncia maior de reproduzirem, com mais freqncia, do
que os cromossomos de evoluo ruim.
Segundo GOLDBERG (1989), KOZA & RICE (1994) e VACA (1995), a utilizao
do algoritmo gentico na resoluo de um determinado problema depende fortemente da
realizao dos seguintes passos:
encontrar uma forma adequada de se representar solues possveis do problema em
forma de cromossomos;
determinar uma funo de avaliao que fornea uma medida do valor (importncia) de
cada cromossomo gerado, no contexto do problema;
determinao do tamanho da populao e nmero de geraes, e
determinao dos operadores genticos e suas probabilidades associadas.
Uma das vantagens do algoritmo gentico a simplificao que eles permitem na
formulao e soluo de problemas de otimizao. Apesar de serem aleatrios, os
algoritmos genticos exploram informaes histricas para encontrar novos pontos de
busca onde so esperados melhores desempenhos. Isto ocorre atravs de processos
iterativos, onde cada iterao denominada de gerao CHAMBERS (1995).
Segundo MICHALEWICS (1999), os algoritmos genticos diferem das tradicionais
tcnicas de otimizao em quatro caractersticas fundamentais:
21
a propriedade de paralelismo implcito, que permite analisar e avaliar um conjunto de
solues simultaneamente e no somente, estimar e melhorar uma nica soluo (como a
maioria dos algoritmos de busca);
a utilizao da codificao de um conjunto de parmetros ao invs dos prprios
parmetros;
a utilizao de regras de utilizao probabilsticas e no determinsticas, e
algoritmos genticos utilizam informaes de custo ou recompensa e no derivadas ou
outro conhecimento auxiliar que tomam a implementao difcil e dependente do problema.
3.2 O que so algoritmos genticos
Como mencionado no captulo 1, algoritmos genticos so mtodos computacionais
de busca baseados nos mecanismos de evoluo natural e na gentica. Em AGs, uma
populao de possveis solues para o problema em questo evolui de acordo com
operadores probabilsticos concebidos a partir de metforas biolgicas, de modo que h
uma tendncia de que, na mdia, os indivduos representem solues cada vez melhores
medida que o processo evolutivo continua TANOMARU (1995).
Algoritmos genticos combinam a sobrevivncias dos melhores indivduos entre
estruturas com uma troca estruturada (ainda que randmica) formando um algoritmo de
busca com um pouco do instinto humano de busca. Em cada gerao um novo grupo de
indivduos (estruturas) criado usando pedaos dos melhores indivduos da gerao
anterior e ocasionalmente novas partes so geradas. Mesmo sendo randmicos, os
algoritmos genticos no so simples buscas randmicas e exploram informaes histrias,
de forma eficiente, para especular novos pontos de busca com uma melhora na performance
GOLDBERG (1989).
O tema central na pesquisa de algoritmos genticos tem sido sua fora, o balano
entre eficincia e eficcia, necessrios para a sobrevivncia em muitos ambientes
22
diferentes. Se sistemas artificiais podem ser feitos mais robustos, o custo de sua reutilizao
pode ser minimizado ou talvez eliminado. Se altos nveis de adaptao podem ser
alcanados, sistemas existentes podem realizar suas tarefes melhor e por mais tempo
GOLDBERG (1989).
A busca de uma soluo adequada em um algoritmo gentico tem incio com a
criao aleatria de uma populao inicial, que composta por n elementos (nmero
cromossmico), onde cada elemento composto por uma cadeia de bits, que representa um
nico cromossomo. Essas estruturas so ento avaliadas e associadas a uma probabilidade
de reproduo de tal forma que as maiores probabilidades so associadas aos cromossomos
que representam uma melhor soluo para o problema. A aptido da populao
tipicamente definida com relao populao corrente e calculada com base na funo
objetivo do problema em questo CHAMBERS (1995).
Uma das vantagens dos algoritmos genticos o fato de no ser necessrio muito
conhecimento a respeito do problema. Geralmente (com a utilizao dos mtodos
tradicionais de otimizao) so necessrios, antes do inicio do processo de modelagem do
problema, uma srie de conhecimentos a respeito do problema, conhecimentos estes
indispensveis ao entendimento assim como a soluo do problema. Isto consiste em um
processo demorado, podendo levai meses ou at mesmo, anos. J no caso do algoritmo
gentico basta definir um item genrico atravs de um conjunto de parmetros, composto
de respostas a caractersticas especficas pr-determinadas, criar alguns exemplares deste
item e test-los uns contra os putros at que gerem itens satisfatrios, o que pode levar
algumas horas, ou mesmo, alguns dias PRICE (1994).
Segundo GOLDBARG (2000), algoritmos genticos so mtodos de busca
probabilstica inteligente com as seguintes caractersticas bsicas:
os indivduos so representados por cromossomos e competem por recursos e
possibilidades de reproduo. Os cromossomos normalmente esto associados a solues
do problema modelado;
23
os indivduos que tiverem mais sucesso nas competies tero maior probabilidade de
reproduo do que aqueles de menor performance. O mecanismo de avaliao constitudo
por uma funo de avaliao que classifica os indivduos por sua performance e por regras
que permitiro que estes melhores indivduos se perpetuem e reproduzam, e
os genes dos indivduos avaliados como bons se propagam atravs das populaes, de
modo que possam ser aperfeioados e gerem proles cada vez mais adequadas. Os
indivduos selecionados sero transformados por operadores genticos em novos
indivduos.
Atualmente so encontradas aplicaes que utilizam algoritmos genticos em
problemas de planejamento de produo, problemas de transporte, otimizao de
movimentos de robs, na economia, em layout de condutores, em sistemas de classificao,
na otimizao de funes matemticas, na medicina, etc HOFFMEISTER et al. (1993) e
BARROS (2001).
3.3 Representao cromossmica
O primeiro passo para a aplicao de um algoritmo gentico em um problema
qualquer encontrar uma maneira de se representar cada possvel soluo S no espao de
busca como uma seqncia de smbolos s gerados a partir de um alfabeto finito A. Nos
casos mais simples, usa-se o alfabeto binrio A = {0,1} (muitos consideram estes como
algoritmo gentico puro, embora na prtica a utilizao de uma representao binria nem
sempre seja possvel). No caso geral, tanto o mtodo de avaliao quanto o alfabeto
gentico dependem de cada problema. Porm, uma vez definida a estrutura mais apropriada
para representar a soluo do problema, esta deve conter todos os ns de busca e ser nica
(no permitido a alterao da forma de representao no decorrer do processo)
MECHALEWICS (1997).
24
Segundo GOLDBARG (2000), usando algumas das metforas empregadas pelos
tericos e praticantes de AGs, os termos mais utilizados, que podem ser vistos na figura 3
so:
populao: conjunto de indivduos (conjunto de solues do problema);
cromossomo: representa um indivduo na populao (uma configurao ou soluo);
gene: representa um componente do cromossomo (uma varivel do problema);
allele ou alelo: descreve os possveis estados de um atributo do indivduo (possveis
valores de uma varivel do problema);
lcus: representa a posio do atributo no cromossomo;
fentipo: denota o cromossomo decodificado, e
gentipo: representa a estrutura do cromossomo codificado;
Alm disso, na maioria dos algoritmos genticos assume-se que cada indivduo seja
constitudo por um nico cromossomo (fato que no ocorre na gentica natural), razo pela
qual comum utilizar os termos cromossomos e indivduos indistintamente. A maior parte
25
dos algoritmos genticos, propostos na literatura, utilizam uma populao de tamanho fixo
com cromossomos tambm de tamanhos constantes TANOMARU (1995).
3.4 Fluxo do algoritmo gentico
Uma vez definida a representao cromossmica para o problema, gera-se um
conjunto de possveis solues chamadas de solues candidatas. Este conjunto de
solues candidatas, de acordo com a representao selecionada, corresponde populao
de indivduos P(0) em questo. Algoritmos genticos so iterativos e a cada iterao a
populao modificada. Cada iterao de um algoritmo gentico denominada de
gerao, embora nem todos os indivduos de uma populao sejam necessariamente
filhos de indivduos da gerao anterior. Designando cada gerao por um ndice t, o
fluxo bsico de uma algoritmo gentico pode ser visto no quadro 2.
Procedure Algoritmo Gentico Inicio
t = 0Inicializar P(t)Enquanto (Condio- Fim) Faca InicioAvaliar P(t) t = t + 1Selecionar P(t) a partir de P(t 1) Cruzamento em (Pt)Mutao em P (t)
FinalFinal
Quadro 2: Fluxo bsico de um algoritmo gentico.
26
O algoritmo bem simples. Aps a criao da populao inicial (geralmente de
forma aleatria) esta avaliada de acordo com sua aptido e os melhores indivduos so
pr-selecionados a formarem a prxima gerao. Sobre esta nova gerao so aplicados os
operadores genticos (com a inteno de melhorar a aptido da populao, atravs da
explorao do material gentico da populao anterior e tambm gerar novos pontos de
busca). Este processo se repete at que uma condio de trmino seja satisfeita, geralmente
um determinado nmero de geraes. Alm das etapas mencionadas acima, o que se
costuma fazer ainda, durante o processo, guardar a melhor soluo (melhor cromossomo)
encontrada durante a execuo do algoritmo. Cada etapa do fluxo do algoritmo gentico
est explicada em seguida.
3.4.1 Processo de inicializao
Na maioria das aplicaes, a populao inicial de N indivduos de um algoritmo
gentico escolhida aleatoriamente ou atravs de um processo heurstico TANOMARU
(1995).
Como no caso biolgico, no h evoluo sem variedade. Ou seja, a teoria da
evoluo natural ou lei do mais forte necessita que os indivduos tenham diferentes graus
de adaptao ao ambiente em que vivem. Por isso muito importante que a populao
inicial cubra a maior rea possvel do espao de busca CHAMBERS (1995).
3.4.2 Processo de avaliao
O processo de avaliao consiste na aplicao de uma funo de avaliao em cada
um dos indivduos da populao corrente. Esta funo deve expressar a qualidade de cada
indivduo da populao no contexto do problema considerado e extremamente importante,
uma vez que constitui o nico elo entre o algoritmo gentico e o problema em questo. A
funo de avaliao depende fortemente da forma como as solues foram representadas
27
(nos casos mais simples usa-se justamente o valor da funo que se quer otimizar)
MAZZUCCO (1999).
A funo de avaliao d para cada indivduo uma medida de quo adaptado ao
ambiente ele est, ou seja, quanto maior o resultado da avaliao maior a chance do
indivduo sobreviver ao ambiente e reproduzir-se, passando parte de seu material gentico
para as futuras geraes. A avaliao de cada indivduo resulta em um determinado valor
de aptido (que em ingls denominado de "fitness) TANOMARU (1995).
A maior parte das aplicaes, baseadas em algoritmos genticos, utilizam
representaes indiretas das solues, o que significa que o algoritmo trabalha sobre uma
populao de solues codificadas. Desta forma, antes que seja realizada a avaliao sobre
os cromossomos uma traduo da soluo codificada para a soluo real deve ser realizada.
Por outro lado em uma aplicao que empregue representao direta da soluo, o valor
que passado para a funo de avaliao o prprio cromossomo. Neste caso toda a
informao relevante ao problema deve ser includa na representao da soluo
MAZZUCCO (1999).
3.4.3 Processo de seleo
Os mecanismos de seleo em algoritmos genticos emulam os processos de
reproduo assexuada e seleo natural. A seleo efetua com base nas aptides individuais
(calculadas atravs da funo de avaliao), a seleo dos indivduos que procriaro para
formarem a prxima gerao. Esta seleo probabilstica, assim, um indivduo com
aptido alta tem maior probabilidade de se tomar um gerador do que um indivduo com
aptido baixa. No caso de um algoritmo gentico com a populao fixa, so escolhidos
tantos indivduos quanto for o tamanho da populao MAZZUCCO (1999).
O processo inicia-se com a converso de cada aptido individual em uma
expectativa que o nmero esperado de descendentes que cada indivduo poder gerar. No
algoritmo original proposto por HOLLAND (1993), essa expectativa individual era
28
calculada atravs da diviso da aptido individual pela mdia das aptides de toda a
populao da gerao corrente. Desta forma, a expectativa e de um indivduo pode ser
calculada por:
e, = aptj/maptt (3.1)
Onde apti a aptido do indivduo i e maptt a aptido mdia da populao na
gerao t.
As expectativas assim produzidas tm as seguintes caractersticas: um indivduo
com aptido acima da mdia ter expectativa maior do que 1, enquanto que um indivduo
com aptido abaixo da mdia ter Uma expectativa menor do que 1; a soma dos valores de
todas as expectativas individuais ser igual ao tamanho da populao.
No entanto, pelo menos dois problemas podem ser apontados na utilizao desse
mtodo de clculo das expectativas. Em primeiro lugar, o mtodo no deve manipular
valores de aptido negativos, uma vez que poderiam ser convertidos em valores de
expectativa negativos. Em segundo lugar, esse mtodo pode apresentar efeitos indesejveis
logo no incio, quando a populao aleatoriamente calculada e a mdia das aptides
baixa, onde indivduos aptos podem receber um nmero desordenado de descendentes,
conduzindo a uma convergncia prematura. Tambm no decorrer do processamento, onde
esse mtodo tem uma forte tendncia em alocar a todos os indivduos um descendente,
mesmo para aqueles indivduos com expectativa muito baixa, resultando em uma
explorao ineficiente do espao de busca e consequentemente em um retardo acentuado na
convergncia do mtodo MAZZUCCO (1999).
29
Segundo MAZZUCCO (1999), um segundo mtodo de converso de valores de
aptido em nmeros esperados de descendentes, referenciado como o mtodo do
truncamento sigma considera a aptido mdia da populao e o desvio padro das aptides
sobre a populao. Sua idia bsica muito simples: um indivduo, cuja aptido seja igual
mdia das aptides da populao ter uma expectativa de produzir um descendente; um
indivduo, cuja aptido seja um desvio padro acima da mdia, ter uma expectativa de
produzir um descendente e meio; um indivduo, cuja aptido seja dois desvios padres
acima da mdia, ter uma expectativa de produzir dois descendentes, e assim por diante.
Este mtodo pode ser observado atravs da figura 4.
Baseado no mtodo do truncamento sigma, a expectativa e de um indivduo i pode
ser calculada por:
e, = ( apti - maptt) / 2dpt + 1 (3.2)
No caso onde dpt ^ 0 ou:
30
et = 1 (3.3)
No caso onde dp, = 0, onde apU a aptido do indivduo i e maptt, e dpt so,
respectivamente, a mdia e o desvio padro das aptides na gerao t.
Caso o desvio padro seja zero, qualquer indivduo na populao ter o mesmo valor
de aptido. Neste caso, automaticamente esse mtodo ir atribuir um valor de expectativa
igual a 1 para todos os indivduos da populao. Se o valor da expectativa tomar-se
negativo, ele ser alterado para um valor pequeno como 0.1, por exemplo, de forma que
aqueles indivduos com aptides muito baixas tero pequenas probabilidades de se
reproduzirem. Nota-se, que com esse segundo mtodo, a soma dos nmeros esperados de
descendentes para todos os indivduos na populao no necessariamente ser igual ao
tamanho da populao.
Depois de calculada a expectativa de cada indivduo, resta ainda um ltimo clculo,
onde o valor da expectativa transformado em nmero definitivo de descendentes que cada
indivduo ir gerar. Esta ltima operao se fez necessria, uma vez que o valor da
expectativa um nmero real e no pode ser utilizado como valor real de descendentes,
pois suponha que um indivduo receba a expectativa 1,5, um indivduo no pode gerar um
descendente e meio.
Segundo GOLDBERG (1989) e MIRANDA (2002), o nmero inteiro e definitivo de
descendentes que cada indivduo receber, chamado de valor de descendente individual,
pode ser obtido atravs de uma tcnica denominada de roleta. Para visualizar este mtodo
considere um crculo dividido em n regies (com n sendo o tamanho da populao). A rea
de cada regio proporcional expectativa de cada indivduo. Coloca-se sobre este crculo
uma roleta com n cursores, igualmente espaados. Aps um giro da roleta, a posio dos
cursores indica os indivduos selecionados. Evidentemente, os indivduos cujas regies
possuem maior rea tero maior probabilidade de serem selecionados mais vezes. Como
conseqncia, a seleo de indivduos pode conter vrias cpias de um mesmo indivduo
enquanto outros podem desaparecer. Aqui os indivduos mais bem adaptados (com maiores
31
aptides) tm mais chances de serem selecionados do que os indivduos mais fracos (com
aptides menores).
Figura 5: Mtodo de seleo denominado de roleta.
A figura 5 demonstra o mtodo da roleta aplicado a uma populao com 5
cromossomos. Nesta figura, o cromossomo 1 tem sua aptido muito maior que os demais
cromossomos e, aps o giro da roleta, o mesmo recebe dois descendentes. J o cromossomo
4 tem sua aptido muito inferior aos demais e aps o giro da roleta ele no teve nenhum
cursor apontando para sua rea. Ele no ir gerar nenhum descendente e,
consequentemente, ser extinto.
Encerrando o segundo passo do algoritmo gentico, o qual descreve o processo de
seleo dos cromossomos que produziro a prxima gerao, importante salientar que
apesar de sua aparncia confusa, este processo, de fcil implementao, vem tomar o
algoritmo gentico ainda mais robusto, uma vez que generaliza a funo de avaliao,
permitindo qu a mesma retome valores bem definidos MAZZUCCO (1999).
KOZA & RICE (1994) ressaltam que o processo de seleo utilizado pelo algoritmo
gentico probabilstico e um dos pontos essenciais do algoritmo. Como j aludido, o
32
processo aloca a cada indivduo uma chance de ser selecionado (no importando o quanto a
aptido desse indivduo seja pobre) e participar no processo dos operadores genticos.
3.4.4 Operadores genticos
Os operadores genticos so operadores de variao dos algoritmos genticos,
possuindo a habilidade de transformar a populao atravs de sucessivas geraes.
Analisando sob o prisma da matemtica, so operadores cuja funo criar novos pontos
no espao de busca com base nos elementos da populao atual. Os operadores genticos
so necessrios para que a populao se diversifique e mantenha as caractersticas de
adaptao adquiridas pelas geraes anteriores MCHALEWICS (1999).
Existem inmeros operadores para a manipulao dos indivduos, sendo os mais
comuns, considerados clssicos, o cruzamento (crossover) e a mutao (mutation). Embora
estes operadores sejam considerados os mais importantes, existe outro operador que tem
obtido bons resultados e merece algum destaque, o operador de inverso (inversion).
3.4.4.1 Cruzamento (Crossover)
O cruzamento o operador responsvel pelo cruzamento de caractersticas de dois
pais durante a reproduo, permitindo que as prximas geraes herdem estas
caractersticas (muitos autores consideram este operador como a principal particularidade
dos algoritmos genticos frente s outras heursticas) SPILLMAN (1993).
O cruzamento consiste no operador de acasalamento que permite a produo de
novos indivduos atravs da troca de informaes parciais entre pares de cromossomos.
O processo de cruzamento geralmente controlado por um parmetro fixo que
indica a probabilidade de um cromossomo sofrer cruzamento (normalmente se utiliza uma
taxa de cruzamento moderada). Este operador possui o efeito de explorar as informaes
33
contidas em seus geradores, ou seja, tendem a gerar melhores indivduos com o passar das
geraes baseados nas geraes anteriores TANOMARU (1995).
O operador de cruzamento pode variar conforme a representao utilizada. Segundo
GOLDBERG (1989), quando a representao binria, os dois tipos mais utilizados so: o
cruzamento de um ponto e o cruzamento multiponto.
Cruzamento de um ponto: realizado atravs da escolha aleatria de um s ponto
de corte. Cada par de cromossomos escolhidos como pais gera dois descendentes atravs da
permuta de suas partes finais, depois do ponto de corte. A figura 6 traz um exemplo de
cruzamento de um ponto que realizado depois gene 5 contando da esquerda para a direita.
Um dos problemas deste tipo de cruzamento que os descendentes sempre iro
conter as partes finais dos seus pais, no podendo fazer outra combinao possvel,
caracterizando uma tendncia de sobrevivncia das partes finais SPILLMAN (1993).
Cruzamento multiponto: este operador surge como uma possibilidade de reduzir a
carncia do operador anterior. Aqui so escolhidos mais pontos de corte para troca de
material gentico entre o par de geradores. A figura 7 traz um exemplo de cruzamento
multiponto com dois pontos de cortes. Neste exemplo, o primeiro ponto de corte aps o
34
gene 4 e o segundo aps o gene 9 e o material gentico trocado entre o par de geradores so
os genes entre 4 e 9.
ponto de jorte 1 ponto de :orte2
pai1
pai 2
filho 1
filho 2
1 1 1 0 0 1 0 0 0 1 0 1
1 1 0 0 0 1 1 1
oO
1 0
*1 1 1 0 0 1 1 1 0 1 0 1
11!
1 0 0 0 1 0 0 0 0 1 0
Figura 7: Exemplo de cruzamento multiponto.
Contudo, existem representaes onde os operadores de cruzamentos mencionados
no podem ser utilizados, como no caso da representao em forma de permutao. Uma
das maiores dificuldades destas representaes que o operador de cruzamento pode
produzir ciclos inviveis, como no exemplo da figura 8. Esta figura traz um exemplo de
cruzamento aplicado a cromossomos com representao atravs de nmeros inteiros, onde,
aps aplicarmos o cruzamento de um ponto de corte o operador gerou dois cromossomos
invlidos, pois os mesmos possuem alelos repetidos, o que no permitido (no caso do
problema do caixeiro viajante seria o mesmo que dizer que o viajante no percorreu todas
as cidades uma e somente uma vez como deveria).
35
ponto d e corte
pai1 1 2 3 4 5 6 7 8 9 10
11 12
pai 2 12 11 10 9 8 7 6 5 4 3 2 1
1
filho 1 1 2 3 4 5 6 6 5 4 3 2 1
filho 2 12 11 10 9 8 7 7 8 9 10 11 12
Figura 8: Exemplo de cruzamento invlido.
Visando solucionar estes problemas, foram desenvolvidos operadores especiais que
evitam a produo de filhos inviveis (geneticamente abortivos), dado que os pais sejam
representaes de solues viveis. Segundo GOLDBARG (2000), GOLDBERG (1989),
MCHALEWICS (1999) e VACA (1995), dentre estes operadores, os que mais se destacam
(devido quantidade de aplicaes em que so empregados) so: o operador OX, o
operador PMX e o operador CX.
Operador OX (Order Crossover): este operador comea pela escolha aleatria de
dois pontos de corte em cada um dos elementos selecionados. A seo definida entre estes
dois pontos copiada integralmente no descendente, p s lugares restantes so preenchidos
usando as informaes no repetidas na seo de cruzamento, comeando do segundo
ponto de corte. A figura 9 traz um exemplo de cruzamento OX, onde a seqncia j,k,c
(volta ao inicio) d, e, f, g, h, i, o gene contido no segundo pai, comeando no segundo
ponto de corte. De maneira similar, obtm-se a seqncia j, k, c, e, f, d, b, i, a, do segundo
filho.
36
Operador PMX (Partially Mapped Crossover). este operador tambm executado
escolhendo-se aleatoriamente dois pontos de corte. Este processo ilustrado na figura 10
onde as informaes contidas entre os dois pontos de corte, (b, i, a) e (g, h, i) so
intercambiadas, obtendo-se as representaes intermedirias. Porm, estas representaes
no so vlidas, pois possuem informaes repetidas e algumas faltando. Assim, o passo
final substituir estes genes repetidos mapeando (g, h, i) para (b, i, a) e vice-versa, obtendo
assim as estruturas finais.
37
Operador CX (Cycle Crossover): o esquema do operado CX muito diferente dos
demais mostrados anteriormente. O operador CX executa recombinaes de forma que cada
um dos genes de seus descendentes venham da posio correspondente de qualquer um dos
pais (neste tipo de cruzamento no h necessidade de escolher pontos de cruzamento, como
os usados no operador PMX ou no operador de ordem OX).
Originalmente, este procedimento iniciado da primeira posio mais esquerda.
Na figura 11 temos um exemplo de cruzamento CX onde o procedimento iniciado a partir
da primeira posio mais esquerda, escolhendo um gene do primeiro pai. J que por este
operador cada gene vem da mesma localizao de um dos pais, a escolha da atividade 2 do
pai 1 significa que a atividade 5 da segunda posio deve ser escolhida, porque 2 ocupa a
segunda posio do segundo pai. Esta seleo, por sua vez, implica que a atividade 4 seja
escolhida do pai 1, que por sua vez leva a escolher a atividade 3 do pai 1, porque 3 est na
stima posio do pai 2. Neste ponto, se continuar com o processo, a escolha da atividade 3
significa ter que selecionar a atividade 2 do pai um. Entretanto, isto no possvel porque 2
j foi selecionado com o segundo gene da soluo. A posio destes genes dita de
formar um ciclo que, eventualmente, retoma ao primeiro gene selecionado. Ento o
procedimento pra e os espaos vazios so preenchidos com os genes do segundo pai. O
segundo filho obtido realizando o cruzamento complementar.
Figura 11: Exemplo de um cruzamento com o operador CX.
38
3.4.4.2 Mutao (Mutation)
Uma das principais dificuldades dos algoritmos genticos (da mesma forma que a
maioria dos algoritmos de busca) a convergncia prematura para uma soluo de pouca
qualidade. Foi observado que este problema est diretamente ligado a perda de diversidade
da populao durante o processo evolutivo, sendo, portanto, necessrio um mecanismo que
introduza novos materiais genticos na populao CHAMBERS (1995).
O: operador de mutao necessrio para introduo e manuteno da diversidade
gentica na populao, alterando arbitrariamente um ou mais componentes de uma estrutura
(cromossomo) escolhida, fornecendo assim meios para a introduo de novos elementos na
populao. Desta forma, a mutao assegura que a probabilidade de alcanar qualquer
ponto no espao de busca nunca ser completamente eliminada, alm de contornar o
problema de se cair em mnimos locais, pois a direo de busca do algoritmo gentico
alterada sutilmente com a ocorrncia da mutao CHAMBERS (1995).
O operador de mutao bastante simples, basicamente, seleciona-se uma posio
num cromossomo e muda-se o valor do gene correspondente aleatoriamente para outro
alelo possvel. A mutao aplicada populao de cromossomos descendentes gerados
aps o cruzamento.
O processo geralmente controlado por um parmetro fixo que indica a
probabilidade de um gene sofrer mutao (normalmente se utiliza uma taxa de mutao
pequena). Este operador possui o efeito de aumentar a diversidade da populao evitando
que as estruturas tomem-se muito homogneas. O aumento na diversidade das estruturas
permite reduzir a possibilidade de convergncia prematura, isto , a obteno de solues
sub-timas TANOMARU (1995).
Apesar das vantagens da utilizao do operador de mutao, ele deve ser aplicado
em pequena escala no processo do AG, semelhante forma como a mutao ocorre na
gentica natural, pois a ocorrncia excessiva de mutaes pode gerar pontos muito
dispersos na populao, ao invs de convergir para pontos timos KOZA (1992)
39
A figura 12 traz um exemplo de mutao onde se percorre todos os alelos do
cromossomo e se faz um sorteio, caso o sorteio resulte em um valor menor que a
probabilidade de ocorrncia de mutao, o alelo sofrer mutao. Neste exemplo, um
mesmo cromossomo sofre duas mutaes, tendo seus genes 4 e 7 alterados de 0 para 1.
A exemplo do operador de cruzamento, a mutao tambm pode gerar cromossomos
invlidos em certos tipos de representaes, como a representao de caminho mencionada
anteriormente. BUCKLES & PETRY (1992) sugerem 3 tipos de operadores de mutao
para problemas desta natureza: a mutao baseada em posio, a mutao baseada na
orderri e a mutao mista.
cromossomo velho
1 1 1 0 0 1 0 0 0 1 1 1
*
1 1 1 1 0 1 1 0 0 1 1 1
cromossomo novo
Figura 12: Exemplo de mutao.
Mutao baseada na posio {Position-Based Mutation)', neste operador, duas
posies so selecionadas randomicamente e o contedo da segunda posio colocado
antes da primeira. Na figura 13 temos um exemplo de mutao baseada na posio, neste
caso, os alelos das posies 4 e 10 so selecionados, ento o alelo da posio 10
introduzido antes do alelo da posio 4.
I
40
1 cromossomo velho 11 2 3 4 5 6 7 8 9 10 11 12
1 2 3 10 4 5 6 7 8 9 11 12
cromossomo novo
Figura 13: Exemplo de mutao baseada em posio.
Mutao baseada em ordem (Order-Based Mutation): neste caso, duas posies
so selecionadas tambm randomicamente e o contedo das mesmas intercambiado. A
figura 14 traz um exemplo de mutao baseada em ordem, aqui os alelos das posies 1 e 9
so intercambiados.
1 cromossomo velho 11 2 3 4 5 6 7 8 9 10 11 12
9 2 3 4 5 6 7 8 1 10 11 12
cromossomo novo
Figura 14: Exemplo de mutao baseada em ordem.
41
Mutao mista {Scramble Mutation)-, a mutao mista considera a vizinhana das
posies importantes, neste caso, escolhe-se uma sub-lista randomicamente e permuta-se a
ordem dos contedos. Na figura 15 os alelos das posies 1 a 4 so permutados resultando
em um novo cromossomo.
1 1 cromossomo velho
1 2 3 4 5 6 7 8 9 10 11 12
2 4 1 3 5 6 7 8 9 10 11 12
cromossomo novo
Figurai5: Exemplo de mutao mista.
3.4.4.3 Inverso
A exemplo da mutao, a inverso um operador secundrio que somente
suplementa o processo de cruzamento e pode ser definido como um operador unrio
(aplicado a um nico cromossomo). Por ser um operador unrio, na inverso no h a troca
de informaes entre os cromossomos MICHALEWICS (1997).
O operador de inverso bastante simples, ele seleciona dois pontos de corte ao
longo do cromossomo, corta o cromossomo entre estes dois pontos e inverte a ordem dos
alelos MICHALEWICS (1997)
42
1 1 cromossomo velho1
f
2 3 4 5 6 7 8 9 10 11 12
4 3 2 1 5 6 7 8 9 10 11 12
cromossomo novo
Figural: Exemplo de inverso.
Um exemplo de inverso pode ser visto na figura 16. Aqui foram escolhidos
aleatoriamente as posies 1 e 4 como pontos de corte e os alelos entre estas posies so
ento invertidos, gerando um novo cromossomo.
3.4.5 Condies de trmino
Lavando em conta os problemas de otimizao, o ideal seria que o algoritmo
terminasse quando o ponto timo fosse encontrado. Na prtica, entretanto, na maioria das
vezes no se pode afirmar com certeza que o ponto timo encontrado pelo algoritmo seja o
ponto timo-global. Como conseqncia disso, geralmente o critrio para o trmino
utilizado um nmero mximo de geraes ou um tempo limite de processamento (o que
ocorrer primeiro) KOZA & RICE (1994) e TANOMARU (1995)
Outro critrio interessante que tambm empregado com freqncia o conceito de
estagnao, onde o algoritmo gentico termina quando nenhuma melhoria for encontrada
na populao depois de um certo nmero de geraes consecutivas MICHALEWICS
(1999).
43
3.5 Teorema dos esquemas
O teorema dos esquemas baseia-se no fato de que quando se deseja um melhor
entendimento do domnio do problema essencial estudar tanto as similaridades entre os
cromossomos como tambm sua aptido. De alguma maneira o interesse se reorienta de
cromossomos individuais a grupos de cromossomos de grande aptido DAVTS (1987),
Um esquema um conjunto (templat) de similaridades, descrevendo um grupo de
cromossomos com similaridades em certas posies e construdo introduzindo-se um
smbolo (#) no alfabeto dos genes. Em um alfabeto binrio, um esquema uma cadeia de 1
bit tomado sobre {0,1,#} e o smbolo # pode representar qualquer bit 0 ou 1. E importante
deixar claro que o smbolo # somente um metasmbolo (um smbolo sobre outros
smbolos), ele no deve ser processado pelo algoritmo gentico.
Por exemplo, consideremos o esquema (#1 1 1 1 00 1 0 0). Este esquema denota os
dois cromossomos {(0 1 1 1 1 0 0 1 0 0), (1 1 1 1 1 0 0 1 0 0)}, e o esquema (# 1 # 1 10 01
0 0) denota os quatro cromossomos {(1 1 1 1 1 0 0 1 0 0), (0 1 0 1 1 0 0 10 0), (1 1 0 1 1 0
0 1 0 0), (0 1 1 1 1 0 0 1 0 0)}. Claro que o esquema (1 0 0 1 1 1 0 0 0 1) representa
somente um cromossomo: {(1 0 0 1 1 1 0 0 0 1)}, e o esquema ( # # # # # # # # # # )
representa todas as combinaes possveis para 0 e 1.
3.6 Blocos de construo
E dado nome de blocos de construo a esquemas de grande aptido e tamanho
reduzido. Assim como uma criana constri magnficas fortalezas atravs do arranjo de
blocos de madeira, tambm o algoritmo gentico procura por performance perto da tima
atravs da justaposio de blocos de construo GOLDBERG(1989). De certa forma, ao se
trabalhar com blocos de construo, a complexidade do problema reduzida; ao invs de
construir cromossomos de alta-performance, tentando cada combinao possvel, so
construdos melhores e melhores cromossomos com as melhores partes das amostras
anteriores.
44
importante lembrar que o algoritmo gentico depende da recombinao de blocos
de construo na procura por melhores pontos. Se os blocos de construo estiverem
desencaminhados devido m codificao utilizada ou a prpria funo, o problema pode
requerer longos tempos de espera para alcanar solues quase timas GOLDBERG
(1989).
3.7 Variaes de algoritmos genticos
Esta seo tem como objetivo demonstrar algumas variaes que podem ser usadas
na implementao de um algoritmo gentico. Estas variaes visam melhorar o
desempenho e os resultados obtidos pelo algoritmo.
3.7.1 Algoritmos genticos elitistas
Neste modelo, amplamente utilizado, garante-se que os melhores indivduos de uma
gerao sempre aparecero na gerao seguinte. Ou seja, se a elite da populao corrente
no estiver na gerao seguinte em decorrncia de algum operador gentico, ento os
elementos ausentes so inseridos artificialmente no lugar dos piores indivduos. O mtodo
mais comum no elitismo supervisiona apenas o melhor indivduo da populao, mas para
grandes populaes pode ser interessante garantir que mais indivduos sejam preservados.
A quantidade de indivduos que ser preservado depende muito do problema a ser tratado
TANOMARU (1995)
VARHOL (1994) ressalta que o processo de elitismo bastante til, porque muitas
vezes o processo de convergncia para uma soluo boa pode ser muito difcil e a
preservao dos melhores indivduos pode ajudar neste processo. No entanto, quando a
porcentagem de indivduos a serem preservados for muito alta, o efeito pode ser o contrrio
do desejado, isso porque, como j mencionado, uma importante caracterstica do algoritmo
45
gentico a diversidade gentica de sua populao e a medida que esta eliminada, o
processo tende a convergir para solues de pouca qualidade.
3.7.2 Algoritmos genticos paralelos
Um modelo de algoritmo gentico paralelo mencionado por MICHALEWICS
(1999) o denominado de insular. Neste modelo, a populao particionada em sub-
populaes e a cada sub-populao de indivduos atribuda a um processador de um
computador paralelo com memria distribuda. Cada processador executa um AG
convencional em sua sub-populao e, periodicamente, envia cpias de seus melhores
indivduos para um processador vizinho, recebendo, em contrapartida, cpias dos melhores
indivduos do mesmo. As cpias recebidas so, em geral, usadas para substituir os piores
elementos da populao. O processo continua at que um critrio de trmino seja satisfeito.
Este processo de troca de indivduos entre subpopulaes denominado de migrao!
3.7.3 Algoritmos genticos com populao de tamanho varivel
O tamanho da populao uma das escolhas mais importantes encontradas por
qualquer usurio de algoritmo gentico e pode ser crtica em muitas aplicaes. Se a
populao for muito pequena, o algoritmo pode convergir muito rpido a mnimos locais.
Se for uma populao muito grande, o algoritmo pode necessitar de muito processamento e,
por conseqncia, a espera por uma melhora na soluo pode ser muito longa
MICHALEWICS (1999).
Um modelo de algoritmo gentico de tamanho varivel de populao no tem
nenhuma alterao nos mecanismos de reproduo, ele simplesmente adiciona o conceito
de idade (age) ao cromossomo. A idade de um cromossomo corresponde quantidade de
geraes que ele permanece vivo, substituindo o mecanismo de seleo da populao e
46
influenciando diretamente no tamanho da populao, uma vez que a idade do cromossomo
depende somente de sua aptido.
O tempo de vida de um cromossomo atribudo a ele durante o processo de
avaliao do mesmo e permanece constante durante o processo evolutivo, isto , desde o
nascimento de um cromossomo at sua morte. Este tempo de vida determina quantas
geraes o cromossomo vai existir na populao MICHALEWICS (1999).
3.7.4 Algoritmos genticos hbridos
Muitos autores consideram que os algoritmos genticos sozinhos nem sempre so a
melhor soluo para problemas de otimizao especficos. Desta forma, os algoritmos
hbridos utilizam os mtodos de otimizao tradicionais como ponto de partida para os
algoritmos genticos. A desvantagem destes algoritmos a introduo de um overhead
computacional devido busca baseada em populaes, caracterstica dos AGs. A mistura
de tcnicas tradicionais com os algoritmos genticos adiciona uma espcie de aprendizado
no AG, pois os cromossomos utilizados podem resultar de vrias tcnicas, denominadas de
hill-climbing, utilizada nos mtodos de otimizao tradicionais TANOMARU (1995).
3.8 Problemas prticos de algoritmos genticos
Esta seo define os principais problemas encontrados na implementao de um
algoritmo gentico, levando em considerao a determinao de parmetros, os erros de
amostragem, a convergncia prematura, o balano explorao-explorao e o tempo de
processamento.
47
3.8.1 Determinao de parmetros
Num AG bsico, o usurio deve definir o tamanho da populao N, alm das
probabilidades de cruzamento e mutao, respectivamente.
Quanto ao parmetro N, a intuio indica que quanto maior melhor, uma vez que em
ltima anlise, com a populao cobrindo todo o espao de busca, a soluo tima seria
encontrada na primeira gerao. Na prtica, bvio que temos que lidar com tamanhos
finitos e uma populao com tamanho entre 50 e 200 cromossomos resolve a maior parte
dos problemas. Existem ainda casos onde populaes menores se fazem necessrias, isto
porque o processo de avaliao de um cromossomo excessivamente lento TANOMARU
(1995).
Em relao probabilidade de cruzamento e mutao, estudos tm mostrado que
bons resultados geralmente so obtidos com alto valor de cruzament