Vous êtes sur la page 1sur 35

Fundamentos de Algoritmos Evolutivos

Paulo Henrique Ribeiro Gabriel Alexandre Cludio Botazzo Delbem

Sumrio
1 2 Introduo Base Biolgica 2.1 O Processo Evolutivo . . . . . . . . . . . . . . . . . . . 2.1.1 Mutao Gnica . . . . . . . . . . . . . . . . . 2.1.2 Recombinao Gnica . . . . . . . . . . . . . . 2.1.3 Seleo Natural . . . . . . . . . . . . . . . . . . 2.2 Terminologia Bsica . . . . . . . . . . . . . . . . . . . 2.2.1 Cromossomo, Genes e Alelos . . . . . . . . . . 2.2.2 Fitness . . . . . . . . . . . . . . . . . . . . . . 2.2.3 Pais, Operadores de Reproduo e Descendentes 2.2.4 Gerao e Seleo . . . . . . . . . . . . . . . . 1 4 4 5 5 5 5 5 6 6 6 8 8 8 9 9 12 13 13 13 14 17 17 18 19 19 20 21 22 22 23 23 24 24 26

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

Algoritmos Evolutivos 3.1 Algoritmos Cannicos . . . . . . . . . . . . . . . . . . . . . 3.1.1 Programao Evolutiva . . . . . . . . . . . . . . . . . 3.1.2 Estratgias Evolutivas . . . . . . . . . . . . . . . . . 3.1.3 Algoritmos Genticos . . . . . . . . . . . . . . . . . 3.2 Outros Algoritmos Evolutivos . . . . . . . . . . . . . . . . . 3.2.1 Programao Gentica . . . . . . . . . . . . . . . . . 3.2.2 Micro-AG . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 Algoritmos de Estimao de Distribuio . . . . . . . 3.2.4 Algoritmos Evolutivos para Otimizao Multiobjetivo Operadores de Reproduo 4.1 Mutao . . . . . . . . . . . . . . . . . . . 4.2 Recombinao . . . . . . . . . . . . . . . . 4.2.1 Recombinao Discreta . . . . . . 4.2.2 Recombinao Aritmtica . . . . . 4.2.3 Blend Crossover . . . . . . . . . . 4.2.4 Recombinao com Mltiplos Pais 4.3 Operadores de Reproduo para Permutao 4.3.1 Crossover de Ordem . . . . . . . . 4.3.2 Crossover Baseado em Posio . . . 4.3.3 Crossover Baseado em Ordem . . . 4.3.4 Crossover cclico . . . . . . . . . . 4.3.5 Crossover Parcialmente Mapeado . Consideraes Finais

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

Captulo 1 Introduo
A Computao Evolutiva (CE) uma rea de pesquisa que tem se expandido rapidamente. Entre os motivos para isso podem ser enumerados: 1. o desenvolvimento de algoritmos capazes de encontrar solues adequadas para problemas complexos, ainda no resolvidos por outras tcnicas computacionais; 2. simplicidade dos mtodos, chamados de algoritmos evolutivos (AEs), utilizando princpios bsicos de Teoria da Evoluo e Gentica que podem ser modelados por poucas e simples linhas de cdigo; 3. adaptao relativamente fcil para problemas das mais diversas reas. Essa rea de pesquisa originou-se de vrias frentes de estudo, cuja interao produziu os AEs atuais. Dentre esses, sem dvidas os algoritmos genticos (AGs) so os mais conhecidos, principalmente devido sua utilizao em Inteligncia Articial (IA) (Rezende, 2003). Por outro lado, os AGs so uma tcnica evolutiva universal. Este texto busca apresentar os AEs dando a ponderao merecida aos AGs sem, com isso, esconder aspectos dos outros AEs que, em geral, so importantes para soluo de problemas que so difceis para os prprios AGs e outros mtodos de otimizao e de busca. Os primeiros trabalhos envolvendo AEs so datados da dcada de 1930, quando sistemas evolutivos naturais passaram a ser investigados como algoritmos de explorao de mltiplos picos de uma funo objetivo. Porm, apenas com o maior acesso a computadores, a partir da dcada de 1960, que se intensicaram os desenvolvimentos de AEs (De Jong, 2006), com a realizao de diversos estudos tericos e empricos. Nesse contexto, trs abordagens de AEs foram desenvolvidas de forma independente (De Jong, 2006): a programao evolutiva (PE), as estratgias evolutivas (EEs) e os algoritmos genticos (AGs). O princpio bsico de todas essas tcnicas , no entanto, a mesma (Eiben e Smith, 2003): dada uma populao de indivduos (i.e., um conjunto de solues), presses do ambiente desencadeiam um processos de seleo natural (ou seja, um processo que privilegia 1

2 as melhores solues at ento encontradas), o que causa um incremento na adequao das solues. Dada uma funo a ser otimizada (seja maximizada ou minimizada), gera-se aleatoriamente um conjunto de solues, i.e., elementos pertencentes ao domnio da funo, e aplica-se a funo para medir a qualidade das solues candidatas, atribuindo-lhes um valor que mede sua adequao, chamado tness. Com base no tness, algumas das melhores solues so selecionadas para darem origem a uma nova populao pela aplicao de operadores de recombinao e/ou mutao. A recombinao um operador aplicado a duas ou mais solues candidatas (chamadas pais) e resulta em duas ou mais novas solues (chamadas descendentes ou lhos). A mutao aplicada em uma candidata a m de gerar outra. Ao nal desse processo, as novas candidatas (descendentes) competem com as candidatas da gerao anterior, com base no tness, para assumir um lugar na nova populao. Esse processo iterado at que uma candidata apresente uma soluo que seja sucientemente qualicada ou at que um nmero mximo de iteraes, tambm chamadas geraes seja obtido. Vrios componentes de um processo evolutivo so estocsticos: a seleo favorece indivduos mais bem adaptados (ou seja, com melhor tness), mas existe tambm a possibilidade de serem selecionados outros indivduos. A recombinao dos indivduos aleatria, assim como a mutao. Uma representao geral de um AE tpico pode ser vista no pseudocdigo do Algoritmo 1 (Eiben e Smith, 2003). Algoritmo 1: Pseudocdigo de um AE tpico. Entrada: Parmetros tpicos (De Jong, 2006). Sada: Populao nal de solues 1 INICIALIZA populao com solues candidatas aleatrias 2 AVALIA cada candidata 3 repita 4 SELECIONA pais 5 RECOMBINA pares de pais 6 MUTA os descendentes resultantes 7 AVALIA novas candidatas 8 SELECIONA indivduos para a nova gerao 9 at CONDIO DE PARADA satisfeita ; Conforme mencionado, os AEs foram desenvolvidos originalmente como ferramentas de modelagem e simulao computacional. No demorou, no entanto, para que fossem explorados como tcnica de otimizao. Vale destacar tambm que, diferentemente de outras tcnicas de busca e otimizao, as quais em geral constroem uma nica soluo por iterao1 , os AEs trabalham com conjuntos de solues, o que reduz, em muitos casos, o nmero de iteraes necessrias para a obteno das solues (em outras palavras, reduz o tempo de convergncia). Trabalhos mais recentes, datados da dcada de 1990, desenvolveram AEs especcos para as reas de Aprendizado de Mquina (AM) (Rezende, 2003) e construo de modelos probabilsticos. Nos ltimos anos, o desempenho dos AEs tem aumentado signicativamente com o estudo
1

Vrias das tcnicas que iteram um nica soluo so descritas em (Sait e Youssef, 1999).

3 de algoritmos de estimao de distribuio (AEDs) (Larraeaga e Lozano, 2001; Pelikan et al., 1999). Este texto foca os principais AEs, suas representaes e operadores, e est organizado como segue. O Captulo 2 apresenta aspectos bsicos do processo evolutivo que so fundamentas para o desenvolvimento de AEs e a terminologia que ser empregada no restante deste texto. O Captulo 3 descreve os principais tipos de AEs e o Captulo 4 apresenta mais detalhadamente os operadores de reproduo. O Captulo 5 sintetiza os aspectos principais de AEs e consideraes sobre a utilizao deles.

Captulo 2 Base Biolgica


Os AEs podem ser vistos como tcnicas de Computao Bioinspirada (Carvalho et al., 2004; Mange, 1998) ou Computao Natural (Ballard, 1999; Castro, 2006). Essas reas de pesquisa abrangem uma srie de tcnicas computacionais fundamentadas em conceitos biolgicos. As tcnicas evolutivas apresentam conceitos cuja origem est em diversos campos da Biologia, especialmente em idias evolucionistas e na Gentica. Este Captulo foca nesses conceitos (Seo 2.1) e sintetiza a terminologia empregada na denio de AEs (Seo 2.2).

2.1

O Processo Evolutivo

Os AEs so fortemente inspirados em processos evolutivos que ocorrem na natureza. Segundo De Jong (2006), os principais componentes dos sistemas evolutivos so: Populaes de indivduos: uma ou mais populaes concorrem por recursos limitados; Aptido, que reete a habilidade do indivduo para sobreviver e reproduzir-se; A noo de mudanas dinmicas nas populaes devido ao nascimento e morte dos indivduos; Os conceitos de variabilidade e hereditariedade, ou seja, os novos indivduos possuem muitas das caractersticas de seus pais, embora no sejam idnticos. Tais conceitos foram inspirados na chamada Teoria Sinttica da Evoluo, tambm conhecida como neodarwinismo (Ridley, 1996). O neodarwinismo admite que os principais fatores evolutivos so a mutao, a recombinao gnica e a seleo natural (Amabis e Martho, 1985; Ridley, 1996), resumidos nas Subsees seguintes.

