UNIVERSIDADE FEDERAL DE SANTA CATARINA PROGRAMA … · viajante, e os resultados obtidos estão...

106
UNIVERSIDADE FEDERAL DE SANTA CATARINA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO RANGEL GUSTAVO RAULINO UMA ABORDAGEM HÍBRIDA PARA SOLUCIONAR PROBLEMAS DE OTIMIZAÇÃO ATRAVÉS DOS ALGORITMOS: GENÉTICO E SIMULATED ANNEALING Dissertação submetida à Universidade Federal de Santa Catarina como parte dos requisitos para a obtenção, do grau de Mestre em Ciência da Computação Prof. José Mazzucco Junior, Dr. Orientador Florianópolis, Maio de 2002

Transcript of UNIVERSIDADE FEDERAL DE SANTA CATARINA PROGRAMA … · viajante, e os resultados obtidos estão...

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