A natureza das soluções necessárias para a análise de agrupamentos torna perfeita- mente viável o uso de algoritmos genéticos (AG). Uma das formas de realizar a agru- pamento dos dados é encontrar uma configuração de rótulos para os dados que forneça algum sentido perante um critério escolhido. De fato, o uso de uma abordagem evolutiva como os AG, que buscam as melhores soluções, parece ser uma boa escolha, tanto devido a sua baixa complexidade como também pelo seu grande uso na literatura de busca de soluções.
Os algoritmos genéticos constroem uma solução a partir de uma população inicial de indivíduos (cromossomos). Para chegar ao final, o algoritmo passa repetidamente por um conjunto de etapas conhecidas como: seleção, cruzamento e mutação. A primeira, seleciona os indivíduos mais aptos a sobrevivência; a segunda mistura os indivíduos na tentativa de conseguir um outro mais evoluído; e a última aplica uma pertubação para evitar uma convergência precoce (REZENDE,2003).
Sendo assim, o primeiro passo para usar um algoritmo genético é escolher uma co- dificação para os indivíduos de acordo com o problema a ser tratado. No nosso caso, como buscamos rótulos para os elementos representativos de um conjunto de dados, é justo que os indivíduos contenham esses rótulos. Desse modo, cada indivíduo é um vetor I = i1, i2, ..., iM, onde cada iM ∈ [1,k] é o rótulo daquele elemento de acordo com a quan-
genes que podem assumir um valor entre 1 e k (Figura4.20).
i1 i2 i3... iM
Figura 4.20: Cada indivíduo da população inicial é um vetor com N elementos.
Por exemplo, considere o conjunto de dados da Figura 4.18(a) com 14 pontos re- presentativos. Se alguém quisesse dividi-lo em dois grupos, a população inicial conteria indivíduos com 14 genes, cada um tendo seus valores iguais a um ou dois. A Figura4.21
mostra um exemplo de população inicial para esse problema contendo cinco indivíduos.
I1 1 1 1 1 1 1 1 2 2 2 2 2 2 2
I2 1 2 1 2 1 2 1 2 1 2 1 2 1 2
I3 1 1 1 2 1 1 1 2 2 2 1 1 1 2
I4 1 1 1 1 1 1 1 1 1 1 1 1 2 2
I5 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Figura 4.21: Exemplo de população inicial contendo cinco indivíduos.
Sendo assim, o algoritmo genético proposto recebe uma população de indivíduos codificada na maneira descrita anteriormente e tem como saída um único indivíduo que representa a melhor solução. A qualificação de cada solução é dada através de uma função de adequação (fitness function). Na versão do algoritmo genético que foi desenvolvido neste trabalho, a FCA1 é perfeitamente compatível para assumir o papel de função de
adequação. Os passos referentes ao funcionamento do algoritmo genético proposto são mostrados no Algoritmo1.
Algoritmo 1: Algoritmo Genético. Entrada: População inicial, X
Saída: Solução com menor valor da FCA1.
início
enquanto número de iterações não for atingido faça
Selecionar o conjunto de pais utilizando torneio em pares - Escolher indivíduo que produz menor valor da FCA1;
Cruzar os indivíduos para gerar uma nova população; Efetuar mutação nos indivíduos;
fim enqto fim
A partir da população inicial, o algoritmo inicia um processo de construção iterativa da solução final. Para isso, uma nova população é constituída a cada iteração contendo
o resultado do cruzamento mutante dos indivíduos mais aptos da população anterior. Ou seja, para cada novo indivíduo ser construído, uma parte da população anterior é aleato- riamente selecionada e os dois indivíduos mais aptos daquela amostra são escolhidos e cruzados para gerar um novo indivíduo. Ao processo de escalamento aleatório e seleção por aptidão, dá-se o nome de torneio. Esse novo indivíduo passará ainda por um processo de mutação.
O cruzamento é o processo de criação de um novo indivíduo a partir de outros dois. Em geral, o nível do cruzamento é dado por qual percentual e parte dos pais o novo indivíduo vai herdar. No nosso algoritmo, podem existir entre um e quatro pontos de cru- zamento. Esse valor é dado por uma escolha aleatória e indica que quanto maior o número de pontos de cruzamento, mais variado vai ser o novo indivíduo quando relacionado aos pais.
Cada novo cromossomo passa por um processo de mutação que consiste basicamente em perturbar um subconjunto dos seus genes. A taxa de mutação usada na nossa imple- mentação é de até 10% do total de genes. Ou seja, cada indivíduo pode ter uma parte do seus genes alteradas para outro valor (dentro do intervalo permitido). Isso é utilizado para evitar que ocorra uma convergência rápida mas para um mínimo local.
É importante salientar que existe um mecanismo, conhecido como elitismo, que se- leciona automaticamente os melhores indivíduos da população anterior para fazer parte da nova população sem qualquer alteração. Essa estratégia garante que possíveis boas soluções não sejam perdidas nos processos de cruzamento e mutação. O elitismo foi uti- lizado no nosso algoritmo genético, levando sempre os dois indivíduos mais aptos para a próxima população.
Sendo assim, podemos dizer que o AGTI busca a solução (indivíduo) equivalente a melhor disposição das regiões auxiliares dentro dos grupos. Ou seja, o AGTI tem como objetivo: min FCA1= k
∑
m=1 k∑
n=m+1 PICr( fm, fn) Sujeito a: 1 ≤ ia, ib≤ k, ia∈ fm, ib∈ fn e ia, ib∈ I.Apesar de todos os recursos utilizados, a literatura ainda aponta que os algoritmos genéticos podem convergir para mínimos locais. No entanto, em muito cenários onde o
número de soluções possíveis é muito grande, os AG chegam a soluções plausíveis em um curto espaço de tempo (REZENDE,2003).