2.2. TERMINOLOGIA BSICA

2.1.1

Mutao Gnica

A origem da variabilidade a mutao, processo pelo qual o gene1 sofre alteraes em sua estrutura. Tais alteraes so modicaes na seqncia de bases do DNA. Essa molcula, quando duplicada, produz cpias idnticas de si, ou seja, diferentes da original (sem mutao), transmitindo hereditariamente a mudana. Isso pode acarretar a alterao da seqncia de aminocidos da protena, modicando o metabolismo celular, podendo favorecer o organismo ou mesmo ser letal.

2.1.2

Recombinao Gnica

O processo evolutivo seria relativamente lento se no fosse possvel colocar juntas, em um mesmo indivduo, mutaes ocorridas em indivduos da gerao anterior. O fenmeno que possibilita esse evento a reproduo sexuada. importante considerar que a seleo natural no atua aceitando ou rejeitando mudanas individuais, mas sim escolhendo as melhores combinaes gnicas entre todas variaes presentes na populao.

2.1.3

Seleo Natural

A seleo natural conseqncia de dois fatores: 1. os membros de uma espcie diferem entre si; 2. a espcie produz descendncia em maior nmero o de indivduos que de fato podem sobreviver. Os indivduos mais aptos a sobreviver so aqueles que, graas variabilidade gentica, herdaram a combinao gnica mais adaptada para determinadas condies naturais.

2.2

Terminologia Bsica

A seguir apresentada a terminologia necessria, adaptada de (Sait e Youssef, 1999), para o estudo de AEs. Os principais termos discutidos encontram-se sintetizados na Figura 2.1.

2.2.1

Cromossomo, Genes e Alelos

A estrutura que codica como os organismos so construdos chamada cromossomo. Os cromossomos associam-se de modo a formar um organismo e seu nmero varia de uma espcie para outra (Amabis e Martho, 1985). O conjunto completo de cromossomos de um ser vivo chamado gentipo e as caractersticas do organismo gerado com base no gentipo constituem o
Gene um segmento de DNA que contm uma informao codicada para determinada caracterstica ou processo que a clula tem ou executa (Amabis e Martho, 1985).
1

2.2. TERMINOLOGIA BSICA

fentipo. De forma similar, a representao de solues de um problema podem ser codicadas em uma estrutura de dados chamada cromossomo. Os cromossomos so codicados em um conjunto de smbolos chamados genes. Os diferentes valores de um gene so chamados alelos. A posio do gene em um cromossomo denominada locus (Coello Coello et al., 2002). A representao das solues candidatas (ou seja, dos indivduos) o primeiro estgio da elaborao de um AE e crucial para o desempenho do algoritmo. Essa etapa consiste em denir o gentipo e a forma com que esse mapeado no fentipo. Dependendo da escolha, so necessrios operadores de reproduo especcos (ver Captulo 4). A codicao mais simples a representao binria: o gentipo denido como um arranjo de 0s e 1s. necessrio denir o tamanho do arranjo, bem como o mapeamento gentipo fentipo. Entretanto, em muitas aplicaes do mundo real, a representao binria pode apresentar fraco poder de expresso (Deb, 2001), no sendo eciente na representao das possveis solues. Uma alternativa empregada a representao em ponto utuante ou representao real, segundo a qual as solues so arranjos de nmeros reais. Essa representao usualmente empregada quando os genes so distribudos em um intervalo contnuo, em vez de um conjunto de valores discretos (Eiben e Smith, 2003).

2.2.2 Fitness
O valor do tness de um indivduo (seja um gentipo ou um cromossomo) um nmero positivo que mede o quo adequada a soluo. Em problemas de otimizao, o tness pode ser o custo da soluo. Se o problema for de minimizao, as solues de maior tness so as de menor custo.

2.2.3

Pais, Operadores de Reproduo e Descendentes

Os AEs trabalham sobre um ou mais cromossomos a m de gerar novas solues, chamadas descendentes. Os operadores que trabalham sobre cromossomos, chamados operadores de reproduo, so a recombinao (tambm chamada crossover) e a mutao. Esses operadores fazem analogia aos principais mecanismos de evoluo natural, ou seja, a recombinao e a mutao gnica (ver Seo 2.1). A recombinao aplicada, em geral, a um par de cromossomos. Os indivduos selecionados para o processo de recombinao so chamados pais. A mutao aplicada a um simples cromossomo, modicando-o aleatoriamente. Esse operadores so descritos mais detalhadamente no Captulo 4.

2.2.4

Gerao e Seleo

A gerao uma iterao do AE, na qual os indivduos da populao atual so selecionados e recombinados e/ou mutados, gerando descendentes. Devido criao de novos descendentes, o tamanho da populao cresce; ento um mecanismo de seleo controla esse tamanho.

2.2. TERMINOLOGIA BSICA

A idia bsica da seleo a seguinte: seja uma populao de tamanho M e seja Nd o nmero de descendentes, ento, para a prxima gerao, so selecionados M novos indivduos entre as M + Nd possveis solues, ou entre somente os Nd novos indivduos (Nd pode ser maior que M , ver Captulo 3). Cada AE desenvolve, com base nesse princpio, uma estratgia de seleo.
Locus (Posio) 1 2 3 4 5 6 7 8 9 10. 1 0 1 1 1 1 0 0 1 0 Cromossomo 1 0 1 0 0 0 1 1 1 0 Cromossomo 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 0 1 0 1 0 0 1 . 0 . 0 . 1 1 0 0 Cromossomo Alelo (Valor) = 1 Locus (Posio) 1 2 3 4.3852 0.5837 8.3853 Cromossomo . 6.3964 5.5495 1.0937 . . 1.0937 8.3853 9.3856 6.3964 1.0645 0.5837 Cromossomo Alelo (Valor) = 6.3964

Populao

Alelo (Valor) = 0

(a)

(b)

Figura 2.1: Dois exemplos de estrutura de dados e terminologia de um AE (Coello Coello et al., 2002): (a) cromossomos com 10 genes e alelos binrios; (b) cromossomo com 3 genes e alelos correspondendo a valores reais.

Captulo 3 Algoritmos Evolutivos


Ramos distintos de pesquisa desenvolveram tcnicas computacionais que construram os chamados AEs. A programao evolutiva, as estratgias evolutivas e os algoritmos genticos foram fundamentais para o desenvolvimento dessa rea de pesquisa e foram denominados AEs cannicos. A Seo 3.1 apresenta esses algoritmos. Outros AEs tm sido desenvolvidos buscando o aumento de desempenho com relao a vrios aspectos. Buscando ilustrar a diversidade de AEs relvantes existentes na literatura, esse Captulo tambm apresenta a programao gentica (Seo 3.2.1), o micro-AG (Seo 3.2.2), os algoritmos de estimao de distribuio (Seo 3.2.3), alm de uma introduo aos AEs para otimizao multiobjetivo (Seo 3.2.4).

3.1

Algoritmos Cannicos

As principais caractersticas dos AEs cannicos so importantes para o entendimento de propostas de soluo baseadas em conceitos evolutivos, bem como para o desenvolvimento de novos AEs. As subsees 3.1.1, 3.1.1 e 3.1.3 descrevem suscintamente os AEs cannicos.

3.1.1

Programao Evolutiva

A programao evolutiva (PE) foi proposta por Fogel (1962) com o objetivo de utilizar os conceitos de evoluo no desenvolvimento Inteligncia Articial (IA). Em PE, cada indivduo da populao representado por uma mquina de estados nitos (MEF), que processa uma seqncia de smbolos. Durante a avaliao, os indivduos so analisados por uma funo de payoff de acordo com a sada da mquina e a sada esperada para soluo do problema. A reproduo feita apenas por operadores de mutao, sendo que todos os indivduos da populao atual geram novos descendentes. Esse processo caracteriza a chamada reproduo assexuada. Na seleo de indivduos para a prxima gerao, os descendentes competem com os pais e somente os indivduos com maior tness (no caso, os de maior payoff entre os + indivduos) sobrevivem.

3.1. ALGORITMOS CANNICOS

A PE garante que todos os indivduos produziro novos descendentes e, somente, os melhores indivduos entre os atuais e os descendentes sobrevivem. O domnio total dos melhores indivduos chamado elitismo total (Kuri-Morales e Gutirrez-Garca, 2001; Kuri-Morales, 2004). O elitismo mais utilizado garante a sobrevivncia apenas dos k-melhores indivduos, k < N , onde N o tamanho da populao. O elitismo total, no entanto, pode diminuir signicativamente a diversidade de indivduos, podendo estagnar em timos locais e/ou aumentar o tempo de convergncia do algoritmo (De Jong, 2006).

3.1.2

Estratgias Evolutivas

