Você está na página 1de 51

Fundamentos dos Algoritmos Genticos

Mestrado em Engenharia Eltrica

Fundamentos dos Algoritmos Genticos


Quanto melhor um indivduo se adaptar ao seu meio ambiente, maior ser sua chance de sobreviver e gerar descendentes. (DARWIN, 1859)

Introduo
Um Algoritmo Gentico (AG), conceitualmente, segue passos inspirados no processo biolgico de evoluo natural segundo a teoria de Darwin
Algoritmos Genticos seguem a idia de SOBREVIVNCIA DO MAIS FORTE (melhores solues a cada gerao)

O que so?
Os Algoritmos Genticos so uma classe de procedimentos, com passos distintos bem definidos. Essa classe se fundamenta em analogias a conceitos biolgicos j testadas exausto. Cada passo distinto pode ter diversas verses diferentes.

Background
Cromossomos

Todo organismo vivo consiste de clulas. Em cada clula, existe o mesmo conjunto de cromossomos

Cromossomos consistem de genes seqncias de DNA- que servem para determinar as caractersticas de um indivduo
5

Background (Cont.)
Reproduo

Durante o processo de reproduo ocorre-se a recombinao (ou crossover cruzamento-). Genes dos pais se combinam para formar novos cromossomos. Os descendentes criados podem sofrer mutaes, ou seja, os elementos do DNA podem ser trocados A adaptao de um organismo pode ser medida pelo sucesso do mesmo em sua vida
6

Para que servem?


Busca e Otimizao Amplamente utilizados, com sucesso, em problemas de difcil manipulao pelas tcnicas tradicionais Eficincia X Flexibilidade

Caractersticas Gerais
Utilizam uma codificao do conjunto de parmetros (indivduos) e no com os prprios parmetros (estados); Vasculham vrias regies do espao de busca de cada vez; Utilizam informaes diretas de qualidade, em contraste com as derivadas utilizadas nos mtodos tradicionais de otimizao; Utilizam regras de transio probabilsticas e no regras determinsticas.

Caractersticas Gerais
Algoritmos Genticos podem ser considerados como mtodos que trabalham com Buscas Paralelas Randmicas Direcionadas

Funcionamento Fundamental
1. Gerar Populao Inicial
2. Descartar uma parte dos Indivduos

menos aptos 3. Aplicar operadores de reproduo 4. Aplicar operadores de mutao 5. Se o critrio de parada foi satisfeito, encerrar. Seno, voltar ao passo 2.

Modelagem
Indivduos X Estados Cada indivduo possui um cdigo gentico Esse cdigo chamado cromossomo Tradicionalmente, um cromossomo um vetor de bits Vetor de bits nem sempre o ideal

Questes importantes
Como criar cromossomos e qual tipo de codificao usar? Como escolher os pais para a realizao do crossover? A gerao de uma populao a partir de duas solues pode causar a perda da melhor soluo. O que fazer?

12

Esboo do algoritmo
[Incio] Gerao aleatria de uma populao de n cromossomos [Adaptao] Verificar a funo objetiva f(x) de cada cromossomo x [Populao] Cria-se uma nova populao pela repetio a seguir: 1. [Seleo] Selecione um par de cromossomos da populao de acordo com a adaptao de cada um (os mais bem adaptados tem maior chance de serem escolhidos) 2. [Crossover] Produza dois descendentes (filhos) realizando crossover com os cromossomos dos pais. O ponto para a realizao do crossover deve ser aleatrio. 3. [Mutao] Com uma certa probabilidade, o descendente sofre mutao em cada locus (posio no cromossomo). 4. [Aceitao] Coloque os descendentes em uma nova populao, juntamente com a melhor soluo da gerao velha 13

Esboo do algoritmo (Cont.)


[Troca] Substitua a populao velha pela nova
[Teste] Se a condio de finalizao satisfeita, pare, e retorne a melhor soluo da populao atual [Adaptao] [Lao] Volte ao passo 1

14

Codificao binria
a mais comum devido a sua simplicidade Cada cromossomo uma string de bits 0 ou 1

Crom: A = 1 0 1 1 0 0 1 0 1 1 Crom: B = 1 1 1 1 1 1 0 0 0 0

Exemplo de uso: problema da mochila Codificao: Cada bit diz se um elemento est ou no na mochila
15

Exemplo de Modelagem
Problema das N-Rainhas:
A posio de cada rainha dada por uma subcadeia do cromossomo Exemplo para N = 4:

= R1

01 11 00 10 R2 R3 R4

Codificao por permutao


Mais usado em problemas de ordenao Cada cromossomo uma string de nmeros que representa uma posio numa seqncia Crom A: 1 5 3 2 6 4 7 9 8 Crom B: 8 5 6 7 2 3 1 4 9 Exemplo de uso: problema do caxeiro viajante Codificao: os cromossomos descrevem a ordem em que o caxeiro ir visitar as cidades
17

Codificao por valor


Usado em problemas onde valores mais complicados so necessrios Cada cromossomo uma seqncia de valores
Crom A: 1.2324 5.3243 0.4556 2.3293 2.4545 Crom B: ABDJEIFJDHDIERJFDLDFLFEGT Crom C: (back), (back), (right), (forward), (left)

