• Nenhum resultado encontrado

3. METODOLOGIA

3.3. Otimização baseada no acasalamento de abelhas (HBMO e MOHBMO)

3.3.2. Algoritmo HBMO (Honey-bee Mating Optimization)

Inicialmente é gerado de modo uniforme um conjunto de soluções aleatórias que representa a população inicial (colméia). Todas as soluções são então avaliadas quanto à função objetivo em questão, ficando associado um valor de aptidão igual ao valor da função objetivo para cada solução.

Por ordenação, e tomando como referência os valores de aptidão das soluções, seleciona-se a solução que apresenta o melhor valor de aptidão (rainha), ou seja, menor valor da função objetivo, visto que o algoritmo consiste de um processo de minimização. As demais soluções são, então, descartadas e inicia-se o processo iterativo do algoritmo. Caso queira-se trabalhar com maximização deve-se utilizar da relação:

)) ( min( ) ( max f x = −f x (3.3)

No início de uma nova iteração, soluções semi-aleatórias (zangões, D) com certo grau de dependência da melhor solução (rainha, Q) são geradas. Tal dependência é crescente de forma linear ou quadrática (equações 3.4 e 3.5, respectivamente), variando entre a total independência (0%) e a total dependência (100%) na ultima iteração:

[

i nMF

]

d nMF

Q

[

2 2

]

[

2 2

]

/ ) / ( 1 nMF d nMF Q D= × − δ + ×δ (3.5)

em que nMF é o número de iterações, i a iteração atual, d uma solução aleatória no espaço de busca, sendo a melhor solução (rainha) o centro. δ é dado pela seguinte expressão:

) 1 ( − − = nMF i δ (3.6)

Esta dependência é função do avanço das iterações (maturidade da colméia), ou seja, da fração relativa da iteração, quanto mais se aproxima da iteração final, maior é a dependência, proporcionando assim uma convergência na busca.

Duas modificações acima descritas foram realizadas no algoritmo proposto por Haddad et al. (2006) como forma de melhoramento, são elas: o parâmetro de aleatoriedade mínima do zangão, complementar à dependência máxima da rainha, como forma de manter a diversidade, e a não seleção dos primeiros zangões da população inicial, possibilitando assim zangões tão bons ou melhores que as rainhas do ponto de vista da aptidão.

A dependência da rainha é obtida pelo valor complementar a 1 com base no fator de aleatoriedade mínimo caso a parcela aleatória de geração do zangão seja inferior ao valor definido por este.

É então realizado um teste seletivo (vôo de acasalamento), no qual, probabilisticamente, determina-se se a melhor solução (rainha) irá receber informação (acasalar) das soluções semi-aleatórias selecionadas ou não, através da função annealing, também conhecida como probabilidade de Boltzman, sugerida por Abbass (2001a):

) ( ) ( ) , ( Spt f e D Q prob Δ − = (3.7)

em que prob(Q,D) representa a probabilidade de recebimento de informação da solução semi-aleatória selecionada (cruzamento entre o zangão D e a rainha Q), Δ( f) é a diferença absoluta das aptidões das soluções (rainha e zangão) e Sp(t) é a temperatura da função annealing (velocidade da rainha) no tempo t .

Da função annealing fica claro que a probabilidade de recebimento de informação (acasalamento) é maior quando a temperatura (velocidade da rainha) é alta, ou seja, no início dos testes (início do vôo de acasalamento) durante o processo seletivo (vôo de acasalamento), ou quando a diferença das aptidões das soluções é pequena (aptidão do zangão é tão boa quanto à da rainha).

Para testar se haverá troca de informação (acasalamento) entre as soluções (rainha e zangão), verifica-se se a probabilidade acima é menor do que um número aleatório distribuído uniformemente entre 0 e 1. Se for, não há troca (não há acasalamento). Caso o zangão apresente aptidão melhor que a da rainha, este é automaticamente selecionado para cruzamento. Tal procedimento de aceitação automática não consta no algoritmo apresentado por Haddad et al (2006) e é utilizado aqui como forma de melhoramento do mesmo.

Assim, se o resultado é “sucesso” a informação da solução semi-aleatória (informação genética do zangão) é selecionada e armazenada num repositório de informações (espermateca da rainha), e a temperatura (velocidade da rainha) decresce segundo as expressões: ) ( ) ( ) 1 (t t Sp t Sp + =α × (3.8) e

[

M m t

]

M t) ( ) / ( = − α (3.9)

nas quais Sp(t+1) e Sp(t) são a temperatura (velocidade da rainha) em t+1 e em t, respectivamente, )α(t é um valor entre 0 e 1 obtido através da expressão acima, M é o tamanho do repositório (espermateca da rainha) e m(t) é a quantidade de soluções semi- aleatórias (zangões) selecionados para cruzamento. Se ocorrer “fracasso”, não há troca de informação (cruzamento).

Para ambas as situações o número de tentativas de possível troca de informação (energia da rainha) é decrescida, conforme a expressão:

γ − = +1) ( ) (t E t E (3.10)

em que E(t+1) e E(t) são as tentativas nos tempos t+1 e t, respectivamente, e γ é o decaimento das tentativas, aqui considerado unitário, a cada intervalo de tempo.

Conceitualmente, a melhor solução (rainha) está apta a receber informações (acasalar) enquanto seu numero de tentativas (sua energia) não estiver próxima a zero, ou seu repositório (sua espermateca) ainda não estiver preenchido. Nota-se a partir da expressão anterior, que o valor do decaimento γ irá determinar quantos testes (transições no espaço, nos quais a cada transição existe a possibilidade de encontrar um zangão) a melhor solução (rainha) estará apta a realizar a cada processo seletivo de soluções semi-aleatórias (vôo de acasalamento). Outros fatores limitantes são a temperatura da função annealing (velocidade da rainha), que deve ser maior que zero, e a quantidade de soluções semi-aleatórias (zangões) disponíveis para teste,

visto que cada solução aleatória (zangão) somente fornece informação (acasala) uma vez, sendo descartado (morte do zangão) após isto.

Posterior ao processo de troca de informações, dá-se início ao processo de geração de novas soluções (descendentes), as quais são geradas a partir de cruzamentos (crossover) entre as informações das soluções armazenadas no repositório (genes dos zangões armazenados na espermateca) e as informações da melhor solução (genes da rainha). O processo de escolha de qual informação (material genético na espermateca) será utilizada é determinado aleatoriamente, podendo o mesmo ser utilizado mais de uma vez.

A geração é feita utilizando diversos operadores de cruzamento (crossover), cuja participação é determinada a partir da performance dos mesmos, avaliada pelo percentual de contribuição na geração das melhores soluções até o presente momento, sendo maior para aqueles que tiveram maior contribuição e menor em caso contrário. No presente algoritmo foram utilizados dois tipos de operadores de cruzamento, são eles: os cruzadores aritmético (Arithmetic Crossover) e o de mistura (Blend Crossover).

Após a geração das novas soluções (novos descendentes), faz-se então uma tentativa de melhoramento das mesmas e da melhor solução atual (rainha) através de mutação. A mutação é realizada aleatoriamente em um determinado percentual das novas soluções (novos descendentes), e com certa probabilidade na melhor solução (rainha), aqui adotado em ambas as situações 5%. Utilizou-se o operador de mutação gradual (Creep).

Realizada a mutação, a população é então avaliada com base no objetivo estipulado, sendo feito posteriormente um teste para saber se a melhor solução gerada é melhor que a melhor solução atual (rainha). Caso “verdade”, a melhor solução é então atualizada (uma nova rainha), caso contrário, a melhor solução (rainha) permanece a mesma. Seqüencialmente, todos os descendentes são descartados, permanecendo somente a melhor solução (rainha), dando início a uma nova iteração (iniciada pelo vôo de acasalamento até a escolha da rainha).

O processo acima descrito é repetido até que o critério de término seja satisfeito, sendo aqui adotado como critério de parada o número de iterações.

Como uma alternativa para prover uma busca mais detalhada, Haddad et al. (2006) sugere a utilização de várias rainhas, que são selecionadas, baseadas na aptidão, como melhores soluções. O processo descrito acima é independente para cada uma das rainhas,

sendo todos os descendentes misturados ao final de cada iteração, e, juntamente com as atuais rainhas, selecionam-se as soluções mais aptas, as quais serão as novas rainhas na próxima iteração. Visto que esta abordagem provê ao algoritmo um maior refino na busca, será adotado no decorrer deste trabalho.

A Figura 3.2 apresenta o fluxograma computacional principal do processo descrito acima, mostrando em paralelo sua representação natural. A Figura 3.3 mostra o fluxograma computacional da rotina que representa o processo de tentativa de troca de informação (vôo de acasalamento) da melhor solução (rainha), que complementa a rotina apresentada na Figura 3.2, também mostrando em paralelo o processo natural representado.

FIGURA 3.2 – Fluxograma computacional do algoritmo HBMO e associação ao processo natural.

FIGURA 3.3 – Fluxograma computacional do algoritmo que representa o processo de troca de informações (vôo de acasalamento) no algoritmo HBMO e sua associação ao processo natural.

3.3.3. Abordagem multiobjetivo MOHBMO (Multiobjective Honey-bee Mating Optimization)

Documentos relacionados