As estratgias evolutivas (EEs) foram desenvolvidas com o objetivo de solucionar problemas de otimizao de parmetros. Foram propostas originalmente por Rechenberg (1965) e Schwefel (1975), na dcada de 1960, que desenvolveram a chamada (1 + 1)-EE em que um pai gera um nico descendente (reproduo assexuada) e ambos competem pela sobrevivncia. Nas EEs, cada gene no cromossomo representa uma dimenso do problema, sendo que o alelo representado em ponto utuante. Os cromossomos so compostos por dois arrays, um com valores para cada dimenso e outro com o desvio padro desses valores. A gerao de um novo indivduo feita por meio da aplicao de um operador de mutao, com distribuio de probabilidade Gaussiana, com mdia zero e com desvio padro do gene correspondente no pai. As EEs tambm utilizam elitismo completo. O modelo original de EE possui convergncia lenta (De Jong, 2006). Por isso, foram desenvolvidos outros modelos denominados respectivamente (, )-EE e ( + )-EE. No primeiro, pais morrem e sobrevivem descendente, sem competio entre os indivduos j existentes com os novos indivduos. No segundo modelo, sobrevivem apenas indivduos selecionados entre os indivduos atuais e os novos indivduos gerados.

3.1.3

Algoritmos Genticos

Os algoritmos genticos (AGs) foram propostos por Holland e seus alunos na dcada de 1970. Holland estudou a evoluo natural considerando esta um processo robusto, simples e poderoso, que poderia ser adaptado para obteno de solues computacionais ecientes para problemas de otimizao. O conceito de robustez relaciona-se ao fato de os AGs, independentemente das escolha dos parmetros iniciais, em geral, produzirem solues de qualidade (Goldberg, 1989, 2002). O principal diferencial dos AGs a criao de descendente pelo operador de recombinao (De Jong, 2006). Alm disso, a utilizao de operadores de mutao e recombinao equilibra dois objetivos aparentemente conitantes: o aproveitamento das melhores solues e a explorao do espao de busca. O processo de busca , portanto, multidimensional, preservando solues candidadas e provocando a troca de informao entre as solues exploradas (Michalewicz, 1996; Von Zuben, 2000). A seguir, mostram-se os principais passos de um AG, baseando-se em Michalewicz (1996):

3.1. ALGORITMOS CANNICOS

10

Durante a iterao gen, um AG mantm uma populao de solues potenciais P (gen) = {xgen , . . . , xgen }; 1 n Cada indivduo xgen avaliado produzindo uma medida de aptido, ou tness; i Novos indivduos so gerados a partir de indivduos da populao atual, os quais so selecionados para reproduo por um processo que tende a escolher indivduos de maior tnes; Alguns indivduos sofrem alteraes, por meio de recombinao e mutao, formando novas solues potenciais; Dentre as solues antigas e novas ( + ), so selecionados indivduos (sobreviventes) para a prxima gerao (gen + 1); Este processo repetido at que uma condio de parada (cond?) seja satisfeita. Essa condio pode ser um nvel esperado de adequao das solues ou um nmero mximo de iteraes. A Figura 3.1 apresenta um diagrama de uxo do AG descrito nesta Seo.

Incio

Inicia Populao

gen = 1

cond? Sim

No

Seleo para Reproduo

gen = gen + 1

Fim

Recombinao

Reproduo

Seleo de Sobreviventes

Mutao

Figura 3.1: Diagrama de uxo de um AG tpico.

3.1. ALGORITMOS CANNICOS

11

Nos AGs cannicos (Goldberg, 1989), as solues candidatas so codicadas em arrays binrios de tamanho xo. A motivao para o uso de codicao binria oriunda da teoria dos esquemas (Holland, 1992) utilizada com sucesso para explicar por que os algoritmos genticos funcionam. Holland (1992) argumenta que seria benco para o desempenho do algoritmo maximizar o paralelismo implcito inerente ao AG e apresenta uma anlise qualitativa baseada no Teorema dos Esquemas d que um alfabeto binrio poderia maximizar esse paralelismo. Entretanto, em diversas aplicaes prticas a utilizao de codicao binria leva a um desempenho insatisfatrio. Em problemas de otimizao numrica com parmetros reais, algoritmos genticos com representao inteira ou em ponto utuante freqentemente apresentam desempenho superior codicao binria (Deb, 2001; Michalewicz, 1996). Segundo Michalewicz (1996) e Deb (2001), a representao binria apresenta desempenho pobre se aplicada a problemas numricos com alta dimensionalidade ou se alta preciso numrica requerida. Alm disso, descrevem simulaes computacionais comparando o desempenho de AGs com codicao binria e com ponto utuante. Os resultados apresentados mostram uma clara superioridade da codicao em ponto utuante para os problemas estudados. Em contrapartida, Fogel (1994) argumenta que o espao de busca por si s (sem levar em conta a escolha da representao) no determina a ecincia do AG. Espaos de busca de dimenso elevada podem s vezes ser explorados ecientemente, enquanto que espaos de busca de dimenso reduzida podem apresentar diculdades signicativas. Concorda, entretanto, que a maximizao do paralelismo implcito nem sempre produz um desempenho timo (Von Zuben, 2000). O AG cannico utiliza um esquema de seleo de indivduos para a prxima gerao chamado mtodo da roleta (Goldberg, 1989). Esse mtodo aplicado para selecionar indivduos a partir de pais, mantidos em uma lista de reprodutores. Um implementao comum deste algoritmos calcula uma lista de valores [a1 , a2 , . . . , a ], de modo que ai = i P(i), onde P(i) 1 a probabilidade proporcional ao tness de um indivduo i passar para a prxima gerao. O Algoritmo 2 mostra o pseudocdigo do mtodo da roleta. O desempenho de AGs pode, em muitos casos, ainda ser melhorado forando a escolha do melhor indivduo encontrado em todas as geraes do algoritmo. Outra opo simplesmente manter sempre o melhor indivduo da gerao atual na gerao seguinte, estratgia essa conhecida como seleo elitista (Fogel, 1994; Michalewicz, 1996). Outro exemplo de mecanismo de seleo a seleo baseada em rank (Michalewicz, 1996). Esta estratgia utiliza as posies dos indivduos quando ordenados de acordo com o tness para determinar a probabilidade de seleo. Podem ser usados mapeamentos lineares ou no lineares para determinar a probabilidade de seleo. Uma forma de implementao desse mecanismo simplesmente passar os n melhores indivduos para a prxima gerao (Von Zuben, 2000). Existe ainda a seleo por torneio, pela qual um subconjunto da populao com k indivduos sorteado e os melhores indivduos desse grupo so selecionados para decidir qual ir reproduzir. Em geral, utiliza-se torneio de 2 (k = 2), isto , dois indivduos (obtidos aleato-

3.2. OUTROS ALGORITMOS EVOLUTIVOS Algoritmo 2: Pseudocdigo do mtodo da roleta. Entrada: , pais. Sada: lista_reprodutores. 1 cont 1; i 2 ai 1 P(i); 3 enquanto cont faa 4 Obter um valor aleatrio r de probabilidade uniforme em [0, 1]; 5 i 1; 6 enquanto ai < r faa 7 i i + 1; 8 ai ai + P(i); 9 m 10 lista_reprodutores[cont] pais[i]; 11 cont cont + 1; 12 m

12

riamente da populao) competem entre si e o ganhador (o de melhor tness) torna-se um dos pais. O pseudocdigo do Algoritmo 3 ilustra esse procedimento para selecionar pais. Algoritmo 3: Pseudocdigo do algoritmo de seleo por torneio. Entrada: Populao, . Sada: lista_reprodutores. 1 cont 1; 2 enquanto cont faa 3 Obter k indivduos aleatoriamente, com ou sem reposio; 4 Selecionar, com relao ao tness o melhor indivduo dentre k; 5 Denotar esse indivduo por i; 6 lista_reprodutores[cont] i; 7 cont cont + 1; 8 m Uma importante propriedade da seleo por torneio que esta no depende de um conhecimento global da populao. Alm disso, essa seleo no leva em considerao o rank que o indivduo ocupa na populao, permitindo uma seleo com menos tendncias (Eiben e Smith, 2003).

3.2

Outros Algoritmos Evolutivos

Mais recentemente, diversos aspectos complexos em problemas de otimizao e aprendizado de mquina tm sido pesquisados em CE. Esses estudos tm buscado o desenvolvimento de novos AEs mais ecientes. As Subsees seguintes descrevem alguns AEs que apresentam desempenho relativamente melhor em seus diferentes propsitos.

3.2. OUTROS ALGORITMOS EVOLUTIVOS

13

3.2.1

Programao Gentica

A programao gentica (PG) pode ser vista como uma extenso dos AGs. Proposta por Koza (1989) a PG difere dos AEs cannicos devido a sua representao, seus operadores de reproduo e seus mtodos de avaliao da funo de avaliao (Koza, 1992, 1994; Koza et al., 1999, 2003). Introduzida para solucionar problemas de aprendizado de mquina (Rezende, 2003), a PG busca a construo automtica de programas de computadores. Os indivduos so codicados na forma de rvores, onde cada n folha contm constantes, variveis ou parmetros para a execuo de procedimentos e funes. Os ns internos contm operaes primrias. Os operadores de reproduo utilizados so operadores de recombinao e mutao especcos para representaes por rvores. Na recombinao, partes das rvores so trocadas, o ponto de corte na rvore escolhido de forma a evitar a criao de operaes invlidas. Na mutao o valor de um n ou subrvore alterado. Se o n escolhido para a mutao for um n interno, este ser alterado para ter uma nova operao ou funo. No caso de mutao de subrvore, a subrvore selecionada substituda por uma nova subrvore gerada aleatoriamente. O processo de avaliao ocorre por meio da execuo do programa representado pela rvore do indivduo. Se este resolver o problema proposto ou se aproximar da resposta correta ter um valor de aptido elevado; caso contrrio, sua aptido ser baixa. Geralmente, os algoritmos de PG utilizam somente o operador de recombinao no processo de busca pelas melhores solues.

