2. Fase Diseño de la actuación
2.3. Instrumentos de recogida de datos
2.3.1. Recogida de datos sobre el aprendizaje
Para entender como o algoritmo funciona é primeiramente necessário que se apresente os termos envolvidos nas etapas seguidas pelo algoritmo. A terminologia comumente utilizada para o GA, baseada na teoria da evolução natural e na genética, define o vetor de soluções como sendo o cromossomo ou indivíduo. Os cromossomos, por sua vez, são constituídos de unidades discretas, os genes. Cada gene é responsável por controlar uma ou mais características do cromossomo (KONAK et al., 2006).
Na implementação original do GA por Holland (1975), os genes eram representados através de código binário. Neste caso, o gene é representado por um único bit do cordão binário. Este cordão também é chamado de string. Apesar da representação binária ainda ser muito utilizada, também é possível codificar os genes utilizando-se valores reais (ALAJMI e WRIGHT, 2014). O Quadro 2.4 apresenta resumidamente os conceitos utilizados para este tipo de algoritmo, especialmente na codificação binária.
Normalmente, um cromossomo corresponde a uma única solução x no espaço de solução. Isto requer um mecanismo de mapeamento entre o espaço de solução e os cromossomos. Esse mapeamento é chamado de codificação. O GA trabalha na codificação de um problema, não no problema em si (KONAK et al., 2006).
Quadro 2.4- Terminologia utilizada para os Algoritmos Genéticos
Termo Definição
Cromossomo / Indivíduo Vetor de possíveis soluções
Gene Cada uma das possíveis soluções que formam o cromossomo
String Cordão binário
Bit Cada valor que forma um string
Fenótipo Conjunto das variáveis de controle
Genótipo Conjunto de genes
Pais Indivíduos que serão utilizados para reprodução
Filhos Indivíduos gerados a partir dos pais
Fonte: próprio autor
Uma população é um grupo de soluções (cromossomos) existente em cada etapa do algoritmo. Cada vez que uma nova população de indivíduos é criada, este procedimento é chamado de geração.
Figura 2.9- Etapas do algoritmo genético Fonte: adaptado de ZAIN et al. (2010)
Não
Inicialização de parâmetros
Geração da população
Avaliação da função fitness
Muta çã o Critério de Parada Satisfeito? Sel eção Cros s over Convergência para a solução Final
Não existe apenas um GA, mas sim uma variedade de algoritmos genéticos, cada um adaptado para diferentes aplicações (SALOMON, 1996). No entanto, existe um GA genérico, chamado de GA canônico. O procedimento para identificação do ponto de ótimo em um GA canônico ocorre em diferentes etapas, como mostrado na Figura 2.9.
O passo inicial na implementação do algoritmo genético é a codificação das soluções potenciais, que determina a forma na qual as variáveis serão manipuladas (MARLER e ARORA, 2004). O método mais usado para a codificação consiste em representar cada solução em um cordão binário (0,1), que forma o cromossomo, como exemplificado na Figura 2.10. Deve-se especificar muito bem a codificação desse cromossomo, para que este represente de forma correta elementos do espaço de busca do problema (PINHO, 2008).
Figura 2.10 - Codificação de um cromossomo no Algoritmo Genético Fonte: Adaptado de BUSACCA et al.(2001)
Após a codificação do processo, o algoritmo segue selecionando potenciais soluções para o problema a ser resolvido. Cada solução (cromossomo) é composta de todas as variáveis, com valores atribuídos dentro dos limites superiores e inferiores determinados para o problema (ALAJMI e WRIGHT, 2014). Como mencionado anteriormente, uma coleção de cromossomos é chamada de população. A população normalmente é aleatoriamente inicializada, porém processos heurísticos também podem ser utilizados.
A população é avaliada durante o processo de evolução do algoritmo. É conferida uma classificação para cada indivíduo, que reflete o grau de adaptação deste em relação ao ambiente (OLIVEIRA et al., 2010). Segundo Fleming e Purhouse (2002), este tipo de algoritmo requer um valor escalar que represente o desempenho de cada solução. Esta avaliação é então baseada em uma função de aptidão, conhecida por fitness, que é obtida através de uma função a ser otimizada ao avaliar o cromossomo (indivíduo), geralmente a
1 0 0
0 1 1
1 0 0
1 0 0 0 1 1 1 0 0
Gene 1
Gene 2
Gene 3
,
,
Função Objetivo
Fatores
Strings
Cromossomo
função objetivo do problema de otimização. Logo, a aptidão é um valor obtido com a aplicação desta função, que pode ser conhecido através da quantificação da aptidão do indivíduo (PINHO, 2008). Segundo Marler e Arora (2004), a função fitness é uma indicação de quão desejável é um indivíduo, em termos de sobrevivência para a próxima geração.
A etapa de seleção é responsável por determinar quais indivíduos serão escolhidos para a etapa de reprodução. A probabilidade de uma dada solução ser escolhida para a próxima etapa é proporcional ao grau de aptidão desta solução. A seleção se baseia no princípio da “sobrevivência do mais apto”, onde as soluções boas são selecionadas para a reprodução e as soluções ruins são eliminadas (SRINIVAS e PATNAIK, 1994).
Se o melhor resultado não é obtido nesta primeira avaliação, o algoritmo segue para a etapa de seleção, onde são determinados quais cromossomos serão utilizados como pais na próxima geração. A próxima etapa é a recombinação, onde acontece a combinação dos genes dos “pais” selecionados para a criação de novos indivíduos (filhos), que deverão herdar as características positivas de seus pais e possivelmente levar a soluções ótimas. O algoritmo segue então para a etapa de mutação, onde são feitas pequenas alterações aleatórias nos genes dos cromossomos, com o intuito de diversificar a população (ORTIZ et al., 2004; GOMES, 2013).
As etapas de seleção, recombinação e mutação são repetidas até que um dos seguintes critérios de convergência seja satisfeito: o número de gerações alcança o valor pré- estabelecido, o tempo de processamento atinge o valor previsto, o fitness do indivíduo mais fraco atinge um mínimo pré-estabelecido ou o fitness do indivíduo mais forte atinge um valor desejado (GOMES, 2013). Nestas condições, chega-se ao ponto de ótimo.
O algoritmo genético, assim como outros Algoritmos Evolutivos, pode fornecer várias soluções diferentes para o mesmo problema, porém essas soluções são igualmente boas (FLEMING e PURSHOUSE, 2002). Isso acontece pelo fato de que a população inicial é gerada aleatoriamente, e isso leva o algoritmo a explorar diferentes regiões de busca.