You are on page 1of 173
| ise eae 1 frtador Universidade Estadual de Campinas Faculdade de Engenharia Elétrica e de Computagao Departamento de Engenharia de Computagilo e Automagao Industrial INTELIGENCIA COMPUTACIONAL NO PROJETO AUTOMATICO DE REDES NEURAIS HiBRIDAS E REDES NEUROFUZZY HETEROGENEAS EDUARDO MASATO IYODA. Orientador: PROF. DR. FERNANDO JosE VON ZUBEN (DCA — FEEC / UNICAMP) Tese apresentada a Faculdade de Engenharia Elétrica e de Computacio (FEEC/UNICAMP) como parte dos requisitos exigidos para obtencao do titulo de Mestre em Engenharia Elétrica. Banca Examinadora: Prof. Dr. Marcio Luiz de Andrade Netto (FEEC / UNICAMP) Prof. Dr. Mauricio Fernandes Figueiredo (DIN / UEM - PR) CAMPINAS Estado de Sao Paulo — Brasil Janeiro de 2000 cio LX 9 RRL CO} TA Me OG. 3 cM-00142797-9 FICHA CATALOGRAFICA ELABORADA PELA BIBLIOTECA DA AREA DE ENGENHARIA - BAE - UNICAMP yoda, Eduardo Masato 1y9i Inteligéncia computacional no projeto automatico de redes neurais hibridas e redes neurofuzzy heterogéneas / Eduardo Masato Iyoda.--Campinas, SP: [s.n.], 2000. Orientador: Fernando José Von Zuben Dissertago (mestrado) - Universidade Estadual de Campinas, Faculdade de Engenharia Elétrica e de Computagao. 1. Inteligéncia artificial. 2. Redes neurais (Computagao). 3. Algoritmos genéticos. I. Von Zuben, Fernando José. Il. Universidade Estadual de Campinas. Faculdade de Engenharia Elétrica e de Computagao. UI. Titulo. RESUMO Esta tese apresenta um estudo a respeito de possiveis interagdes entre os principais paradigmas que compdem a drea de inteligéncia computacional: redes neurais artificiais, sistemas fuzzy e computaco evolutiva. Como principais contribuigdes, s4o propostas duas novas estratégias de soluco de problemas de engenharia: as redes neurais hibridas as redes neurofuzzy heterogéneas. A rede neural hibrida corresponde a uma extensio dos modelos de aproximagio por busca de proje onde so consideradas também composigdes multiplicativas das fungdes de ativagdo dos neurénios escondidos. A arquitetura neurofuzzy heterogénea, diferentemente das arquiteturas neurofuczy tradicionais, utiliza neurdnios l6gicos que podem ter pares distintos de normas triangulares, Os resultados de simulacdes computacionais mostram que os dois novos modelos propostos so bastante promissores, no sentido de que eles sdo capazes de fornecer solucdes de melhor qualidade do que os modelos convencionais. ABSTRACT SECAO CinLvut sNTF This thesis presents a study on possible combinations of the main paradigms that compose the field of computational intelligence: artificial neural networks, fuzzy systems and evolutionary computation. Among other contributions, two new engineering problem-solving strategies are proposed: hybrid neural networks and heterogeneous neurofuzzy networks. Hybrid neural networks correspond to an extension of project pursuit learning models, where multiplicative compositions of the hidden neurons’ activation functions are also considered. Differently from traditional neurofuzzy architectures, heterogeneous neurofuzzy networks employ logical neurons that may have distinct pairs of triangular norms. Simulation results show that these new proposed models are very promising, in the sense that they are capable of providing higher quality solutions than traditional models. iii Dedico aos meus pais, Akira & Mitsuru, Agradecimentos Em primeiro lugar, agradego ao meu orientador, 0 Professor Fernando José Von Zuben. O Professor Von Zuben, com seus profundos conhecimentos na érea de inteligéncia computacional, norteou de forma decisiva este trabalho. Sua dedicagao, a atengdo dispensada aos seus orientados e sua determinacZo para o trabalho constituem um exemplo que procurarei seguir durante toda a minha vida. Agradeco ao Professor Fernando Antonio Campos Gomide pelo grande incentivo e valiosas contribuigdes dados as idéias ¢ resultados apresentados no Capitulo 7 desta tese. Sou grato aos colegas Leandro Nunes de Castro, Euripedes Pinheiro dos Santos ¢ Clodoaldo Aparecido de Moraes Lima, que colaboraram nas mais diversas formas para a realizagio desta tese: através de ajuda nas simulages computacionais, de proficuas discussdes e mesmo através de sua amizade e companheirismo. ‘Aos amigos Fabricio e Aldvan Figueiredo, Leonardo de Oliveira Garcia e Luis Augusto de S4 Pessoa agradeco 0 carinho e a amizade, que foram de grande importancia durante o decorrer deste trabalho. ‘Agradego ao Departamento de Engenharia de Computagdo e Automagdo Industrial, Faculdade de Engenharia Elétrica e de Computacio, Unicamp, pela oportunidade de fazer 0 curso de Mestrado. Por fim, agradego ao Conselho Nacional de Desenvolvimento Cientifico e Tecnoldgico (CNPq) pelo auxilio financeiro fornecido através do processo 133691/97-7. Indice Resumo.. Abstract... Dedicatéria Agradecimentos. indice. Capitulo 1. Introdugio .. 1.1 Inteligéncia Computacional..... 1.2. Organizagao da Tes Capitulo 2. Redes Neurais Multicamadas .. 2.1 Modelo de Neurénio 2.1.1 Tipos de Fungo de Ativaca 2.2 Redes Neurais Multicamadas.... 2.3 Aprendizado Supervisionado.... 24 O Algoritmo de Retropropagacio (Backpropagation) .. 2.4.1 Os Dois Passos de Computagao. 2.4.2 Fungies de Ativacio. 2.4.3 Modos de Treinamento.... Critério de Parada Inicializagao dos Pesos 2.4.6 Resumo do Algoritmo de Retropropagacio....... sess 25 2.5 Métodos de Segunda Ordem. 2.6 Aproximacdo de Funcies. 2.7. Conclusio Capitulo 3. Algoritmos Genéticos.. 3.1, Evolugdo Natural... vii 3.2. Computagao Evolutiva... 3.3. Algoritmos Genéticos .. 3.3.1 Codificago de Individuos... 3.3.2. Definigao da Populagao Inicial 3.3.3. Operadores Genéticos..... 3.3.4 Selegio de Individuos para a Proxima Geragao. 3.4 Teoria dos Esquemas..... 3.5 Conclusées... Capitulo 4. Redes Neurais Construtivas 4.1 Métodos Construtivos..... 4.1.1 Estratégia de Busca no Espago de Estados. 4.2 O Algoritmo Cascade-Correlation. 4.2.1 CASCOR com Fungées de Ativacao Distintas.. 4.3, Aprendizado por Busca de Projegao (Baseado em VON ZUBEN (1996))... 4.3.1 © Problema de Aproximagdo Resultante. 4.3.2 Busca da Diregio Inicial de Projegio (Projection Pursuit) 4.3.3 Determinagao da Fungo de Expansao Ortogonal.... 4.3.4 0 Processo de Ajuste Retroativo 43.5 O Tratamento de Miltiplas Safdas 43.6 O Algoritmo de Aproximagao Construtivo 44 O Algoritmo A* 44.1 O Algoritmo A* na Otimizagao de Arquiteturas de Redes Neurais 4.5 Comparaco entre CASCOR, PPL e A‘... 4.6 Conclusio .. Capitulo 5. Redes Neurais Evolutivas.. 5.1 Redes Neurais e Computacao Evolutiva.... 5.2. Computacao Evolutiva para Ajuste de Pesos .. 5.2.1 Reviso de Métodos Evolutivos para Treinamento de Redes Neurais 81 5.2.2. Comparagao entre Algoritmo Genético e Método do Gradiente Conjugado para Treinamento de Redes Neurais... 82 Vii 5.3 Computacio Evolutiva para Definigdo de Arquiteturas de Redes Neurais.... 87 5.3.1 Reviséo de Algoritmos Evolutivos para Definigdo de Arquiteturas de Redes Neurai 89 5.4 Conclusie: Capitulo 6. Arquiteturas Hibridas de Redes Neurais Artif 6.1 Introdugao.... 6.2 Redes Neurais Hibrida 6.3 Treinamento da Rede Neural Hibrida: Busca Local..... 6.4 A Abordagem Evolutiva... 6.4.1 Codificagio . 6.4.2 Inicializagao da Populagao... 6.4.3 Avaliagdo dos Individuos 6.4.4 Operador de Selegio... 6.4.5 Operador de Crossover... 6.4.6 Operador de Mutacao. 6.5. Resultados de Simulagées..... 6.5.1 Aproximacao de Fungdes do Conjunto de Candidatos 6.5.2 Comparago com Outras Arquiteturas... 6.6 Conclusio . Capitulo 7. Redes Neurofuzzy Heterogéneas 7.1 Fundamentos de Sistemas Fuzzy. 7.2. Normas Triangulare: 7.3. Neur6nios Légicos... 7.4 ARede Neurofuzzy ANDIOR. ase 7.5 Algoritmo de Treinamento da Rede Neurofuzzy ANDIOR . 7.5.1 Geracao das Fungdes de Pertinéncia.... 7.5.2 Geragio das Conexdes da Rede ¢ Inicializacao dos Pesos wi y, 7.5.3. Determinacio dos Neurénios AND e OR Ativos TSA Fuczificag{o oo. 7.5.5 Determinagao da Classe Vencedora .. 7.3.6 Atualizagio dos Pesos. 7.6 Redes Neurofuzzy Heterogénea: 7.6.1 A Abordagem Evolutiva.. 7.6.2 Problemas de Teste 7.6.3 Resultados de Simulagées... 7.7 Conclusées.. Capitulo 8. Conclusii 8.1 Novas Estratégias de Solucdo de Problemas de Engenharia... 8.2 Extensdes.... Bibliografia.. Indice de Autores .. Capitulo 1 Introdugao busca por sistemas artificiais que apresentam algum tipo de comportamento inteligente, similar ao exibido por muitos sistemas biolégicos (incluindo seres hhumanos), sempre fascinou muitos cientistas. Os sistemas biolégicos so resultado de um longo processo de evolugao natural, ¢ apresentam caracteristicas como adaptabilidade, tolerancia a falhas e robustez a variagées ambientais. Tais caracteristicas so bastante desejaveis em sistemas de engenharia, levando diversos pesquisadores a propor estratégias que procuram emular alguns dos aspectos observados em sistemas biolégicos naturais, Dentre as areas de pesquisa que procuram por sistemas artificiais inteligentes, uma das mais promissoras € a chamada inteligéncia computacional. A inteligéncia computacional compreende paradigmas computacionais que procuram desenvolver sistemas que apresentam alguma forma de inteligéncia similar & exibida por determinados sistemas biolgicos. Alguns dos paradigmas que compdem a inteligéncia computacional foram de fato inspirados em sistemas biolégicos (como as redes neurais artificiais e a computacao evolutiva), enquanto que outros, apesar de no terem inspirago biol6gica, tentam gerar sistemas que produzam algum tipo de comportamento préximo ao observado em sistemas naturais (como por exemplo, 0 raciocinio aproximado dos sistemas fuzzy). Métodos baseados nestes paradigmas invariavelmente demandam uma quantidade grande de recursos computacionais, seja no desenvolvimento ou no uso das ferramentas de solugdo. Entretanto, nos iiltimos anos, temos observado um desenvolvimento estrondoso da tecnologia de microprocessadores e meméria e, como conseqiiéncia, temos & nossa disposi¢ao cada vez mais recursos computacionais a baixo custo. Este fato tem levado a um interesse crescente da comunidade cientifica nos métodos baseados em inteligéncia computacional. Métodos que, até algum tempo atrés, seriam considerados infactiveis do ponto de vista computacional, puderam ser efetivamente implementados e testados. Como a tecnologia dos computadores continua a se desenvolver rapidamente, temos cada vez mais recursos computacionais & disposicio ©, como conseqiiéncia, podemos esperar grandes desenvolvimentos na érea de inteligéncia computacional. 1.1 Inteligéncia Computacional BEZDEK (1994) sugere que um sistema é computacionalmente inteligente quando: trabalha apenas com dados numéricos (baixo nivel), tem um componente de reconhecimento de padres, ¢ nio usa conhecimento no sentido da inteligéncia artificial classica (conhecimento simbélico, nao-numérico); e, adicionalmente, quando ele exibe (ou comega a exibir): adaptabilidade computacional; 2. tolerncia computacional a falhas; 3. velocidade de processamento compardvel & de processos cognitivos humanos; 4, taxas de erro que se aproximam do desempenho humano. A rea de inteligéncia computacional engloba diversos paradigmas computacionais diferentes. Os principais paradigmas da inteligéncia computacional s4o: + Redes Neurais Artificiais: sistemas de processamento de informagéo formados pela interconexéo maciga entre unidades simples de processamento, denominadas neurdnios antificiais. Os neurénios artificiais recebem essa denominago porque foram originados a partir de um modelo matematico de um neurénio biolégico. Varias arquiteturas de redes neurais jé foram propostas na literatura, sendo a arquitetura multicamadas a mais popular. ‘As mais atraentes propriedades destas arquiteturas so a sua capacidade de aproximagao universal e de aprendizado a partir de exemplos. * Sistemas Fuzzy: os sistemas fuzzy so baseados no conceito de conjunto fuzzy. Os conjuntos fuzzy surgiram como uma nova forma de representagdo de conceitos como imprecisio e incerteza. Os conjuntos fuzzy so especialmente adequados na descricao de sistemas de processamento de informagio complexos, ndo-lineares ou no claramente definidos. Observe que, além de trabalhar com dados numéricos, os sistemas fuzzy também sido capazes de realizar processamento simbélico, através de uma base de regras fuzzy. © Computagdo Evolutiva: a computagao evolutiva € formada por algoritmos inspirados na teoria da evolugdo natural de Darwin. A computagdo evolutiva tem sido muito aplicada em problemas de otimizagdo, em especial naqueles em que técnicas tradicionais de otimizagao nao sao aplicaveis (ou apresentam desempenho insatisfat6rio) © imteresse na busca por sistemas computacionais que explorem possiveis combinacdes entre os paradigmas acima tém crescido de forma expressiva nos dltimos tempos. Diversos pesquisadores tém constatado que as técnicas acima sfo, em muitos aspectos, complementares. Assim, muitas pesquisas tém sido realizadas no sentido de investigar possiveis formas de cooperagao entre estes métodos, « mesmo entre métodos de inteligéncia computacional e métodos tradicionais de engenharia. O principal objetivo dessas pesquisas € desenvolver sistemas que sejam eficientes, robusto: , féceis de operar, e capazes de fornecer solugées de qualidade para problemas complexos. E importante notar também que os paradigmas acima citados (especialmente sistemas fuzzy e redes neurais artificiais) tém sido empregados com sucesso em diversas aplicagdes praticas, algumas disponfveis comercialmente, principalmente em aplicagdes de eletrénica de consumo © automagdo industrial. Tem-se observado, na pritica, que tais sistemas de fato apresentam desempenho extraordindrio, que ndo poderia ser obtido se apenas técnicas convencionais de engenharia fossem empregadas (HIROTA & SUGENO, 1995; SIMPSON, 1996). Nesta tese, procuramos investigar algumas possiveis interagdes entre os paradigmas da inteligéncia computacional. Foram estudadas redes neurais construtivas, e 0 desempenho de alguns algoritmos construtivos foram comparados. Redes neurais evolutivas foram investigadas, so apresentados resultados de simulagdes computacionais comparando o desempenho entre algoritmos genéticos e um método de segunda ordem no treinamento de redes neurais artificiais. Além disso, foram desenvolvidas duas arquiteturas baseadas em inteligéncia computacional: uma rede neural hibrida e uma rede neurofuuzzy heterogénea. Estas arquiteturas correspondem a extensdes de arquiteturas j4 propostas anteriormente. Nosso principal objetivo ao propor estas arquiteturas foi o de gerar sistemas mais adaptados, dedicados a um problema particular. Um sistema dedicado a um determinado problema pode apresentar diversas vantagens em relacdo a modelos mais genéricos, como por exemplo maior robustez e uso mais eficaz dos recursos computacionais disponiveis. 1.2 Organizagao da Tese © Capitulo 2 apresenta uma introduco as redes neurais artificiais multicamadas. So apresentados conceitos bisicos relacionados as redes neurais multicamadas que serio importantes em capitulos subseqiientes. O algoritmo de retropropagagio do erro, usado no processo de treinamento de redes neurais multicamadas, € apresentado em detalhes. Redes neurais artificiais so apresentadas como modelos de aproximago de fungSes e o teorema da aproximagao universal é introduzido. No Capitulo 3 sao abordados os conceitos basicos relacionados computacao evolutiva, em especial aos algoritmos genéticos. So apresentados conceitos relativos & evolugdo natural, que inspiraram o desenvolvimento de algoritmos computacionais evolutivos. Sdo apresentadas, em linhas gerais, as principais abordagens evolutivas j4 propostas na literatura, O restante do capitulo € dedicado ‘ao estudo dos algoritmos genéticos, e aos seus principais componentes: codificagdo de individuos, operadores genéticos (crossover ¢ mutagdo) e selecdo de individuos. Por fim, introduzida a teoria dos esquemas, proposta para explicar 0 funcionamento de um algoritmo genético. As redes neurais construtivas so introduzidas no Capitulo 4, e compreendem algoritmos para definig&io automatica de redes neurais artificiais, que comegam com alguma arquitetura minima e vao acrescentando neurdnios ou camadas de neurdnios até que um determinado nivel de erro seja atingido. Sao apresentados alguns conceitos bésicos a respeito © cascade- de redes neurais construtivas © so descritos trés algoritmos construtivos: correlation, 0 aprendizado por busca de projecao ¢ 0 A*. Sio entdo apresentados resultados de simulagdes computacionais envolvendo os trés algoritmos mencionados, a fim de comparar 0 seu desempenho (em termos de arquitetura final obtida). O Capitulo 5 € dedicado ao estudo das redes neurais evolutivas, que correspondem a métodos que combinam computago evolutiva e redes neurais arti iciais. A computac: evolutiva pode ser empregada no treinamento ou na definicio de arquiteturas de redes neurais artificiais. E apresentada uma revisdo bibliogréfica de alguns dos principais métodos ja propostos na literatura, relacionando computagao evolutiva e redes neurais artificiais. Sao apresentados resultados de simulacSes computacionais comparando o desempenho de algoritmos genéticos ¢ um método de segunda ordem no treinamento de redes neurais artificiais. O Capitulo 6 introduz as redes neurais hfbridas, um modelo de rede neural artificial mais genérico, que pode ser visto como uma extensio de modelos de aproximago por busca de projegao. E apresentada uma extensdio do algoritmo de retropropagagdo, que permite realizar o treinamento de redes neurais hibridas. Um algoritmo genético € proposto para selegio adequada de fungdes de ativagdo e operadores para a rede neural hibrida. Sdo apresentadas diversas simulagdes computacionais com o objetivo de testar as potencialidades das redes neurais hibridas. Também sao apresentados resultados comparando o desempenho de redes neurais hfbridas com o de outras arquiteturas. Uma arquitetura neurofuzzy heterogénea para classificagdo de padrdes € apresentada no Capitulo 7. Esta arquitetura se distingue das arquiteturas neurofuzzy tradicionais pela possibilidade do uso de pares de normas triangulares distintos em cada neurOnio da rede. Um algoritmo genético € utilizado para escolha de pares de normas triangulares para cada neurénio da rede. Sao apresentados resultados de simulacdes comparando o desempenho de redes neurofuzzy heterogéneas com o de outras arquiteturas em problemas de classificagio de padroes. Capitulo 2 Redes Neurais Multicamadas edes neurais artificiais tm sido aplicadas com sucesso nos mais diversos problemas. Dentre as principais areas de aplicagio de redes neurais artificiais podemos citar: sistemas de controle (WHITE & SOFGE, 1992), reconhecimento de padrdes (BISHOP, 1995) aproximasao de fungdes (VON ZUBEN, 1996). Embora existam intimeras arquiteturas de redes neurais, a arquitetura multicamadas é sem diivida, a mais freqiientemente encontrada na literatura. Entre as razdes para a sua popularidade podemos citar sua capacidade de aproximagao universal e sua flexibilidade para formar solugdes de qualidade para uma ampla classe de problemas, a partir de um mesmo algoritmo de aprendizado. Neste capitulo, apresentaremos os principais t6picos relacionados as arquiteturas multicamadas, € que serio importantes no desenvolvimento deste trabalho. Em especial, descreveremos com grande detalhe 0 algoritmo de retropropagacdo de erro utilizado no treinamento de redes neurais artificiais multicamadas. Este algoritmo foi um dos principais responsdveis pelo ressurgimento do interesse da comunidade cientifica em redes neurais, apés um periodo de grande ceticismo em relaco as suas potencialidades. Apresentaremos também as redes multicamadas como modelos para aproximagdo de fungdes e discutiremos a importante propriedade de aproximagao universal apresentada por estas arquiteturas. 2.1 Modelo de Neurénio Um neurénio € a unidade fundamental de processamento de informagio de uma rede neural (HAYKIN, 1999). A Figura 2.1 mostra 0 modelo de um neurdnio artificial. Podemos identificar trés elementos basicos no modelo: Entrada fixa xy a Fungo de Jungao de soma Pesos sinapticos Figura 2.1 Modelo de neurénio. 1. Um conjunto de sinapses ou conexdes de entrada, sendo cada entrada ponderada por um eso sindptico. Sendo assim, um sinal x; na entrada da sinapse j conectada ao neurdnio k é multiplicado pelo peso sindptico wy. Observe a ordem adotada para os indices (subscritos) na notagdo aqui empregada: 0 primeiro indice se refere ao neurdnio em questo e 0 segundo indice ao terminal de entrada da sinapse ao qual o peso se refere. Quando uma entrada fixa esté presente (entrada xo na Figura 2.1), entio 0 peso sindptico correspondente é denominado peso de polarizagao. 2. Uma juncdo de soma, responsavel pela combinacao aditiva dos sinais de entrada, ponderados pelos respectivos pesos das sinapses do neurénio. 3. Uma fungdo de ativagdo geralmente nao-linear e de formato sigmoidal, representando um icamente a excursio da efeito de saturacdo na ativagio de saida yx do neurénio. ativagao do neur6nios é confinada ao intervalo (0, 1) ou (~1, 1). Podemos descrever 0 modelo de neurénio ilustrado na Figura 2.1 pelo seguinte par de equagoes: vy = Sings, en Ye =f), (2.2) onde x0, X1, «--» Xp S40 08 sinais de entrada, wo, Wel, «+. Wip S40 0s pesos sindpticos do neurdnio k, vp € 0 nivel de ativagao interna ou potencial de ativagdo do neur6nio k, fi-) € a fungao de ativacdo e yg € a ativagao de saida do neurGnio k. Observe na Figura 2.1 a presenga de uma entrada de polarizacio fixa xo =—I. Esta entrada, juntamente com o peso wi a ela associada, tem o efeito de transladar a fungdo de ativagio em torno da origem (transformagdo afim), fazendo com que a ativaco interna v; do neurénio nao seja nula quando todas as demais entradas {x1, x2, .....p} forem nulas. Podemos observar mais claramente este efeito de polarizagdo se rescrevermos a Equago (2.2) como ye {Sven = Mo } @3) A entrada de polarizagio xy poderia assumir qualquer outro valor fixo diferente de zero. Alguns autores fazem uma distingdo entre os termos polarizagio (quando a entrada fixa assume 0 valor x9 = +1) e limiar (quando xo =1). Neste trabalho usaremos sempre o termo polarizacao, independente do valor que a entrada fixa xo assumir. Podemos escrever a ativagdo do neurénio em notacdo vetorial, como segue: © seja x = [xo x1 ... p]" 0 vetor de entradas do neurdnio k; © seja w = [wo War... Wip]” 0 vetor de pesos do neurdnio k; entio a ativagao yy € dada por y,(w.x) = f(w"x). 2.1.1 Tipos de Funcao de Ativacao A fungo de ativagdo f() € responsdvel por definir a ativagdo de saida do neurdnio em termos do seu nivel de ativacao interna, Podemos identificar trés classes principais de funco de ativagiio: 1. Fungao Sinal (Heaviside). Para este tipo de fungdo, ilustrada na Figura 2.2(a), temos { sev>0 1 0 sevso" Assim, a ativacao de um neurdnio k que usa este tipo de fungio de ativagao € dada por @ ) © Figura 2.2 FungGes de ativagio: (a) funcdo sinal, (b) funcdo linear por partes (a = 0.5), (c) fungdo sigmoidal _ fi sey, >0 10 ser, <0" onde vx 0 nivel de ativacao interno do neur6nio, definido na Equago (2.1). Um neurénio com esta funcHo de ativacio 6 conhecido como modelo de McCulloch-Pitts, em homenagem ao trabalho pioneiro de MCCULLOCH & Prrts (1943). Fungdo Linear por Partes. Para a funcio linear por partes, ilustrada na Figura 2.2(b). temos fo, sevS-a fv)={vta, se-a KR. A superficie de erro € caracterizada pela presenga de minimos locais ¢ um ou mais minimos globais. Os métodos de otimizacao utilizados na minimizagGo de J usualmente recorrem & informagdo de gradiente do erro para ajustar os pardmetros da rede. Teoricamente, estes métodos sempre atingem um ponto de mfnimo da superficie de erro, mas observe que nada se pode afirmar sobre a natureza (local ou global) do ponto de minimo obtido a partir de uma condigao inicial arbitréria. 2.4 O Algoritmo de Retropropagagao (Backpropagation) © algoritmo de retropropagacdo de erro, ou simplesmente retropropagacao, € um algoritmo utilizado no treinamento de redes neurais multicamadas com uma ou mais camadas escondidas. Basicamente, 0 algoritmo de retropropagago consiste em dois passos de computagao: 0 processamento direto e o processamento reverso. No processamento direto, uma entrada é aplicada a rede neural e seu efeito € propagado pela rede, camada a camada. Durante 0 processamento direto, os pesos da rede permanecem fixos. No processamento reverso, um sinal de erro calculado na saida da rede € propagado no sentido reverso, camada a camada, e 20 final deste processo os pesos sio ajustados de acordo com uma regra de corregao de erro. O treinamento de uma rede através de retropropagago é realizado de forma 14 supervisionada, ou seja, é apresentada a rede uma determinada entrada (exemplo) e também é disponibilizada a resposta desejada para aquela entrada. A seguir, apresentamos em detalhes 0 algoritmo de retropropagacao. O sinal de erro na safda do neurdnio j na iteragao n (isto é, apresentagio do n-€simo padrio de treinamento) é definido por e,(n) = s,(n)— y(n), (2.5) onde 5,(n) € a resposta desejada para o neurénio j da camada de safda. O valor instantaneo do erro quadrético para o neurénio j é definido por 4e7(n). A soma dos erros quadrdticos instantanea da rede € entio definida por 1 2 em => Yej(n), (2.6) Qe onde C é 0 conjunto que contém todos os neurénios da camada de safda da rede. Seja No néimero total de padres de treinamento contido no conjunto de treinamento. O erro quadratico médio é entio definido por Ey = Yel). 27) Observe que a soma dos erros quadréticos instantdneos, e portanto o erro quadratico médio, é uma fungdo de todos os pesos sindpticos da rede, j4 que so eles que definem a fungdo de transferéncia ou mapeamento de entrada-saida da rede neural. Para um dado conjunto de treinamento, é,» representa uma fungdo de custo, isto é, uma medida de desempenho da rede neural. O objetivo do proceso de treinamento justamente minimizar Ey. Inicialmente, consideramos um método de treinamento em que os pesos so ajustados padrao-a-padrao. Os pesos da rede sao ajustados de acordo com o erro computado para cada padrao apresentado A rede. Uma outra possibilidade de treinamento € o treinamento em lote ou batelada (batch), que sera considerado posteriormente. Considere a Figura 2.5, que mostra 0 neur6nio de saida j, alimentado pelas ativagbes de todos os neurénios da camada imediatamente anterior. O nivel de ativagdo interno do neurénio j € dado por 15 wln) v4) @— Oyun Fgh) den) Neurénio j Figura 2.5 Neurdnio de safda j, cujas entradas sdo as ativagSes de todos os neurdnios da camada imediatamente anterior. vn) = Sw, n)y,(n), 28) ie onde p € 0 ntimero total de entradas (excluindo a polarizaco) aplicadas ao neurénio j, ou seja, © niimero de neur6nios da camada imediatamente anterior. Portanto a ativagio y(n) do neur6nio j é dada por y= F,0,~@) (2.9) Para minimizar 0 erro quadrético médio, necessitamos primeiramente determinar o gradiente instanténeo e(n)/dw;(n). Aplicando a regra da cadeia, podemos expressar este gradiente como 0e(n)__ de(n) 2e,(n) dy,(n) av, (n) =e 2.10) Bw,,(n) de, (n) dy,(n) dv,(n) Ow, ae Derivando a Equacio (2.6) em relagdo a en), obtemos de(n) = 2.11 sean ean Derivando a Equagdo (2.5) em relagfo a y(n), obtemos oe ea 2.12) ay j(n) Agora, derivando a Equagio (2.9) em relaco a v,(n), obtemos 16 ayn) _ av, (n) Sib), (2.13) ‘onde simbolo ’ significa derivacio em relagdo ao argumento. Finalmente, derivando a Equagdo (2.8) em relagdo a w;(n) obtemos dv, (n) ow,,() =y,@) (2.14) Substituindo as Equagées (2.11) a (2.14) na Equagao (2.10), obtemos de(n) aw,,() == F/H,—)y,(0), (2.15) que € a equagdo da derivada do erro instantaneo e(n) em relago ao peso sindptico wj(n) do neurénio j da camada de safda. Observe que a Equacao (2.15) corresponde a um componente do vetor gradiente do erro, cujos elementos representam a derivada parcial de en) em relagao a todos os pesos da rede neural, arranjados em uma ordem fixa, mas arbitréria, Definindo o gradiente local (x) como 5 oy = d(n) Be, (7) By, (m) _ 5 (n= Be) By so Bota FOLIO OD)- (2.16) podemos rescrever (2.15) na forma de(n) a (a) y(n) 17) Para minimizar 0 erro, vamos aplicar aos pesos uma correcao proporcional ao oposto do gradiente do erro, pois vamos caminhar no espago de pesos na direcdo oposta ao do gradiente. Matematicamente, podemos expressar esta regra de ajuste na forma: ae(n) Ow ,(n)” wa(n+ 1) = w,(n)—n(n) (2.18) onde 7(n) € 0 passo do algoritmo na iteragao n. Note que, no algoritmo de retropropagacao original, proposto por RUMELHART et al. (1986), € utilizado um passo constante durante todas 7 as iteragdes do algoritmo, passo este conhecido como taxa de aprendizagem. Da teoria de otimizagao ndo-linear de funges é sabido que hé alternativas melhores a esta abordagem, como 0 uso de procedimentos de busca unidimensional para determinar 7(n) a cada iteragao do algoritmo (veja, por exemplo, LUENBERGER (1984) ou BAZARAA et al. (1992)) Observe, das Equagdes (2.16) e (2.17), que um fator fundamental para 0 cdlculo do gradiente do erro € 0 sinal do erro e(n). Devemos entio considerar dois casos distintos: no caso I, o neurénio j é um neurdnio da camada de safda da rede e no caso Il, o neurénio j é um neurdnio pertencente a uma camada escondida, sendo entéo denominado neurénio escondido. © caso I é bastante simples, pois as safdas desejadas para a rede neural so conhecidas. Jé no caso II, néo sabemos qual a saida desejada para um neurdnio escondido, ¢ portanto, no é possfvel calcular diretamente o sinal de erro, Este problema € resolvido de forma bastante elegante através da retropropagagdo do erro de saida através da rede. Consideraremos agora os casos I e Il individualmente. Caso I: Neurénioj é um Neurénio de Safda Quando o neurénio j é um neurdnio de sada, sabemos qual é a saida desejada dn) para o neurénio. Assim, podemos usar a Equagio (2.5) para calcular o sinal de erro ¢(n) associado ao neurdnio j, com s(7) = dn). Com 0 erro e(n) determinado, € direto 0 célculo de {n) usando a Equagao (2.16). Caso I: Neurénio j é um Neurénio Escondido Quando 0 neurénio j € um neurdnio escondido, nao h4 nenhuma safda desejada pré- especificada para 0 neurénio. Assim, o sinal de erro de um neurénio escondido deve ser calculado em termos dos sinais de erro de todos os neurénios aos quais 0 neurdnio escondido esté diretamente conectado. Considere a Figura 2.6, que mostra 0 neurénio j como um neurénio escondido da rede. Da Equagio (2.16), podemos redefinir 0 gradiente local 5(n) para o neur6nio escondido j como den) 9yj(m) __ de(n) 6 = = sf) dy,(n) dv,(n) dy, (m) f{0,@), (2.19) 18 na qual fizemos uso da Equaco (2.13). Para calcular a derivada parcial de(n)/dy,(n), podemos proceder como segue: da Figura 2.6, podemos ver que, para o neurénio k pertencente & camada de saida, em) =D etn) (2.20) fee Derivando a Equacio (2.20) em relacio a y,(n), obtemos de(n) ay, (n) de, (7) dy, (n)” (2.21) Usando a regra da cadeia para calcular dex(n)/dy(n), podemos rescrever a Equagdo (2.21) na forma de(n) =Tein) Be, (n) av, (n) . Sara : (2.22) 3, Iny(n) a ,(*) oe) O erro na saida do neurdnio k é dado por eM=d(n-y@=d,()-fO(), (2.23) onde v(n) € 0 nivel de ativagao interna do neurénio k. Portanto, de, (n) 1 2.24) Sey Lee) (2.24) Da Figura 2.6, podemos ver que 0 nivel de ativacio interna do neurdnio k é dado por Neurdnio j Neurénio & —_—. 1 —-— ye wplr) vey(r) yo) waft) 30) @— pp > a ‘rip) yon) Figura 2.6 Neurdnio escondido j conectado a um neurénio de sada k. v(m) = Y wy (n)y,(n), (2.25) S onde q € o mimero total de entradas (excluindo a polarizagio) aplicadas a0 neurdnio k Derivando a Equagao (2.25) em relaco a y(n) obtemos dv, (n) a 3) wy (n). (2.26) Assim, substituindo as Equagées (2.24) e (2.26) na Equago (2.22) obtemos a derivada parcial desejada: de(n) , By, Le (af, (=) wy (nr) = (227) = DS ww (a) onde, na segunda linha, fizemos uso da definigao de gradiente local 4(n) dada na Equacao (2.16), com o indice j substituido por k. Finalmente, substituindo a Equago (2.27) na Equago (2.19), obtemos a expressio para o gradiente local 4(n) para o neurénio escondido j: 6() = F/0, A) D4, wy). (2.28) rs © termo f/(v,(n)) na Equacdo (2.28) depende apenas da funcio de ativacio associada ao neurénio j. O termo restante, isto é 0 somatério sobre k, depende de dois conjuntos de termos. O primeiro conjunto de termos, os 4,1), exigem 0 conhecimento dos sinais de erro ex(n), para todos os neurdnios localizados na camada imediatamente posterior & camada onde se encontra o neurénio j, ¢ que esto diretamente conectados ao neurénio j; veja a Figura 2.6. O segundo conjunto de termos, os wy(n), consiste nos pesos sindpticos associados a estas conexies. Podemos agora resumir os resultados obtidos para o algoritmo de retropropagaciio. Em primeiro lugar, a derivada parcial da soma dos erros instantneos (Equaco (2.6)) em relagéo ao peso wj(n) que conecta o neurdnio i ao neurdnio j é definida por 20 Derivada do Gradiente Sinal de entrada Erro em =-| ical 6 do neurénio j Relagdo a wj(n) local S(n) yn) Em segundo lugar, 0 célculo do gradiente local §(n) depende do neurdnio j ser um neurénio de saida ou um neurénio escondido: 1. Se o neurénio j € um neurdnio de saida, 6(n) é igual ao produto da derivada f/(v,(n)) pelo sinal de erro ¢j(n), ambos associados ao neurénio j; veja Equagio (2.16). 2. Se o neurénio j é um neurénio escondido, §(n) € igual ao produto da derivada f/(v,(n)) associada ao neurénio j e a soma ponderada dos 6's calculados para os neur6nios da camada posterior que esto conectados ao neurénio j; veja Equagio (2.28) 2.4.1 Os Dois Passos de Computagao © algoritmo de retropropagagio envolve a execucdo de dois passos distintos de computagio: 0 processamento direto (forward) ¢ 0 processamento reverso (backward). O procedimento direto é executado no sentido entrada — saida da rede. Neste caso, um exemplo de treinamento é apresentado a rede e as saidas de todos os neurénios sao computadas, usando as Equagbes (2.8) ¢ (2.9). Comparamos entio as saidas da rede com as saidas desejadas e calculamos o erro, usando as Equagdes (2.5) e (2.6). processamento reverso é executado no sentido safda— entrada. Neste caso, os sinais de erro so propagados da safda para a entrada, camada a camada, através dos célculos dos 8's (gradientes locais) para cada neurdnio da rede. Para os neurdnios de saida, 5 & calculado usando a Equagio (2.16) € os respectivos pesos sido ajustados usando a Equacio (2.18). Com os &'s da camada de safda calculados, usamos a Equaco (2.28) para calcular os 5's dos neurénios localizados na camada imediatamente anterior & camada de saida; os pesos destes neurénios sdo entio atualizados segundo a Equacdo (2.18). Continuamos este procedimento camada a camada, até que a camada de entrada seja alcangada. 2.4.2. Fungées de Ativagao Observando as Equagées (2.16) ¢ (2.28), vemos que precisamos conhecer a derivada da funcio de ativagao f() para calcular os gradientes locais 6 Assim, vemos que 21 diferenciabilidade & uma propriedade fundamental que deve ser apresentada pela fungao de ativacio. Uma das fungdes mais utilizadas € a fungdo logistica, definida na Equagao (2.4). Assim, para um neur6nio j, teremos 1 Tar iM) = F,(vj(n) = l+e onde v(m) € 0 nivel de ativagio interna do neurénio j. Uma caracteristica interessante da fungao logistica € que sua derivada pode ser expressa em termos da ativaco y(n), a saber: FiO) = y,COL= y,]- A fungao logistica € limitada, assumindo valores no intervalo (0, 1). Em muitas situagdes, € desejavel termos ativagées dos neurénios no intervalo (-1, 1). Uma fungaio muito utilizada nestes casos é a tangente hiperbélica: F,(v;(m) = a- tgh(b-v,(n)) onde @ e b so constantes de escalamento. Valores tipicos para ae b sio a= 1,716 ¢ b=2 (HaYKIN, 1999). 2.4.3 Modos de Treinamento Uma apresentagao completa do conjunto de treinamento durante 0 proceso de aprendizagem € denominada época. Dado um conjunto de treinamento, 0 algoritmo de retropropagagao pode ser executado em dois modos distintos: 1. Modo padréo-a-padrao ou instantaneo (pattern mode): 08 pesos séo atualizados apés a apresentacdio de cada padro & rede neural. Mais especificamente, considere uma época consistindo da apresentacdo de N exemplos (padrdes) de treinamento organizados na ordem [x(1) d(1)], ..., [x(N)d(N)]. O primeiro .exemplo da época [x(1) d(1)] é apresentado & rede, © a seqiléncia de processamentos ireto € reverso € realizada, resultando no ajuste de pesos da rede, incluindo os pesos de polarizacio. Entdo o segundo exemplo da época [x(2) d(2)] € apresentado, ¢ a seqiiéncia de processamentos direto ¢ reverso € repetida, ¢ os pesos so novamente ajustados. Este processo continua até que 0 22 liltimo padrao [x(N) d(V)] seja apresentado a rede, finalizando a época. Neste modo, é importante apresentar os padré em ordem aleatoria a cada época, j4 que a ordem de apresentagaio dos padrées de treinamento nao representa nenhuma informagdo que deva condicionar o processo de ajuste de pesos. 2. Modo por lote ou batelada (batch mode): os pesos sio ajustados somente apés a apresentagdo de todos os exemplos que constituem uma época. Para uma determinada época, definimos a fung&io de custo como 0 erro quadratico médio, definido na Equagao (2.7), e que reproduzimos aqui em forma expandida: Lega Ey = VL DVIa). 2N fal et A corregao a ser aplicada a cada peso wy; serd proporcional A derivada parcial de gy em relagdo a wji. Assim, onde, para calcular de(n)/dw; procedemos da mesma forma descrita anteriormente. © desempenho de um modo ou outro de treinamento depende do problema em questo. M@LLER (1993) argumenta que o modo instantineo parece apresentar melhor desempenho em problemas caracterizados por um conjunto de treinamento grande contendo um grande ntimero de informacao redundante e por supefficies de erro nao muito complexas. © modo por lote, entretanto, é superior em problemas que nao apresentam estas caracteristicas. MOLLER (1993) também argumenta que 0 modo instantaneo nao € consistente com a teoria cléssica de otimizagdo, embora se assemelhe a certos tipos de processos estocasticos. 2.4.4 Critério de Parada Seja o vetor de pesos w* € %”, onde P € o niimero de pesos ajustaveis da rede neural, um mfnimo local ou global da superficie de erro definida no espaco de pesos, €: RK” . Uma condigao necesséria para w* ser um minimo é que o vetor gradiente Ve da superficie de 23 ero em relacZio a w se anule em w= w*. HAYKIN (1999) sugere trés possiveis critérios de parada para o algoritmo de retropropagacio: 1, Oalgoritmo de retropropagacao converge quando a norma euclidiana do gradiente do erro Vel for inferior a um limiar pré-especificado e arbitrariamente pequeno. 2. O algoritmo de retropropagacdo converge quando a taxa de variagio absoluta no erro quadratico médio por época for suficientemente pequena. 3. © algoritmo de retropropagagdo converge quando |Vel|<&, onde & € um limiar suficientemente pequeno, ou quando ¢,,(w) R’ uma fungdo desconhecida que associa a cada vetor de varidveis de entrada x € Q um vetor de saidas s¢ KR’. Se g é uma fungo limitada, entéo a imagem de Q sob g é também uma regio compacta g[Q] cK" definida na forma: sl2]= {g(x): xe Q}. Elementos de um conjunto multidimensional de pares de vetores de entrada-saida aN, (x, 8), 7 so gerados considerando-se que os vetores de entrada x; esto distribuidos na regiiio compacta QC R” de acordo com uma funcgdo densidade de probabilidade fixa d,: 2c R” + [0, 1], e que os vetores de saida s) assumem valores finitos produzidos pelo mapeamento definido pela fungao g na forma: =g(x,)+e,, 1 N, onde €;€ K” é um vetor de erro aditivo, composto por varidveis aleatérias de média zero & variancia fixa, geralmente refletindo a dependéncia de s, /=1,...,N, em relagéo a quantidades no-controlaveis (por exemplo, ruido no processo de amostragem) e nao- observaveis (por exemplo, variéveis nio-mensurdveis). Dado 0 conjunto de dados amostrados {(x,,s, }!, definidos no espago Qx KR’, o problema de aproximago envolve a determinaggo de um modelo de aproximagio §:Q—" que coresponda a melhor aproximacio para o mapeamento realizado pela fungio g: Q > ®’. Considere agora uma rede neural multicamada com uma tnica camada escondida, como a ilustrada na Figura 2.7. Nesta figura temos uma rede com m entradas, n neurnios na camada escondida e r neurénios na camada de saida. Consideraremos aqui que todos os neurOnios da camada intermediéria possuem a mesma funcdo de ativagao f(-). Assumimos também que f(:) € uma funco continua, limitada e monot6nica crescente. Os neurdnios da camada de saida possuem como fungio de ativaciio a fungdo identidade. Os pesos da rede podem ser arranjados na forma de matrizes, como segue: Yo Yn Mim [Mo Ma My v, v. Wy Woy ow. 0 an a an v e W=|.” - Yno Vat Vim Wo Wr Wn Redes neurais com uma tinica camada escondida sao consideradas estruturas poderosas para aproximagao de funges. Note que o aprendizado de um mapeamento entrada- safda a partir do conjunto de dados amostrados {(x,,s,)}", pode ser considerado como a sintese de um modelo de aproximacdo (-) para a funcao desconhecida g(-). Podemos entio usar uma rede neural com uma camada intermedidria e treinamento supervisionado para obter estimativas $ para todo x € Q, tal que $= g(x). Da Figura 2.7, vemos que a ativagio do k- ésimo neurdnio de saida (k=, ..., 7) € dada por ie wo S[mus[Seon ere } (2.29) onde: * vj, #0, representa o peso sindptico que conecta a i-ésima entrada ao j-€simo neur6nio escondido; ‘© vj € a polarizacao do j-ésimo neurdnio escondido; * wy, 7#0, representa o peso que conecta o j-ésimo neurénio escondido ao k-ésimo neurdnio de saida; ‘© Wyo representa a polarizagao do k-ésimo neurénio de saida Redes neurais com uma camada intermediéria, como as descritas aqui, apresentam uma propriedade que as tornam bastante atraentes para uso em problemas de aproximacio de fungdes: a capacidade de aproximagdo universal. Apresentamos entio 0 teorema da aproximagao universal (CYBENKO, 1989; FUNAHASHI, 1989; HORNIK et al., 1989): 28 Figura 2.7 Rede neural com uma tinica camada escondida. Teorema 2.1 Seja C[QJ 0 espago de fungdes continuas em Q, onde Q é uma regio compacta. Se g: QoR"™ > R'E tal que g € C[Q], ento, para qualquer E> 0, existem n, V e W tal que dist(g (x), RN" (V,W,x))<é VvxeQ, onde o operador dist(-.-) mede a distancia entre a fungio g a ser aproximada e a fungdo RNY, W, x) produzida pela rede neural. Note que n € 0 nmero de neurénios na camada intermediaria. O Teorema 2.1 afirma que existe uma rede neural com uma tinica camada escondida, e com um ntimero adequado de neurénios na camada escondida, que seja capaz de aproximar com precisio € uma fungdo continua desconhecida, dado um conjunto de amostras para treinamento {(x,,s, }}, . Observe entretanto que o teorema nao afirma que uma tinica camada escondida € 6tima no sentido de tempo de aprendizado ou facilidade de implementacio € também nfo indica como obter n, V e W, sendo apenas um resultado existencial. 2.7 Conclusao Neste capitulo apresentamos uma introdugdo as redes neurais multicamadas. Os principais pontos abordados foram 0 modelo de neurénio, o algoritmo de retropropagacio, os métodos de segundo ordem e a visio de redes neurais como modelos de aproximagiio de fungGes. Os tépicos apresentados serdo importantes nos capitulos subseqitentes deste trabalho. 30 Capitulo 3 Algoritmos Genéticos étodos baseados em computacao evolutiva constituem uma classe de algoritmos de busca e otimizacio estocdstica inspirados na teoria da evolugao natural de Darwin. Estes algoritmos tém recebido especial atenco nos tltimos tempos por se tratarem de métodos robustos, capazes de fornecer solugdes de alta qualidade para problemas considerados intratéveis por métodos tradicionais de otimizacio, os quais foram concebidos para problemas lineares, continuos e diferencidveis. Mas, como observa SCHWEFEL (1994), 0 mundo real € ndo-linear e dinamico, cheio de fenémenos como descontinuidade, instabilidade estrutural e formas geométricas fractais. Em problemas em que precisamos levar em conta tais fendmenos, os métodos tradicionais certamente no apresentardo desempenho satisfat6rio. Métodos evolutivos so uma alternativa para tentar superar as limitagdes apresentadas por métodos tradicionais, embora no garantam a obtengio da solugdo exata. Neste capitulo apresentaremos os principais aspectos relacionados 2 computacio evolutiva, mais especificamente algoritmos genéticos. Este capftulo encontra-se estruturado da seguinte forma: na Seco 3.1, apresentamos algumas idéias referentes & teoria da evolugao natural; na Segdo 3.2, apresentamos a computagio evolutiva e descrevemos rapidamente as principais abordagens presentes na literatura; na Seco 3.3 apresentamos mais detalhadamente 0s algoritmos genéticos; na Seco 3.4 apresentamos a teoria dos esquemas ¢ na Secio 3.5 apresentamos as conclusées e algumas perspectivas na firea de computago evolutiva 3.1 Evolugao Natural A evolugdo natural € 0 processo que guia o surgimento de estruturas organicas complexas ¢ adaptadas ao ambiente (BACK et al., 1997). De forma sucinta, e com grau 31 elevado de simplificacio, BACK eral. (1997) descreve a evolugio como o resultado da influéncia mitua entre a criacdo de informagio genética nova e sua avaliago e selecéo. Um individuo de uma populagio é afetado por outros individuos da populagdo (por exemplo, através de competicdo por alimentagdo, predadores, acasalamento, etc.) ¢ também pelo ambiente em que vive (por exemplo, através da oferta de comida, clima, etc.). Quanto maior a adaptagao de um individuo a tais condigdes, maior a chance do individuo sobreviver por mais tempo e gerar uma prole, que por sua vez herda a informagio genética dos pais (possivelmente com algum erro de c6pia e sujeita A recombinagao das informagées fornecidas pelos pais). Ao longo do processo de evolueo, vai ocorrendo na populago uma penetragao majoritéria de informagdo genética oriunda de individuos com adaptago acima da média. Além disso, 0 carter ndo-deterministico da reprodugao leva a uma produc&o permanente de informacdo genética nova e, portanto, a criagdo de descendentes diferenciados. Para maiores detalhes, veja ATMAR (1994) e FOGEL (1999). Individuos e espécies podem ser vistos como uma dualidade entre seu cédigo genético (gendtipo) e suas caracteristicas comportamentais, fisiolégicas ¢ morfoldgicas (fendtipo) (FOGEL, 1994). Em sistemas evoluidos naturalmente, nfo existe uma relagdo biunivoca entre um gene (elemento do genétipo) e uma caracteristica (elemento do fendtipo): um tinico gene pode afetar diversos tragos fenotipicos simultaneamente (pleiotropia) e uma tnica caracteristica fenotipica pode ser determinada pela interagiio de varios genes (poligenia). Os efeitos de pleiotropia e poligenia geralmente tornam os resultados de variagdes genéticas imprevisiveis. Sistemas naturais em evolugdo so fortemente pleiotrépicos e altamente poligénicos (HARTL & CLARK, 1989). O mesmo nao ocorre em sistemas artificiais, onde uma das principais preocupacdes é com o custo computacional do sistema. Assim, em sistemas artificiais, existe uma relacdo de um-pra-um entre gentipo e fenotipo. © processo de evolucdo pode ser formalizado como segue (ATMAR, 1994; FOGEL, 1999): considere dois espagos de estados distintos ~ um espago de estados genotipico (de codificagio) G e um espago fenotipico (comportamental) F. Considere também um alfabeto de entrada composto de simbolos provenientes do ambiente I. © processo de evolugio de uma populagio em uma geracio encontra-se esquematizado na Figura 3.1. Existem 4 mapeamentos atuando neste processo: 32 fii IxG oF, f,: FOF, fi: FOG, f£:G G6. O mapeamento fi, denominada epigénese, mapeia elementos g; ¢ G em uma colegdo particular de fenétipos p, do espaco fenotipico F, cujo desenvolvimento € modificado por seu ambiente, um conjunto de simbolos {i1, ..., ix} € I. Este mapeamento € inerentemente de muitos-pra-um, pois existe uma infinidade de genétipos que podem resultar num mesmo fendtipo; elementos de um conjunto infinito de cédigos nao-expressos (ndo-participantes na produgao do fendtipo) podem existir em gi (ATMAR, 1994). O mapeamento fs, selegao, mapeia fendtipos pi em pz. Este mapeamento descreve os processos de seleco, imigracdo e emigragdo de individuos dentro da populagao local. Como a selec&io natural opera apenas nas expresses fenotipicas do gendtipo, o cédigo gi nao estd envolvido no mapeamento fz. ATMAR (1994) enfatiza que a selegdo atua apenas no sentido de eliminar as variantes comportamentais menos apropriadas do inevitavel excesso da populago, j4 que assume-se aqui que os recursos provenientes do ambiente sdo limitados, Espaco genotipico G Espaco fenotipico F Figura 3.1 Evolucdo de uma populaco durante uma geragio, 33 exigindo a competigao pela sobrevivéncia. Neste processo de competicao, a seleg%io nunca opera sobre uma caracterfstica simples, isoladamente do conjunto comportamental. O mapeamento fs, representagdo (ATMAR, 1994) ou sobrevivéncia genotipica (FOGEL, 1999), descreve os efeitos dos processos de selegio e migragdo em G. O mapeamento fi, mutagdo e recombinagao, mapeia codigos go € Gem g/¢ G. Este mapeamento descreve as “regras” de mutagio ¢ recombinagao, ¢ abrange todas as alter: genéticas. A mutagdo é um erro de cépia no processo de transmissio do cédigo genético dos pais para a sua prole. Em um universo com diferencial de entropia positivo, erros de replicagio so inevitéveis e a otimizagdo evolutiva toma-se inevitével em qualquer populagao que se reproduz em uma arena limitada (ATMAR, 1994). Com a criago da nova populacdio de gendtipos gi, uma geracdo est4 completa. A adaptacao evolutiva ocorre em sucessivas iteragdes destes mapeamentos. O biGlogo Sewell Wright propés, em 1931, 0 conceito de superficie de adaptagao para descrever nivel de adaptacio de individuos e espécies (FOGEL, 1999). Uma populacio de genétipos € mapeada em seus respectivos fenstipos que por sua vez so mapeados na superficie de adaptagio. Cada pico (méximo local) da superficie de adaptagio corresponde a uma colegdo de fendtipos otimizada, e portanto a um ou mais conjuntos de genétipos otimizados. A evolugao é um processo que conduz, de forma probabilistica, populagdes em diregdo a picos da superficie, enquanto que a selecdo elimina variantes fenotipicas menos apropriadas. Outros pesquisadores propdem uma visio invertida da superficie de adaptacao: populagdes avangam descendo picos da superficie de adaptago até que um ponto de minimo seja encontrado. Qualquer que seja o ponto de vista, a evolugio € inerentemente um processo de otimizagao. A selego produz fendtipos tio préximos do timo quanto possivel, dadas condigées iniciais, restrigdes ambientais e parametros evolutivos. Observe, no entanto, que ems stemas biol6gicos reais, nao existem superficies de adaptacdo estdticas. O ambiente esta em constante mudanga, fazendo com que populagdes estejam em constante evolugdo em dirego a novos pontos de 6timo. Neste caso, assumindo que as mudangas ambientais sido significativas, a taxa evolutiva deve ser suficientemente elevada para acompanhar as mudangas ambientais. 3.2 Computagao Evolutiva ‘A computagio evolutiva é formada por algoritmos inspirados na teoria da evoluc: natural de Darwin. A computago evolutiva pode desempenhar os seguintes papéis basicos © ferramenta adaptativa para solugdo de problemas; * modelo computacional de processos evolutivos naturais. Os sistemas baseados em computagdo evolutiva mantém uma populacao de solugdes potenciais, aplicam processos de selegdo baseados na adaptagio de um individuo e também empregam outros operadores “genéticos”. Diversas abordagens para sistemas baseados em evolugdo foram propostas, sendo que as principais diferencas entre elas dizem respeito aos operadores genéticos empregados (uma discussio sobre operadores genéticos seré apresentada mais adiante neste capitulo). As principais abordagens propostas na literatura so: © algoritmos genéticos; © estratégias evolutivas; © programaciio evolutiva. Os algoritmos genéticos foram introduzidos por J. Holland em 1975 (HOLLAND, 1992) com o objetivo de formalizar matematicamente e explicar rigorosamente processos de adaptag%io em sistemas naturais e desenvolver sistemas artificiais (simulados em computador) que retenham os mecanismos originais encontrados em sistemas naturais. Os algoritmos genéticos empregam os operadores de crossover e mutagdo (a serem apresentados mais adiante neste capitulo). Os algoritmos genéticos tém sido intensamente aplicados em problemas de otimizagdo, apesar de nao ter sido este o propésito original que levou ao seu desenvolvimento. Uma extensio dos algoritmos genéticos, denominada programagao genética, foi introduzida por Koza (1992)'. A programagao genética teve por objetivo inicial evoluir programas de computador usando os princfpios da. evolucgio natural. Atualmente a programacio genética tem sido aplicada a uma grande variedade de problemas, como na sintese de circuitos elétricos analégicos (KOZA et al., 1997) e na definig&o de arquiteturas de redes neurais artificiais (GRUAU, 1994). "J, R, Koza detém uma patente sobre pr ramacdo genética. 35 Estratégias evolutivas (RECHENBERG, 1973, SCHWEFEL, 1995) foram inicialmente propostas com 0 objetivo de solucionar problemas de otimizacio de parametros, tanto discretos como continuos. As estratégias evolutivas empregam apenas o operador de mutaco. A programagéo evolutiva, introduzida por FOGEL et al. (1966), foi originalmente proposta como uma técnica para criar inteligéncia artificial através da evolugdo de maquinas de estado finito. A programacao evolutiva também emprega apenas mutagdo. Recentemente, a programacdo evolutiva tem sido aplicada a problemas de otimizagao e 6, neste caso, virtualmente equivalente as estratégias evolutivas; apenas pequenas diferencas no que diz respeito aos procedimentos de selec © codificagao de individuos estéio presentes nas duas abordagens atualmente (FOGEL, 1994), Apesar das abordagens acima citadas terem sido desenvolvidas de forma independente, seus algoritmos possuem uma estrutura comum. Usaremos o termo algoritmo evolutivo para denominar todos os sistemas baseados em evolucdo. A estrutura de um algoritmo evolutivo esté ilustrada na Figura 3.2 (MICHALEWICz, 1996). Um algoritmo evolutivo é um algoritmo probabilfstico que mantém uma populagdo de individuos P(t)= {x',...,.x'} na iteragdo (geragdo) t. Cada individuo representa um candidato & solucdo do problema em questo e, em qualquer implementac&o computacional, assume a forma de alguma estrutura de dados S. Cada solugao x! é avaliada e produz alguma medida de adaptagio, ou fitness. Entdo, uma nova populagao (iteragdo ¢+ 1) € formada pela selecao dos individuos mais adaptados (passo de selegdo). Alguns individuos da populagdo so submetidos a transformagées (passo de alteragdo) por meio de operadores genéticos para formar novas solug6es. Existem transformagdes undrias m; (mutag&o) que criam novos individuos através de pequenas mudangas em um individuo (m, : S—> 5), e transformagoes de ordem superior ¢ (crossover), que criam novos individuos através da combinagio de dois ou mais individuos (cj: $x ...x S—> 5). Apés um ntimero de geragdes, a condigdo de parada deve ser atendida, a qual geralmente indica a existéncia, na populagio, de um individuo que represente uma solucdo quase-6tima (razoavel) para o problema. As abordagens evolutivas apresentadas nesta se¢do diferem em diversos aspectos: nas estruturas de dados utilizadas para codificar um individuo, nos operadores genéticos empregados, nos métodos para criar a populago inicial, nos métodos para selecionar 36 procedimento programa evolutivo inicio 120 inicialize P(r) avalie P(t) enquanto (nao condigao de parada) faga inicio tet+l selecione P(t) a partir de P(t— 1) altere P(t) avalie P(t) fim fim Figura 3.2 Estrutura de um algoritmo evolutivo. individuos para a geracdo seguinte, etc. Entretanto, elas compartilham 0 mesmo principio comum: uma populagdo de individuos sofre algumas transformagGes e durante a evolugdo os individuos competem pela sobrevivénci: 3.3 Algoritmos Genéticos Os algoritmos genéticos empregam uma terminologia originada da teoria da evolugao natural e da genética. Um individuo da populagdo € representado por um tinico cromossomo, © qual contém a codificagdo (genétipo) de uma possivel solucio do problema (fendtipo). Cromossomos sao usualmente implementados na forma de vetores, onde cada componente do vetor € conhecido como gene. Os possiveis valores que um determinado gene pode assumir so denominados alelos. O processo de evolugdo executado por um algoritmo genético corresponde a um processo de busca em um espago de solugdes potenciais para o problema. Como enfatiza MICHALEWICZ (1996), esta busca requer um equilibrio entre dois objetivos aparentemente conflitantes: 0 aproveitamento das melhores solugdes e a exploragdo do espago de busca (exploitation x exploration). Métodos de otimizagio do tipo hillclimbing sio exemplos de métodos que aproveitam a melhor solugdo na busca de possiveis aprimoramentos; em compensagdo, estes métodos ignoram a exploragdo do espago de busca. Métodos de busca aleatéria sio exemplos tipicos de métodos que exploram 0 espago de busca ignorando 0 37 aproveitamento de regiées promissoras do espago. Algoritmos genéticos constituem uma classe de métodos de busca de propésito geral que apresentam um balango notével entre aproveitamento de melhores solugdes e exploraco do espaco de busca. Os algoritmos genéticos pertencem A classe dos algoritmos probabilisticos, mas eles nfo so métodos de busca puramente aleatérios, pois eles combinam elementos de métodos de busca diretos e estociisticos. Outra propriedade importante dos algoritmos genéticos (assim como de todos os algoritmos evolutivos) é que eles mantém uma populagao de solugdes candidatas enquanto que os métodos alternatives, como simulated annealing (Aarts & KorsT, 1989), processam um tinico ponto no espaco de busca a cada instante. © processo de busca realizado pelos algoritmos genéticos é multi-direcional, através da manutencao de soluges candidatas, e encoraja a troca de informagio entre as diregdes. A cada geracdo, solugées relativamente “boas” se reproduzem, enquanto que solugdes relativamente “ruins” sao eliminadas. Para fazer a distingo entre diferentes solugées & empregada uma funcio objetivo (de avaliagdo ou de adaptabilidade) que simula o papel da pressio exercida pelo ambiente sobre o individuo. A estrutura de um algoritmo genético é a mesma do algoritmo evolutivo apresentado na Figura 3.2. Podemos descrever um algoritmo genético como segue (MICHALEWICZ, 1996). Durante a iteraco 1, um algoritmo genético mantém uma populagdo de solugdes potenciais (cromossomos, vetores), P(t) = {k',...,x,}. Cada solugdo x! é avaliada e produz uma medida de sua adaptago, ou fimess. Uma nova populacdo (iteragio 1+1) € entéo formada privilegiando a participagdo dos individuos mais adaptados. Alguns membros da nova populagdo passam por alteragdes por meio de crossover e mutago para formar novas solugées potenciais. Este processo se repete até que um ntimero pré-determinado de iteragdes seja atingido, ou até que o nivel de adaptaglo esperado seja alcangado. Um algoritmo genético para um problema particular deve ter os seguintes componentes: * uma representacdo genética para solugdes candidatas ou potenciais (processo de codificagao); © uma maneira de criar uma populagao inicial de solugdes candidatas ou potenciais; 38 © uma fungdo de avaliagdo que faz o papel da presstio ambiental, classificando as solugdes em termos de sua adaptagio ao ambiente (ou seja, sua capacidade de resolver o problema); © operadores genéticos; © valores para os diversos parametros usados pelo algoritmo genético (tamanho da populaco, probabilidades de aplicacio dos operadores genéticos, etc.) 3.3.1 Codificagao de Individuos Cada individuo de uma populaco representa um candidato em potencial a solugdo do problema em questo. No algoritmo genético classico, proposto por HOLLAND (1992), as solugdes candidatas sao codificadas em arranjos bindrios de tamanho fixo. A motivagao para © uso de codificagdo bindria vem da teoria dos esquemas (schemata theory), que seré apresentada mais adiante. HOLLAND (1992) argumenta que seria benéfico para 0 desempenho do algoritmo maximizar o paralelismo implicito inerente ao algoritmo genético (veja Segdo 3.4), e prova que um alfabeto bindrio maximiza o paralelismo implicito. Entretanto, em diversas aplicagSes praticas a utilizagdo de codificagao binaria leva a um desempenho insatisfatério. Em problemas de otimizago numérica com parametros reais, algoritmos genéticos com representagdo em ponto flutuante freqiientemente apresentam desempenho superior a codificagio bindria. MICHALEWICZ (1996) argumenta que a representacio bindria apresenta desempenho pobre quando aplicada a problemas numéricos com alta dimensionalidade e onde alta preciso é requerida. Suponha por exemplo, que temos um problema com 100 variaveis com dom{nio no intervalo [-500, 500] e que precisamos de 6 digitos de preciso apés a casa decimal. Neste caso precisariamos de um cromossomo de comprimento 3000, € terfamos um espago de busca de dimensio aproximadamente 10'™. Neste tipo de problema o algoritmo genético classico apresenta desempenho pobre. MICHALEWICZ (1996) apresenta também simulagdes computacionais comparando o desempenho de algoritmos genéticos com codificagio bindria e com ponto flutuante, aplicados a um problema de controle. Os resultados: apresentados mostram uma clara superioridade da codificagdo em ponto flutuante. A argumentagao de MICHALEWICZ (1996), de que o desempenho de um algoritmo genético com codificagao binéria € pobre quando o espaco de busca € de dimensao elevada, 39 nao € universalmente aceita na literatura referente a algoritmos genéticos. FOGEL (1994) argumenta que 0 espaco de busca por si s6 (sem levar em conta a escolha da representacao) nao determina a eficiéncia do algoritmo genético. Espagos de busca de dimensio elevada podem 2 vezes ser explorados eficientemente, enquanto que espacos de busca de dimensio reduzida podem apresentar dificuldades significativas. FOGEL (1994), entretanto, concorda que a maximizagao do paralelismo implicito nem sempre produz um desempenho étimo Fica claro, portanto, que a codificagao € uma das etapas mais criticas na definigdo de um algoritmo genético. A definigéo inadequada da codificagdo pode levar a problemas de convergéncia prematura do algoritmo genético. A estrutura de um cromossomo deve representar uma solugdo como um todo, e deve ser a mais simples possivel. Em problemas de otimizagdo restrita, a codificagdo adotada pode fazer com que indi luos modificados por crossover/mutacao sejam invalidos. Nestes casos, cuidados especiais devem ser tomados na definigao da codificagao e/ou dos operadores. 3.3.2. Definigao da Populagao Inicial © método mais comum utilizado na criagdo da populagdo ¢ a inicializacao aleatéria dos individuos. Se algum conhecimento inicial a respeito do problema estiver disponivel, pode ser utilizado na inicializagdo da populagdo. Por exemplo, se é sabido que a solucdo final (assumindo codificagio bindria) vai apresentar mais 0’s do 1’s, entdo esta informagio pode ser utilizada, mesmo que ndo se saiba exatamente a proporgao. J4 em problemas com restricdo, deve-se tomar cuidado para nao gerar individuos invalidos na etapa de inicializacao. 3.3.3 Operadores Genéticos Os operadores genéticos mais freqiientemente utilizados em algoritmos genéticos so © crossover € a mutagao. Nesta seco apresentamos os principais aspectos relacionados a estes operadores. O Operador de Crossover © operador de crossover ou recombinagdo cria novos individuos através da combinagao de dois ou mais individuos. A idéia intuitiva por trés do operador de crossover € 40 a troca de informagio entre diferentes solugGes candidatas. No algoritmo genético classico atribufda uma probabilidade de crossover fixa aos individuos da populagdo. O operador de crossover mais comumente empregado € 0 crossover de um ponto. Para a aplicagio deste operador, sio selecionados dois individuos (pais) ¢ a partir de seus cromossomos sao gerados dois novos individuos (filhos). Para gerar os filhos, seleciona-se um ponto de corte aleatoriamente nos cromossomos dos pais, e os segmentos de cromossomo criados a partir do ponto de corte so trocados. Ilustraremos este operador com um exemplo. Exemplo 3.1 Considere dois individuos selecionados como pais a partir da populagao inicial de um algoritmo genético suponhamos que o ponto de corte escolhido (aleatoriamente) encontra-se entre as posigdes 4 e 5 dos cromossomos dos pais: Ponto de corte pai #1: [1 ]o[i [ofo[i]i]ijofi] pai #2:[0]1[1]1]o]1jolijijo Apés 0 crossover, teremos os seguintes individuos filho: Fitho #1: [0[1[a[a]o]i fifi fofi] Filho #2: [1[0[1[0]0[1][0]1[1[0] a Muitos outros tipos de crossover tém sido propostos na literatura, Uma extensdo simples do crossover de um ponto € 0 crossover de dois pontos, onde dois pontos de corte so escolhidos e material genético so trocados entre eles. Ilustremos este operador com um exemplo: Exemplo 3.2 Considere os mesmos individuos pais do Exemplo 3.1. Suponha que os pontos de crossover escolhidos estao localizados entre as posigdes 3 ¢ 4 ¢ entre as posigdes 7 € 8. Entiio os novos individuos produzidos seri 41 a Outro tipo de crossover muito comum € 0 crossover uniforme (SYSWERDA, 1989): para cada bit no primeiro filho é decidido (com alguma probabilidade fixa p) qual pai vai contribuir com seu valor para aquela posi¢do. Consideremos mais um exemplo. Exemplo 3.3 Consideremos os mesmos individuos-pai dos exemplos anteriores e seja ),5. Poderiamos entao obter os seguintes individuos com crossover uniforme: pai#i: [1 [o[1[ofoli [ii [ofa > Pino: fT Th foh tt thi pai #2: [0[1[1[1 [oi fofajilo Filho #2: [0[0[1 Jools [o]i [ofo Como 0 crossover uniforme troca bits ao invés de segmentos de bits (que aqui fazem o papel dos genes), ele pode combinar caracteristicas independentemente da sua posigao relativa no cromossomo. ESHELMAN et al. (1989) relata diversos experimentos com varios operadores de crossover. Os resultados indicam que 0 operador com pior desempenho € 0 crossover de um ponto; entretanto, ndo hd nenhum operador de crossover que claramente apresente um desempenho superior aos demais. Uma conclusio a que se pode chegar a partir destes resultados é que cada operador de crossover € particularmiente eficiente para uma determinada classe de problemas extremamente ineficiente para outras. Os operadores de crossover descritos até aqui também podem ser utilizados em cromossomos com codificagdo em ponto flutuante. Entretanto existem operadores de crossover especialmente desenvolvidos para uso com codificago em ponto flutuante, Um exemplo € 0 chamado crossover aritmético (MICHALEWICZ, 1996). Este operador é definido como uma combinacio linear de dois vetores (cromossomos): sejam x; X2 dois individuos selecionados para crossover, entdéo os dois filhos resultantes serio x; = ax, +(l—a)x, e 42 x), =(I-a)x, +ax, onde a € um mimero aleat6rio pertencente ao intervalo [0, 1]. Este operador € particularmente apropriado para problemas de otimizacio numérica com restrigBes, onde a regido factivel € convexa. Isto porque, se x € Xp pertencem a regio factivel, combinagSes convexas de x; € x2 serdo também factiveis. Assim, garante-se que 0 crossover nao gera individuos invalidos para o problema em questo. Outros exemplos de crossover especialmente desenvolvidos para utilizagdo em problemas de otimizagao numérica restritos e codificagao em ponto flutuante so 0 crossover geométrico ¢ 0 crossover esférico, descritos em MICHALEWICZ & SCHOENAUER (1996). Um aspecto importante em um algoritmo genético diz respeito a como escolher os individuos que serio submetidos a crossover. Aqui também temos diversas alternativas possiveis, sendo que entre as mais comuns podemos citar: © Crossover entre individuos aleatérios: sio escolhidos individuos da populago atual aleatoriamente ou por meio de roulette wheel (veja Segio 3.3.4) e efetua-se 0 crossover. © Crossover entre individuo aleatério ¢ melhor individuo: € escolhido um individuo da populagao atual aleatoriamente ou por meio de roulette wheel, sendo 0 outro individuo melhor individuo da populagio, e efetu € 0 crossover. Operador de Mutagao © operador de mutacio modifica aleatoriamente um ou mais genes de um cromossomo. A probabilidade de ocorréncia de mutagdo em um gene é denominada taxa de mutagdo, Usualmente, sio atribuidos valores pequenos para a taxa de mutagdo. A idéia intuitiva por trés do operador de mutagao € criar uma variabilidade extra na populacdo, mas sem destruir 0 progresso ja obtido com a busca. Considerando codificagao bindria, o operador de mutagdo padrdo simplesmente troca 0 valor de um gene em um cromossomo (HOLLAND, 1992). Assim, se um gene selecionado para mutagao tem valor 1, 0 seu valor passaré a ser 0 apés a aplicagao da mutacdo, e vice-versa. No caso de problemas com codificacio em ponto flutuante, 0 operador de mutagéo mais popular € a mutag@o gaussiana (MICHALEWICZ & SCHOENAUER, 1996), que modifica todos os componentes de um cromossomo x = [x ... x,] na forma: x’=x+N(Q,o), 43 onde N(O, o) € um vetor de varidveis aleatorias gaussianas independentes, com média zero € desvio padrao o. Um operador importante para problemas em que os individuos empregam codificacdo em ponto flutuante é a mutagdo uniforme (MICHALEWICZ ,1996). Este operador seleciona aleatoriamente um componente ke {1, 2,...,m) do cromossomo x= [x1 ... Xi... %9] © gera um individuo x’=[x,...x{...x,], onde x{ € um niimero aleatorio (com distribuigdo de probabilidade uniforme) amostrado no intervalo [LB, UB] e LB e UB sio, respectivamente, os limites inferior e superior da variavel xj. Outro operador de mutacio, especialmente desenvolvido para problemas de otimizagdo com restric e codificagio em ponto flutuante, € a chamada mutagdo ndo- uniforme (MICHALEWICZ, 1996; MICHALEWICZ & SCHOENAUER, 1996). A mutacio nao- uniforme € um operador dindmico, destinado a melhorar a sintonia fina de uma elemento simples. Podemos defini-lo da seguinte forma: seja x' = [x1 ... x,] um cromossomo e suponha que o elemento x; foi selecionado para mutagio; 0 cromossomo resultante sera x) .., | onde _ [x, +A(GUB-x,), com 50% de probabilidade |x, -A(x,- ZB), com 50% de probabilidade" onde LB ¢ UB sao os limites inferiores € superiores da varidvel x,. A fungao A(t, y) retorna um valor no intervalo [0, x] tal que a probabilidade de A(t, y) ser préximo de zero aumenta A medida que 1 aumenta. Esta propriedade faz com que este operador inicialmente explore o espaco globalmente (quando # € pequeno) e localmente em geragées avangadas (quando 1 é grande); MICHALEWICZ (1996) propde a seguinte fungo At. y)=y (= rt? ), onde r € um ntimero aleatério no intervalo [0, 1], T€ 0 ntimero maximo de geragées ¢ b é um parametro que determina o grau de dependéncia do mimero de iteragées (valor proposto por MICHALEWICZ (1996): b=5). Este operador foi usado com sucesso por DE CasTRO er al. (1998) na evolugio de condigdes iniciais para o treinamento de redes neurais artificiais (veja Seco 2.4.5), Outros exemplos de operadores de mutaco para problemas de otimizagao numérica e com codificagio em ponto flutuante podem ser encontrados em MICHALEWICZ & SCHOENAUER (1996). 3.3.4 Selegdo de Individuos para a Proxima Geracgao O algoritmo genético classico utiliza um esquema de selecio de individuos para a préxima geragiio chamado roulette wheel (MICHALEWICZ, 1996). O roulette wheel atribui a cada individuo de uma populagéo uma probabilidade de passar para a préxima geracio proporcional ao seu fitness medido, em relacdo 4 somatéria do fimess de todos os individuos da populagiio. Assim, quanto maior o fitness de um individuo, maior a probabilidade dele passar para a préxima geragdo, Para um exemplo, veja a Figura 3.3. Observe que a selecio de individuos por roulette wheel pode fazer com que o melhor individuo da populagdo seja perdido, ou seja, ndo passe para a proxima geracio. Uma alternativa é escolher como solugdo 0 melhor individuo encontrado em todas as geragdes do algoritmo. Outra opedo é simplesmente manter sempre o melhor individuo da geracdo atual na geracdo seguinte, estratégia essa conhecida como selegdo elitista (FOGEL, 1994; MICHALEWICZ, 1996). Outro exemplo de mecanismo de selegio € a seleg&o baseada em rank (BAck et al., 1997). Esta estratégia utiliza as posigdes dos individuos quando ordenados de acordo com o fitness para determinar a probabilidade de selecio. Podem ser usados mapeamentos lineares ou ndo-lineares para determinar a probabilidade de seleco. Para um [N° Cromossomo Fitness Graus % do Total 50,0% (1 o00iio0r 60180 S00 12,5%, [No.1 2 o101110011 3.090 25.0 el DNe.3 3 101010001. 545 12,5 oe 4 oii 15 45 12.5 Total 130 360 100.0 25,0% Figura 3.3 Exemplo de aplicagao do roulette wheel: cada individuo em uma determinada geragdo recebe uma probabilidade de passar & préxima geragio proporcional ao seu fimess, medido em relagdo ao fitness total da populacao. 45 exemplo de mapeamento nao-linear, veja (MICHALEWICZ, 1996). Uma variacio deste mecanismo € simplesmente passar os N melhores individuos para a préxima geraco. A seguir, citamos alguns outros possiveis mecanismos de selegio: * Selecdo por diversidade: so selecionados os individuos mais diversos da populacio. * Selegdo bi-classista: sao selecionados os P% melhores individuos e os (100 — P)% piores individuos. . Podemos * Selegdo aleatéria: so selecionados aleatoriamente N individuos da populacd subdividir este mecanismo de selectio em: * Salvacionista: seleciona-se o melhor individuo e os outros aleatoriamente * Nao-salvacionista: seleciona-se aleatoriamente todos os individuos. 3.4 Teoria dos Esquemas A teoria dos esquemas foi proposta por HOLLAND (1992) para tentar explicar por que os algoritmos genéticos funcionam. Nesta seco, apresentaremos os principais resultados da teoria dos esquemas: 0 teorema de crescimento dos esquemas ¢ a hipétese dos blocos construtivos. Um esquema € uma representagéo capaz de descrever diversos cromossomos simultaneamente. Um esquema é construfdo inserindo um caractere don’t care (+) no alfabeto dos genes, indicando que aquele gene representa qualquer alelo. Por exemplo, o esquema [1*01001} representa os cromossomos [1001001] e [1101001]. © esquema [1 *0* 110] representa quatro cromossomos: (10001 10}, [1001110], {1100110} € [1101110]. Obviamente, o esquema [1 1 100 1 0] representa apenas um cromossomo, enquanto que © esquema [* * * * + * *] representa todos os cromossomos de comprimento 7. Observe que cada esquema representa 2" cromossomos, onde r € 0 mimero de caracteres don't care “*” presentes no esquema. Por outro lado, cada cromossomo de comprimento m é representado por 2” esquemas. Por exemplo, considere 0 cromossomo [0 100100]. Este cromossomo é representado pelos seguintes 2’ esquemas: (0100100) [*100100} [0*00100} 46 [010010*) [**00100] [*1*0100) [01001**) (***0100) [en eeenay Considerando cromossomos de comprimento m, hé um total de 3” possiveis esquemas Numa populagio de tamanho n, entre 2” e n-2" diferentes esquemas podem ser representados. ‘A ordem de um esquema S, o(S), € definida como o nimero de 0’s ¢ 1’s presentes no esquema, isto é, 0 mimero de posigdes fixas (caracteres diferentes de don’t care) presentes no esquema. A ordem de um esquema define sua especificidade, de modo que quanto maior a ordem, mais especifico € 0 esquema. O comprimento definitorio de um esquema S, denotado por &(S), a maior distancia entre posigdes fixas de um cromossomo. O comprimento definitério define o nivel de compactaco da informago contida no esquema. O fimess de um esquema S na geragao #, eval(S, 1), € definido como a média dos fitness de todos os cromossomos na populagao representados pelo esquema S. Assuma que ha p cromossomos {,.....x/, } representados pelo esquema S; na geracao 1. Entio eval(S,.t) =+Sevailx’ ), onde evallx’, ) € 0 fimess do individuo xi, . Seja tam_pop o tamanho da populagio. O fitness médio da populagdo na geragao 1, F(t) € dado por 47 Sejam p. € Pm as probabilidades de crossover e mutaco, respectivamente, € m o comprimento dos cromossomos. Seja &(S), 1) 0 ntimero de cromossomos representados pelo esquema S; na geragio t. Pode-se mostrar que (MICHALEWICZ, 1996): E(S, ,t)eval(s, .t)| 4(S,) 56,1412 SEED, Eile oS,)P0 |. B.1) A Equacdo (3.1) € conhecida como equagao de crescimento reprodutivo do esquema. Esta equacdo € deduzida assumindo que a fungdo de fies fl-) assume apenas valores positivos. Se a fungdo a ser otimizada assume valores negativos, um mapeamento entre as fungdes de otimizacao e de fitness € necessario. ‘A equacdo de crescimento (3.1) mostra que a sele¢o aumenta a amostragem de esquemas cujo fimess esté acima da média da populago, ¢ este aumento € exponencial (MICHALEWICZ, 1996). A selego, por si s6, nfo introduz nenhum novo esquema (nao representado na geracio inicial em 1=0). Esta € a razio da introdugdo do operador de crossover: possibilitar a troca de informacio estruturada, ainda que aleatéria. Além disso, operador de mutacdo introduz uma variabilidade maior na populagio. O efeito (destrativo) combinado destes operadores nao € significativo se o esquema é curto ¢ de ordem baixa. O resultado final da equacao de crescimento (3.1) pode ser formulado como segue: Teorema 3.1 (Teorema dos Esquemas) Esquemas com comprimento definitério curto, de ordem baixa, e com fimess acima da média, tém um aumento exponencial de sua participagio em geragSes consecutivas de um algoritmo genético. Prova: Veja HOLLAND (1992). ‘Uma conseqiiéncia imediata do Teorema 3.1 que os algoritmos genéticos tendem a explorar 0 espaco por meio de esquemas curtos e de baixa ordem que, subseqiientemente, so usados para troca de informago durante o crossover. 48 Hipétese dos Blocos Construtivos Um algoritmo genético busca desempenho quase-dtimo através da justaposigao de esquemas curtos, de baixa ordem e alto desempenho, chamados de blocos construtivos. Em uma populagio de tamanho tam_pop, individuos de comprimento m processam pelo menos 2” e no maximo 2“””” esquemas. Alguns deles so processados de forma titil: so amostrados a uma taxa crescente exponencial (des vel); € outros so quebrados por meio de crossover e mutagao. HOLLAND (1992) mostrou que, em uma populacdo de tamanho tam_pop, pelo menos tam_pop® sio processados de forma Util. Esta propriedade foi denominada paralelismo implicito, pois € obtida sem nenhuma exigéncia extra de meméria e processamento. Entretanto, BERTONI & DorIGo (1993) mostraram que a estimativa tam_pop’ é valida apenas para © caso particular em que tam_pop & proporcional a 2', onde [=ime e € 6 a probabilidade de um esquema ser rompido por crossover. Note entretanto que, em alguns problemas, alguns blocos construtivos (esquemas curtos, de ordem baixa) podem direcionar erroneamente o algoritmo, levando-o a convergir a pontos sub-6timos. Este fenémeno ¢ conhecido como decepgdo. Assim, a hipdtese dos blocos construtivos nao fornece uma explicag&o definitiva do porqué os algoritmos genéticos funcionam. Ela é apenas uma indicagdo do porqué os algoritmos genéticos funcionam para uma certa classe de problemas Algumas alternativas foram propostas para combater o problema da decep¢ao (GOLDBERG, 1989b; MICHALEWICZ, 1996). A primeira assume que hé algum conhecimento a priori da fungo objetivo para que seja possivel codificé-la de forma apropriada (que forme blocos construtivos “coesos”). A segunda é a utilizagio de um operador de inversdo: selecionam-se 2 pontos em um cromossomo e inverte-se a ordem dos bits entre os pontos selecionados (alterando-se a codificago em conjunto com a operaco). A terceira opgao é utilizar algoritmos genéticos messy, que diferem do algoritmo genético cléssico de varias maneiras: codificagao, operadores, presenga de cromossomos de tamanho distinto ¢ fases evolutivas. 49 3.5 Conclusées Neste capitulo, apresentamos os principais conceitos relacionados & computacio evolutiva, mais especificamente aos algoritmos genéticos. Foram introduzidos conceitos relativos & evolugio natural, computag%o evolutiva, algoritmos genéticos e & teoria dos esquemas. Apesar da area de computacdo evolutiva ter experimentado um crescimento vertiginoso nos dltimos anos, ainda ha muitas questdes em aberto, MICHALEWICZ (1996) aponta diregSes na area de computagdo evolutiva nas quais podemos esperar grande atividade ¢ resultados significativos, algumas das quais apresentamos a seguir: * Fundamentagao te6rica. Apesar de haver alguns resultados teéricos importantes, é quase que um consenso que a atual teoria de algoritmos evolutivos nao € vista como uma base litil para praticantes de computagao evolutiva (EIBEN et al., 1999). Além da complexidade inerente aos processos evolutivos, muitas modificagdes incorporadas ao algoritmo genético classico (como por exemplo o uso de codificacdo em ponto flutuante ao invés de codificagao binéria) impedem a aplicagdo dos conceitos tedricos j4 obtidos para 0 caso cldssico. Esta é uma das tarefas mais desafiadoras apresentada aos pesquisadores de computaco evolutiva. + Sistemas Auto-Adaptativos. Os algoritmos evolutivos classicos exigem definigao por parte do usudrio de diversos pardmetros, como tamanho da populaco ¢ probabilidades de crossover € mutagdo, ¢ estes pardmetros permanecem fixos durante toda a execucio do algoritmo ou sao alterados arbitrariamente em pontos especificos do proceso evolutivo. Estes pardmetros em grande parte determinam se o algoritmo ser capaz de encontrar uma solugdo de qualidade e também a eficiéncia na busca desta solucao, Entretanto, encontrar valores apropriados para estes parametros € uma tarefa computacionalmente muito custosa, pois nfo hé uma metodologia eficiente que ajude na definigdo dos mesmos Assim, muitas abordagens tém sido propostas no sentido de ajustar estes parametros durante a execucdo do algoritmo. Em EIBEN er al. (1999) podemos encontrar diversas técnicas para o controle dos parametros durante a execucao do algoritmo. Esta parece ser uma das reas de pesquisa mais promissoras em computagio evolutiva. 50

You might also like