3.2.2

Micro-AG

Os micro-AGs so variaes de AGs desenvolvidos para de evoluir ecientemente solues utilizando populaes com poucos indivduos. O primeiro trabalho envolvendo micro-AGs foi proposto por Krishnakumar (1989). Nesse modelo uma pequena populao gerada e evoluda at que todos os indivduos tenham gentipos idnticos ou, pelo menos, muito similares. O melhor indivduos , ento, transferido para uma nova populao; os demais novos indivduos so gerados aleatoriamente. Em geral utiliza-se alta taxa de recombinao (prxima de 1) e baixa de mutao (em muitos casos 0). Micro-AGs apresentam grande importncia em diversas aplicaes, em especial projetos onde a disponibilidade de recursos computacionais limitada, como o caso da rea de Robtica Evolutiva (Carvalho et al., 2004), onde cada rob um indivduo; como invivel construir um grande nmeros de robs, a populao deve ser pequena. Aplicaes de tempo real tambm podem ser beneciadas com a utilizao de micro-AGs, uma vez que populaes pequenas requerem menos tempo computacional para serem geradas (Delbem et al., 2005).

3.2.3

Algoritmos de Estimao de Distribuio

Os algoritmos de estimao de distribuio (AEDs) (Larraeaga e Lozano, 2001; Paul e Iba, 2003) foram intensamente pesquisados nos ltimos anos. OS AEDs foram introduzidos

3.2. OUTROS ALGORITMOS EVOLUTIVOS

14

por Mhlenbein e Paa (1996), incorporando tcnicas de aprendizagem automatizada de correlaes entre as variveis codicadas na soluo do problema. Os indivduos, ou parte deles, so considerados amostras. Ento, um modelo probabilstico de distribuio ajustado amostra. Em seguida, pode-se determinar os melhores novos indivduos de acordo com o modelo ajustado. Este processo torna desnecessria a especicao de determinados parmetros dos AEs cannicos, como a taxa de mutao e de recombinao. A desvantagem dessas tcnicas que, em geral, os modelos probabilsticos utilizados para guiar a busca so complexos e de alto custo computacional. Novas abordagens tm sido propostas para solucionar esse problema, com destaque os algoritmos UMDA (do ingls univariante marginal distribution algorithm) (Mhlenbein, 1998) e BOA (do ingls Bayesian optimization algorithm) (Pelikan et al., 1999). Mais recentemente, Melo et al. (2007) desenvolveu um AED utilizando modelos simples que apresentam desempenho adequado para uma diversidade de problemas. Um AED tpico est representado no uxograma do Figura 3.2. Paul e Iba (2003) argumentam que razovel utilizar AEDs no lugar de outros AEs, como os AGs. Porm, a estimao da distribuio de probabilidade associada ao conjunto de indivduos selecionados um gargalo dessa tcnica, no existindo mtodos simples para realizar clculos em modelos complexos.

3.2.4

Algoritmos Evolutivos para Otimizao Multiobjetivo

Problemas de otimizao multiobjetivo tm despertado grande interesse na rea de Otimizao. Nesses problemas, a qualidade da soluo denida com base na sua adequao em relao a diversos objetivos possivelmente conitantes (Deb, 2001; Eiben e Smith, 2003). Na prtica, os mtodos de soluo buscam reduzir esses problemas a outros com apenas um objetivo e depois buscam uma soluo. Uma classe de mtodos bastante utilizada nesse contexto a dos mtodos baseados em pesos ou simplesmente mtodo de pesos, onde so atribudos pesos s diferentes funes objetivo, podendo ser realizado um processo de otimizao da funo de pesos (Arenales et al., 2007). Esses mtodos, no entanto, so dependentes da escolha adequada dos pesos. Isso, em muitos casos, implica um conhecimento prvio dos intervalos correspondentes aos pesos mais adequados. Por essa razo, mtodos que tentam encontrar solues que apresentam um compromisso com os vrios objetivos sem a utilizao de pesos passaram a ser explorados (Eiben e Smith, 2003). Nesse caso, no existe somente uma soluo para o problema, mas sim um conjunto de solues timas, denominado conjunto de Pareto timo ou fronteira de Pareto (Deb, 2001). O primeiro AE para otimizao multiobjetivos (AEOM) desenvolvido foi proposto por Schaffer (1985) e denominado VEGA (do ingls, "Vector Evaluated Genetic Algorithm"). Este algoritmo um AG modicado que avalia cada objetivo separadamente. Um dos problemas do algoritmo proposto por Schaffer que as solues da fronteira obtidas, em geral, possuem baixa diversidade.

3.2. OUTROS ALGORITMOS EVOLUTIVOS

15

Gerar populao inicial de tamanho M Ajustar o modelo de probabilidade aos indivduos selecionados Selecionar N (N M) indivduos Gerar os melhores descendentes de acordo com o modelo ajustado No

cond?

Selecionar os indivduos da nova populao

Sim Retornar soluo

Figura 3.2: Diagrama de uxo simplicado de um AED.

Goldberg (1989) criou em procedimento que ordena as solues baseado no conceito de dominncia que fornece um valor de aptido para uma soluo proporcional ao nmero de solues que esta domina, i.e., no perde em nenhum objetivo e melhor em pelo menos um. Com isso as solues com maior nmero de dominados possuem maior aptido e, assim, tero uma maior quantidade de cpias na lista de solues. Com o objetivo de manter a diversidade das solues, Goldberg sugeriu a utilizao de um mtodo de compartilhamento que calcula o nicho de cada soluo dentro da fronteira que a soluo pertence. Com base nas idias iniciais de Goldberg, foram propostos vrios modelos de AEOMs. A principal diferena entre os AEs tradicionais e os AEOMs o operador de seleo, dado que a comparao entre duas solues deve realizar-se de acordo com o conceito de dominncia. Em algumas proposta, como MOGA (Fonseca e Fleming, 1993) e SPEA (Zitzler e Thiele, 1998), o valor de aptido proporcional dominncia da soluo. Os outros mtodos, como NPGA (Horn et al., 1994), utilizam a dominncia e no calculam um valor de aptido. Os modelos de AEMO so usualmente classicados em dois grupos (Deb, 2001; Eiben e Smith, 2003):

3.2. OUTROS ALGORITMOS EVOLUTIVOS

16

1. No elitistas: compreendem os modelos que como o prprio nome indica, no utilizam nenhuma forma de elitismo nas suas interaes; 2. Elitistas: compreendem os modelos que empregam alguma forma de elitismo. Por exemplo, como o SPEA e o PESA (Corne et al., 2000), utilizam uma populao externa para armazenar as solues no dominadas encontradas at o momento. O NSGA-II (Deb et al., 2000) combina a populao atual com a populao gerada e preserva as melhores solues de ambas. Estudo realizado por Zitzler et al. (2000) concluiu que o elitismo melhora as solues encontradas por um modelo de AEMO. A Tabela 3.2.4 apresenta os principais modelos de AEMO e seus autores.

Tabela 3.1: Diferentes modelos de AEMO. Sigla VEGA WBGA MOGA NSGA NPGA PPES REMOEA NSGA-II SPEA, SPEA-2 TGA PAES MONGA-I, MONGA-II PESA-I, PESA-II Nome do Modelo Vector Evaluated Genetic Algorithm Weight Based Genetic Algorithm Multiple Objective Genetic Algorithm Non-Dominated Sorting Genetic Algorithm Niched-Pareto Genetic Algorithm Predator-Prey Evolution Strategy Rudophs Elitist Multi-Objective Evolutionay Algorithm Elitist Non-Dominated Sorting Genetic Algorithm Strenght Pareto Evolutionary Algorithm 1 e 2 Thermodynamical Genetic Algorithm Pareto-Archived Evolutionary Strategy Multi-Objective Messy Genetic Algorithm Pareto Envelope-Base Selection Algorithm Autores (Schaffer, 1985) (Hajela e Lin, 1992) (Fonseca e Fleming, 1993) (Srinivas e Deb, 1994) (Horn et al., 1994) (Laumanns et al., 1998) (Rudolph, 2001) (Deb et al., 2000) (Zitzler e Thiele, 1998), (Zitzler et al., 2001) (Kita et al., 1996) (Knowles e Corne, 1999) (Veldhuizen, 1999) (Corne et al., 2000), (Corne et al., 2001)

Captulo 4 Operadores de Reproduo


A reproduo, seguindo uma nomenclatura utilizada pela Biologia, pode ocorrer de duas formas: 1. Assexuada, ou seja, um indivduo sozinho gera um descendente, utilizando mutao; 2. Sexuada, isto , h a participao de dois indivduos na gerao de um ou mais descendentes por meio do processo de recombinao. As prximas Sees descrevem os operadores operadores correspondentes aos processos de mutao e recombinao, bem como suas principais variaes.

