• Nenhum resultado encontrado

5.2 Algoritmos Gen´eticos

5.2.4 Operadores Gen´eticos

Conforme comentado anteriormente, os algoritmos gen´eticos possuem procedimentos probabil´ısticos de busca, baseados nos princ´ıpios decorrentes da dinˆamica das popula- ¸c˜oes naturais. Nestes operadores uma popula¸c˜ao de solu¸c˜oes candidatas ´e aleatoriamente gerada e “evolui” para uma solu¸c˜ao, atrav´es da aplica¸c˜ao de operadores gen´eticos. Esta se¸c˜ao aborda os principais operadores gen´eticos e suas varia¸c˜oes mais utilizadas.

5.2. Algoritmos Gen´eticos 65

i) Reprodu¸c˜ao:

O operador de sele¸c˜ao emprega o princ´ıpio de sobrevivˆencia dos indiv´ıduos mais aptos, atrav´es de uma met´afora dos procedimentos de reprodu¸c˜ao assexuada e sele¸c˜ao natural, de acordo com o grau de adapta¸c˜ao do indiv´ıduo ao ambiente (COELHO, 2003). Este operador ´e a vers˜ao artificial da sele¸c˜ao das esp´ecies do Darwinismo, que estabelece que os seres mais aptos tˆem maiores chances de sobreviver, ou seja, os mais fortes e menos vulner´aveis aos predadores e doen¸cas (TICONA, 2003). O objetivo principal do operador ´e copiar as melhores solu¸c˜oes, eliminando as de baixa aptid˜ao, enquanto o tamanho da popula¸c˜ao ´e constante (DEB, 2001). Essa estrat´egia pode ser realizada atrav´es dos seguintes passos:

• Identificar as melhores solu¸c˜oes na popula¸c˜ao;

• Realizar c´opias dessas melhores solu¸c˜oes;

• Eliminar as solu¸c˜oes de baixa aptid˜ao da popula¸c˜ao.

Existe um grande n´umero de estrat´egias de sele¸c˜ao, dentre estas podemos destacar (DEB, 2001):

a) Sele¸c˜ao Proporcional : nessa estrat´egia, o n´umero de c´opias de uma solu¸c˜ao na lista de solu¸c˜oes escolhidas ´e proporcional ao seu valor de aptid˜ao. Para calcular o n´umero de c´opias esperado, ´e necess´ario obter a probabilidade de cada solu¸c˜ao:

pi = PNFi j=1Fj

(5.2)

sendo que Fi ´e a aptid˜ao da solu¸c˜ao i e N ´e o tamanho da popula¸c˜ao. O n´umero de c´opias na lista de solu¸c˜oes ´e calculado por Ci = piN , isto ´e, as solu¸c˜oes com melhor valor de aptid˜ao ter˜ao mais c´opias na lista de solu¸c˜oes. O escalonamento ´e um problema associado com esta estrat´egia. Quando existe uma solu¸c˜ao com um valor de aptid˜ao muito maior comparado com o restante da popula¸c˜ao, esta “super-solu¸c˜ao” ter´a uma probabilidade de escolha perto de 1, e ter´a muitas c´opias na lista de solu¸c˜oes. Caso todas as solu¸c˜oes possuam valores similares de aptid˜ao, ter˜ao a mesma probabilidade de serem escolhidas, e cada uma ser´a copiada na lista de solu¸c˜oes, o que equivale a n˜ao se realizar a opera¸c˜ao de sele¸c˜ao;

b) Sele¸c˜ao Elitista com Truncamento: o modelo de sele¸c˜ao elitista ´e normalmente acoplado a outros m´etodos de sele¸c˜ao, na tentativa de se aumentar a velocidade de con- vergˆencia do algoritmo, bem como em aplica¸c˜oes onde possa ser necess´ario o seu emprego. Este processo simplesmente copia os N (N ≥ 1) melhores indiv´ıduos da popula¸c˜ao cor- rente para a pr´oxima gera¸c˜ao, garantindo que estes cromossomos n˜ao sejam destru´ıdos

