tttt
fig 4.7 → Versão final do nosso GA mais simples
É claro que alguém poderia inventar similares computacionais destas características naturais. Se isto for feito, provavelmente os GAs tornar-se-ão não só ferramentas de busca mais eficientes como também serão uma notável analogia das sociedades naturais, podendo até ser objeto de estudos sociológicos29.
O processo também não é de todo empírico, como pode parecer até agora. Existe uma teoria razoavelmente sólida por trás dos GAs, teoria esta que omitimos até agora por questões de conveniência, mas que veremos no capítulo
5 a seguir.
4.8) Uma execução manual
Para que possamos entender melhor o funcionamento dos algoritmos genéticos, vamos tentar resolver, usando um GA, o problema de maximizar a função do exemplo 4.1, dada por f ( x, y ) = x * y * sen(
yπ ) , com x e y
4
pertencentes ao intervalo [0,15]30. Como é possível que esta função retorne um valor igual a zero, usaremos uma função de avaliação g ( x, y ) = 1 + f ( x, y ) . Como discutiremos com detalhes na seção 4.9.a, funções que retornem valores negativos ou zero geram espaços da roleta que nunca serão sorteados e, por conseguinte, devem ser evitadas.
Dado o intervalo dos valores, são necessários 4 bits para cada variável, o que implica em um cromossomo de 8 bits, e vamos utilizar uma taxa de mutação de 1%. Para que o tamanho do exemplo seja adequado para um livro, vamos manter uma população de apenas 6 indivíduos.
A população inicial, sorteada aleatoriamente, consiste dos seguintes indivíduos:
Cromossomo
01000011
x
4
y
3
g(x,y)
9,5
29
É claro que isto é apenas uma digressão, mas a idéia é bastante interessante para merecer uma menção aqui!
Antes tínhamos considerado valores reais no intervalo [-100,100]. Entretanto, representar cromossomos de 44 bits iria tomar muito espaço. Para simplificar o exemplo e facilitar sua compreensão, vamos trabalhar com cromossomos menores e valores
inteiros.