4.1

Mutao

O operador de mutao modica aleatoriamente um ou mais genes de um cromossomo. Com esse operador, um indivduo gera uma cpia de si mesmo, a qual pode sofrer alteraes. A probabilidade de ocorrncia de mutao em um gene denominada taxa de mutao. Usualmente, so atribudos valores pequenos para a taxa de mutao, uma vez que esse operador pode gerar um indivduo potencialmente pior que o original. Considerando a codicao binria (ver Seo 2.2.1), o operador de mutao padro simplesmente troca o valor de um gene em um cromossomo (Goldberg, 1989). Assim, se o alelo de um gene selecionado 1, o seu valor passar a ser 0 aps a aplicao da mutao (Figura 4.1)
Ponto de Mutao Pai: 1 1 0 1 0 0 0 0 1 1

Descendente:

Figura 4.1: Representao grca do operador de mutao.

17

4.2. RECOMBINAO

18

No caso de problemas com codicao em ponto utuante, os operadores de mutao mais populares so a mutao uniforme e a mutao Gaussiana (Bck et al., 2000; Deb, 2001). O operador para mutao uniforme seleciona aleatoriamente um componente k {1, 2, . . . , n} do cromossomo x = [x1 , . . . , xk , . . . , xn ] e gera um indivduo x = [x1 , . . . , xk , . . . , xn ], onde xk um nmero aleatrio (com distribuio de probabilidade uniforme) amostrado no intervalo [LI , LS ], sendo LI e LS , respectivamente, os limites inferior e superior para o valor do alelo xk . No caso da mutao Gaussiana, todos os componentes de um cromossomo x so modicados pela seguinte expresso: x = x + N (0, ), onde N (0, ) um vetor de variveis aleatrias Gaussianas independentes, com mdia zero e desvio padro .

4.2

Recombinao

O operador de recombinao o mecanismo de obteno de novos indivduos pela troca ou combinao dos alelos de dois ou mais indivduos. o principal operador de reproduo dos AGs (Goldberg, 1989). Fragmentos das caractersticas de um indivduo so trocadas por um fragmento equivalente oriundo de outro indivduo. O resultado desta operao um indivduo que combina caractersticas potencialmente melhores dos pais. Um tipo bastante comum de recombinao a de 1-ponto. Nessa operao, seleciona-se aleatoriamente um ponto de corte nos cromossomos, dividindo este em uma partio direita e outra esquerda do corte. Cada descendente composto pela juno da partio esquerda (direira) de um pai com a partio direita (esquerda) do outro pai (Figura 4.2). Outra recombinao, de n-pontos, divide os cromossomos em n parties, as quais so recombinadas. A Figura 4.3 ilustra um exemplo com 2 pontos de corte. Neste caso, o Filho 1 (Filho 2) recebe a partio central do Pai 2 (Pai 1) e as parties esquerda e direita dos corte do Pai 1 (Pai 2).
Esquerda Pai 1: 0 0 0 0 1 0 Direita 0 0 0 0 Pai 1: Esquerda 0 0 0 0 Centro 1 0 0 0 Direita 0 0

Pai 2:

Pai 2:

Filho 1:

Filho 1:

Filho 2:

Filho 2:

Figura 4.2: Recombinao de 1-ponto.

Figura 4.3: Recombinao de 2-pontos.

4.2. RECOMBINAO

19

Outro tipo de recombinao muito comum a recombinao uniforme, que considera cada gene independentemente, escolhendo de qual pai o gene do lho ser herdado. Em geral, criase uma lista de variveis aleatrias de distribuio uniforme em [0, 1]. Para cada posio, se o valor da varivel aleatria for inferior a um dado P (usualmente 0, 5), o gene ser oriundo do Pais 1; caso contrrio, vir do Pai 2. O segundo lho gerado pelo mapeamento inverso (ver Figura 4.4).

Pai 1:

Pai 2:

Filho 1:

Filho 2:

Figura 4.4: Recombinao uniforme. Nesse exemplo, adaptado de Eiben e Smith (2003), foram utilizadas as variveis aleatrias [0.31, 0.74, 0.10, 0.42, 0.89, 0.78, 0.21, 0.51, 0.36, 0.21] uniformemente distribudas em [0, 1).

Em representaes de ponto utuante (ver Seo 2.2.1), vericou-se que h duas categorias de operadores de recombinao: a recombinao discreta e a recombinao aritmtica, as quais so explicadas nas Subsees 4.2.1 e 4.2.2.

4.2.1

Recombinao Discreta

Essa categoria de recombinao procura fazer analogia com o processo de recombinao em representao binria, de modo que cada cromossomo um conjunto de nmeros reais. A desvantagem da recombinao discreta est no fato de no inserir novos valores no cromossomo, uma vez que gera apenas combinaes de vetores. A tarefa de inserir novos genes atribuda apenas mutao (Eiben e Smith, 2003).

4.2.2

Recombinao Aritmtica

Proposta por Michalewicz e Janikow (1991), a recombinao aritmtica (tambm chamada recombinao intermediria) cria novos alelos nos descendentes com valores intermedirios aos encontrados nos pais. Dene uma combinao linear entre dois cromossomos x e y, de modo a gerar um descendente z, da seguinte forma: z = x + (1 )y, (4.1)

4.2. RECOMBINAO

20

onde um nmero aleatrio pertencente ao intervalo [0, 1]. Geralmente, no entanto, utilizado um valor xo para (como, por exemplo, = 0, 5, caracterizando a chamada recombinao aritmtica uniforme). Esse operador particularmente apropriado para problemas de otimizao numrica com restries, onde a regio factvel convexa1 . A combinao linear entre x e y pertencentes regio factvel resulta em elementos tambm pertencentes regio factvel. Diversos operadores de recombinao foram propostos seguindo o princpio descrito acima. Na recombinao simples, um ponto de corte k denido; o Filho 1 construdo com os primeiros k genes do Pai 1 e com os demais n k genes restantes obtidos pela mdia aritmtica dos n k genes dos Pai 1 e Pai 2 (Figura 4.5). Na recombinao individual, apenas o alelo k, escolhido aleatoriamente, recombinado pela mdia aritmtica dos alelos k dos Pais 1 e 2 (Figura 4.6).
Pai 1: 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 Pai 1: 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9

Pai 2: 0,3 0,2 0,3 0,2 0,3 0,2 0,3 0,2 0,3

Pai 2: 0,3 0,2 0,3 0,2 0,3 0,2 0,3 0,2 0,3

Filho 1: 0,1 0,2 0,3 0,4 0,5 0,6 0,5 0,5 0,6

Filho 1: 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,5 0,9

Filho 2: 0,3 0,2 0,3 0,2 0,3 0,2 0,5 0,5 0,6

Filho 2: 0,3 0,2 0,3 0,2 0,3 0,2 0,3 0,5 0,3

Figura 4.5: Recombinao simples, com = 0, 5.

Figura 4.6: Recombinao individual, com = 0, 5.

A recombinao total, uma das mais utilizadas, realiza uma ponderao de todos os alelos dos pais para cada gene: z 1 = x + (1 )y z 2 = y + (1 )x. (4.2) (4.3)

A Figura 4.7 ilustra esse processo para = 0, 5. Este valor sempre produz descendentes iguais.

4.2.3

Blend Crossover

Uma abordagem alternativa de recombinao para valores reais a recombinao da mistura ou blend crossover (BLX-), desenvolvido por Eshelman e Schaffer (1993) com base em um estudo organizado por Goldberg (1991). Para dois cromossomos pais x e y, assumindo x y, o BLX- seleciona aleatoriamente uma soluo pertencente ao intervalo [xi (yi xi ), yi (xi yi )], onde um nmero real entre 0 e 1. Assim, para = 0.0, por exemplo,
1

A descrio e anlise da convexidade de uma regio factvel pode ser encontrada em (Bazaraa et al., 2006).

4.2. RECOMBINAO
Pai 1: 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9

21

Pai 2: 0,3 0,2 0,3 0,2 0,3 0,2 0,3 0,2 0,3

Filho 1: 0,2 0,2 0,3 0,3 0,4 0,4 0,5 0,5 0,6

Filho 2: 0,2 0,2 0,3 0,3 0,4 0,4 0,5 0,5 0,6

Figura 4.7: Exemplo de recombinao total para = 0.5.

esse operador cria uma soluo no intervalo [xi , yi ]. Esse procedimento repetido para cada locus gerando uma nova soluo. importante observar que a localizao da soluo gerada pelo BLX- depende da diferena entre as solues pais. Por exemplo, se a diferena entre os pais for pequena, a diferena entre os lhos tambm ser. Essa propriedade permite armar que, se a diversidade na populao for grande, esperada uma grande diversidade na populao da gerao seguinte. Isso garante uma explorao de todo espao de busca no incio do processo evolutivo, focando a busca em uma determinada regio medida que as solues convergem (Deb, 2001).

4.2.4

Recombinao com Mltiplos Pais

