• Nenhum resultado encontrado

3.3 O Algoritmo cob-aiNet

3.3.1 Clonagem e Hipermutação

Na cob-aiNet, o número de clones gerado para cada célula da população a cada iteração é definido dinamicamente e de maneira diretamente proporcional à concentração de cada célula, como pode ser visto na Equação 3.8. Esta variação do número de clones de cada célula a cada iteração corresponde à reprodução dos mecanismos de ativação celular. Conforme o modelo de rede imunológica descrito na Seção 3.2.2, as células mais ativas da população possuem maior concentração, e isso é refletido, na prática, na geração de um maior número de clones.

nCti = dCti· (nCmax− nCmin) + nCmine,

(3.8) onde nCti é o número de clones que deve ser gerado para cada célula i na iteração t, Ctié a concentra-

ção da célula i na iteração t, nCmax e nCmin são, respectivamente, o número máximo e mínimo de

clones que deve ser gerado para cada célula (definidos pelo usuário - vide Pseudo-código 3.2), e d·e é o operador teto, que leva ao maior inteiro subsequente.

Após a etapa de clonagem, cada clone sofre um processo de hipermutação, em que os indiví- duos sofrem variação genética inversamente proporcional ao seu fitness. No algoritmo cob-aiNet, o processo de hipermutação é relativamente similar ao do algoritmo opt-aiNet (de Castro & Timmis, 2002a), descrito na Seção 2.2.2, e é dado a seguir:

~ Abit+1 = ~Abit+ βt· e−f Ag i (t)·C i t · Ni(~0, I), (3.9)

onde ~Abit+1é a nova célula i, ~Abité a célula i original, fiAg(t) é o fitness da célula i original, Ci

t é a

concentração da célula i original, Ni(~0, I) é um vetor aleatório gaussiano de média ~0 e covariância

igual à matriz identidade I, e βt é um parâmetro que controla a amplitude da mutação na iteração

t. Com relação ao operador de hipermutação original da opt-aiNet, apresentado na Seção 2.2.2, é possível perceber duas diferenças na Equação 3.9: (i) o parâmetro β agora é dependente da iteração

atual t em que se encontra o algoritmo; e (ii) a concentração Ci

t do indivíduo i passou a fazer parte

do termo exponencial.

A introdução da concentração Ci

t no termo exponencial da Equação 3.9 se deu com o intuito de

promover uma maior variabilidade genética nos clones gerados a partir de células de menor concen- tração. Como visto na Seção 3.2.2, a concentração de uma dada célula só é reduzida quando sua afinidade com as demais células da população é não-nula, ou seja, quando a célula em questão se en- contra na vizinhança de outros indivíduos de maior fitness. Sendo assim, o algoritmo deve estimular o afastamento destas células de baixa concentração da região de atuação das melhores células, o que pode ser obtido com a aplicação de uma maior variação pelo mecanismo de hipermutação. Como a concentração Cti é multiplicada pelo fitness fiAg(t) da célula original no termo exponencial da Equa- ção 3.9, o operador de hipermutação da cob-aiNet tende a aplicar variações maiores àqueles clones gerados tanto a partir de células ruins (baixo fitness) quanto a partir de células de baixa concentra- ção, enquanto que clones gerados a partir de bons indivíduos no contexto global (maiores valores de fitness) e a partir dos melhores indivíduos em suas respectivas vizinhanças (maiores concentrações) tendem a sofrem uma menor variabilidade genética.

Como visto na Seção 2.2.2, o parâmetro β no algoritmo opt-aiNet é estático e deve ser definido pelo usuário, o que pode ser uma tarefa complexa já que β é altamente dependente das características do problema. Altos valores de β tendem a manter o algoritmo com um comportamento predomi- nantemente exploratório que pode até mesmo impedir sua convergência, enquanto que valores muito baixos para o parâmetro β podem acabar resultando em uma convergência prematura para ótimos locais. Sendo assim, na cob-aiNet foi proposto um novo mecanismo que ajusta o valor do parâmetro β ao longo das iterações (conforme descrito na Equação 3.10), para que o algoritmo seja capaz de explorar o espaço de busca nas iterações iniciais de sua execução e, com o passar do tempo, gradu- almente alterar seu comportamento para que possa realizar, ao final, o ajuste fino de cada solução, explorando apenas sua vizinhança. Na Figura 3.2, um exemplo desta variação do parâmetro β da hipermutação, tomada ao longo de uma execução com 1000 iterações do algoritmo cob-aiNet, está ilustrada. βt= βi− βf 1 + etmax20 ·(t− tmax 2 ) + βf, (3.10)

onde βt é o valor do parâmetro β na iteração t (ou avaliação de função t, conforme o critério de

parada), βie βf são os valores inicial (máximo) e final (mínimo) de β, definidos pelo usuário, e tmax é o número máximo de iterações (ou avaliações de função, conforme o critério de parada).

