Capítulo 7. Conclusões e Trabalho Futuro
3.2 Sistemas Baseados em Conhecimento (SBCs)
3.4.2 Computação Evolutiva
3.4.2.2 Algoritmos Genéticos
Os Algoritmos Genéticos (AGs) são um modelo computacional de pesquisa probabilística, inspirados no processo de selecção natural e na genética. Os seus componentes básicos são a população de indivíduos, em que cada um deles representa uma potencial solução para o problema considerado, o mecanismo de avaliação dos indivíduos da população e os operadores genéticos que pesquisam novas soluções [Costa, 2003] (Figura 3.11).
Figura 3.11 Aspecto geral do Algoritmo Genético
Após serem avaliados, os indivíduos mais aptos têm uma maior possibilidade de serem escolhidos (para progenitores) e gerarem novos indivíduos (os descendentes). A geração de novos indivíduos é feita através de mecanismos baseados na genética. Assim, os descendentes são gerados a partir do cruzamento dos progenitores pelo que herdam algumas das suas características. Para além disso, é aplicada mutação com o objectivo de possibilitar o aparecimento de algumas características verdadeiramente inovadoras. Os descendentes gerados competem entre si e com os progenitores, no sentido de serem seleccionados para a geração seguinte. Este processo é repetido ao longo de um determinado número de gerações, como mostra o Algoritmo 3.1.
Dada a analogia entre os AGs e os sistemas biológicos a nomenclatura destes sistemas é muitas vezes utilizada para referir componentes ou aspectos do funcionamento dos AGs. Nos sistemas biológicos diz-se, que os cromossomas são constituídos por genes que podem tomar um determinado número de valores chamados de alelos. Nos AGs, os indivíduos são representados tradicionalmente por sequências de dígitos binários, as quais se podem considerar cromossomas com alelos 0 ou 1.
Em termos biológicos, a totalidade do pacote genético (combinação de um ou mais cromossomas que descrevem a forma de construção e operação do organismo) constitui o genótipo que corresponde, ao nível dos AGs, às chamadas estruturas. Por outro lado, a interacção do genótipo com o ambiente é definida como o fenótipo, e, analogamente, as estruturas são descodificadas para formar soluções [Costa, 2003]. O processo de representação do genótipo é mostrado na Figura 3.12.
Figura 3.12 Processo de representação do fenótipo [Rocha, 1997]
Apesar de tradicionalmente os AGs utilizarem representações binárias das variáveis de decisão, mais recentemente, têm surgido diversas implementações que utilizam representações reais.
Um aspecto extremamente importante é a medição do desempenho ou aptidão, a qual consiste na atribuição ou associação de valores aos indivíduos de uma população de acordo com a sua utilidade para a resolução de um problema. A medição do desempenho é muito importante, pois condiciona a eficiência do processo de procura. Em contraste com a selecção determinística utilizada pelas EEs, é usual os AGs basearem-se em mecanismos de selecção probabilísticos [Costa, 2003].
Usualmente, os mecanismos de medição do desempenho são apresentados segundo uma estratégia de minimização de uma função objectivo f(x).
Existem diversos métodos de selecção dos indivíduos, distinguindo-se fundamentalmente pelo modo de conversão do valor de aptidão e pelo processo de amostragem. Podem-se referir os algoritmos de:
- selecção por roleta, no qual os indivíduos são associados a uma fatia da roleta de tamanho proporcional à sua aptidão, sendo seleccionado aquele para o qual aponte a “agulha” em cada rodagem, repetindo-se o processo até obter o número de indivíduos pretendido;
- selecção por amostragem universal estocástica, variação do método da roleta, pois aqui a roleta possui n agulhas, tantas quanto o número de indivíduos a seleccionar, e numa única rodagem seleccionará n indivíduos;
- selecção por torneio, no qual, dum conjunto de n indivíduos escolhidos aleatoriamente é seleccionado o mais apto, repetindo-se o processo até completar a população; e
- selecção por truncagem, ordenando os indivíduos em termos do seu desempenho e seleccionando uma proporção para progenitores.
No caso dos AGs existem normalmente dois operadores genéticos, o
cruzamento, o qual tenta simular a reprodução sexuada dos seres vivos, e a mutação, consistindo num operador unário que perturba ligeiramente os indivíduos descendentes gerados pelo cruzamento.
O cruzamento promove a criação de indivíduos herdando propriedades dos seus progenitores, sendo que na forma mais comum define-se numa função que recebe dois progenitores e retorna dois descendentes. Na combinação em binário consideram-se, normalmente, três possibilidades de cruzamento: cruzamento de um ponto, cruzamento
múltiplo, e cruzamento uniforme. No cruzamento de um ponto é seleccionada, aleatoriamente uma posição de corte nos cromossomas dos progenitores, enquanto que no cruzamento múltiplo os cromossomas são vistos como anéis, com os extremos ligados, trocando-se informação entre os cromossomas, como mostrado na Figura 3.13. No cruzamento uniforme uma máscara é gerada de forma aleatória, e a paridade dos dígitos binários da máscara indica qual progenitor e que dígitos binários fornecerá aos descendentes. No que respeita à codificação com reais vários operadores de cruzamento têm sido propostos, nomeadamente, o cruzamento linear [Wright, 1991] e o cruzamento
SBX (Simulated Binary Crossover) [Deb e Agrawal, 1994].
(a) (b)
(c) (d)
Figura 3.13 Operadores Genéticos: (a) cruzamento simples; (b) cruzamento de dois pontos; (c) cruzamento uniforme; (d) mutação uniforme [Costa, 2003]
Relativamente à mutação, no caso em que os indivíduos são representados por sequências de dígitos binários, cada dígito binário é, de forma aleatória, trocado de 0 para 1 ou vice-versa, de acordo com uma determinada probabilidade. No caso da representação real, a mutação é conseguida basicamente à custa de pequenas variações aleatórias no valor das variáveis.
Por vezes, existe o interesse de preservar os melhores indivíduos, ou seja, que estes passem automaticamente para a geração seguinte. O número de indivíduos que auferem deste privilégio é designada de Valor de Elitismo (VE), e o conjunto destes indivíduos é a Elite.