Alm dos operadores de reproduo descritos neste Captulo, assexuada e sexuada, possvel explorar um esquema de reproduo inexistente em sistemas biolgico: a recombinao com mltiplos pais. Essa estratgia foi proposta logo no incio dos estudos computacionais com AEs, na dcada de 1960 (Eiben et al., 1995). Tecnicamente, este tipo de recombinao amplica os efeitos da recombinao. Esse operadores podem ser categorizados de acordo com o mecanismo de combinao empregado (Eiben et al., 1995; Eiben e Smith, 2003): 1. Recombinao baseada na seqncia de alelos (chamada eleio p-sexual), generalizando a recombinao uniforme; 2. Recombinao baseado em segmentao e recombinao dos pais (chamada recombinao diagonal), generalizando a recombinao de n-pontos; 3. Recombinao baseado em operaes numricas sobre alelos reais (chamada recombinao massiva), generalizando os operadores de recombinao aritmtica. No h estudos tericos conclusivos sobre as vantagens da utilizao de vrios pais no processo de recombinao. No entanto, resultados experimentas demonstram vantagem dessa tcnica em uma grande variedade de problemas (Eiben e Schippers, 1996; Eiben e Smith, 2003).

4.3. OPERADORES DE REPRODUO PARA PERMUTAO

22

4.3

Operadores de Reproduo para Permutao

Uma classe importante de problemas do mundo real consiste em decidir a ordem na qual uma seqncia de eventos deve ocorrer (Eiben e Smith, 2003). Um forma bastante natural de representar tais problemas utilizando permutaes. Uma conseqncia imediata desse tipo de problema a necessidade de buscar novos operadores, de modo a trabalhar com solues factveis. Em permutaes, o operador de mutao deve garantir que o novo indivduo obtido tambm represente uma permutao vlida. Uma primeira classe de operadores de mutao para permutaes escolhe 2, 3 ou k pontos de corte no cromossomo e tenta trocar os segmentos entre esses pontos. No entanto, os operadores dessa classe so custoso (Bck et al., 2000). Para problemas onde a permutao representa uma lista de prioridades, foram propostos operadores que fazem a troca de duas ou mais posies escolhidas de forma aleatria. No caso da recombinao, tambm necessrio criar uma permutao vlida. Com esse objetivo, foram desenvolvidos os operadores apresentados a seguir, nos quais so consideradas as seguintes permutaes como cromossomos pais: Pai 1 = C E D B F A ; Pai 2 = E B A C D F .

4.3.1

Crossover de Ordem

Os novos indivduos do crossover de ordem, conhecido como OX, so obtidos da seguinte forma: selecionam-se dois pontos de corte que denem uma subseqncia entre esses pontos. Essa subseqncia copiada do Pai 1 (Pai 2) para o Filho 1 (Filho 2) na mesma posio em que os genes esto no pai. Para preencher as posies restantes do lho, copia-se do Pai 2 (Pai 1) o primeiro gene posicionado a partir do segundo ponto de corte e que ainda no est presente no lho para a primeira posio no preenchida no lho depois do segundo ponto de corte. Esse processo de cpia continua com o prximo gene de Pai 2 (Pai 1) utilizando este pai como uma lista circular at completar os genes do Filho 1 (Filho 2). No exemplo, sejam os pontos de corte entre as posies 3 e 4, e 7 e 8. Primeiramente os lhos so formados somente pelas subseqncias entre os pontos de corte, ou seja: Filho 1 = X X D B X X Filho 2 = X X A C X X No passo seguinte, as demais posies dos lhos so denidas, a partir do segundo ponto de corte a partir do pai no utilizado para compor a subseqncia. Os seguintes lhos so obtidos: Filho 1 = A C D B F E Filho 2 = D B A C F E

4.3. OPERADORES DE REPRODUO PARA PERMUTAO

23

4.3.2

Crossover Baseado em Posio

Para obter novos indivduos tambm pode ser utilizado o crossover baseado em posio, chamado PBX, o qual comea pela seleo de um conjunto de posies aleatrias de um dos pais. Posteriormente, os genes das posies selecionadas do pai so copiados no lho exatamente na mesma posio em que esto no pai. Em seguida, os genes copiados so removidos do segundo pai, obtendo do segundo pai os genes que faltam no lho. Esses genes so copiados na ordem em que aparecem da esquerda para a direita nas posies vazias do lho. Para obter o outro lho, basta trocar a ordem dos pais (Michalewicz e Fogel, 2004). Como exemplo, considere os pais denidos anteriormente e as posies 2, 4 e 5 escolhidas de forma aleatria e as posies comeando em um. O primeiro lho obtido inicialmente pela cpia das posies selecionadas do primeiro pai: Filho 1 = X E X B F X A seguir as posies vazias so preenchidas pelos genes do segundo pai ignorando os genes j inseridos no lho e assim obtm-se o seguinte indivduo: Filho 1 = A E C B F D

4.3.3

Crossover Baseado em Ordem

O operador de crossover baseado em ordem (OBX) similar ao PBX. O processo inicia como em PBX, selecionando um conjunto de posies de forma aleatria. Os genes correspondentes s posies selecionadas do segundo pai so localizados no primeiro pai. Na etapa seguinte, esses genes so reordenados para aparecerem na mesma ordem presente no segundo pai, no entanto, mantendo as posies do primeiro pai. A seguir, os genes reordenados so copiados para o lho nas mesmas posies do primeiro pai. As demais posies so copiadas diretamente do primeiro pai. Novamente, para obter outro lho, o processo igual somente trocando o primeiro com o segundo pai (Bck et al., 2000). Considere novamente, para exemplo, os pais denidos anteriormente e as posies 2, 4 e 5, que em Pai 1 correspondem aos genes 2, 3 e 4, respectivamente, os quais esto em Pai 1, respectivamente nas posies 4, 1 e 3. Reordenando para que os genes estejam na mesma ordem em que se apresentam em Pai 2 e respeitando as posies em Pai 1 temos a seguinte congurao inicial para o primeiro lho Filho 1 = B X C D X X Finalmente, as demais posies de Filho 1 so preenchidas com os genes de Pai 1, como segue: Filho 1 = B E C D F A

4.3. OPERADORES DE REPRODUO PARA PERMUTAO

24

4.3.4

Crossover cclico

A permutao tambm pode ser realizada por um crossover circular, chamado CX. Nesse, dados dois pais, a primeira posio no lho recebe o primeiro gene do primeiro pai. O prximo gene do lho obtido do segundo pai. Este gene copiado para o lho na posio em que este mesmo gene aparece no primeiro pai. O algoritmo segue copiando genes do segundo pai na posio correspondente no primeiro pai at que se forme um ciclo, ou seja, at que na posio correspondente no segundo pai encontra-se um gene j inserido no lho. Neste caso, se restarem posies no preenchidas no lho, essas so preenchidas da esquerda para a direita no array do lho com os genes do segundo pai na ordem relativa que aparecem neste pai. Trocando-se o primeiro pai pelo segundo possvel obter outro descendente (Michalewicz e Fogel, 2004). Por exemplo, comeando com a primeira posio de Pai 1, denido anteriormente, tem-se o gene 3 que copiado para a primeira posio do lho. O gene 3, corresponde ao gene 5, em Pai 2 que est na posio 2 de Pai 1, que a posio utilizada para copiar o gene no lho. A seguir considerado o gene correspondente a posio do gene 5 em Pai 1 no Pai 2 que retorna o gene 2. O gene 2 est na posio 4 de pai1 e copiado nesta posio para lho. A posio 4 em Pai 2 corresponde ao gene 3 e neste momento se forma o ciclo. Assim, Filho 1 = C E X B X X Agora, as posies no preenchidas so copiadas de Pai 2 e o lho resultante Filho 1 = C E A B D F

4.3.5

Crossover Parcialmente Mapeado

Uma variao do operador OX o crossover parcialmente mapeado (PMX), pois ambos utilizam dois pontos aleatrios de corte para denir uma subseqncia que copiada para os descendentes. As subseqncias de cada pai denem um mapeamento entre seus genes, de forma que um gene no primeiro pai na posio i mapeado para o gene na posio i do segundo pai. O operador inicia copiando a subseqncia do primeiro pai para o lho. Os demais genes do lho so copiados das posies correspondentes dos genes do segundo pai, resolvendo cada conito (gene do segundo pai que j foi inserido no lho) utilizando o gene correspondente dado pelo mapeamento. Para o outro lho, o processo o mesmo s trocando o primeiro pai com o segundo pai (Michalewicz e Fogel, 2004; Bck et al., 2000). Por exemplo, com Pai 1 e Pai 2 denidos, escolhe-se de forma aleatria os pontos de corte como denidos para OX, ou seja, entre as posies 2 e 3, e 4 e 5. Estes pontos de corte denem o mapeamento de genes 4 1 e 2 3. Copia-se para Filho 1 a subseqncia denida entre os pontos de corte de Pai 1 e de Pai 2 os genes que no geram conito com os genes copiados de Pai 1 obtendo: Filho 1 = E X D B X F

4.3. OPERADORES DE REPRODUO PARA PERMUTAO Para os genes que geram conito utiliza-se o mapeamento e obtm-se Filho 1 = E C D B A F

25

Captulo 5 Consideraes Finais