nas etapas de recombina¸c˜ao e muta¸c˜ao. Na maioria das implementa¸c˜oes, normalmente, pelo menos o elitismo do melhor indiv´ıduo ´e utilizado. A principal vantagem do elitismo ´e garantir que n˜ao se perca o melhor indiv´ıduo durante o processo evolutivo e, com isto, gerar uma seq¨uˆencia, onde o resultado n˜ao piora. Sua desvantagem ´e a possibilidade de for¸car a busca, pela presen¸ca de mais uma c´opia do melhor indiv´ıduo, na dire¸c˜ao de algum ponto ´otimo local que tenha sido descoberto antes do global, embora um algoritmo gen´e- tico possa escapar de tais armadilhas. Alternativamente, pode-se guardar separadamente a melhor solu¸c˜ao encontrada durante a evolu¸c˜ao, para no final da execu¸c˜ao design´a-la como sendo o indiv´ıduo ´otimo encontrado, mesmo que ele n˜ao esteja presente na ´ultima gera¸c˜ao da execu¸c˜ao;

c) Sele¸c˜ao por Torneio: na sele¸c˜ao por torneio, s˜ao realizadas v´arias competi¸c˜oes entre duas solu¸c˜oes, e a melhor solu¸c˜ao ´e copiada na lista de solu¸c˜oes. Este processo ´e repetido at´e se preencher a lista. Goel e Deb (2001) mostraram que este m´etodo possui uma convergˆencia igual ou melhor que outras estrat´egias de sele¸c˜ao, al´em de possuir uma complexidade computacional menor;

d ) Sele¸c˜ao por Ranking: ordena as solu¸c˜oes conforme seu valor de aptid˜ao, desde a pior solu¸c˜ao (ranking 1) at´e a melhor (ranking N ). Depois, o n´umero de c´opias das solu¸c˜oes ´e proporcional ao valor desse ranking.

ii) Cruzamento:

Este operador gera novas solu¸c˜oes (filhas) a partir da lista de solu¸c˜oes corrente (pais). Geralmente o cruzamento possui uma probabilidade associada com essa mudan¸ca, usando- se um valor pr´oximo de 1. A forma mais simples de cruzamento ´e conhecida como cruza- mento em um ponto, ilustrada na Fig. 5.2 (TICONA, 2003).

Pai 11011010100 Antes do Cruzamento 00101010010 1010010 1101 00101010100 Filho 1 Filho 2 Mãe Após o Cruzamento Posição do Cruzamento

Figura 5.2: Operador de cruzamento (Reproduzido de Ticona(2003)).

Este tipo de cruzamento consiste em:

• Escolher arbitrariamente dois indiv´ıduos no conjunto de solu¸c˜oes;

5.2. Algoritmos Gen´eticos 67 • Criar novos descendentes trocando as cadeias parciais de cada um dos indiv´ıduos.

iii) Muta¸c˜ao:

O operador de muta¸c˜ao ´e necess´ario para se introduzir e manter a diversidade gen´e- tica na popula¸c˜ao, alterando arbitrariamente um ou mais componentes de uma estrutura escolhida, assim como ilustrado na Fig. 5.3.

Ancestral 1 110100110 Antes da Mutação 000100110 Descendente 1 Após a Mutação 110000110 010110110 Ancestral 2 Descendente 2

Figura 5.3: Operador de muta¸c˜ao (Reproduzido de Ticona (2003)).

Dessa maneira, esse operador nos fornece meios para a incorpora¸c˜ao de novos ele- mentos na popula¸c˜ao, assegurando que a probabilidade de se chegar a qualquer ponto do espa¸co de busca nunca seja zero, com o intuito de tentar contornar o problema de ´oti- mos locais (CASTRO, 2001). O operador de muta¸c˜ao ´e aplicado aos indiv´ıduos com uma probabilidade dada pela taxa de muta¸c˜ao pm. Segundo Deb (2001), geralmente se utiliza uma taxa de muta¸c˜ao pequena (como na gen´etica natural), pois ´e um operador gen´etico secund´ario.

iv ) Elitismo:

Esse operador consiste em manter as melhores solu¸c˜oes encontradas nas gera¸c˜oes ante- riores nas gera¸c˜oes posteriores, o que n˜ao provoca perda de poss´ıveis candidatos ao ponto ´otimo. Segundo Castro (2001), uma forma de implementar o elitismo ´e copiar diretamente as n% das solu¸c˜oes da popula¸c˜ao atual na popula¸c˜ao seguinte. O restante das (100-n)% solu¸c˜oes ´e gerada usando os operadores gen´eticos usuais sobre a popula¸c˜ao atual. Desta forma, as melhores solu¸c˜oes passam diretamente para a popula¸c˜ao seguinte, al´em de par- ticipar da cria¸c˜ao do restante das solu¸c˜oes. Outra forma de elitismo consiste em criar a popula¸c˜ao seguinte a partir da popula¸c˜ao atual usando os operadores gen´eticos usuais, e escolher as melhores N solu¸c˜oes de ambas popula¸c˜oes (TICONA, 2003).