• Aucun résultat trouvé

A geração é uma iteração do AE, na qual os indivíduos da população atual são selecionados e recombinados e/ou mutados, gerando descendentes. Devido à criação de novos

42 descendentes, o tamanho da população cresce e então um mecanismo de seleção controla esse tamanho. Nesta fase os indivíduos mais aptos da geração atual são selecionados. Esses indivíduos são utilizados para gerar uma nova população por cruzamento. Cada indivíduo tem uma probabilidade de ser selecionado, proporcional à sua aptidão. Para visualizar este método considere um círculo dividido em n regiões (tamanho da população), onde a área de cada região é proporcional à aptidão do indivíduo (figura 9). Coloca-se sobre este círculo uma "roleta" com n cursores, igualmente espaçados. Após girar a roleta, a posição dos cursores indica os indivíduos selecionados. Este método é denominado amostragem universal estocástica. Evidentemente, os indivíduos cujas regiões possuem maior área terão maior probabilidade de serem selecionados várias vezes. Como consequência, a seleção de indivíduos pode conter várias cópias de um mesmo indivíduo enquanto outros podem desaparecer.

3.2.3 Operadores Genéticos

3.2.3.1 Crossover

Os indivíduos selecionados na etapa anterior são cruzados da seguinte forma: a lista de indivíduos selecionados é embaralhada aleatoriamente criando-se, desta forma, uma segunda lista, chamada lista de parceiros. Cada indivíduo selecionado é então cruzado com o indivíduo que ocupa a mesma posição na lista de parceiros. A forma como se realiza este cruzamento é ilustrada na figura 10. Os cromossomas de cada par de indivíduos a serem cruzados são particionados em um ponto, chamado ponto de corte, sorteado aleatoriamente. Um novo cromossoma é gerado permutando-se a metade inicial de um cromossoma com a metade final do outro. Deve-se notar que se o cromossoma for representado por uma cadeia de bits, como

Figura 9 - Amostragem Estocástica Universal Figura 9 - Amostragem Estocástica Universal

43 na figura 10, o ponto de corte pode incidir em qualquer posição (bit) no interior de um gene, não importando os limites do gene.

Para os genes codificados por números reais existe uma grande variedade de operadores de cruzamento, que combinam os genes em reprodução. Por exemplo, o crossover natural combina, através de uma média ponderada de pesos aleatórios r = U([0,1]) num intervalo uniforme, os cromossomas dos pais.

Em qualquer um dos casos a operações da menor unidade do cromossoma que pode ser permutada é o gene.

3.2.3.2 Mutação

A operação de mutação é utilizada para garantir uma maior análise do espaço de estados e evitar que o algoritmo genético convirja naturalmente e precocemente para mínimos locais. A mutação é efetuada alterando-se o valor de um gene de um indivíduo sorteado aleatoriamente com uma determinada probabilidade, denominada probabilidade de mutação, ou seja, vários indivíduos da nova população podem ter um dos seus genes alterado aleatoriamente.

No caso dos genes, soluções para um problema de otimização, são representadas como "cromossomas". Um cromossoma consiste num conjunto de "genes" que expressam variáveis do problema de otimização. Os algoritmos genéticos começam com uma população aleatória de cromossomas onde, para cada iteração do AG, todos os cromossomas devem ser avaliados

Figura 10 - Cruzamento de dois indivíduos num algoritmo genético simples

44 através de funções de desempenho fazendo com que os cromossomas com o maior valor de aptidão sejam selecionados para sofrerem mutação e cruzamento (crossover) de modo a carregarem os cromossomas-filhos onde estes são comparados com os cromossomas-pai. Em seguida, para as versões estáveis dos AG, apenas o vencedor dos cromossomas- filho é usado para substituir os piores cromossomas-pai.

Por outro lado, para o AG instável, todas as soluções resultantes (cromossoma-filho) são utilizadas para formar a população da próxima geração sem ocorrer a comparação com as soluções-pai (cromossoma-pai). Normalmente, o processo de AG continua, até ser obtida uma solução quase ideal, ou um certo número de gerações (iterações) ser atingido. Os principais parâmetros utilizados no AG são o tamanho da população, o número máximo de gerações, a probabilidade de mutação e a de probabilidade de crossover.

Uma população de tamanho grande e um número elevado de gerações geralmente melhoram a probabilidade de se obter uma solução ótima. Uma pequena taxa de mutação é normalmente utilizada proporcionado ao AG um espaço de pesquisa maior, apesar desse operador normalmente criar alterações genéticas no indivíduo erráticas, que pioram o seu desempenho. Todavia, em outros casos estas modificações trazem benefícios novos e novas linhas de evolução para a espécie. A probabilidade de cruzamento é geralmente elevada, tipicamente entre 0.6 e 1,0, enquanto que a probabilidade de mutação é geralmente baixa, de valores das décimas ou centésimas da unidade.

Considerando a codificação binária, o operador de mutação padrão simplesmente troca o valor de um gene em um cromossoma [Goldberg, (1989)]. Assim, se o alelo de um gene selecionado é 1, o seu valor passará a ser 0 após a aplicação da mutação (Figura 11)

45

3.2.4 Migração