Neste texto foram abordados os AEs, poderosas ferramentas aplicadas principalmente em problemas de otimizao. Os AEs tm como base idias evolucionistas, utilizando conceitos de Gentica e dinmica populacional. Foram apresentados os trs AEs cannicos, historicamente desenvolvidos de forma independente mas que mantm idias comuns. Tabela 5.1 apresenta um breve resumo dos pontos em que PE, EE e AG diferem entre si. Tambm foram descritas variaes desses AEs, como a PG e o micro-AG, alm dos AEDs e abordagens multiobjetivo. Tabela 5.1: Diferenas fundamentais entre AEs cannicos. AE PE EE AG Representao MEF Ponto utuante (dimenso do problema e desvio padro) Originalmente binria; ponto utuante em algumas aplicaes Operadores Mutao e seleo ( + ) ou (, ) Mutao e seleo ( + ) Recombinao (principal), mutao e seleo aleatria

Deve-se observar que a principal caracterstica dos AEs a idia de evoluo de solues em paralelo. Neste contexto, so includos algoritmos como: swarm inteligence, ant colony optimization (ACO)1 , imune systems, learning classier algorithms (LCS), etc. Alm disso, os AEs podem ser vistos como metaheursticas2 , possibilitando uma interface (compartilhamento, idias, hibridizao) com algoritmos como GRASP, A-teams, VNS, entre outros. (Feo e Resende, 1995; Resende e Ribeiro, 2005; Ribeiro e Hansen, 2002) A interface amplia-se ao se considerar verses paralelizveis dessas metaheursticas, conforme apresentado em (Alba, 2005; Duni Ekisoglu et al., 2002; Resende e Ribeiro, 2005).
ACO (Dorigo e Gambardella, 1997; Dorigo et al., 1999; Pilat e White, 2002) so AEs, no sentido em que evoluem solues em paralelo, e tambm so AEDs, uma vez que utilizam um modelo probabilstico e matriz de ferormnios construda a partir da atividade de uma populao de formigas. 2 Uma metaheurstica um mtodo heurstico para soluo de uma classe geral de problemas computacionais utilizando a combinao de outras heursticas (Blum e Roli, 2003).
1

26

27 Finalmente, importante destacar os AEs so processos heursticos, de modo podem no gerar, necessariamente, solues timas. Alm disso, muitos problemas de otimizao encontrados na mundo real podem ser resolvidos por mtodos exatos de forma eciente. Por esse motivo, solues baseadas em AEs devem ser utilizadas como um ltimo recurso na resoluo de problemas, ou seja, devem se aplicadas quando mtodos de soluo exatos sejam consideradas inecientes.

Referncias Bibliogrcas
A LBA , E. Parallel metaheuristics: A new class of algrothms. Wiley Series on Parallel and Distributed Computing. Wiley, 2005. A MABIS , J. M.; M ARTHO , G. R. Curso bsico de biologia, v. 3. So Paulo: Editora Moderna Ltda., 1985. A RENALES , M. N.; A RMENTANO , V. A.; M ORABITO , R.; YANASSE , H. H. operacional. Rio de Janeiro: Elsevier Editora Ltda., 2007. BALLARD , D. H. An introduction to natural computing. MIT Press, 1999. BAZARAA , M. S.; S HERALI , H. D.; S HETTY, C. M. Nonlinear programming: Theory and algorithms, cap. 2. 3 ed Hoboken, NJ: John Wiley & Sons, Inc., p. 3995, 2006. B LUM , C.; ROLI , A. Metaheuristics in combinatorial optimization: Overview and conceptual comparison. ACM Computing Surveys, v. 35, n. 3, p. 268308, 2003. BCK , T.; F OGEL , D. B.; M ICHALEWICZ , T., eds. Evolutionary computation 1: Basic algorithms and operators. New York: Taylor & Francis Group, 2000. C ARVALHO , A. P. L. F.; D ELBEM , A.; S IMES , E. V.; T ELLES , G. P.; ROMERO , R. A. Computao bioinspirada. In: Apostila de minicurso XXIII JAI - Jornada de Atualizao em Informtica, Porto Alegre: Sociedade Brasileira de Computao, 2004, p. 50. C ASTRO , L. N. Fundamentals of natural computing: Basic concepts,algorithms, and applications. CRC Press LLC, 2006. C OELLO C OELLO , C. A.; VAN V ELDHUIZEN , D. A.; L AMONT, G. B. Evolutionary algortihms for solving multi-objective problems. Genetic Algorithms and Evolutionary Computation. New York, NY: Kluwer Academic, 2002. C ORNE , D.; J ERRAM , N.; K NOWLES , J.; OATES , M. Pesa-ii: Region-based selection in evolutionary multiobjective optimization. In: S PECTOR , L.; G OODMAN , E.; W U , A.; L ANGDON , W.; VOIGT, H.; G EN , M.; S EN , S.; D ORIGO , M.; P EZESHK , S.; G ARZON , M.; B URKE , E., eds. Proceedings of the Genetic and Evolutionary Computation Conference (GECCO 2001), Morgan Kaufmann Publishers, 2001, p. 283290. Pesquisa

28

REFERNCIAS BIBLIOGRFICAS

29

C ORNE , D.; K NOWLES , J.; OATES , M. The pareto envelope-based selection algorithm for multiobjective optimization. In: D EB , K.; G. RUDOLPH , X. Y.; L UTTON , E.; M ERELO , J. J.; S CHWEFEL , H. P., eds. Proceedings of the Parallel Problem Solving from Nature VI Conference,, Springer. Lecture Notes in Computer Science No. 1917, 2000, p. 839848. D E J ONG , K. A. Evolutionary computation: A unied approach. Cambridge, MA: MIT Press, 2006. Disponvel em: http://www.cs.gmu.edu/~eclab/projects/ec_courseware (Acessado em 10/08/2008) D EB , K. Multi-objective optimization using evolutionary algorithms. Wiley-Interscience Series in Systems and Optimization. New York, NY: John Wiley & Sons, 2001. D EB , K.; AGRAWAL , S.; P RATAB , A.; M EYARIVAN , T. A Fast Elitist Non-Dominated Sorting Genetic Algorithm for Multi-Objective Optimization: NSGA-II. KanGAL report 200001, Indian Institute of Technology, Kanpur, India, 2000. D ELBEM , A. C. B.; C ARVALHO , A. C. P. L. F.; B RETAS , N. G. Main chain representation for evolutionary algorithm applied to distribution system reconguration. IEEE Transactions on Power Systems, v. 20, n. 1, p. 425436, 2005. D ORIGO , M.; C ARO , G. D.; G AMBARDELLA , L. M. Ant algorithms for discrete optimization. Articial Life, v. 5, n. 2, p. 137172, 1999. D ORIGO , M.; G AMBARDELLA , L. M. Ant colony system: A cooperative learning approach to the traveling salesman problem. IEEE Transactions on Evolutionary Computation, v. 1, n. 1, p. 120, 1997. D UNI E KISOGLU , S.; PARDALOS , P.; R ESENDE , M. Parallel metaheuristics for combinatorial optimization. In: Models for Parallel and Distributed Computation: Theory, Algorithmic Techniques and Applications, Kluwer Academic Publishers, p. 179206, 2002. E IBEN , A. E.; S CHIPPERS , C. A. Multi-parents niche:n-ary crossovers on nk-landscapes. In: VOIGT, H.-M.; E BELING , W.; R ECHENBERG , I.; S CHWEFEL , H.-P., eds. Proceedings of th 4th Conference on Parallel Problem from Nature, Berlin, Heidelberg, New York: Springer, 1996, p. 319328. E IBEN , A. E.; S MITH , J. E. Introduction to evolutionary computing. Natural Computing Series. Berlin: Springer, 2003. E IBEN , A. E.; VAN K EMENADE , C. H.; KOK , J. N. Orgy in the computer: Multi-parent reproduction in genetic algorithms. In: M ORN , F.; M ORENO , A.; M ERELO , J. J.; C HA CN , P., eds. Advances in Articial Life, Berlin, Heidelberg, New York: Springer, 1995, p. 389402 (Lecture Notes in Articial Intelligence, v.929).

REFERNCIAS BIBLIOGRFICAS

30

E SHELMAN , L. J.; S CHAFFER , J. D. Real-coded genetic algorithms and interval-schemata. In: Foundations of Genetic Algorithms 2 (FOGA-2), San Mateo, CA, 1993, p. 187202. F EO , T. A.; R ESENDE , M. G. C. Greedy randomized adaptive search procedures. Global Optimization, v. 1, p. 109133, 1995. J. of

