• Aucun résultat trouvé

Using Arrays to Access the Contents of Forms 5.5.1

Dans le document Guide to HTML, JavaScript and PHP (Page 137-144)

Segundo (DAVIS, 1991), deve-se incorporar tanto quanto possível conhecimento do domínio no AG, bem como combinar o AG com outros métodos de otimização que trabalhem bem na resolução do problema em questão. Na hipótese que há um método usado para resolver um dado problema e o AG pode ser combinado a esse método, tornando-se assim um Algoritmo Genético Híbrido, DAVIS (1991), sugere três princípios de hibridização:

1. Use a codificação corrente, isto é, represente as soluções candidatas da mesma maneira que elas são representadas pelo método usado.

2. Torne híbrido onde for possível. Isto é, combine características benéficas do algoritmo usado com o AG onde for possível.

3. Adapte os operadores genéticos ao problema. Crie novas formas de mutação e

crossover que sejam apropriadas à codificação natural do problema.

Nas seções anteriores foram descritos todos os componentes utilizados no AGHA implementado neste trabalho, seguindo os princípios propostos por DAVIS (1991). O algoritmo desenvolvido, além de utilizar um processo de inicialização melhorado através da implementação de quatro algoritmos (descritos na seção 4.2.1) foi combinado à heurística K-

adequados ao problema de agrupamento de dados, tornando o algoritmo um AGHA.

Considerando que, a cada geração a população de um AG tende a convergir para uma crescente uniformidade, com perda significativa de informação sobre o espaço de busca completo e considerando ainda que a população, em uma certa geração, pode possuir uma solução suficientemente próxima, ou vizinha, à solução ótima, entende-se que uma busca baseada em alguma heurística específica poderia encontrar a solução ótima, sem depender tanto das probabilidades de transição de pontos das passagens de aptidão dos AGs. Existe a crença que a combinação de forma adequada de algoritmos evolutivos e heurísticas específicas tende a ser significativamente superior a versões canônicas dos AEs, (MOSCATO 1999).

Sem encontrar novas regiões de busca, nem fazer o refinamento adequado das regiões encontradas (os indivíduos), um AG tende a se estabilizar em um ponto, onde indivíduos melhores não são mais encontrados, e há baixa probabilidade de escapar dele. Com o intuito de dispor de um mecanismo efetivo de intensificação de busca, para evitar a situação anterior mencionada, no presente trabalho é inserida a heurística K-means como processo de refinamento dos indivíduos a cada geração. Tal procedimento é motivado no bom resultado que algoritmos de busca local obtêm na exploração de regiões específicas do espaço de busca e no consenso de que abordagens híbridas tendem a ser significativamente superiores a versões canônicas dos AEs. Para verificar a suposta superioridade são realizados testes, em bases reais e sintéticas, apresentados no capítulo 5.

No AGHA implementado, o K-means utilizado no refinamento dos indivíduos recebe como centróides iniciais os centróides do indivíduo a ser refinado, desta forma evita-se atribuir centróides aleatórios para o K-means que é sensível à escolha inicial dos centróides, garantindo a geração de um indivíduo melhor após o refinamento.

O algoritmo 10 apresenta o AGHA utilizado neste trabalho, seguindo as características descritas nas seções anteriores.

Algoritmo 10: procedimento do Algoritmo Genético Híbrido de Agrupamento

Entrada: X, conjunto de N padrões com d dimensões;

K, número de centróides; Tpop, tamanho da população;

Pcros , taxa de crossover;

Pmut , taxa de mutação;

Nger, número máximo de gerações;

1: t ← 0

2: Gere a população inicial P(t) com tamanho Tpop

3: Avalie P(t)

4: s ← selecionar_melhor_individuo(P(t))

5: s* ← s

6: ssse ← SSE calculado com a solução s*

7: sem_melhora ← 0

8: Ppai ← Ø

9: Enquanto (t < Nger e sem_melhora < 0.05* Nger) faça

10: t ← t +1

11: Selecione Ppai(t) a partir de P(t-1) com taxa de crossover Pcros

12: P(t) ← crossover Ppai(t)

13: Aplique mutação P(t) com taxa de mutação Pmut

14: Para todo Ii ∈ P(t)

15: Aplique BuscaLocal(Ii)

16: Fim Para 17: Avalie P(t)

18: Aplique elitismo P(t) ← selecionar_melhor_individuo P(t-1)

19: s’ ← selecionar_melhor_individuo (P(t))

20: ssse' ← SSE calculado com a solução s’

21: ∆sse = ssse' - ssse

22: Se ∆sse ≥ 0 então 23: sem_melhora ← sem_melhora + 1 24: Senão 25: sem_melhora ← 0 26: s* ← s’ 27: Fim Se 28: Fim Enquanto 29: Retorne s*

O AGHA começa gerando a população inicial, conforme descrito na seção 4.3.1. No processo para gerar a população inicial são utilizados quatro algoritmos: três versões da heurística K-means, cujos métodos de inicialização são aleatório, K-means++ e PCA_part, e um algoritmo que gera aleatoriamente as soluções. O algoritmo K-means inicializado aleatoriamente gera 36,25% dos indivíduos, o K-means incializado com o K-means++ gera 12,5% dos indivíduos, o K-means inicializado com o PCA_part gera um único indivíduo (correspondendo a 1,25% dos indivíduos) e o algoritmo aleatório contribui gerando 50% dos indivíduos. No próximo passo a população inicial gerada é avaliada. O processo de avaliação atribui um valor de aptidão para cada indivíduo. A função de aptidão utilizada é descrita na seção 4.2.4.

A partir desse ponto o algoritmo entre no seu laço principal onde as populações são geradas através dos operadores genéticos. O AGHA seleciona a população de pais utilizando

o método da Roleta (Roulette Wheel) proposto por (GOLDBERG, 1989) descrito na seção 4.2.5. O crossover de ponto único, descrito na seção 4.2.6, é aplicado na população pai gerando os cromossomos filhos que compõem a próxima geração. Após o crossover é aplicado na população corrente o operador de mutação uniforme, descrito na seção 4.2.7. Neste ponto entra o algoritmo de busca local K-means que faz o refinamento apropriado em todas as soluções que fazem parte da população corrente. O algoritmo K-means utilizado no refinamento dos indivíduos é o descrito na seção 3.2, tal heurística foi escolhida por ser um método simples, rápido e que apresenta bons resultados. Após a busca local a população corrente é avaliada e cada cromossomo tem seu valor de aptidão atualizado. O próximo passo é aplicar na população corrente o elitismo que seleciona o melhor indivíduo da geração anterior e o insere na geração corrente, caso tal indivíduo seja melhor que o melhor indivíduo da população corrente. Ao longo do processo de evolução a nova população substitui a população anterior. O AGHA repete os passos dentro de seu laço principal até que algum critério de parada seja atingido. Como critérios de parada são utilizados o número máximo de gerações ou um dado número de gerações sem melhora no valor da função de avaliação do cromossomo de maior aptidão.

A análise e ajuste dos parâmetros tamanho da população e número máximo de gerações são descritos no capítulo 5.

Dans le document Guide to HTML, JavaScript and PHP (Page 137-144)