18

Codificao por valor (Cont.)


Exemplo de uso: dada uma estrutura, encontrar pesos para uma rede neural Codificao: Valores reais num cromossomo representam pesos em uma rede neural

19

Problema 1

Adaptao - Aptido
Aptido Nota associada ao indviduo que avalia quo boa a soluo por ele representada. Aptido pode ser: Igual a funo objetivo. Resultado do escalonamento da funo objetivo. Baseado no ranking do indviduo da populao.

Exemplo
Cromossomos binrios com 5 bits: 0 = 00000 31 = 11111 Aptido Por simplicidade, a aptido ser a prpria funo objetivo. Exemplo: f(x) = x2 aptido(00011) = f(3) = 9

Problema Inicial

Operadores Fundamentais
Seleo Natural Manipulao Gentica por Mutao

Manipulao Gentica por Reproduo

Seleo Natural
Princpio bsico para o direcionamento da evoluo de uma dada populao Utiliza uma funo de avaliao para medir a aptido de cada indivduo Essa aptido pode ser absoluta ou relativa Existem vrios mtodos de seleo

Principais Mtodos de Seleo Natural


Roleta Torneio

Amostragem Universal Estocstica

Populao Exemplo
Indivduo Aptido Absoluta 1 2 3 4 5 2 4 5 9 18 Aptido Relativa 0,052631579 0,105263158 0,131578947 0,236842105 0,473684211

Total

38

Mtodo da Roleta
Coloca-se os indivduos em uma roleta, dando a cada um uma fatia proporcional sua aptido relativa Depois roda-se a agulha da roleta. O indivduo em cuja fatia a agulha parar permanece para a prxima gerao Repete-se o sorteio quantas vezes forem necessrias para selecionar a quantidade desejada de indivduos

Roleta - Exemplo

Mtodo do Torneio
Utiliza sucessivas disputas para realizar a seleo Para selecionar k indivduos, realiza k disputas, cada disputa envolvendo n indivduos escolhidos ao acaso O indivduo de maior aptido na disputa selecionado muito comum utilizar n = 3

Torneio - Exemplo
Indiv 1, Indiv 2, Indiv 4 Indiv 1, Indiv 2, Indiv 3 Indiv 2, Indiv 3, Indiv 4 Indiv 3, Indiv 4, Indiv 5 Indiv 4 Indiv 3 Indiv 4 Indiv 5

Amostragem Universal Estocstica - SUS


SUS Stochastic Universal Sampling Semelhante Roleta, mas para selecionar k indivduos utiliza k agulhas igualmente espaadas, girando-as em conjunto uma s vez Apresenta resultados menos variantes que a Roleta

SUS - Exemplo

Operador de Mutao
Operador randmico de manipulao Introduz e mantm a variedade gentica da populao Garante a possibilidade de se alcanar qualquer ponto do espao de busca Contorna mnimos locais

Operador de Mutao
um operador gentico secundrio Se seu uso for exagerado, reduz a evoluo a uma busca totalmente aleatria Logo um indivduo sofre mutaes com probabilidade baixa (normalmente entre 0,001 e 0,1)

Exemplo de Mutao

Operador de Cruzamento
Tambm chamado de reproduo ou crossover Combina as informaes genticas de dois indivduos (pais) para gerar novos indivduos (filhos) Verses mais comuns criam sempre dois filhos para cada operao

Operador de Cruzamento
Operador gentico principal Responsvel por gerar novos indivduos diferentes (sejam melhores ou piores) a partir de indivduos j promissores Aplicado a cada par de indivduos com alta probabilidade (normalmente entre 0,6 e 0,99)

Abordagens para Cruzamento


Cruzamento Um-Ponto Cruzamento Multi-Pontos

Cruzamento Uniforme

Cruzamento Um-Ponto
0 0 0 0 Pais 1 1 1 1

Filhos

Cruzamento Multi-Ponto
0 0 0 0 Pais 1 1 1 1

Filhos

Cruzamento Uniforme
Mscara 0 1 0 1

Pais

Filhos

Primeira gerao problema 1

Primeira gerao problema 1

Demais Geraes

Demais

Parmetros Genticos
Tamanho da populao Taxa de cruzamento Taxa de mutao Intervalo de gerao Critrio de parada

Aplicaes
Alocao de tarefas Configurao de sistemas complexos Seleo de Rotas Problemas de Otimizao e de Aprendizagem de Mquina Problemas cuja soluo seja um estado final e no um caminho

Aplicaes
So especialmente interessantes em problemas difceis de otimizar de forma convencional Tcnicas tradicionais so mais difceis de empregar Se uma tcnica tradicional puder ser empregada, normalmente acha melhor soluo mais rpido

Aplicaes
Existem muitos problemas prticos aos quais tcnicas determinsticas tradicionais no podem ser aplicadas Tcnicas tradicionais tm natureza serial Algoritmos Genticos tm natureza paralela

Perspectivas Futuras
Computao baseada em DNA Cooperao e competio entre populaes Vida vegetal Desenvolvimento de modelos tericos Sistemas evolutivos hbridos Metodologia para a configurao de parmetros Prova formal da eficincia global dos AGs

Você também pode gostar