F OGEL , D. B. An introduction to simulated evolution. IEEE Transaction on Neural Networks, v. 5, n. 1, p. 314, 1994. F OGEL , L. Autonomus automata. Industrial Research, v. 4, n. 1, p. 1419, 1962. F ONSECA , C.; F LEMING , P. Genetic Algorithms for Multiobjective Optimization: Formulation, Discussion and Generalization. In: F ORREST, S., ed. Proceedings of the Fifth International Conference on Genetic Algorithms, University of Illinois at Urbana-Champaign, San Mateo, California: Morgan Kauffman Publishers, 1993, p. 416423. G OLDBERG , D. E. Genetic algorithms in search, optimization, and machine learning. New York: Addison-Wesley, 1989. G OLDBERG , D. E. Real-coded gentic algorithms, virtual alphabets, and blocking. Complex Systems, v. 5, n. 2, p. 139168, 1991. G OLDBERG , D. E. The design of innovation: Lessons from and for competent genetic algorithms. Boston: Kluwer, 2002. H AJELA , P.; L IN , C. Y. Genetic search strategies in multicriterion optimal design. Structural Optimization, v. 4, p. 99107, 1992. H OLLAND , J. Adaptation in natural and articial systems: An introductory analysis with applications to biology, control, and articial inteligence. Complex Adaptive Systems, 2 ed. Cambridge, MA: MIT Press, 1992. H ORN , J.; NAFPLIOTIS , N.; G OLDBERG , D. A Niched Pareto Genetic Algorithm for Multiobjective Optimization. In: Proceedings of the First IEEE Conference on Evolutionary Computation, IEEE World Congress on Computational Intelligence, Piscataway, New Jersey: IEEE Service Center, 1994, p. 8287. K ITA , H.; YABUMOTO , Y.; M ORI , N.; N ISHIKAWA , Y. Multi-Objective Optimization by Means of the Thermodynamical Genetic Algorithm. In: VOIGT, H.-M.; E BELING , W.; R ECHENBERG , I.; S CHWEFEL , H.-P., eds. Parallel Problem Solving from NaturePPSN IV, Lecture Notes in Computer Science, Berlin, Germany: Springer-Verlag, 1996, p. 504 512 (Lecture Notes in Computer Science, ). K NOWLES , J.; C ORNE , D. The Pareto Archived Evolution Strategy: A New Baseline Algorithm for Multiobjective Optimisation. In: 1999 Congress on Evolutionary Computation, Washington, D.C.: IEEE Service Center, 1999, p. 98105.

REFERNCIAS BIBLIOGRFICAS

31

KOZA , J. R. Hierarchical genetic algorithms operating on population of computer programs. In: Proceedings of the 11th International Join Conference on Articial Intelligence (IJCAI89), Detroid, MI: Morgan Kaufmann, 1989, p. 768774. KOZA , J. R. Genetic programming: On the programming of computers by means of natural selection. Cambridge, MA: MIT Press, 1992. KOZA , J. R. Genetic programming II: Automatic discovery of reusable programs. Cambridge, MA: MIT Press, 1994. KOZA , J. R.; B ENNETT III, F. H.; A NDRE , D.; K EANE , M. A. Genetic programming III: Darwinian invention and problem solving. San Mateo, CA: Morgan Kaufmann, 1999. KOZA , J. R.; K EANE , M. A.; S TREETER , M. J.; M YDLOWEC , W.; Y U , J.; L ANZA , G. Genetic programming IV: Routine human-competitive machine intelligence. Kluwer Academic Publishers, 2003. K RISHNAKUMAR , K. Micro-genetice algorithms for stationary and non-stationary function optimization. SPIE: Inteligent Control and Adaptative Systems, v. 1196, p. 289296, 1989. K URI -M ORALES , A. F. Pattern recognition via vasconcelos genetic algorithm. In: Progress in Pattern Recognition, Image Analysis and Applications, v. 3287 de Lecture Notes in Computer Science, Springer Berlin / Heidelberg, p. 328335, 2004. K URI -M ORALES , A. F.; G UTIRREZ -G ARCA , J. Penalty functions methods for constrained optimization with genetic algorithms: A statistical analysis. In: C OELLO C OELLO , C. A.; A LBORNOZ , A.; S UCAR , L. E.; BATTISTUTTI , O. C., eds. Proceedings of the 2nd Mexican International Conference on Articial Intelligence (MICAI 2002), Heidelberg, Germany: Springer-Verlag, 2001, p. 108117 (Lecture Notes in Articial Intelligence, v.2313). L ARRAEAGA , P.; L OZANO , J. Estimation of distribuition algorithms: A new tool for evolutionary computation. Kluwer Academic Publishers, 2001. L AUMANNS , M.; RUDOLPH , G.; S CHWEFEL , H.-P. A Spatial Predator-Prey Approach to Multi-Objective Optimization: A Preliminary Study. In: E IBEN , A. E.; S CHOENAUER , M.; S CHWEFEL , H.-P., eds. Parallel Problem Solving From Nature PPSN V, Amsterdam, Holland: Springer-Verlag, 1998, p. 241249. M ANGE , D., ed. Bio-inspired computing machine. Informatique. EPFL Press, 1998. M ELO , V. V.; D ELBEM , A. C. B.; P INTO JU NIOR , D. L.; F EDERSON , F. M. Improving global numerical optimization using a search-space reduction algorithm. In: Genetic and Evolutionary Computation Conference, ACM, 2007, p. 11951202. M HLENBEIN , H. The equation for response to selection and its use for prediction. Evolutionary Computation, v. 5, n. 3, p. 303346, 1998.

REFERNCIAS BIBLIOGRFICAS

32

M HLENBEIN , H.; PAA, G. From recombination of genes to the estimation of distribuitions: binary parameters. In: Parallel Problem Solving from Nature PPSN IV, 1996, p. 178187 (Lecture Notes in Computer Science, v.1411). M ICHALEWICZ , Z. Genetic algorithms + data structures = evolution programs. 3 ed. Berlin: Springer, 1996. M ICHALEWICZ , Z.; F OGEL , D. B. Springer, 2004. How to solve it: Modern heuristics. 2 ed. Berlin:

M ICHALEWICZ , Z.; JANIKOW, C. Z. Handling constraints in genetic algorithms. In: Proceedings of the Fourth International Conference on Genetic Algorithms, 1991, p. 151157. PAUL , T. K.; I BA , H. Linear and combinatorial optimization by estimation of distribuition algorithms. In: Proceedings of the 9th MPS Symposium on Evolutionary Computation, Japo, 2003. P ELIKAN , M.; G OLDBERG , D. E.; L OBO , F. A survey of optimization by building and using probabilistic models. Relatrio Tcnico 99018, Illinois Genetic Algorithms Laboratory, University fo Illinois at Urbana-Champaign, Urbana, IL, 15 p., 1999. P ILAT, M. L.; W HITE , T. Using genetic algorithms to optimize ACSTSP. In: D ORIGO , M.; C ARO , G. D.; S AMPELS , M., eds. Ant Algorithms : Third International Workshop, Springer, 2002, p. 282287. R ECHENBERG , I. Cybernetc solution path of an experimental problem. Relatrio Tcnico 1122, Royal Aircraft Establishment, Franborough, UK, 1965. R ESENDE , M. G. C.; R IBEIRO , C. C. Parallel greedy randomized adaptive search procedures. In: Parallel Metaheuristics: A new class of algorithms, John Wiley and Sons, 2005. R EZENDE , S. O. 2003. Sistemas inteligentes: fundamentos e aplicaes. Barueri, SP: Malone,

R IBEIRO , C. C.; H ANSEN , P. Publishers, 2002.

Essays and surveys on metaheuristics.

Kluwer Academic

R IDLEY, M. Evolution. 2 ed. Cambridge, MA: Blackwell Science, Inc., 1996. RUDOLPH , G. Evolutionary Search under Partially Ordered Fitness Sets. In: Proceedings of the International NAISO Congress on Information Science Innovations (ISI 2001), ICSC Academic Press: Millet/Sliedrecht, 2001, p. 818822. S AIT, S. M.; YOUSSEF, H. Interative computer algorithms with applications in engineering: Solving combinatorial optimization problems. Los Alamitos, CA: IEEE Computer Society, 1999.

REFERNCIAS BIBLIOGRFICAS

33

S CHAFFER , J. Multiple objective optimization with vector evaluated genetic algorithms. In: Genetic Algorithms and their Applications: Proceedings of the First International Conference on Genetic Algorithms, Lawrence Erlbaum, 1985, p. 93100. S CHWEFEL , H.-P. Evolutionsstrategie und numerishe optimierung. Tese de Doutoramento, Technical University of Berlin, Berlin, Alemanha, 1975. S RINIVAS , N.; D EB , K. Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms. Evolutionary Computation, v. 2, n. 3, p. 221248, 1994. V ELDHUIZEN , D. Multiobjective Evolutionary Algorithms: Classications, Analyses, and New Innovations. Tese de Doutoramento, Department of Electrical and Computer Engineering. Graduate School of Engineering. Air Force Institute of Technology, Wright-Patterson AFB, Ohio, 1999. VON Z UBEN , F. J. Computao evolutiva: Uma abordagem pragmtica. In: Anais da I Jornada de Estudos em Computao de Piracicaba e Regio (1a. JECOMP), Piracicaba, SP, 2000, p. 2545. Z ITZLER , E.; D EB , K.; T HIELE , L. Comparison of Multiobjective Evolutionary Algorithms: Empirical Results. Evolutionary Computation, v. 8, n. 2, p. 173195, 2000. Z ITZLER , E.; L AUMANNS , M.; T HIELE , L. SPEA2: Improving the Strength Pareto Evolutionary Algorithm. Relatrio Tcnico 103, Computer Engineering and Networks Laboratory (TIK), Swiss Federal Institute of Technology (ETH) Zurich, Gloriastrasse 35, CH-8092 Zurich, Switzerland, 2001. Z ITZLER , E.; T HIELE , L. An Evolutionary Algorithm for Multiobjective Optimization: The Strength Pareto Approach. Relatrio Tcnico 43, Computer Engineering and Communication Networks Lab (TIK), Swiss Federal Institute of Technology (ETH), Zurich, Switzerland, 1998.

Vous aimerez peut-être aussi