• Nenhum resultado encontrado

SUMÁRIO 1 INTRODUÇÃO

APÊNDICE G – CURVAS DOS PADRÕES DE PRESSÃO OBSERVADAS E ESTÁTICAS DA CIDADE DE ITIRAPUÃ

3 REVISÃO BIBLIOGRÁFICA

3.2 FERRAMENTAS DE OTIMIZAÇÃO

3.2.2 ALGORITMOS GENÉTICOS

3.2.2.1 OPERADORES GENÉTICOS

Três são os operadores genéticos disponíveis na biblioteca GAlib C++: recombinação, seleção e mutação.

Recombinação pode ser realizada por meio dos Operadores Convencionais ou Operadores Aritméticos.

Os Operadores Convencionais são os mais conhecidos e são formados pelos operadores de recombinação de n pontos e uniforme. Na recombinação de n pontos, os tipos disponíveis na biblioteca são o de um ponto e o de dois pontos. O procedimento destes operadores é “cortar” os cromossomos pais em uma (Figura 3.1) ou duas posições aleatórias (Figura 3.2) para recombinação de um ponto e de dois pontos respectivamente. O resultado é recombinado, gerando dois novos cromossomos chamados filhos. A probabilidade da recombinação pode variar, a cada par de cromossomos selecionado, entre 70 e 100% na prática.

Figura 3.1 - Recombinação de um ponto – simples troca

Figura 3.2 - Recombinação de dois pontos – simples troca

Mas os Operadores Convencionais apresentam uma desvantagem. Funcionam bem na representação binária, mas na representação real apenas trocam valores e não geram novas informações. Assim, os Operadores Aritméticos podem ser considerados a melhor solução para a codificação real. Os tipos de recombinação disponíveis são a recombinação aritmética e a recombinação BLX-a ou recombinação mistura (Blend

crossover).

A recombinação aritmética, assim como para a recombinação de um ou dois pontos, gera dois cromossomos filhos, mas por meio de uma combinação linear entre os cromossomos pais da seguinte forma:

Filho1 = b * Pai1 + (1 – b)*Pai2 (3.1)

Filho2 = (1 – b)* Pai1 + b * Pai2 (3.2)

sendo o valor de b variando entre 0 a 1.

Para a recombinação BLX-a ou mistura, o novo cromossomo produzido a partir de dois cromossomos segue a combinação:

Filho = Pai1 + b * (Pai2 – Pai1) (3.3)

sendo b pertencente ao intervalo (-a, 1+a), podendo variar para cada par de ge nes. Mutação ocorre por meio do operador seleção, em que o valor de um gene é substituído por outro valor aleatório da faixa admissível para cada variável de uma distribuição normal, ou seja, dado um cromossomo pai p com o j-ésimo gene selecionado para mutação, é produzido um cromossomo filho s da seguinte forma:

si =N(pi, s ) se i = j

si = pi caso contrário (3.4)

sendo N(pi,s) uma distribuição normal com média pi e desvio padrão s , considerado 1

para este trabalho. Pode-se ainda diminuir o valor do desvio padrão à medida que o número de gerações aumenta.

Seleção segue a mesma idéia do processo de seleção natural dos seres vivos, ou seja, o AG seleciona os melhores cromossomos da população para gerar cromossomos filhos por meio dos operadores recombinação e mutação, sendo geralmente os pais, selecionados com probabilidade proporcional à sua aptidão. Pode-se classificar como; Roda da Roleta, Ordenamento, Torneio, Uniforme, Amostragem Determinística e

Stochastic Remainder Sampling (SRS) os tipos de seleção mais usuais.

Para o algoritmo Roda da Roleta, as probabilidades de seleção para cada cromossomo são calculadas de acordo com a razão de sua aptidão e da aptidão da população acumulada. Então, é gerado um número aleatório no intervalo de zero ao valor da aptidão acumulada. Por fim os operadores recombinação e mutação atuam sobre a solução selecionada. A desvantagem deste método é que aptidões negativas não são toleradas e problemas de convergência prematura podem acontecer.

Seleção Ordenamento, como o próprio nome diz, ordena os cromossomos na população. Ele define uma aptidão arbitrária máxima para o primeiro cromossomo e uma aptidão arbitrária mínima para o último cromossomo da população. A partir daí, as demais aptidões são calculadas interpolando os dois extremos por uma reta.

A seleção por Torneio se baseia na escolha aleatória de n cromossomos da população (geralmente n = 2), com probabilidades iguais, comparando entre si os respectivos valores de aptidão. Nesta comparação, o melhor cromossomo é selecionado. Este tipo de seleção não requer o escalonamento e o ordenamento da aptidão.

A seleção Uniforme não considera a aptidão do cromossomo, mas considera a mesma probabilidade de seleção para todos os cromossomos da população. Tem como

característica “escolher” aleatoriamente os cromossomos a sofrerem recombinação e mutação.

A seleção por Amostragem Determinística calcula as probabilidades de seleção da mesma maneira que na Roda da Roleta, e em seguida, multiplica cada probabilidade pelo número de cromossomos da população. Cada cromossomo é selecionado de acordo com a parte inteira do valor calculado, e a população ordenada de acordo com a parte decimal deste mesmo valor. O restante da população é selecionado do topo da lista ordenada. Posteriormente, selecionam-se uniformemente os cromossomos que sofrerão a ação dos operadores genéticos.

A Stochastic Remainder Sampling (SRS) inicia o processo de maneira idêntica ao da Amostragem Determinística e difere no tratamento das partes fracionárias, que são consideradas probabilidades. Assim, se um cromossomo tiver aptidão 1,5, uma cópia idêntica na população intermediária será gerada e uma probabilidade de 50% de ter outra cópia acontecerá. A partir daí, os cromossomos são selecionados uniformemente.

Os AGs da biblioteca GAlib C++ possibilitam o emprego de escalonamento (scaling) na função objetivo. Trata-se de uma vantagem, uma vez que a função objetivo nem sempre é adequada para ser utilizada como valor de aptidão. Segundo MICHALEWICZ (1994), este mecanismo de mapeamento da função objetivo é dividido em três tipos: Escalonamento Linear que transforma os valores das aptidões de tal modo que a aptidão média torna-se igual ao valor médio da função objetivo, e a aptidão máxima igual a c vezes (tipicamente 1,2 = c = 2,0) a aptidão média. Tem como principal desvantagem a geração de valores negativos para as aptidões, forçando a limitação do valor mínimo da função aptidão; Escalonamento com Truncamento Sigma que sana as deficiências do escalonamento linear, pois, possíveis valores negativos da função aptidão são adotados como zero; e o Escalonamento Exponencial (Power Law Scaling) que eleva a uma potência o valor inicial da função aptidão.

Documentos relacionados