• Sonuç bulunamadı

1: Especificar Parâmetros: Número de indivíduos da população P, número máximo de iterações (nt), tipo de codificação, manipulação das infactibilidades e taxas recombinação, i← 0;

2: Gerar uma população inicial aleatória;

3: Encontrar o fitness e unfitness de cada indivíduo da população corrente P; 4: Avaliar cada indivíduo da população;

5: while i< nt do

6: Encontrar o fitness e unfitness da população corrente;

7: Implementar a seleção por torneio para escolher apenas duas soluções geradoras; 8: Implementar a recombinação de um ponto e preservar apenas um descendente; 9: Implementar a mutação do descendente preservado;

10: Implementar a fase de melhoria local no descendente;

11: Decidir se o descendente melhorado entra na população corrente; 12: Avaliar cada indivíduo da população corrente;

13: i← i + 1; 14: end while

15: A solução do problema é a melhor solução da última população;

Analisando o Algoritmo 3 e conforme são mostrados nos itens a seguir, pode-se detalhar de forma mais específica o AGCB. Tais especificidades estão elencadas de 1− 10.

1. Especificar Parâmetros: Nesse passo, são discriminados pelo operador do programa, parâmetros de controle tais como tamanho da população, taxas de recombinação e mutação, etc.

2. Características Genéticas: Nesse passo é definido pelo operador o tipo de codificação, especificidades da formação da população inicial (restrições), tipo de seleção, manipulação das infactibilidades, etc.

3. Gerar População Inicial: Nesse passo são gerados os indivíduos que compõem a população inicial, respeitadas as devidas restrições impostas na formação desta população.

4. Cálculo do Fitness e unfitness: Nesse passo é realizado o cálculo da função de aptidão e armazenado em um vetor fitness bem como é realizado o cálculo das infactibilidades e seus dados armazenados no vetor unfitness.

5.4 ALGORITMO GENÉTICO DE CHU-BEASLEY (AGCB) 99

5. Seleção de dois Indivíduos: No AGCB a escolha de dois indivíduos é realizada por Torneio.

6. Recombinar e preservar um descendente: Nesse passo, após a escolha de dois indivíduos, é realizada e recombinação e um descendente é mantido para o passo seguinte. 7. Mutação: Nesse passo, após a concepção de um descendente, é implementada a mutação. 8. Melhoria local: Nesse passo, após a mutação, é implementada a etapa de melhoria local

até que uma melhora significativa no indivíduo seja alcançada.

9. Substituir o Descendente Melhorado: O algoritmo deve decidir se o descendente melhorado entrará na população. Caso isso ocorra, esse indivíduo melhorado substitui um elemento da população formada inicialmente no item 4.

10. Critério de Parada: Caso o critério de parada não seja satisfeito, retornar ao passo 4 ou encerrar o processo, caso contrário.

A seguir, são apresentados em detalhes algumas etapas do funcionamento do AGCB que se diferenciam dos AGs tradicionais.

5.4.2 Manipulação das infactibilidades

No AGCB os valores obtidos para as infactibilidades (equação (173)) são armazenados em um vetor chamado unfitness enquanto que os valores encontrados para a função objetivo são preservadas em outro vetor denominado fitness (equação (172)). Pode-se definir o j-ésimo elemento do vetor fitness e unfitness conforme equações (172) e (173).

fitnessj= min f (xj) (172) unfitnessj= nh

i=1 hi(xj) + ng

i=1 max(0, gi(xj)) (173)

Nas equação (172) f é a função objetivo e é utilizada no processo de minimização de um problema de otimização. Seu propósito é encontrar uma solução “ótima” (x∗) pertencente a uma região factível X⊂ S (S ⊂ Rné espaço de busca), tal que f(x) ≤ f (x), ∀x ∈ X e f : R −→ Rn, sendo esta sujeita as restrições de desigualdade gi(x) e hi(x), equação (173), e limites das

variáveis canalizadas lj≤ xj≤ uj, j= 1, · · · , n.

No AGCB, fitness é utilizado exclusivamente no passo em que ocorre a seleção de dois indivíduos, enquanto que o unfitness somado ao valor do fitness são utilizados na etapa em que é realizada a atualização da população corrente.

5.4.3 Melhoria local e controle da diversidade na população

