160 likes | 525 Vues
Optimization and Decision Support Techniques. FUNDAMENTOS DE ALGORITMOS GENÉTICOS. Pedro Miguel A. S. Melo. FEUP – Fevereiro de 2008. Fundamentos de Algoritmos Genéticos. Introdução
E N D
Optimization and Decision Support Techniques FUNDAMENTOS DE ALGORITMOS GENÉTICOS Pedro Miguel A. S. Melo FEUP – Fevereiro de 2008
Fundamentos de Algoritmos Genéticos • Introdução • Resultado dos trabalhos realizados por John Holland, apresentados em 1975 no seu livro “Adaptation in Natural and Artificial Systems”; • Algoritmos genéticos são métodos adaptativos cuja estrutura se baseia na teoria da evolução das espécies (Darwin); • Entre variados domínios de aplicação (ciências da computação, bio-informática, nas diversas áreas da engenharia, ...), é de salientar a sua utilização na resolução de problemas de análise combinatória enquadrado nos métodos de procura global.
Fundamentos de Algoritmos Genéticos • Conceitos Básicos • Na procura da solução óptima de um problema, os algoritmos genéticos (AG) partem de populações de soluções, normalmente escolhidas aleatoriamente. Deste modo, em cada iteração é analisada a vizinhança de uma população diversificação da procura no espaço das soluções. (a população gerada inicialmente pode encontrar-se em torno de um óptimo local...) • Cada solução individual de uma população (cromossoma) é submetida a uma avaliação do seu potencial, em termos de “boa solução” ou condução a boas soluções – processo de selecção. • As soluções seleccionadas são combinadas entre si, isto é, reproduzem-se com um certo grau de aleatoriedade, dando origem a uma nova geração de soluções; eventualmente, este degrau evolutivo conduzirá a soluções melhores do que as suas progenitoras (pelo menos algumas...)
Fundamentos de Algoritmos Genéticos • Conceitos Básicos (cont.) • Algumas das soluções pertencentes à nova geração podem ser individualmente alteradas, com vista a uma melhoria das suas características e/ou diversificação da população – soluções mutantes. • As novas soluções são avaliadas em termos do seu potencial como progenitores, isto é, da capacidade de originarem uma nova geração de soluções que, de algum modo, se aproxime do óptimo desejado. • A dimensão da população inicial permanece constante em cada geração, as soluções que se revelem menos promissoras são eliminadas (selecção natural) e substituídas pelas soluções da nova geração com maiores potenciais (eventualmente, haverá novas soluções que são eliminadas logo à nascença).
Fundamentos de Algoritmos Genéticos • Conceitos Básicos (cont.) • Trata-se de um processo evolutivo número crescente de gerações (iterações) conduzirá (?) a uma população cujas soluções (pelo menos as melhores) se aproximam progressivamente do óptimo procurado. • O número de iterações implementado pelo AG pode ser definido com base em diferentes critérios, por exemplo, o número de gerações a obter. Naturalmente, um critério baseado apenas no número de gerações não garante a obtenção de boas soluções.
Fundamentos de Algoritmos Genéticos • Metodologias de AG • Criação da população inicial de soluções usualmente, gerada de forma aleatória, contendo um número de soluções que possa cobrir uma parte significativa do respectivo domínio; • Escolha das solução com melhores níveis de aptidão, de acordo com o critério adoptado (algoritmo de seleccção); • Combinações das soluções seleccionadas (reprodução) ; • Diversificação das soluções de uma geração.
Fundamentos de Algoritmos Genéticos • Metodologias de AG (cont.) • As implementações mais comuns de AG são designadas por “simples” e “estacionárias” (“steady state”). • Nos algoritmos “simples” toda a população actual é substituída na passagem de uma geração para a seguinte; • Nos algoritmos “estacionários” a passagem da geraçaõ actual para a seguinte é caracterizada pela substituição de apenas algumas soluções (em princípio, as piores); • A definição dafunção de adaptabilidade (fitness function), a representação “genética” das soluções (codificação), bem como a implementação dos operadoresgenéticos é crucial em termos do sucesso (ou não...) alcançado por diferentes algoritmos, na resolução do mesmo problema.
Fundamentos de Algoritmos Genéticos • Operadores Genéticos • Selecção: as soluções consideradas mais aptas são seleccionadas como potenciais “reprodutores” da geração à qual pertencem. Existem diversos métodos de efectuar a escolha de soluções, sendo de referir: • “Tournament selection” – a selecção é feita através da criação de grupos de soluções da população; as soluções de cada grupo competem entre si, sendo que, apenas uma solução de cada grupo é seleccionada. O valor da função de adaptabilidade (fitness) de cada solução é determinante na sua escolha. • “Fitness proportionate selection” – ao valor da função de adaptabilidade de cada solução da população é associado uma probabilidade de selecção. Sendo a escolha função de um valor probabilístico, poderá haver boas soluções que não são seleccionadas e soluções mais fracas que o sejam diversificação das gerações seguintes no espaço das soluções.
Fundamentos de Algoritmos Genéticos • Operadores Genéticos (cont.) • Reprodução: cruzamento de soluções seleccionadas, cujo resultado será uma nova geração de soluções, com estruturas distintas dos progenitores, mas que terão herdado as boas características destas. Exemplos de técnicas de cruzamento (troca directa): • “one-point crossover”“two-point crossover” “cut and splice” • - estas técnicas nem sempre são aplicáveis, como é o caso do TSP
Fundamentos de Algoritmos Genéticos • Operadores Genéticos (cont.) • Mutação: modificação de uma sequência particular de uma solução (ou grupo de soluções) pertencente à geração actual diversificação, bem como redução do risco de convergência para óptimos locais. • Tipicamente, este operador é usado em populações cujas soluções se encontram codificadas – strings ou arrays de bits. É comum existir uma variável aleatória associada à posição de cada bit, numa determinada sequência; em função do seu valor, o valor de um bit (ou vários) poderá ser alterado. • Deste modo, é diminuído o risco de serem obtidos óptimos locais e, eventualmente, ofim da própria evolução de gerações. É de referir que a selecção baseada em critérios que escolhem apenas as melhores soluções pode conduzir a “becos sem saída” (óptimos locais).
Fundamentos de Algoritmos Genéticos • Critérios de Substituição de Soluções • Referem-se ao conteúdo da geração seguinte, ou seja, quais as novas soluções, as que permanecem e aquelas que são substituídas (eliminadas): • - Eliminação da(s) pior(es) solução(ões); • - Eliminação das progenitoras; • - Substituição aleatória; • - Substituição de soluções com grandes semelhanças. • O primeiro e último critérios são os fundamentais.
Fundamentos de Algoritmos Genéticos • Critérios de Paragem • As operações descritas anteriormente são efectuadas ciclicamente, sendo os critérios de paragem mais comuns: • - É encontrada uma solução que satisfaz um requisito pré-definido; • - Número de gerações definido; • - Se é verificado que um número n de iterações (gerações) sucessivas não conduzem a melhorias significativas.
Fundamentos de Algoritmos Genéticos Estrutura Básica de um Algoritmo Genético 1. Escolha da população inicial X0= x10, x20, ...xn0; 2. Para cada solução individual (xi) da população X, determinar o valor Fi, tal que Fi=F(xi) F(x)-fitness function; 3. Selecção das soluções mais aptas (xj) xjX: Xa X; 4. Aplicação do operador reprodução nas soluções seleccionadas; aplicação do operador mutação a soluções geradas; 5. Substituição das piores soluções por soluções geradas; 6. Se o critério de paragem não for verificado, voltar a 2.
Fundamentos de Algoritmos Genéticos • BIBLIOGRAFIA • Pirlot, Marc (1996) “General Local Search Methods”,European Journal of Operational Research 92, pp. 493-511. • Wall, Matthew (?) “ Overview of Genetic Algorithms”, Mechanical Engineering Departement, MIT. • Whitley, Darrell (?) “ A Genetic Algorithm Tutorial”,Colorado State University. • Karova, Milena et al. (2005) “Genetic operators crossover and mutationin solving the TSP problem”, International Conference on Computer Systems and Technologies.