A divisão explícita da população nos algoritmos genéticos levanta diversas questões relacionadas a política de migração de indivíduos. A política de migração mais simples é não permitir haver migração de indivíduos. O resultado é um conjunto de algoritmos genéticos convencionais independentes, ou ilhas isoladas. Apesar desta política ser muito simples de implementar, não há outra vantagem em relação aos algoritmos genéticos convencionais além da ampliação do espaço de busca [TANESE, (1989)] que resulta de as populações iniciais serem diferentes e de haver processos evolutivos autónomos. Tal corresponderia a repetir o AG em igual número de vezes.

No modelo denominado algoritmo genético paralelo síncrono, as populações evoluem na mesma velocidade e realizam as trocas no mesmo tempo. Um critério global para o início da migração é estabelecido e cada vez que este critério for satisfeito, todas as populações enviam e recebem um grupo de indivíduos migrantes. Porém, em ambientes distribuídos, uma máquina mais rápida pode desenvolver a população e ser forçada a aguardar as máquinas mais lentas atingirem o critério estabelecido. Os ambientes distribuídos podem ser explorados com mais eficiência através do emprego de uma política de migração assíncrona, ou seja, cada população decide de forma independentemente quando os indivíduos devem ser trocados. Os algoritmos genéticos paralelos assíncronos, por outro lado, levantam uma questão importante: uma população com indivíduos de baixa qualidade será dominada quando indivíduos migrantes de alta qualidade são inseridos nessa população? De facto, tal pode suceder ao “dizimar” os locais, reduzindo a diversidade genética local com os seus genes. Evita-se este problema ao diminuir a probabilidade de migração entre populações com níveis de desenvolvimento muito diferentes.

A migração pode acontecer por meio de clonagem, deixando ficar o indivíduo na sua população original e fazendo migrar um clone. De outro modo, os indivíduos selecionados para migrar são removidos da população de origem e movidos para a população de destino.

46

3.2.5 Parâmetros evolutivos

Além da forma como o cromossoma é codificado, existem vários parâmetros do algoritmo genético que podem ser escolhidos para melhorar o seu desempenho, adaptando-o às características particulares de determinadas classes de problemas. Entre eles os mais importantes são: o tamanho da população, o número de gerações, a probabilidade de crossover e a probabilidade de mutação. A influência de cada parâmetro no desempenho do algoritmo depende da classe de problemas que estão a ser tratados. Assim, a determinação de um conjunto de valores otimizado para estes parâmetros dependerá da realização de um grande número de experiências e testes. Na maioria da literatura os valores encontrados estão na faixa acima dos a 0,5 para a probabilidade de crossover e valores baixos para a probabilidade de mutação.

O tamanho da população e o número de gerações dependem da complexidade do problema de otimização e devem ser determinados experimentalmente. No entanto, deve ser observado que o tamanho da população e o número de gerações definem diretamente o tamanho do espaço de busca a ser coberto.

47

3.2.5.1 Tamanho da População

O tamanho da população afeta o desempenho global e a eficiência dos algoritmos genéticos. Com uma população pequena o desempenho pode cair, pois deste modo a população fornece uma pequena cobertura do espaço de busca do problema. Uma grande população geralmente fornece uma cobertura representativa do domínio do problema, além de prevenir convergências prematuras para soluções locais ao invés de globais. No entanto, para se trabalhar com grandes populações, são necessários maiores recursos computacionais, ou que o algoritmo trabalhe por um período de tempo muito maior.

3.2.5.2 Taxa de Cruzamento

Quanto maior for esta taxa, mais rapidamente novas estruturas serão introduzidas na população. Mas se esta for muito alta, estruturas com boas aptidões poderão ser retiradas mais rapidamente que a capacidade da seleção em criar melhores estruturas. Com um valor baixo, o algoritmo pode-se tornar lento ou estagnar.

3.2.5.3 Taxa de Mutação

Uma baixa taxa de mutação previne que a busca fique estagnada em regiões do espaço de busca. Além disso, possibilita que qualquer ponto do espaço de busca seja atingido. Com uma taxa muito alta a busca torna-se essencialmente aleatória.

3.2.5.4 Taxa de Substituição

Controla a percentagem da população que será substituída durante a próxima geração. Com um valor alto, a maior parte da população será substituída, mas com valores muito altos pode ocorrer perda de estruturas de alta aptidão. Com um valor baixo, o algoritmo pode tornar-se muito lento.

3.2.5.5 Condição de paragem

Como lidamos com problemas de otimização, o ideal seria que o algoritmo terminasse assim que o ponto ótimo fosse descoberto. Já no caso de funções multimodais, um ponto ótimo pode ser o suficiente, mas pode haver situações onde todos ou o maior número possível de pontos ótimos sejam desejados. Um problema prático é que, na maioria dos casos de

48 interesse, não se pode afirmar com certeza se um dado ponto ótimo corresponde a um ótimo global. Como consequência, normalmente usa-se o critério do número máximo de gerações ou um tempo limite de processamento para parar um algoritmo genético. Outro critério plausível é parar o algoritmo usando a ideia de estagnação, ou seja, quando não se observa melhoria da população depois de várias gerações consecutivas, isto é, quando a aptidão média ou do melhor indivíduo não melhora mais ou quando as aptidões dos indivíduos de uma população se tornarem muito parecidas. Ao conhecer a resposta máxima da função objetivo, é possível utilizar este valor como critério de paragem.