A atualização da população corrente também é um dos diferenciais do AGCB quando este é comparado ao AG tradicional. Após a recombinação em que são escolhidos dois indivíduos da população inicial e passar pelas etapas seguintes do algoritmo, este pode ser inserido na população corrente. A cada iteração, tal precedimento é realizado no AGCB para cada descendente. Esse procedimento permite incluir duas novas técnicas no funcionamento da meta-heurística: melhoria local no descendente gerado a partir da recombinação e o devido controle da diversidade.

A melhoria local sugerida para o AGCB no descendente gerado pode ser realizada por uma técnica sofisticada ou por uma busca local mais acessível. Tal escolha deve sempre estar respaldada na análise das características de cada problema a ser otimizado. Além disso, quando ocorre a substituição de um indivíduo da população corrente pelo descendente gerado, há um controle absoluto da diversidade, isto é, todos os indivíduos da população são diferentes. Em outras palavras, caso o descendente encontrado em uma determinada geração seja exatamente igual a um indivíduo pertencente à população inicial, este é imediatamente descartado. Caso ocorra o contrário, seguem os passos que o algoritmo deve executar (UZINSKI; POSSAGNOLO; ROMERO, 2015):

• Descendente gerado é infactível: Neste caso, avalia-se se a infactibilidade do descendente gerado é inferior a infactibilidade máxima encontrada na população. Caso isso ocorra, procede-se a substituição, de outro modo o descendente gerado é eliminado.

• Descendente gerado é factível: Nesse caso, deve-se proceder a substituição na população do indivíduo no qual ocorre a maior infactibilidade. Caso seja verificado que todos os elementos da população sejam factíveis, substitui-se na população o indivíduo com o pior fitness, caso o fitness do descendente seja melhor que o pior indivíduo da população.

Os itens elencados acima garantem o controle total da diversidade da população no AGCB sendo, portanto, uma das grandes vantagens desse algoritmo, o que nem sempre ocorre nos AGs tradicionais.

5.5 ALGORITMO GENÉTICO DE CHU-BEASLEY ESPECIALIZADO

5.5 ALGORITMO GENÉTICO DE CHU-BEASLEY ESPECIALIZADO 101

1. Implementar um passo de melhoria da população inicial: Espera-se com esta modificação reduzir consideravelmente o tempo computacional na resolução de um problema de otimização se aos indivíduos que compõem a população inicial forem submetidos um algoritmo de busca local;

2. População com tamanho reduzido: Espera-se que a melhoria local proposta na população inicial faça com que os indivíduos dessa população sejam mais adaptativos. Desta forma, espera-se que um número reduzido de indivíduos que compõem essa população seja suficiente para fornecer soluções de excelente qualidade.

3. Operador de variação: a recombinação do AGCB original é modificada para considerar variáveis contínuas. Considera-se a geração de dois descendentes fazendo-se a mistura de componentes das duas soluções escolhidas no processo de seleção. A proposta consiste em fazer a combinação elemento por elemento das soluções, em que cada componente do primeiro descendente é obtida como sendo a soma das componentes das duas soluções geradoras, multiplicadas cada uma por um fator de ponderação aleatórioβ, 0≤β ≤ 1, de forma que a soma dos dois fatores seja igual a um (utiliza-seβ e (1−β));

4. Perpetuar somente o descendente que possui o melhor valor de fitness: Originalmente, no AGCB, a seleção do descendente que será melhorado pelos operadores genéticos é aleatória. Propõe-se nesta etapa que o descendente com o melhor valor encontrado na função de aptidão seja perpetuado. Espera-se nesse caso que soluções de melhor qualidade sejam obtidas com a implementação desta etapa. Selecionado o descendente, este é submetido a um teste de substituição para verificar se este entrará ou não na população corrente;

5. Excluir a etapa de mutação: A finalidade da mutação nos AGs tradicionais e no AGCB é fazer com que algumas características que não estão presentes originalmente na população gerada inicialmente possam eclodir quando estes são submetidos a alguma taxa de mutação nos indivíduos que compõem esta população. Contudo, com a implementação de uma busca local eficiente na população inicial e no descendente gerado, espera-se uma população mais diversificada e, portanto, sem necessidade de implementar o operador genético de mutação.

Para melhor entendimento dos itens elencados (1 a 5) é apresentada na Figura 4 o Algoritmo 4, onde é mostrado em detalhes o funcionamento do AGCBE.

Benzer Belgeler