Este novo mecanismo de obtenção de β possui duas vantagens quando comparado à abordagem original em que β correspondia a um parâmetro fixo definido pelo usuário: (i) apesar de o número de parâmetros a ser ajustado pelo usuário ter aumentado (o usuário deve ajustar βi e βf), o algoritmo

0 200 400 600 800 1000 −0.5 0 0.5 1 1.5 2 2.5 3 3.5 t β Exploração Ajuste Fino βi= βf=

Fig. 3.2: Ilustração da variação do parâmetro β em função da iteração t. Neste exemplo, β foi calculado de acordo com a Equação 3.10, sendo βi= 3, βf = 0, 001 e tmax= 1000.

agora opera em um intervalo dentro do qual β pode variar, o que deixa a ferramenta muito mais ro- busta frente à alternativa em que β permanecia com um valor fixo (e possivelmente inadequado) por toda a sua execução; e (ii) a variação do comportamento da cob-aiNet ao longo de sua execução, de exploratório no início para um modo de ajuste-fino ao final, permite a estabilização da concentração de cada célula nas iterações finais da execução, já que mutações capazes de deslocar significativa- mente uma dada célula no espaço de busca dificilmente ocorrerão e as células tenderão então apenas a convergir para os melhores pontos dos vales/picos (ótimos locais) em que foram previamente po- sicionadas. Neste segundo caso, durante a convergência para os ótimos locais mais próximos, caso exista mais de uma solução na região de um mesmo ótimo local, a concentração das piores célu- las diminuirá gradualmente até que se torne nula, o que resultará na eliminação de tais células da população (supressão).

Apesar das vantagens introduzidas por este novo mecanismo de variação do parâmetro β, o com- portamento puramente monotônico ilustrado na Figura 3.2 não permite que o algoritmo volte a am- pliar o escopo de sua busca caso a melhor solução da população convirja prematuramente. O ideal, nestes casos, seria que o valor de β pudesse ser reiniciado como ilustrado na Figura 3.3(a), ou que pelo menos sofresse um aumento como o apresentado na Figura 3.3(b), permitindo assim a amplia- ção da capacidade de exploração do algoritmo e, consequentemente, aumentando a possibilidade de localização de melhores soluções.

A implementação deste mecanismo alternativo de variação do parâmetro β é direta a partir da Equação 3.10. Para que se consiga o comportamento ilustrado na Figura 3.3(a), basta substituir t por

t − ∆ e tmax por tmax− ∆, onde ∆ corresponde à iteração em que deve ocorrer a reinício. Caso o

comportamento desejado seja equivalente ao ilustrado na Figura 3.3(b), além destas duas substituições deve-se também adotar βi = θ · βiem todo reinício, o que fará com que β seja reiniciado para o valor

0 200 400 600 800 1000 −0.5 0 0.5 1 1.5 2 2.5 3 3.5 t β βf= βi= (a) 0 200 400 600 800 1000 −0.5 0 0.5 1 1.5 2 2.5 3 3.5 t β βi= 0.6βi βf= (b)

Fig. 3.3: Ilustração de propostas alternativas de variação do parâmetro β em função da iteração t. Neste exemplo, β foi calculado utilizando-se βi = 3, βf = 0, 001 e tmax = 1000. Em (a), β foi reiniciado para

βi = 3, enquanto que em (b) o reinício foi feito para 0, 6 · βi = 1, 8. Em ambos os casos, o reinício de β ocorreu em t = 600.

θ · βi. No exemplo dado na Figura 3.3(b), foi adotado θ = 0, 6. Para que seja detectada a estagnação

do processo de busca, a forma mais simples é verificar se a melhora do fitness da melhor solução da população não é superior a um determinado limiar ξ por n iterações.

Apesar de tornar o algoritmo mais flexível, estes mecanismos alternativos de variação do pa- râmetro β, ao longo da busca, têm como principal desvantagem a introdução de novos parâmetros a serem ajustados pelo usuário (n, ∆, ξ e θ), que se somam aos demais previamente listados no Pseudo-código 3.2.

Em conjunto com os experimentos que serão apresentados e discutidos no Capítulo 4, foi feita uma série de testes comparativos para se avaliar a necessidade ou não de utilização da estratégia de reinício de β, e observou-se que, para os problemas que serão tratados aqui, não houve nenhuma variação sensível de desempenho do algoritmo. Sendo assim, no restante desta tese foi adotado o mecanismo de variação de β sem reinícios, dado pela Equação 3.10 e ilustrado na Figura 3.2. No entanto, recomenda-se a utilização das proposições alternativas discutidas acima sempre que forem identificadas situações de convergência prematura da evolução do algoritmo.