2.2 COMPUTAC ¸ ˜ AO EVOLUCION ´ ARIA
2.2.1 Algoritmos Gen ´eticos
Os Algoritmos Gen ´eticos (AG) fazem parte de uma sub ´area da Intelig ˆencia Computaci-onal (IC) conhecida como Computac¸ ˜ao Evolucion ´aria (CE), juntamente com outras t ´ecnicas, tais como: a Programac¸ ˜ao Gen ´etica (PG), Programac¸ ˜ao Evolucion ´aria e Evoluc¸ ˜ao Diferencial.
Nesta sec¸ ˜ao os conceitos principais sobre os algoritmos gen ´eticos s ˜ao apresentados, bem como as principais caracter´ısticas e operadores dos AG cont´ınuos, que fazem parte do foco deste trabalho.
Princ´ıpios Fundamentais
Os Algoritmos Gen ´eticos (AG) conforme descrito em Goldberg (1989) e Holland (1975) s ˜ao, basicamente, um conjunto de algoritmos baseados nos princ´ıpios de biologia evolutiva enunciados por Charles Darwin em seu livro intitulado A Evoluc¸ ˜ao das Esp ´ecies. Em sua abordagem cl ´assica, os AGs utilizam strings vetoriais como candidatos `a soluc¸ ˜ao de um pro-blema de otimizac¸ ˜ao.
Os princ´ıpios considerados na elaborac¸ ˜ao de um AG s ˜ao a selec¸ ˜ao natural, hereditarie-dade, mutac¸ ˜ao e a recombinac¸ ˜ao (crossover). Quando s ˜ao traduzidos para a linguagem ma-tem ´atica, tais princ´ıpios se transformam em operadores gen ´eticos de cruzamento e mutac¸ ˜ao,
j ´a a selec¸ ˜ao natural se transforma numa regra de decis ˜ao. A Figura 7 apresenta o algoritmo gen ´etico b ´asico, em sua forma gen ´erica e resume seu funcionamento.
Sejag=0o contador de gerac¸ ˜oes;
Criar e inicializar uma populac¸ ˜ao de tamanho pr ´e-definido;
Enquantonenhum crit ´erio de parada for satisfeitofac¸a;
Avalie ofitness(aptid ˜ao) de cada indiv´ıduo da populac¸ ˜ao;
Selecione os indiv´ıduos;
Realize a reproduc¸ ˜ao para gerar descend ˆencia;
Selecione a nova populac¸ ˜ao;
Avance para a nova gerac¸ ˜ao, ou seja,g=g+1;
Fim Enquanto
FIGURA7: Algoritmo Gen ´etico Original
Vale ressaltar que, inicialmente, a base num ´erica bin ´aria (representac¸ ˜ao bin ´aria) foi con-siderada para implementac¸ ˜ao e aplicac¸ ˜ao dos Algoritmos Gen ´eticos na literatura. Contudo, hoje ´e bastante comum encontrarmos aplicac¸ ˜oes em que a base num ´erica decimal ´e utilizada, podendo utilizar valores inteiros e/ou reais (Algoritmos Gen ´eticos Cont´ınuos).
A escolha da base decimal em vez da base bin ´aria se justifica pela maior proximidade entre soluc¸ ˜oes ligeiramente diferentes, uma vez que, na base bin ´aria, uma pequena variac¸ ˜ao no vetor de resposta pode ocasionar uma mudanc¸a radical na direc¸ ˜ao de busca, podendo ocasionar perdas maiores na func¸ ˜ao objetivo do que na base decimal.
Os componentes da configurac¸ ˜ao de um AG s ˜ao:
1. uma func¸ ˜ao de aptid ˜ao;
2. uma populac¸ ˜ao inicial de tamanho predefinido;
3. um operador de selec¸ ˜ao de pares para a reproduc¸ ˜ao;
4. os operadores de reproduc¸ ˜ao;
5. crit ´erios de medida de converg ˆencia, ou crit ´erios de parada.
Func¸ ˜ao de Aptid ˜ao (Fitness)
Segundo Goldberg (1989) e Engelbrecht (2007), a Func¸ ˜ao de Fitness (FF) (aptid ˜ao) ´e, possivelmente, o componente mais importante de um Algoritmo Evolucion ´ario (AE), conse-quentemente, de um AG. Uma FF tem como principal tarefa mapear a representac¸ ˜ao de um cromossomo (indiv´ıduo), a um valor escalar, geralmente real, ou seja:
F:CI→R (2.13)
ondeF ´e a FF eCrepresenta o cromossomoI-dimensional.
Considerando o fato de que cada indiv´ıduo representa uma potencial soluc¸ ˜ao ´otima, de acordo com crit ´erios pr ´e-definidos, para o problema, uma FF tem, como consequ ˆencia de sua func¸ ˜ao primordial, quantificar o qu ˜ao bom um indiv´ıduo ´e, o qu ˜ao perto a soluc¸ ˜ao est ´a do ´otimo.
A maioria dos operadores gen ´eticos fazem uso da FF como crit ´erios internos de operac¸ ˜ao.
Uma FF deve ser um bom modelo matem ´atico do problema, isto ´e, deve refletir todos os crit ´erios para ser otimizada e, inclusive, deve levar em considerac¸ ˜ao as restric¸ ˜oes do pro-blema, conforme afirmam Goldberg (1989) e Engelbrecht (2007). A inclus ˜ao das restric¸ ˜oes numa FF pode ser feita por meio de penalizac¸ ˜oes. Vale observar que as restric¸ ˜oes podem ser incorporadas em outras etapas do AG, como nos operadores de cruzamento e mutac¸ ˜ao.
Populac¸ ˜ao Inicial
Uma populac¸ ˜ao inicial, de tamanho pr ´e-definido, equivale a gerar soluc¸ ˜oes para o pro-blema em quest ˜ao. Geralmente, esta etapa consiste em gerar aleatoriamente vetores (in-div´ıduos) que estejam no espac¸o de soluc¸ ˜oes. Para garantir a diversidade gen ´etica e repre-sentatividade do espac¸o de busca, apriori, a ´unica restric¸ ˜ao nesta operac¸ ˜ao ´e a de que os indiv´ıduos sejam distintos.
Segundo Engelbrecht (2007), se houver informac¸ ˜oes dispon´ıveis sobre quais caracter´ısticas s ˜ao desej ´aveis nos elementos da populac¸ ˜ao inicial ´e poss´ıvel criar heur´ısticas que levem isso
em considerac¸ ˜ao. Entretanto, ´e necess ´ario ponderar que esta estrat ´egia pode levar `a con-verg ˆencia prematura e a um ´otimo local, uma vez que indiv´ıduos que poderiam contribuir para melhoria da populac¸ ˜ao, por diversidade gen ´etica, podem n ˜ao ser selecionados para a populac¸ ˜ao inicial.
Com relac¸ ˜ao ao tamanho da populac¸ ˜ao inicial, n ˜ao existe um consenso do que pode ser considerada uma populac¸ ˜ao inicial “grande” ou “pequena”. Entretanto, quase um un´ıssono na literatura ´e a afirmac¸ ˜ao de que uma populac¸ ˜ao inicial pequena, embora diminua o tempo computacional de execuc¸ ˜ao do algoritmo, pode requerer mais gerac¸ ˜oes para convergir e levar a um ´otimo local, enquanto que uma populac¸ ˜ao inicial grande requer menos iterac¸ ˜oes para convergir e t ˆem mais chances de chegar ao ´otimo global.
E claro que a falta de diversidade em populac¸ ˜oes iniciais pequenas pode ser amenizada´ aumentando-se a taxa de mutac¸ ˜ao, mas n ˜ao h ´a garantias de que esta estrat ´egia resolva seu problema de miopia, ou seja, o tropec¸o em ´otimos locais.
Operadores de Selec¸ ˜ao
Segundo Holland (1975) e Engelbrecht (2007), os Operadores de Selec¸ ˜ao (OS) para a reproduc¸ ˜ao t ˆem a func¸ ˜ao de garantir que os melhores indiv´ıduos de uma populac¸ ˜ao sejam destacados. Alguns dos OS a serem considerados s ˜ao: Selec¸ ˜ao Rand ˆomica, Selec¸ ˜ao Propor-cional, Selec¸ ˜ao via Torneio, Selec¸ ˜ao Baseada em Ranqueamento e Elitismo, os quais est ˜ao descritos a seguir:
• Selec¸ ˜ao Rand ˆomica: na qual os indiv´ıduos s ˜ao selecionados sem crit ´erio algum. In-div´ıduos bons e ruins t ˆem a mesma chance de passar seu c ´odigo gen ´etico `as gerac¸ ˜oes futuras;
• Selec¸ ˜ao Proporcional: a chance de um indiv´ıduo ser selecionado para se reproduzir ´e proporcional a seufitnesse expresso em probabilidade, de acordo com a Equac¸ ˜ao 2.14,
Prob(C) = F(C)
∑Nn=1F(C) (2.14)
em que Prob(C)representa a probabilidade de um indiv´ıduo ser selecionado eF(C) ´e o fitness de cada um dosNindiv´ıduos da populac¸ ˜ao;
• Selec¸ ˜ao via Torneio: Nesta modalidade,k<Nindiv´ıduos s ˜ao pr ´e-selecionados aleatori-amente e apenas o indiv´ıduo que possui o melhorfitness ´e escolhido para se reproduzir;
• Selec¸ ˜ao Baseada em Ranqueamento: Este tipo de selec¸ ˜ao usa a ordenac¸ ˜ao em ran-king dofitness para determinar a probabilidade de selec¸ ˜ao de um indiv´ıduo. Isso quer dizer que a selec¸ ˜ao de um indiv´ıduo, por este m ´etodo de selec¸ ˜ao, independe do valor real do fitness. Essa estrat ´egia garante que nenhum indiv´ıduo da populac¸ ˜ao, n ˜ao im-portando a magnitude de sua aptid ˜ao, dominar ´a o processo no sentido de sempre ser escolhido para gerar descendentes.
• Elitismo: O Elitismo ´e um operador de selec¸ ˜ao que se preocupa em definir quais indiv´ıduos sobreviver ˜ao para a pr ´oxima gerac¸ ˜ao (sem sofrer mutac¸ ˜ao), selecionando assim os poss´ıveis indiv´ıduos que poder ˜ao, eventualmente, gerar descend ˆencia duas gerac¸ ˜oes `a frente da atual. A selec¸ ˜ao pode ser baseada nos melhoresfitness ou qual-quer um dos crit ´erios mencionados anteriormente.
Operadores de Reproduc¸ ˜ao
Existem, essencialmente dois operadores de reproduc¸ ˜ao a serem considerados: crossing-overoucrossover (cruzamento) e mutac¸ ˜ao. Aqui um indiv´ıduo ´e considerado melhor adaptado ou “bom” se o valor de seufitnessfor adequado. Por outro lado ´e considerado “ruim” se o valor de seufitness for inadequado.
O objetivo principal dos operadores de reproduc¸ ˜ao ´e gerar descendentes, de indiv´ıduos previamente selecionados, utilizando-se os operadores gen ´eticos citados anteriormente.
O objetivo dos operadores de cruzamento ´e a combinac¸ ˜ao de materiais gen ´eticos j ´a exis-tentes a fim de obter novos indiv´ıduos que sejam compostos pelas melhores caracter´ısticas de seus geradores, formando assim um indiv´ıduo bem adaptado, isto ´e, com um valor adequado defitness. Segundo Engelbrecht (2007), pode-se escolher a substituic¸ ˜ao dos geradores (pais)
por sua descend ˆencia (filhos), caso osfitness dos pais sejam menos adequados do que dos filhos.
A mutac¸ ˜ao ´e o processo de modificar randomicamente os valores dos genes nos in-div´ıduos. O principal objetivo desse grupo de operadores gen ´eticos ´e o de introduzir mate-rial gen ´etico novo na populac¸ ˜ao, com o intuito espec´ıfico de aumentar o espac¸o de busca por soluc¸ ˜oes. Segundo Holland (1975) e Engelbrecht (2007) a mutac¸ ˜ao de uma populac¸ ˜ao geral-mente ocorre a uma baixa probabilidade (0,01–0,1) para tentar evitar que indiv´ıduos melhores adaptados percam as caracter´ısticas que os tornam bons.
Crit ´erios de Parada
Diversos crit ´erios de parada para um algoritmo com essas caracter´ısticas podem ser apli-cados:
• quando ofitness do melhor indiv´ıduo alcanc¸ar determinado valor;
• quando houver uma certa quantidade de indiv´ıduos iguais (ou muito parecidos) na po-pulac¸ ˜ao;
• quando atingir uma certa quantidade de gerac¸ ˜oes (iterac¸ ˜oes);
• quando o melhor indiv´ıduo n ˜ao for superado ap ´os uma certa quantidade de gerac¸ ˜oes.
Entre algumas aplicac¸ ˜oes de AG, pode-se citar o trabalho de Wang e Kong (2011) que utilizaram como crit ´erio de parada o evento do melhor indiv´ıduo n ˜ao ser superado ap ´os uma quantidade de gerac¸ ˜oes. Mais especificamente, o crit ´erio de parada escolhido foi o de pa-rar o algoritmo ap ´os o melhor indiv´ıduo n ˜ao ser superado mais de0,1% em 5000 gerac¸ ˜oes.
Tamb ´em, Hoffmann, Medina e Wolisz (2011) utilizaram o crit ´erio da quantidade de gerac¸ ˜oes, assumindo que o algoritmo convergiu ap ´os 5000 gerac¸ ˜oes.
Algoritmos Gen ´eticos Cont´ınuos e Operadores de Michalewicz
Conforme mencionado anteriormente, j ´a existem in ´umeras abordagens via AG que utili-zam valores cont´ınuos, os denominados Algoritmos Gen ´eticos Cont´ınuos. Para maiores escla-recimentos sobre os operadores cl ´assicos desenvolvidos para AG bin ´ario/discreto, ´e poss´ıvel consultar Holland (1975) e Goldberg (1989).
Uma das pesquisas que utiliza a representac¸ ˜ao real foi realizada por Michalewicz, Logan e Swaminathan (1994) que sistematizou tr ˆes operadores de cruzamento (Crossover) e quatro operadores de mutac¸ ˜ao, descritos a seguir.
Crossover Simples
Dados dois indiv´ıduos, ocrossover simples consiste em sortear aleatoriamente um ponto de cruzamento e, a partir daquele ponto, ocorre a troca de genes entre os pais. A Figura 8 ilustra a ideia do ponto de cruzamento e a mistura gen ´etica que acontece entre os pais para gerar os filhos.
1,5 9,2 31,2 6,8
0,8 7,4 1,3 5,7
1,5 9,2 31,2
6,8 0,8 7,4 1,3
5,7
Pais Filhos
FIGURA8: Cruzamento gen ´etico de um ponto
Crossover Aritm ´etico
Dados dois indiv´ıduosp1ep2para o cruzamento, ocrossover aritm ´etico consiste em gerar os elementos,
c1=βp1+ (1−β)p2ec2=βp2+ (1−β)p1comβ∼U(0,1). (2.15) Vale ressaltar que este operador n ˜ao ultrapassa os intervalos(p1,p2).
Crossover Heur´ıstico
Dados dois indiv´ıduos p1 e p2 para o cruzamento, tal que a aptid ˜ao de p1 ´e menos ade-quada do que a de p2, este operador ´e a extrapolac¸ ˜ao linear entre os geradores,
c=p1+β(p2−p1)ondeβ∼U(0,1). (2.16)
Mutac¸ ˜ao Uniforme
Dado um indiv´ıduo p, com S={1, . . . ,s} genes, este operador sorteia um gene j∈S e o substitui por um n ´umero aleat ´orio oriundo de uma distribuic¸ ˜ao uniforme, ou seja,
ci=
U(ai,bi), sei= j
pi, caso contr ´ario.
(2.17) Os valores ai e bi representam os limites do intervalo permitido para o indiv´ıduo p em sua i- ´esima componente, caso haja alguma restric¸ ˜ao de factibilidade ou simplesmente de intervalo de busca.
Mutac¸ ˜ao de Limite
Dado um indiv´ıduo p, comS={1, . . . ,s}genes, este operador substitui um gene j∈Spor um dos limites do intervalo fact´ıvel[ai,bi], caso haja alguma restric¸ ˜ao de factibilidade ou apenas
intervalo de busca, onder∼U(0,1),
Mutac¸ ˜ao N ˜ao-uniforme Simples e M ´ultipla
Dado um indiv´ıduo p, comS={1, . . . ,s}genes, este operador substitui um gene j∈Spor um n ´umero extra´ıdo de uma distribuic¸ ˜ao n ˜ao-uniforme,
pi= os valoresai ebis ˜ao os limites do intervalo fact´ıvel. A aplicac¸ ˜ao da mutac¸ ˜ao n ˜ao-uniforme em todos os genes deste indiv´ıduo ´e chamada de mutac¸ ˜ao n ˜ao-uniforme m ´ultipla.