SlideShare ist ein Scribd-Unternehmen logo
1 von 105
Downloaden Sie, um offline zu lesen
Componentes de um Algoritmo Genético


                 1. Problema
                 2. Representação
                 3. Decodificação
                 4. Avaliação
                 5. Operadores
                 6. Técnicas
                 7. Parâmetros




                     1. PROBLEMA



  GAs são indicados em problemas complexos de
  otimização- onde se busca uma solução melhor:
                                              :


® muitos parâmetros e variáveis;
® mal estruturados: com condições e restrições,
  difíceis de serem modeladas matematicamente;
® grandes espaços de busca onde não é possível a
  busca exaustiva.
2. REPRESENTAÇÃO


Representação é fundamental na modelagem de um GA e deve:



® descrever o espaço de busca relevante ao problema;

® codificar geneticamente a “essência” do problema:
   evolução do “código”          evolução da solução

® ser compatível com os operadores (crossover e mutação)
   representação adequada        sucesso, evolução




           2. REPRESENTAÇÃO

 Método de Solução          ↔ Representação

    – Numérico                     – Binário, Real
    – Ordem                        – Lista
    – Grupo                        – Vetor
    – Inteiro                      – Inteiro
    – Misto                        – Ex: Real e
                                     Ex:
                                     Lista
BINÁRIO CODIFICANDO REAL

   O binário é um contador de unidades de precisão


 Aspectos importantes:
 ¬variáveis do problema (x1 , x2 , ... , xt )
 ¬domínio de valores: xi ∈ (míni, máxi) em R
 ¬precisão: p casas decimais

                      (máxi-míni)x10p diferentes soluções
domínio de
       xi

             míni                            máxi
                    Precisão è 1/10p




  Representação:
                    k1 bits   k2 bits        ...      kt bits
                      x1        x2                       xt

 onde,

 2k i ≥ (máxi-míni)x10p                        Precisão = (máxi-míni)
                                                            2k i - 1


  Decodificação para Real:
            xi real = xi bin .(máxi-míni) + míni
                               ________
                                        2k i - 1
         se xibin=(0 0 ... 0)                  xi real = míni
         se xibin=(1 1 ... 1)                  xi real = máxi
REPRESENTAÇÃO BINÁRIA


 ® simples de criar e manipular
 ® produz bons resultados
 ® facilita aplicações de operadores
 ® fácil decodificação numérica ( inteiro,real )
 ® facilita a demonstração de teoremas
 ® porém, nem sempre é adequada




                3. DECODIFICAÇÃO

Construir a solução para o problema a partir de um
cromossoma:
      Cromossomas “representam” soluções.

Cromossoma          Transformação             Solução

0011011             bin           inteiro     x=27

0011011             x=27 x 10/27 -1           x=2,1 x ∈[0,10]
                                                     1 casa decimal
                              A     cidades
                        3Km
ADBCE               D
                                   7Km        A→D→B→C→E
                        1Km    B         E
                         4Km        3Km
                                              (Σ dist.=18)
                               C
4. AVALIAÇÃO

Elo entre o algoritmo genético e o problema .

f(cromossoma) = medida numérica de aptidão

Chances de seleção são proporcionais à aptidão.

                            f(i)
                           n
                          ∑ f(j)
                          j= 1




                5. OPERADORES


Atuam no processo de criação de novos
indivíduos (descendentes):

 1. Crossover
 2. Mutação
 3. Inversão
 4. Operadores específicos ao problema
6. TÉCNICAS


- Técnicas de Representação
- Técnicas de Inicialização da População
- Técnicas de Eliminação da População Antiga
- Técnicas de Reprodução
- Técnicas de Seleção de Genitores
- Técnicas de Aptidão
- Técnicas de Parametrização
- Técnicas de Elitismo
- Técnicas de Seleção de Operadores




              7. PARÂMETROS


         - TAMANHO_POPULAÇÃO
         - TOTAL_INDIVÍDUOS
         - NÚMERO_GERAÇÕES
         - TAXA_CROSSOVER
         - TAXA_MUTAÇÃO
         - APTIDÃO_OPERADORES
         - ETC.
Desenvolvimento de um Algoritmo Genético

procedure algoritmo_genético
begin
      t=0                             ; primeira geração
      inicializa P(t)                 ; população inicial aleatória
      avalia P(t)                     ; calcula f(i) p/ cada indivíduo
      while (not condição_parada) do
      begin
               t=t+1                  ; próxima geração
               seleciona P(t) de P(t-1)
               altera P(t)            ; crossover e mutação
               avalia P(t)             ; calcula f(i) p/ cada indivíduo
        end
end




        Sistemas de Desenvolvimento


   l   ICADEMO
   l   Genesis, Genesys
   l   WinGenesis
   l   GENOCOP
   l   GeneHunter
   l   Evolver 4.0
   l   Escapade
   l   Sugal
   l   Bibliotecas específicas (C, Pascal, etc)
       – TNA/C++,
Algoritmos Genéticos
     l Exemplos GA1-1 a GA6-1
     l Especificação de técnicas e parâmetros
       por módulos:
           – Módulo de Avaliação
           – Módulo de População
           – Módulo de Representação




l   Módulo de Avaliação
                                                                         GA1-1
     Função de Avaliação:                  Função binária F 6
l   Módulo de População
     Técnica de Representação:             Binária 44 bits
     Técnica Inicialização da População:   Aleatória
     Técnica Eliminação da População:      Elimina todos
     Técnica de Reprodução:                Troca da geração
     Técnica de Seleção de Genitores:      Roleta
     Técnica de Aptidão:                   Aptidão é a avaliação
     Técnica de Parametrização:            Nenhuma
     Técnica de Elitismo:                  Nenhuma
         Population Size:                  100
         Total de Indivíduos:              4000
l   Módulo de Reprodução
     Técnica de Seleção de Operadores:     Use todos
     Operadores:                           Crossover 1 ponto & Mutação
         Taxa Mutação:                     0,008
         Taxa Crossover:                   0,65
     Técnica de Parametrização:            nenhuma
Função F6




                       Função F6(x,y)
           1
F6(x,0)
          0,9


          0,8


          0,7


          0,6


          0,5


          0,4


          0,3


          0,2


          0,1


           0
                -100   - 50       0       50   100

                                                x
Características da F6


        F6(x,y) = 0,5 - (sen √ x2 + y2 )2 - 0,5
                       (1,0 + 0,001 (x2 + y2 ))2




l Objetivo: Maximizar F6
l Uma única solução ótima: F6(0,0)=1
l Difícil de otimizar: vários mínimos locais




            Representação

l   Binária codificando real
l 2 Variáveis: x, y
l Domínio: x,y ∈ [-100, +100]
l Precisão: 4 a 5 casas decimais
           6                 7
l log2 2x10 ó Ki ó log2 2x10

l   Ki=22 Ô total de 44 bits
Exemplo
    l   Cromossoma:
        00001010000110000000011000101010001110111011
    l   Dividido em x e y:
        0000101000011000000001 1000101010001110111011
    l   Convertidos para base 10:
        165377 e 2270139
    l   Multiplicados por: 200/222-1
        7,885791751335085 e 108,24868875710696
    l   Subtraídos de mín:
        x=-92,11420824866492 e y=8,248688757106959
    l   Aplicados a F6(x,y):
        F6(x,y)=0,5050708




             Módulo de População
l   Técnica Inicialização da População:      Aleatória
    Ü Geração aleatória de palavras de 44 bits
l   Técnica Eliminação da População:         Elimina todos
    Ü Elimina pop_size indivíduos da população anterior
l   Técnica de Reprodução:                   Troca da geração
    Ü Reproduz pop_size indivíduos para a nova população
l   Técnica de Aptidão:                      Aptidão é a avaliação
    Ü Aptidão é numericamente igual à avaliação
l   Técnica de Seleção de Genitores:         Roleta
Parâmetros
l   Tamanho da População:            Exemplo

    pop_size                         100

l   Número de Gerações:
    num_ger                          40

l   Total de Indivíduos:
    total_ind = pop_size x num_ger   4000




               Parâmetros
l   Tamanho da População:            Exemplo

    pop_size                         1000

l   Número de Gerações:
    num_ger                          4

l   Total de Indivíduos:
    total_ind = pop_size x num_ger   4000
Parâmetros
 l   Tamanho da População:                         Exemplo

      pop_size                                     10

 l   Número de Gerações:
      num_ger                                      400

 l   Total de Indivíduos:
      total_ind = pop_size x num_ger               4000




           Seleção pela Roleta
Objetivo: Selecionar indivíduos aleatoriamente, proporcionando
          maiores chances de reprodução aos mais aptos.

                    Método por Computador
l    Encontre a soma da aptidão de todos os membros da
     população AT= ∑ Ai (0 ó i ó pop_size-1)
l    Gere um número aleatório 0 ó rand ó AT
l    Pegue o primeiro membro da população Ik cuja aptidão
     somada às aptidões dos membros precedentes é maior
     ou igual a rand.
                       ∑ Ai ò rand (i < k)
Exemplo da Roleta
Cromossoma        1        2          3      4        5          6         7       8          9    10
Aptidão           8        2         17     7         2         12        11       7         3     7
∑ Ai              8        10        27     34        36        48        59       66        69    76


Número Aleatório           23         49         76             13         1            27        57
Selecionado                3          7          10             3          1            3         7


       1    2         3              4 5         6                   7         8        9     10


       8    2         17              7 2        12                  11        7        3     7


           8 10                 27    34 36                48             59       66 69           76




                Módulo de Reprodução

 l     Técnica de Seleção de Operadores:                        Use todos
       Ü Use o primeiro operador da lista de operadores
 l     Operadores:                               Crossover & Mutação
       –    Taxa Mutação:                                  0,008
       –    Taxa Crossover:                                0,65
 l     Valores ideais das taxas são obtidos
       experimentalmente
Mutação
    l   Troca cada gene de um cromossoma se o teste de
        probabilidade for verdadeiro
    l   Taxa Mutação: 0,8% (0,008)
         – Teste Verdadeiro Ô troca bit
         – Teste Falso      Ô mantém


    Cromossoma           Número Aleatório              Novo Cromossoma

1        0     1      0 0,801 0,102 0,266 0,373 1         0       1   0
1        1     0      0 0,128 0,96 0,005 0,84 1           1       1   0
0        0     1      0 0,768 0,473 0,894 0,001 0         0       1   1




                            Crossover

    l   Partes de dois cromossomas genitores são trocadas
        a partir de uma posição escolhida aleatoriamente
    l   Taxa de Crossover : 65%
         – Teste Verdadeiro Ô Efetua Cruzamento
         – Teste Falso      Ô Copia os Genitores

    P1         1        0         1         1      0          1
    P2         0        0         1         1      0          0

    F1         1        0        1          1      0          0
    F2         0        0        1          1      0          1
             ponto de corte aleatórioÚ
Evolução X Convergência
l   Crossover:
     – acelerador do processo de busca
     – tira proveito das soluções mais promissoras
l   Mutação
     – operador exploratório
     – dispersa a população pelo espaço de busca
l   Convergência (causas):
     – população com indivíduos muito similares
     – não há mais evolução:
        • ótimo encontrado ou convergência prematura (mínimo local)
    – para continuar a evoluir é preciso introduzir mais diversidade
      na população




       Análise de Desempenho

l   Melhor de um Experimento (valor)
l   Curva dos Melhores por Geração
l   Curva da Média de Melhores de Vários
    Experimentos
Média de Experimentos
l   Calcula a média dos melhores indivíduos por geração em vários
    experimentos.
l   Mede o desempenho do GA em encontrar uma solução melhor na
    geração seguinte
l   GAs são estocásticos: desempenho varia a cada experimento
l   São necessários muitos experimentos para se conhecer o
    desempenho médio do modelo de GA.
                                   e
    A(t) =                ∑ Ae (t)                           1 ó e ó #_Experimentos
                      #_Experimentos

    t: geração
    Ae(t): aptidão do melhor indivíduo em t no experimento e
    A(t): média em #_Experimentos das aptidões dos melhores
           indivíduos a cada geração t




        Média de Experimentos
                        Experimentos
                   Melhores nas gerações
                   1a. 2a. 3a. 4a.       Média
          ger     1 0,6 0,5 0,8    0,5        0,60
          ger     2 0,7 0,5 0,8    0,7        0,68
          ger     3 0,7 0,6 0,9    0,7        0,73
          ger     4 0,8 0,6 0,9    0,8        0,78
                                       Média de Experimentos
                            1,00
                Avaliação




                            0,50

                            0,00
                                       1   2    3      4     5
                                                    Experimentos
Característica da Curva de Desempenho

        •bom desempenho no início da evolução
        •pouco ou nenhum desempenho no final


                                    Curva da Média de Experimentos
          Aptidão A(t)



                     30000
                     25000
                     20000
                     15000
                     10000
                         5000
                           0
                                1
                                     5
                                         9
                                             13
                                                  17
                                                       21
                                                            25
                                                                 29
                                                                      33
                                                                           37
                                                                                41
                                                                                     45
                                                                                          49
                                                                           Gerações




     Curva Média de Experimentos para
                  F6(x,y)
l   Usamos o número de dígitos 9 após o ponto
    decimal para distinguir avaliações muito próximas
    de 1,00 .
l   Exemplo:
    Avaliação                                dígitos 9
    0,99873578                                    2
    0,82435787                                    0
    0,99995432                                    4
ICADEMO




l   Módulo de Avaliação
                                                                         GA1-1
     Função de Avaliação:                  Função binária F 6
l   Módulo de População
     Técnica de Representação:             Binária 44 bits               ICADEMO
     Técnica Inicialização da População:   Aleatória
     Técnica Eliminação da População:      Elimina todos
     Técnica de Reprodução:                Troca da geração
     Técnica de Seleção de Genitores:      Roleta
     Técnica de Aptidão:                   Aptidão é a avaliação
     Técnica de Parametrização:            Nenhuma
     Técnica de Elitismo:                  Nenhuma
        Population Size :                  100
        Total de Indivíduos:               4000
l   Módulo de Reprodução
     Técnica de Seleção de Operadores:     Use todos
     Operadores:                           Crossover 1 ponto & Mutação
        Taxa Mutação:                      0,008
        Taxa Crossover:                    0,65
     Técnica de Parametrização:            nenhuma
Novas Técnicas e Parâmetros
     l Técnicas de Aptidão
     l Elitismo
     l Reprodução Steady State
     l Ajuste dos Parâmetros




l   Módulo de Avaliação
                                                                           GA2-1 a
     Função de Avaliação:                  Função binária F 6
l   Módulo de População
                                                                            GA2-5
     Técnica de Representação:             Binária 44 bits
     Técnica Inicialização da População:   Aleatória
     é Técnica Eliminação da População:    Elimina o último
     é Técnica de Reprodução:              Steady State s/ duplicados
     Técnica de Seleção de Genitores:      Roleta
     é Técnica de Aptidão:                 Normalização Linear (100 a 1)
     Técnica de Parametrização:            Nenhuma
     Técnica de Elitismo:                  Nenhuma
         Population Size :                 100
         Total de Indivíduos:              4000
l   Módulo de Reprodução
     Técnica de Seleção de Operadores:     Use todos
     Operadores:                           Crossover 1 ponto & Mutação
     é     Taxa Mutação:                   0,04
     é     Taxa Crossover:                 0,8
     Técnica de Parametrização:            nenhuma
Medida de Aptidão
l   O que ocorre se alterarmos a F6 para:


               F6 (x,y) = 0,5 - (sen √ x2 + y2 )2 - 0,5
                               (1,0 + 0,001 (x 2 + y2 ))2




            Medida de Aptidão
l   O que ocorre se alterarmos a F6 para:


       F6Elevada(x,y) = 999,5 - (sen √ x2 + y2 )2 - 0,5
                               (1,0 + 0,001 (x 2 + y2 ))2



l   Formato F6 = formato F6 elevada
l   Melhor cromossoma para F6 = melhor para F6 elevada
l   Avaliação de F6 elevada = avaliação F6 + 999

è   Todavia, GA 1-1 para F6Elevada não apresenta desempenho algum.
è   PORQUE?
Aptidão = Avaliação

    Ai = fi                 : aptidão do indivíduo i
    pi = Ai/ AT = fi / ∑ fJ : chances de seleção de I
        há pop_size sorteios, então
    Di = pi x pop_size = (fi x pop_size) / ∑ fJ =
    Di = fi / fAV           : número provável de sorteios de i, ou
                             número de descendentes na próxima
                             geração




l   F6          avaliação                l   F6 Elevada avaliação
    best        0,979                        best        999,979
    worst       0,066                        worst       999,066
    average 0,514                            average 999,514
l   Dbest = 1,905                        l   Dbest = 1,0005
l   Dworst = 0,128                       l   Dworst = 0,9996
è   forte pressão seletiva em            è   melhor e pior cromossomas
    favor do melhor                          vão gerar o mesmo número
                                             de descendentes

                O efeito da seleção é quase nulo porque as
              avaliações estão relativamente muito próximas.
                                     .
Técnicas de Aptidão

l   Aptidão é a Avaliação
    Ai = fi                Exemplo: Ai = 999,979

l   Windowing
    – subtrair uma constante dos valores de fi
l   Normalização Linear
    – atribuir valores a Ai baseados no rank do
      cromossoma




                  Windowing

l   Obtenha a avaliação mínima na população.
l   Atribua a cada cromossoma I uma aptidão igual a:
    Ai = (f i - Amín)
l   Opcionalmente, atribua uma aptidão mínima de
    “sobrevivência”, maior que a aptidão mínima
    calculada, como garantia de reprodução para os
    cromossomas menos aptos.
l   Exemplo:
     Ai = (999,979 - 999,066)= 0,913
Normalização Linear

      l   Coloque os pop_size cromossomas em ordem
          decrescente de avaliação (i=1 é o menos apto).
      l   Crie aptidões, partindo de um valor mín e crescendo
          linearmente até o valor máx.
      l   Os valores de máx e mín (ou a constante de
          incremento) são parâmetros da técnica.
            Ai = mín + (máx - mín)                            x (i - 1)
                       pop_size - 1
      l   Quanto maior a constante de incremento, maior a
          pressão seletiva sobre os melhores.




                 Exemplo Comparativo

Rank dos cromossomas                    6           5          4         3           2         1
Avaliação original                     200          9          8         7           4         1
Aptidão é avaliação                    200          9          8         7           4         1
Normalização Linear, taxa=10            60          50         40        30         20         10
Normalização Linear, taxa=20           101          81         61        41         21         1
Windowing                              199          8          7         6           3         0


       • SUPER INDIVÍDUO: cromossoma 6
            •poucas chance de recombinação com outros indivíduos; elimina competidores em poucas
            gerações; rápida convergência.

       • COMPETIÇÃO PRÓXIMA: entre cromossomas 3, 4 e 5
            •é preciso aumentar a pressão seletiva sobre os melhores
l   Módulo de Avaliação
                                                                           GA2-1
     Função de Avaliação:                  Função binária F 6
l   Módulo de População
     Técnica de Representação:             Binária 44 bits                 ICADEMO
     Técnica Inicialização da População:   Aleatória
     Técnica Eliminação da População:      Elimina todos
     Técnica de Reprodução:                Troca da geração
     Técnica de Seleção de Genitores:      Roleta
     é Técnica de Aptidão:                 Normalização Linear (100 a 1)
     Técnica de Parametrização:            Nenhuma
     Técnica de Elitismo:                  Nenhuma
         Population Size :                 100
         Total de Indivíduos:              4000
l   Módulo de Reprodução
     Técnica de Seleção de Operadores:     Use todos
     Operadores:                           Crossover 1 ponto & Mutação
         Taxa Mutação:                     0,008
         Taxa Crossover:                   0,65
     Técnica de Parametrização:            nenhuma




                                     Elitismo
     l   Melhor cromossoma de P(t) é copiado em
         P(t+1), após o mutação e crossover.
     l   Reduz o efeito aleatório do processo seletivo.
     l   Garante que o melhor indivíduo da próxima
         geração é melhor ou igual ao da geração
         anterior.
l   Módulo de Avaliação
                                                                              GA2-2
        Função de Avaliação:                  Função binária F 6
l   Módulo de População
        Técnica de Representação:             Binária 44 bits                 ICADEMO
        Técnica Inicialização da População:   Aleatória
        Técnica Eliminação da População:      Elimina todos
        Técnica de Reprodução:                Troca da geração
        Técnica de Seleção de Genitores:      Roleta
        é Técnica de Aptidão:                 Normalização Linear (100 a 1)
        Técnica de Parametrização:            Nenhuma
        é Técnica de Elitismo:                Copia o melhor
           Population Size :                  100
           Total de Indivíduos:               4000
l   Módulo de Reprodução
        Técnica de Seleção de Operadores:     Use todos
        Operadores:                           Crossover 1 ponto & Mutação
           Taxa Mutação:                      0,008
           Taxa Crossover:                    0,65
        Técnica de Parametrização:            nenhuma




                         Algoritmo Genético
                             Tradicional
    l    Representação Binária
    l    Reprodução com substituição da população
    l    Elitismo
    l    Normalização Linear
    l    Crossover de 1 ponto e Mutação
          – Algoritmo de partida em aplicações
          – Apresenta bom desempenho em vários problemas
Reprodução Steady State
 l    Substituição parcial de indivíduos a cada geração
      (mais elitista)
 l    Bons indivíduos (material genético) são preservados,
      garantindo mais chances de reprodução
 l    Método:
       – Crie n filhos (seleção+crossover+mutação)
       – Elimine os n piores membros da população
       – Avalie e introduza os filhos na população
 l    GAP = fração da população que é trocada
 l    valor de GAP determina relação entre exploitation e
      exploration




        Exemplo de Steady State
C19    120                          120             121
C18    110                          110             120
C17    100                          100             110
C16     99                           99             100
C15     95                           95              99
C14     81                           81              95
C13     76                           76             88
C12     67                           67              81
C11     58                           58              76
C10     44                           44              67
C9      42                           42              58
C8      36                           36             58
C7      22                           22              44
C6      20           38              38              42
C5      19           6               6              38
C4      17          121             121              36
C3      10           88              88              22
C2      8            58              58             17
C1      5            17              17              6
  avaliações       crie n      substitua os n      avaliações
  de P(t)          novos          piores           de P(t+1)
l   Módulo de Avaliação
                                                                           GA2-3
     Função de Avaliação:                  Função binária F 6
l   Módulo de População
     Técnica de Representação:             Binária 44 bits                 ICADEMO
     Técnica Inicialização da População:   Aleatória
     é Técnica Eliminação da População:    Elimina o último
     é Técnica de Reprodução:              Steady State
         Gap                               Testar de 5 em 5
     Técnica de Seleção de Genitores:      Roleta
     é Técnica de Aptidão:                 Normalização Linear (100 a 1)
     Técnica de Parametrização:            Nenhuma
         Population Size :                 100
         Total de Indivíduos:              4000
l   Módulo de Reprodução
     Técnica de Seleção de Operadores:     Use todos
     Operadores:                           Crossover 1 ponto & Mutação
         Taxa Mutação:                     0,008
         Taxa Crossover:                   0,65
     Técnica de Parametrização:            nenhuma




      Steady State sem Duplicados


     l   Substituição parcial de indivíduos com exclusão de
         duplicados
     l   Evita os duplicados que são mais frequentes com
         steady state (populações mais estáticas)
     l   Maior eficiência do paralelismo de busca,
         garantindo pop_size indivíduos diferentes
     l   Descendentes duplicados são desprezados
     l   Maior overhead para teste de igualdade
Novos Técnicas, Parâmetros
               e Operadores
     l Crossover de 2 pontos
     l Crossover Uniforme
     l   Operadores Independentes e Seleção
         de Operadores
     l   Interpolação dos Parâmetros




l   Módulo de Avaliação
                                                                             GA3-1 a
     Função de Avaliação:                  Função binária F 6
l   Módulo de População
                                                                             GA 3-3
     Técnica de Representação:             Binária 44 bits
     Técnica Inicialização da População:   Aleatória
     Técnica Eliminação da População:      Elimina o último
     Técnica de Reprodução:                Steady State s/ duplicados
         Gap                               Testar de 5 em 5
     Técnica de Seleção de Genitores:      Roleta
     Técnica de Aptidão:                   Normalização Linear (100 a 1)
     é Técnica de Parametrização:          Interpolar taxa de incremento (de 0,2 a 1,2)
         Population Size :                 100
         Total de Indivíduos:              4000
l   Módulo de Reprodução
     é Técnica de Seleção de Operadores:   Roleta
     é Operadores:                         Crossover Uniforme
     é                                     Mutação
         Taxa Mutação:                     0,04
         Taxa Crossover:                   0,8
     é Técnica de Parametrização:          Interpolar Pesos dos Operadores
     é                                     de (70 30) a (50 50)
Crossover de 2 Pontos
          l   Semelhante ao crossover de 1 ponto
          l   2 pontos são escolhidos aleatoriamente
          l   Crossover de 1 ponto não consegue combinar todos os padrões
              de dois genitores
P1        1     1       0   1   1       0      0       1      0   1       1   0       1   1
P2        0     0       0   1   0       1      1       0      1   1       1   1       0   0

                                            pontos de corte

P1        1     1       0   1   1       0      0       1      0   1       1   0       1   1
P2        0     0       0   1   0       1      1       0      1   1       1   1       0   0

F1        1     1       0   1   0       1      1       0      1   1       1   0       1   1
F2        0     0       0   1   1       0      0       1      0   1       1   1       0   0




                        Crossover Uniforme
          l   A contribuição de cada genitor é decidida
              aleatoriamente por um padrão
          l   Capacidade de combinar quaisquer padrões


     P1             1       0       0              1       0          1       1
     P2             0       1       0              1       1          0       1

Padrão              1       1       0              1       0          0           1


     F1
     F2
Operadores Independentes
l Determinados GAs podem incorporar diversos operadores
  genéticos.
l Operadores não devem ser usados todos, com a mesma
  intensidade, a cada fase da evolução ( por ex: mais crossover no
  início e mais mutação no final da evolução ).
l Uma roleta sorteia um operador a cada reprodução.
l Pesos (chances) dos operadores, iniciais e finais, e taxa de
  interpolação são parâmetros do algoritmo.
                                             OP4


                                           OP3
                                           OP2   OP1




l   Módulo de Avaliação
                                                                                   GA3-1
     Função de Avaliação:                          Função binária F 6
l   Módulo de População
     Técnica de Representação:                     Binária 44 bits                 ICADEMO
     Técnica Inicialização da População:           Aleatória
     Técnica Eliminação da População:              Elimina o último
     Técnica de Reprodução:                        Steady State s/ duplicados
         Gap                                       Testar de 5 em 5
     Técnica de Seleção de Genitores:              Roleta
     Técnica de Aptidão:                           Normalização Linear (100 a 1)
     Técnica de Parametrização:                    Nenhuma
         Population Size :                         100
         Total de Indivíduos:                      4000
l   Módulo de Reprodução
     é Técnica de Seleção de Operadores:           Roleta
     é Operadores:                                 Crossover 2 pontos
     é                                             Mutação
         Taxa Mutação:                             0,01
         Taxa Crossover:                           0,7
     Técnica de Parametrização:                    Nenhuma
     é Pesos                                       (50 50)
l        Módulo de Avaliação
                                                                                                                                                            GA3-2
             Função de Avaliação:                                                                Função binária F 6
l        Módulo de População
             Técnica de Representação:                                                           Binária 44 bits                                            ICADEMO
             Técnica Inicialização da População:                                                 Aleatória
             Técnica Eliminação da População:                                                    Elimina o último
             Técnica de Reprodução:                                                              Steady State s/ duplicados
                     Gap                                                                         Testar de 5 em 5
             Técnica de Seleção de Genitores:                                                    Roleta
             Técnica de Aptidão:                                                                 Normalização Linear (100 a 1)
             Técnica de Parametrização:                                                          Nenhuma
                     Population Size :                                                           100
                     Total de Indivíduos:                                                        4000
l        Módulo de Reprodução
             é Técnica de Seleção de Operadores:                                                 Roleta
             é Operadores:                                                                       Crossover Uniforme
             é                                                                                   Mutação
                     Taxa Mutação:                                                               0,01
                     Taxa Crossover:                                                             0,7
             Técnica de Parametrização:                                                          Nenhuma
             é Pesos                                                                             (50 50)




                                                        Desempenho
         l       Aspectos importantes:
                  – convergência do GA
                  – proximidade dos melhores cromossomas a um mínimo local
                  – diversidade da população
                  – valores dos parâmetros do GA
         l       Exemplo: variação da aptidão dos operadores durante evolução.

30                                                          30                                                         30

25                                                          25                                                         25
20                                                          20                                                         20                                        66
                                                                                                                                                                6 6
15                                                          15                                                         15
                                                                              6                       6                                                        6   6
10                                                          10                                                         10
                                                     6                       66                                   6                             6
 5        6               6 66                               5               6 6                                        5
 0       66                                                  0                                                          0
     1   2   3   4    5   6   7   8   9 10 11 12 13 14 15        1   2   3   4   5   6   7   8   9 10 11 12 13 14 15        1   2   3   4   5   6   7   8   9 10 11 12 13 14 15


 Início:                                                         Meio:                                                      Fim:
             Crossover                                                       Crossover                                                  Crossover
             Mutação                                                         Mutação                                                    Mutação
Interpolação de Parâmetros

    l    Consiste na variação dos valores dos parâmetros
         do GA durante a execução, de modo a alcançar
         maior desempenho.
    l    Parâmetros:
          –    taxa de crossover
          –    taxa de mutação
          –    taxa incremento da normalização da aptidão
          –    aptidão dos operadores
    l    Interpolação define:
          – valores inicial e final do parâmetro e frequência de ajuste.




l   Módulo de Avaliação
                                                                               GA3-3
     Função de Avaliação:                   Função binária F 6
l   Módulo de População
     Técnica de Representação:              Binária 44 bits                  ICADEMO
     Técnica Inicialização da População:    Aleatória
     Técnica Eliminação da População:       Elimina o último
     Técnica de Reprodução:                 Steady State s/ duplicados
         Gap                                Testar de 5 em 5
     Técnica de Seleção de Genitores:       Roleta
     Técnica de Aptidão:                    Normalização Linear (100 a 1)
     é Técnica de Parametrização:           Interpolar taxa de incremento (de 0,2 a 1,2)
         Population Size :                  100
         Total de Indivíduos:               4000
l   Módulo de Reprodução
     é Técnica de Seleção de Operadores:    Roleta
     é Operadores:                          Crossover Uniforme
     é                                      Mutação                               gráfico
         Taxa Mutação:                      0,01
         Taxa Crossover:                    0,7
     é Técnica de Parametrização:           Interpolar Pesos dos Operadores
     é                                      de (70 30) a (50 50)
Algoritmos Genéticos Híbridos

q   Consiste na construção de um GA inspirado no
    “algoritmo de otimização em uso” em determinado
    problema (se houver).

      Alg.
      Alg . Híbrido = Alg. Em Uso + Alg. Genético
                      Alg.          Alg.

q   Hibridizar:
    – Adotar REPRESENTAÇÃO em uso
    – Adaptar OPERADORES
    – Adotar HEURÍSTICAS de otimização




                   Vantagens

q   Modelo incorpora o conhecimento no domínio do
    problema;
q   Resulta num sistema mais familiar para o usuário;
q   Algoritmo em uso pode fornecer “sementes” para o
    GA, garantindo soluções melhores.
q   Novos operadores devem estar alinhados com a
    filosofia de GAs: recombinação e mutação
    – Crossover: recombinação de sub-partes de indivíduos
    – Mutação: variações globais ou locais para manter
      agitada a variedade genética




                                                            1
Representação por Números
               Reais
Cromossomas são estruturas contendo números reais.

 q   Hibridizando com “algoritmo em uso” para a
     otimização da função f6 (x,y)
 q   “Algoritmo em uso” ≡ Busca Exaustiva de x e y reais


     •Gera x e y ∈ ℜ aleatoriamente;
     •Calcula f6 para o par (x,y);
     •Salva (x,y) e f6(x,y);
     •Retorna a melhor avaliação se tempo esgotado;
                        avaliação
     •Retorna ao primeiro passo;




                      Hibridização

 q   Representação:
         Lista de Reais : (x,y)
 q   Avaliação:
         f6(x,y) real
 q   Inicialização:
         Números reais aleatórios
 q   Operadores Genéticos:
         Crossover e Mutação e
         Operadores inspirados no problema




                                                           2
Crossover

q   Cromossoma é uma lista de reais: (x,y)
q   Crossover de 1 ou 2 pontos ou Uniforme sobre lista:
q   Exemplo: Crossover Uniforme Problema com 4 variáveis

        P1 ≡ (x1, y1, t 1, z 1)           F1 ≡ (x2, y1, t 1, z 2)
                                  ➨
       P2 ≡ (x2, y2, t 2, z 2)            F2 ≡ ( x1, y2, t 2, z 1)
    Padr ão ≡ 0 1 1 0
    Padrã




           Crossover de Média

q   Cruzamento específico para o problema
q   Se dois cromossomas são promissores, a média de
    seus valores reais pode levar a uma melhor solução
    P1 ≡ (x1, y1)
                          ➨       F1 ≡ ( ( x1+x2)/2, ( y1+ y2)/2)
                                         (x          (y
    P2 ≡ (x2, y2)
q   A média entre dois valores pode resultar em valores
    mais próximos do valor desejado.




                                                                     3
Crossover de Média

q   Crossover aritmético é uma combinação linear de
    dois vetores (genitores) P1 e P2 na geração t:

                     F1 = a . P 1 + (1-a) P 2
                                    (1-
                     F2 = a . P 2 + (1-a) P 1
                                    (1-
q   a =cte
      =cte        : crossover uniforme
q   a =f(t)       : crossover não-uniforme (a depende
                    da idade da população)




                       Mutação

q   Mutação de real
    – substitui cada número real em um cromossoma por um
      número real aleatório (se teste probabilidade=TRUE)
       (x1, y1)         ➨       (x1, yrand)
q   Creep
    – busca uma solução próxima através de ajustes
      aleatórios em ambas as direções (+ e -)
        (x1, y1)  ➨      (x1 ± ∆ x, y1± ∆ y)
        ∆ ≡ pequeno ou grande




                                                            4
Creep - Método de Ajuste 1
              Xt + ∆ (máx - Xt) se bit sorteado =0
q   Xt+1 =
              Xt - ∆ (Xt - mín) se bit sorteado =1

máx e mín = limites do domínio de x


q ∆ (s) = s . rand
rand = número aleatório ∈ [0, p], p≤ 1
                                   ≤
q   O ajuste varia com o valor de p :
    se p = pequeno      ➨      ajuste menor
    se p = grande       ➨      ajuste maior




    Creep - Método de Ajuste 2
              Xt + ∆ (t, máx- Xt)          se bit sorteado =0
q Xt +1   =
              Xt - ∆ (t, Xt -mí n)         se bit sorteado =1

t= geração; máx e mín = limites do domínio de x .

q   ∆ (t, s) = s . ( 1 - rand        (1 - t/T) b )

rand = número aleatório ∈ [0,1]
T = número máximo de gerações
b = grau de dependência com o número da geração
q   A probabilidade de ∆ (t, s) ser próximo de zero
                                    pró
    aumenta com o número de gerações.
                   nú            gerações.




                                                                5
Creep - Método de Ajuste 2
∆ (t, s)                                        ∆ (t, s)
s                                             s

            t/T=0,50; b=2                                  t/T=0,90; b=2




                               1 rand                                      1          rand
      q    O operador busca uniformemente no espaço no
           início da evolução (t=pequeno), e mais localmente no
           final da evolução (t=grande)




q   Mód ulo de Av aliação
                                                                                 GA5-1
     ➩ Função de Avaliação:                   Função F6 real
q   Mód ulo de População
     ➩ T écnica de Representação:             Lista de números reais
     ➩ T écnica Inicialização da População:   Números reais aleatórios
     T écnica Eliminação da População:        Elimina o último
     T écnica de Reprodução:                  Steady State s/ duplicados
          Gap                                 Testar de 5 em 5
     T écnica de Seleção de Genitores:        Roleta
     T écnica de Aptidão:                     Normalização Linear (100 a 1)
     T écnica de Parametrização:              Interpolar taxa de incremento (0,2 a 1,2)
          Population Size:                    100
        Total de Indivíduos:                  4000
q   Mód ulo de Reprodução
     T écnica de Seleção de Operadores:       Roleta
     ➩ Operadores:                            Crossover Uniforme de Lista
     ➩                                        Crossover de Média
     ➩                                        Mutação de Número Real
     ➩                                        Creep ∆ pequeno
     ➩                                        Creep ∆ grande
     ➩ T écnica de Parametrização:            Interpolar Pesos dos Operadores
     ➩                                        de (10 40 10 30 10) a (10 20 0 40 30)




                                                                                             6
Binária x Reais
q   Representação dos genes por números reais (ponto flutuante) é mais
    adequada em problemas de otimização de parâmetros com v ariáveis sobre
    domínio contínuo;
q   Especialmente em grandes domínios onde a representação binária requer um
    longo cromossoma:
    Ex: 100 v ariáveis, [-500,500], 4 casas decimais ➨ 2400 bits
q   Representação por reais é mais rápida na execução;
q   Representação por reais of erece maior precisão (depende do computador);
q   Desempenho pode ser melhorado com operadores específicos ao problema;
q   Representação por reais tem a propriedade que dois pontos próximos um ao
    outro no espaço de representação, estão também próximos no espaço do
    problema;
q   Representação por reais evita Hamming Cliffs.




                                                                               7
Distância de Hamming

q   Rep. Binário        Valor Real
    C1 = 0 1 1 1 1 1       31
    C2 = 1 0 0 0 0 0       32
    ➨   distância = 6
q   Rep. Real           Valor Real
    C1 = 31                31
    C2 = 32                32
    ➨   distância = 1




                                     8
GA em Otimização
                 Combinatorial
     q   Problemas onde a busca da solução depende da
         avaliação de diversas combinações (ORDEM) dos
         elementos considerados

         –   Problem a do Caixeiro Viajante
         –   Problem as de Planejamento
         –   Problem as de Cronogram as
         –   Alocação de Salas
         –   Grafos: Colorir Particionar, Percorrer
                     Colorir,




     Problema de Colorir o Grafo

      índice
                 I-P                      1-5         2-8    3-4
                        peso


q   Regras:                               4-9         5-6    6-7

    – Colorir os nós do grafo de
      modo a maximizar a soma
      total dos pesos.                   7-13         8-10   9-15
    – Pares de nós conectados por
      um arco não podem possuir
      a mesma cor




                                                                    1
Algoritmo Guloso

q   Considera apenas uma das
    possíveis soluções,           1-5    2-8    3-4
    colorindo os nós em ordem
    decrescente de peso.
q   Nós em ordem                  4-9    5-6    6-7
    decrescente de peso:
    (9, 7, 8, 4, 2, 6, 5, 1, 3)
q   Solução Ótima p/ 1 cor:       7-13   8-10   9-15
    (9, 4, 2) ➨ ∑ Pi = 32




                  Algoritmo Guloso

q   Considera apenas uma das
    possíveis soluções,           1-5    2-8    3-4
    colorindo os nós em ordem
    decrescente de peso.
q   Nós em ordem                  4-9    5-6    6-7
    decrescente de peso:
    (9, 7, 8, 4, 2, 6, 5, 1, 3)
q   Solução Ótima p/ 1 cor:       7-13   8-10   9-15
    (9, 4, 2) ➨ ∑ Pi = 32




                                                       2
Algoritmo Guloso

q   Considera apenas uma das
    possíveis soluções,           1-5    2-8    3-4
    colorindo os nós em ordem
    decrescente de peso.
q   Nós em ordem                  4-9    5-6    6-7
    decrescente de peso:
    (9, 7, 8, 4, 2, 6, 5, 1, 3)
q   Solução Ótima p/ 1 cor:       7-13   8-10   9-15
    (9, 4, 2) ➨ ∑ Pi = 32




                  Algoritmo Guloso

q   Considera apenas uma das
    possíveis soluções,           1-5    2-8    3-4
    colorindo os nós em ordem
    decrescente de peso.
q   Nós em ordem                  4-9    5-6    6-7
    decrescente de peso:
    (9, 7, 8, 4, 2, 6, 5, 1, 3)
q   Solução Ótima p/ 2 cores:     7-13   8-10   9-15
    (9, 4, 2) e ( 7, 6, 5)
    ➨ ∑ Pi = 32 + 26




                                                       3
Aplicando o Algoritmo Guloso

q   Nós em ordem
    decrescente de peso:              2-8
                                                   1-12
    (7, 3, 4, 1, 6, 5, 2)


                              3-14                        6-10
                                            7-15




                                     4-13
                                                    5-9




    Aplicando o Algoritmo Guloso

q   Nós em ordem
    decrescente de peso:              2-8
                                                   1-12
    (7, 3, 4, 1, 6, 5, 2)

q   Algoritmo Guloso começa   3-14
                                            7-15          6-10
    e para no nó 7


                                     4-13
                                                    5-9




                                                                 4
Aplicando o Algoritmo Guloso

q   Nós em ordem
    decrescente de peso:                         2-8
                                                              1-12
    (7, 3, 4, 1, 6, 5, 2)


q   Soluções Ótimas:                     3-14
                                                       7-15          6-10
    – 1 cor: (1, 5, 3)
    – 2 cores: (2, 4, 6)

                                                4-13
                                                               5-9




        Características do Problema

    q   A modificação dos pesos, número de cores e arcos,
        altera radicalmente a solução do problema.
    q   Estratégias como o algoritmo guloso não funcionam
        bem para todos os problemas de colorir o grafo.
    q   Heurísticas (Ex: a valiar número de arcos ou pesos
        de nós vizinhos antes colorir um nó) podem não ser
        eficientes para grandes espaços de busca.
    q   Algoritmos Genéticos oferecem uma solução (sub-
        ótima ou ótima) para qualquer problema de colorir o
        grafo.




                                                                            5
Componentes de um Algoritmo Genético

                   1. Problema
                   2. Representação
                   3. Decodificação
                   4. Avaliação
                   5. Operadores
                   6. Técnicas
                   7. Parâmetros




     Tentando a Representação
              Binária
 q   Cada nó do grafo é representado por um campo
     (gene) no cromossoma:
     Símbolo do Campo ≡ Cor do nó
 q   Podemos usar a representação binária. Para apenas
     1 cor :
     0 ≡ não colorido   1 ≡ colorido    1-5     2-8      3-4
 Cromossoma ≡ 0 1 0 1 1 0 0 0 1
            Nó      1 2 3 4 5 6 7 8 9
                                        4-9    5-6       6-7



                                        7-13   8-10      9-15




                                                                6
Avaliando Representação
                  Binária
q   C é um cromossoma ILEGAL
                          ILEGAL.
q   Inicialização, crossover e mutação vão gerar soluções
    ilegais.
q   Seria necessário um módulo reparador de cromossomas
q   Representação binária permite soluções
     sub-ótimas:                           1-5            3-4
                                                    2-8
              C≡ 010100000
             Nó     1 2 3 4 5 6 7 8 9
                                                4-9      5-6       6-7

q   C ainda poderia ter o nó 6, ou 8 ou 9
    colorido e ser legal.                      7-13      8-10      9-15




        Representação Baseada em
                 Ordem
    q   GA Híbrido ≡ Técnicas de GA + Algoritmo Guloso
    q   Algoritmo Guloso:
        – Cria uma lista de nós (ordem decrescente de peso)
        – Constrói a solução: atribui ao próximo nó da lista uma cor
          legal
    q   Algoritmo Genético
        – Cria uma lista (nós em ordem qualquer)
        – Constrói a solução: atribui ao próximo nó da lista uma cor
          legal




                                                                          7
Exemplo

q   Cromossoma = lista
    C1 ≡(9, 7, 8, 4, 2, 6, 5, 1, 3)          1-5          2-8       3-4
    C2 ≡(2, 3, 7, 4, 9, 6, 5, 1, 8)
    C3 ≡(4, 5, 1, 2, 9, 6, 8, 7, 3)
                                             4-9          5-6       6-7
q   C1 C2 C3 resultam na
    solução ótima p/ 1 cor:
    (9, 4, 2) ➨ ∑ Pi = 32                   7-13          8-10      9-15
q   Informação codificada é a
    ordem relativa dos n ós
                        nó




         Operadores Genéticos
q   Testando o Crossover de 1 ponto:

                                  P1 ≡(9, 7, 8, 4, 2, 6, 5, 1, 3)
                                  P2 ≡(2, 6, 7, 4, 9, 3, 5, 1, 8)

                                  F1 ≡(9, 7, 8, 4, 2, 3, 5, 1, 8)
                                  F2 ≡(2, 6, 7, 4, 9, 6, 5, 1, 3)

q   Descendentes são cromossomas ilegais: nós
    repetidos e ausência de determinados nós.
q   Crossover e mutação devem garantir uma lista válida
    de todos os nós




                                                                           8
Modelagem do Algoritmo Genético
1. Problema
     • Problema de Colorir o Grafo
2. Representação
     • Permutação dos índices dos nós
3. Decodificação
     • Da esquerda para direita, atribui uma cor válida ao próximo nó
4. Avaliação
   • ∑ Pi
5. Operadores
   • Crossover Uniforme Baseado em Ordem
     q   Mutação por Embaralhamento




    Crossover Uniforme Baseado
            em Ordem
q   Dados dos genitores P1 e P2, , criar descendente F1;
q   Gere um padrão de bits do mesmo comprimento que os
    genitores;
q   Preencha F1, copiando o genitor P1 nas posições em que
    o padrão é igual a “1”;
q   Faça uma lista dos elementos de P1 associados com os
    bits “0” do padrão;
q   Permute estes elementos de modo que eles apareçam na
    mesma ordem em que aparecem em P2 ;
q   Preencha as lacunas de F1 com os elementos ordenados
    no passo anterior;




                                                                        9
Exemplo

  P1          1         2        3           4       5        6        7        8
  P2          8         6        4           2       7        5        3        1


Padrão        0         1        1           0       1        1        0        0

  F1          -         2        3           -       5        6        -        -
  F2          8         -        -           2       -        -        3        1

   Elementos de P 1 associados a “ 0”: 1, 4, 7, 8.       Ordenados segundo P 2 : 8, 4, 7, 1
   Elementos de P 2 associados a “ 1”: 6, 4, 7, 5.       Ordenados segundo P 1 : 4, 5, 6, 7

  F1          8         2        3           4       5        6        7        1
  F2          8         4        5           2       6        7        3        1




  Mutação por Embaralhamento

  q    Seleciona aleatoriamente uma sub-lista do
       cromossoma
  q    Embaralha sub-lista



                  1      2       3       4       5        6       7        8        9



                  1      2       3       6       4        8       7        5        9




                                                                                              10
q   Mód ulo de Av aliação
                                                                                 GA6-1
     ➩ Função de Avaliação:                   Avaliador do problema de
                                              colorir o grafo ∑ Pi
q   Mód ulo de População
     ➩ T écnica de Representação:             Lista de nós
     ➩ T écnica Inicialização da População:   Permutação aleatória
     T écnica Eliminação da População:        Elimina o último
     T écnica de Reprodução:                  Steady State s/ duplicados
         Gap                                  Testar de 5 em 5
     T écnica de Seleção de Genitores:        Roleta
     T écnica de Aptidão:                     Normalização Linear (100 a 1)
     T écnica de Parametrização:              Interpolar taxa de incremento (0,2 a 1,2)
         Population Size:                     100
        Total de Indivíduos:                  4000
q   Mód ulo de Reprodução
     T écnica de Seleção de Operadores:       Roleta
     ➩ Operadores:                            Crossover Uniforme Baseado em Ordem
     ➩                                        Mutação por Embaralhamento
     ➩ T écnica de Parametrização:            Interpolar Pesos dos Operadores
     ➩                                        de (60 40) a (30 70)




         Problema de Colorir o Grafo

     q   Grafo com 100 nós ➨ 100! permutações diferentes
     q   3 cores possíveis
     q   Listagem descreve o grafo através de:
              (índice_nó, peso (lista de nós conectados))

     (1      62 (20 58 74 82))
     (2      183 (6 12 20 28 29 32 51 53 70 79 84 94))
     (3      247 (18 24 33 50 88 92))
     ....................
     ...........
     (99 254 (29 52 53 67 75 80 84 89))
     (100 145 (15 20 22 29 34 44 60 87))




                                                                                          11
Busca Aleatória

q   Muitas vezes não temos como comparar os
    resultados obtidos por um GA.
q   Nestes casos, podemos usar a busca exaustiva
    como base de comparação.
q   Gera-se uma curva média de desempenho para a
    busca aleatória com o mesmo número de tentativas
    que o GA.
q   Um modelo de GA desempenhando abaixo da busca
    exaustiva deve prova velmente conter erros de
    modelagem e/ou programação.




                Busca Aleatória
procedure busca_aleatória
begin
   t=0                           ; primeira geração
   inicializa P(t)               ; população inicial aleatória
   av alia P(t)                  ; calcula f(i) p/ cada indivíduo
   salv a_melhor de P(t)         ; salva melhor indivíduo
while (not total_indivíduos) do
   begin
         t =t + 1                ; próxima geração
         inicializa P(t)         ; população aleatória
         av alia P(t)            ; calcula f(i) p/ cada indivíduo
         compara_melhor P(t) com melhor P(t-1)
         salv a_melhor
   end
end




                                                                    12
Resultados do GA 6-1
                         6-

q   GA 6-1 é em média 7,4% que a busca aleatória após
    4000 tentativas:
    – média GA 6-1= 10300 média busca aleatória=9600
                    10300;                      9600
q   GA 6-1 é em média 7,4% que a Algoritmo Guloso:
    – máximo do Alg. Guloso= 9590
q   GA 6-2 com pop_size=1200 e total_indivíduos=10000
    encontrou avaliação=10594
                        10594




                                                        13
GA em Otimização de
             Planejamento
q   Planejamento envolve:

           Procedimentos
           Recursos
           Tarefas
           Tempo
           Objetivos
           Restrições e condições

q   Otimizar:
     – “Alocar , no tempo, os recursos para a execução das
       tarefas, respeitando as restrições e condições, de modo
       a alcançar os objetivos do problema.”




                     Exemplos

     –   Problema do Caixeiro Viajante
     –   Otimização da Distribuição (Rota de veículos)
     –   Alocação de Salas; Timetabling
     –   Planejamento de Vôos de Cias Aéreas
     –   Otimização de Estoque/Produção
     –   Otimização da Produção Industrial




                                                                 1
Variáveis Típicas do
                  Planejamento
q   Restrições de Recursos
    – número de instâncias de cada recurso/máquina;
    – diferenças entre as instâncias (velocidade, tempo máximo de
      operação, capacidade etc).
    – paradas de manutenção
    – máquinas com programação especial: laminadores de aço (largura,
      espessura e dureza)
q   Restrições Temporais
    – horário de funcionamento preferenciais;
    – tempo de transporte de material entre máquinas
q   Reajuste das Máquinas
    – tarefas exigem setup de máquinas (automático ou manual).




               Variáveis Típicas do
                Planejamento (cont.)
    q   Prioridade
        – tarefas possuem prioridades diferentes (prazo de entrega,
          emergência, manutenção, tipo de cliente etc).
    q   Estoque
        – matéria prima: disponibilidade, ordem de desempilhamento
    q   Reprogramação
        – reprogramação das máquinas em casos de contingências
    q   Precedência
        – certas tarefas não podem ser programadas antes que outras
          tenham terminado.




                                                                        2
Características do
                  Planejamento
q   Há muitas condições e restrições que não podem ser ser
    expressas matematicamente;
q   Métodos de busca podem falhar devido aos requisitos de tempo;
q   Podar o espaço de busca reduz o tempo de execução mas limita
    desempenho;
q   Heurísticas são úteis para acelerar a busca;
q   GA é um técnica adequada a problemas mal estruturados como
    os de planejamento.




           Problema Simples de
        Planejamento de Produção
    q   90 tarefas: (a, b, c, d, e, f................)
    q   cada tarefa possui um peso associado a sua
        importância (lucro, prioridade, benefício etc)
    q   30 recursos: apenas uma instância de cada recurso
    q   tarefas requerem de 1 a 3 horas para execução
    q   programação para um total de 40 horas de produção
    q   algumas tarefas têm restrições nas primeiras 12 horas
        do planejamento
    q   Objetivo: maximizar a soma dos pesos das tarefas
        planejadas nas primeiras 40 horas




                                                                    3
Exemplo de Tarefas:                                  a..u
                Tempo de Execução de cada tarefa:                    1, 2 ou 3 horas
                Recursos requeridos por cada tarefa: “ . ” = recurso não requerido
                                                                  “ a” = recurso requerido
Tarefas         Tempo Execução                                   Recursos Utilizados pelas Tarefas

          a     3        .   a   .   . .   .   a   a   .   . . a          a       .       .       .   .   .   .   .   a   .   .   . . .
          b     1        .   .   b   . .   .   .   b   .   b . .          b       .       b       b   .   .   b   .   b   .   .   . . .
          c     3        .   .   c   . c   c   .   .   c   . . .          .       c       .       .   c   c   .   c   .   c   c   . . .
          d     3        .   .   d   . .   .   d   .   .   d . .          d       .       .       .   .   .   .   .   .   d   .   . . .
          e     3        .   .   .   . e   e   e   .   .   e . .          .       .       .       .   .   e   .   .   .   .   .   . . .
          f     1        .   f   .   f f   f   .   .   f   . . .          .       .       .       .   .   .   .   .   f   .   f   f f .
          g     3        g   .   g   . .   .   .   g   .   . . .          g       .       g       g   g   .   .   .   .   g   g   . g g
          h     2        h   .   .   . h   .   h   .   h   . h h          .       .       .       .   .   .   .   .   .   .   .   . . .
          i     1        .   .   .   i .   .   .   .   .   . i i          i       .       .       .   .   .   i   .   .   i   .   . . .
          j     1        .   .   .   . .   .   .   .   .   . . .          .       .       .       .   .   .   .   .   .   .   .   . j .
          k     1        .   .   k   k .   k   .   k   .   . . .          .       k       k       .   .   .   .   .   .   k   .   . . .
          l     1        l   .   .   . l   l   .   .   l   . . .          l       .       .       l   .   l   l   .   .   .   l   . . l
          m     3        .   .   .   . m   .   m   .   .   . m m          .       .       .       .   .   .   .   .   .   .   .   . m .
          n     2        .   .   .   . .   .   .   .   .   . . .          .       .       n       n   .   .   n   n   .   .   .   . . .
          o     3        .   o   o   . .   .   .   .   o   . . .          .       .       o       .   .   o   o   .   .   o   .   . . .
          p     1        .   .   .   . p   .   .   .   .   . p .          p       p       .       .   .   .   p   .   .   p   .   p . .
          q     3        .   .   .   q .   .   .   q   .   . . .          q       .       .       q   .   .   q   .   q   .   .   q . q
          r     1        r   .   .   . .   .   .   .   .   . r r          .       r       .       .   .   .   .   r   .   .   .   . . .
          s     3        .   .   .   s s   .   .   .   s   s . .          .       .       .       s   .   .   .   .   .   s   .   . . .
          t     1        t   .   .   . .   .   .   .   .   . . .          .       .       t       .   .   t   t   .   .   .   .   . . .
          u




                 Exemplo de Planejamento

        q       Planejamento parcial das tarefas em ordem alfabética

Tempo
  Hora      .    a   c   .   c   c   a a   c   .   .   a   a c   .    .       c       c       .   c   a   c   c   .   . .     .   .   .   .
   1             a   c   .   c   c   a a   c   .   .   a   a c   .    .       c       c       .   c   a   c   c   .   . .     .   .   .   .
   2        .    a   c   .   c   c   a a   c   .   .   a   a c   .    .       c       c       .   c   a   c   c   .   . .     .   .   .   .
   3             .   .   b   .   .   . .   b   .   b   .   . b   .    b       b       .       .   b   .   b   .   .   . .     .   .   .   .
   4        .    f   d   f   f   f   d .   f   d   .   .   d .   .    .       .       .       .   .   f   d   f   f   f .     f   .   f   d
   5        .    .   d   .   .   .   d .   .   d   .   .   d .   .    .       .       .       .   .   .   d   .   .   . .     .   .   .   d
   6        .    .   d   .   .   .   d .   .   d   .   .   d .   .    .       .       .       .   .   .   d   .   .   . .     .   .   .   d
   7        g    .   g   .   e   e   e g   .   e   .   .   g .   g    g       g       e       .   .   .   g   g   .   g g     e   .   .   e
   8        g    .   g   .   e   e   e g   .   e   .   .   g .   g    g       g       e       .   .   .   g   g   .   g g     e   .   .   e
   9        g    .   g   .   e   e   e g   .   e   .   .   g .   g    g       g       e       .   .   .   g   g   .   g g     e   .   .   e
   10       .    f   .   f   f   f   . .   f   .   .   .   . .   .    .       .       .       .   .   f   .   f   f   f .     f   .   f   .
   11       g    .   g   .   .   .   . g   .   .   .   .   g .   g    g       g       .       .   .   .   g   g   .   g g     .   .   .   .




                                                                                                                                              4
Modelagem do Algoritmo Genético

                      1. Problema
                      2. Representação
                      3. Decodificação
                      4. Avaliação
                      5. Operadores
                      6. Técnicas
                      7. Parâmetros




                  Representação

q   Cromossoma ≡ permutação (lista) de tarefas

    P1 = (a, b, c, d, e, . . . . t)
    P2 = (d, s, e, h, g, . . . . i)

q   cromossoma codifica a ordem e a vez (posição) nas
    quais as tarefas serão planejadas
q   requer decodificador ≡ construtor de planejamentos
    legais




                                                         5
Decodificador do Cromossoma

q   Constrói soluções LEGAIS
q   Concentra todo o conhecimento no domínio do
    problema: restrições, recursos, horários, etc.
q   Regra Principal:
    “Se uma tarefa está planejada na hora t, uma outra
      tarefa não pode ser planejada em t, exceto se a
      interseção dos recursos requisitados é vazia”




Decodificador do Cromossoma

1   Pega a primeira tarefa da lista;
2   Coloca a tarefa no planejamento a partir de t=0;
3   Pega próxima tarefa e procura colocá-la no
    planejamento, considerando as restrições presentes,
    a partir de t=0 até t=40 horas;
4   Vai para 3 se não terminou a lista.




                                                          6
P = (t, c, s, a)
                                                                                                                        Hora
t   .   .   .   .   .   .   .   .   .   .   .   .   .   t   .   .   t   t   .   .   .   .   .   .   .   .   .   .   .   1
                                                                                                                        2
                                                                                                                        3
                                                                                                                        4
                                                                                                                        5
                                                                                                                        6
                                                                                                                        7
                                                                                                                        8
                                                                                                                        9
                                                                                                                        10
                                                                                                                        11




                                    P = (t, c, s, a)
                                                                                                                        Hora
t   .   .   .   .   .   .   .   .   .   .   .   .   .   t   .   .   t   t   .   .   .   .   .   .   .   .   .   .   .   1
.   .   c   .   c   c   .   .   c   .   .   .   .   c   .   .   c   c   .   c   .   c   c   .   .   .   .   .   .   .   2
.   .   c   .   c   c   .   .   c   .   .   .   .   c   .   .   c   c   .   c   .   c   c   .   .   .   .   .   .   .   3
.   .   c   .   c   c   .   .   c   .   .   .   .   c   .   .   c   c   .   c   .   c   c   .   .   .   .   .   .   .   4
                                                                                                                        5
                                                                                                                        6
                                                                                                                        7
                                                                                                                        8
                                                                                                                        9
                                                                                                                        10
                                                                                                                        11




                                                                                                                               7
P = (t, c, s, a)
                                                                                                                Hora
t   .   .   . . .   .   .   .   .   .   .   .   .   t   . .   t   t   .   .   . .   .   .   .   .   .   .   .   1
.   .   c   . c c   .   .   c   .   .   .   .   c   .   . c   c   .   c   .   c c   .   .   .   .   .   .   .   2
.   .   c   . c c   .   .   c   .   .   .   .   c   .   . c   c   .   c   .   c c   .   .   .   .   .   .   .   3
.   .   c   . c c   .   .   c   .   .   .   .   c   .   . c   c   .   c   .   c c   .   .   .   .   .   .   .   4
.   .   .   s s .   .   .   s   s   .   .   .   .   .   s .   .   .   .   .   s .   .   .   .   s   .   .   .   5
        .   s s .   .   .   s   s   .   .   .   .   .   s .   .   .   .   .   s .   .   .   .   s   .   .   .   6
        .   s s .   .   .   s   s   .   .   .   .   .   s .   .   .   .   .   s .   .   .   .   s   .   .   .   7
                                                                                                                8
                                                                                                                9
                                                                                                                10
                                                                                                                11




              P = (t, c, s, a) ➨ 7 horas
                                                                                                                Hora
t   a   .   . . .   a   a   .   .   .   a   a   .   t   . .   t   t   .   a   . .   .   .   .   .   .   .   .   1
.   a   c   . c c   a   a   c   .   .   a   a   c   .   . c   c   .   c   a   c c   .   .   .   .   .   .   .   2
.   a   c   . c c   a   a   c   .   .   a   a   c   .   . c   c   .   c   a   c c   .   .   .   .   .   .   .   3
.   .   c   . c c   .   .   c   .   .   .   .   c   .   . c   c   .   c   .   c c   .   .   .   .   .   .   .   4
.   .   .   s s .   .   .   s   s   .   .   .   .   .   s .   .   .   .   .   s .   .   .   .   s   .   .   .   5
        .   s s .   .   .   s   s   .   .   .   .   .   s .   .   .   .   .   s .   .   .   .   s   .   .   .   6
        .   s s .   .   .   s   s   .   .   .   .   .   s .   .   .   .   .   s .   .   .   .   s   .   .   .   7
                                                                                                                8
                                                                                                                9
                                                                                                                10
                                                                                                                11




                                                                                                                       8
P = (t, a, s, c)
                                                                                                                        Hora
t   .   .   .   .   .   .   .   .   .   .   .   .   .   t   .   .   t   t   .   .   .   .   .   .   .   .   .   .   .   1
                                                                                                                        2
                                                                                                                        3
                                                                                                                        4
                                                                                                                        5
                                                                                                                        6
                                                                                                                        7
                                                                                                                        8
                                                                                                                        9
                                                                                                                        10
                                                                                                                        11




                                    P = (t, a, s, c)
                                                                                                                        Hora
t   a   .   .   .   .   a   a   .   .   .   a   a   .   t   .   .   t   t   .   a   .   .   .   .   .   .   .   .   .   1
.   a   .   .   .   .   a   a   .   .   .   a   a   .   .   .   .   .   .   .   a   .   .   .   .   .   .   .   .   .   2
.   a   .   .   .   .   a   a   .   .   .   a   a   .   .   .   .   .   .   .   a   .   .   .   .   .   .   .   .   .   3
                                                                                                                        4
                                                                                                                        5
                                                                                                                        6
                                                                                                                        7
                                                                                                                        8
                                                                                                                        9
                                                                                                                        10
                                                                                                                        11




                                                                                                                               9
P = (t, a, s, c)
                                                                                                                        Hora
t   a   .   s   s   .   a   a   s   s   .   a   a   .   t   s   .   t   t   .   a   s   .   .   .   .   s   .   .   .   1
.   a   .   s   s   .   a   a   s   s   .   a   a   .   .   s   .   .   .   .   a   s   .   .   .   .   s   .   .   .   2
.   a   .   s   s   .   a   a   s   s   .   a   a   .   .   s   .   .   .   .   a   s   .   .   .   .   s   .   .   .   3
                                                                                                                        4
                                                                                                                        5
                                                                                                                        6
                                                                                                                        7
                                                                                                                        8
                                                                                                                        9
                                                                                                                        10
                                                                                                                        11




                P = (t, a, s, c) ➨ 6 horas
                                                                                                                        Hora
t   a   .   s   s   .   a   a   s   s   .   a   a   .   t   s   .   t   t   .   a   s   .   .   .   .   s   .   .   .   1
.   a   .   s   s   .   a   a   s   s   .   a   a   .   .   s   .   .   .   .   a   s   .   .   .   .   s   .   .   .   2
.   a   .   s   s   .   a   a   s   s   .   a   a   .   .   s   .   .   .   .   a   s   .   .   .   .   s   .   .   .   3
.   .   c   .   c   c   .   .   c   .   .   .   .   c   .   .   c   c   .   c   .   c   c   .   .   .   .   .   .   .   4
.   .   c   .   c   c   .   .   c   .   .   .   .   c   .   .   c   c   .   c   .   c   c   .   .   .   .   .   .   .   5
.   .   c   .   c   c   .   .   c   .   .   .   .   c   .   .   c   c   .   c   .   c   c   .   .   .   .   .   .   .   6
                                                                                                                        7
                                                                                                                        8
                                                                                                                        9
                                                                                                                        10
                                                                                                                        11




                                                                                                                               10
Avaliação
    q   Uma possível função considera:
         – pesos das tarefas ➨ maximizar a soma das planejadas
         – restrições das tarefas ➨ penalizar se violação
         – período ➨ não planejar se além de t=40 horas



                   Ai = ∑ pt - ∑ pn + ∑ pp + ∑ pv/2
                         t        n          p        v

          –   pt      = pesos de todas as tarefas
          –   pn      = pesos das tarefas não planejadas
          –   pp      = pesos das tarefas planejadas
          –   pv      = pesos das tarefas que violaram restrição
    q   Ai ≥ 0; Ai = 0 ➨ nenhuma planejada; Ai = 2 ∑ pt ➨ todas




               Avaliando Operadores
q   Mutação Baseada em Ordem
q   Mutação Baseada em Posição
q   Mutação por Embaralhamento
q   Crossover Baseado em Ordem
q   Crossover Baseado em Posição
q   Recombinação de Adjacências

                               Aspectos importantes
        – Ordem Relativa
           • tarefas anteriores podem impedir o planejamento das tarefas
             posteriores
        – Posição da Tarefa
           • tarefas no início da lista têm maior chance de serem planejadas




                                                                               11
Avaliação de Desempenho

q   Avaliação dos Operadores isoladamente:
    – só mutação
    – só crossover
q   Combinando os Melhores Operadores
q   Busca Aleatória para comparar resultados
    – gera uma lista de tarefas e avalia
q   Espaço de Representação = 90! = 10138
q   Média de 50 Experimentos de 3000 Indivíduos:
    média dos melhores a cada instante




               Busca Aleatória




                                                   12
Mutação Baseada em Ordem

q   duas tarefas são selecionadas aleatoriamente e a
    segunda é colocada na frente da primeira
q   Exemplo:
    (a b c d e f)
     a                            (a b c d e f)
          ⇓                             ⇓
    (e a b c d f)
     e                            (a d b c e f)
q   operador preserva ordem relativa de parte do
    cromossoma




Mutação Baseada em Posição

q   troca as posições de duas tarefas escolhidas
    aleatoriamente
    (a b c d e f)
     a                            (a b c d e f)
          ⇓                             ⇓
    (e b c d a f)
     e                            (a d c b e f)


q   operador não preserva a ordem relativa das posições
    selecionadas em relação as tarefas do meio




                                                          13
Mutação por Embaralhamento

q   embaralha sub-lista escolhida aleatoriamente

    (a | b c d | e f)             (a b c | d e f |)
           ⇓                             ⇓
    (a | c d b | e f)             (a b c | f d e |)


q   operador tem maior poder de dispersão da
    população




       Resultados da Mutação

q   Testes sem crossover e com elitismo
q   Mutação é mais efetiva que busca aleatória
q   Mutação baseada em ordem é mais efetiva
q   Embaralhamento é melhor que busca aleatória
q   Operadores de mutação são heurísticos, por isso são
    melhores que busca aleatória




                                                          14
Resultados da Mutação




           Crossover de Ordem
q   Posições são selecionadas aleatoriamente
q   Ordem das tarefas nas posições selecionadas em um genitor é
    imposta nas tarefas correspondentes no outro genitor
    P1 =           a        b c     d       e       f g     h   i j
    P2 =           e        i b     d       f       a j    g    c h
    posições               ✶ ✶          ✶                 ✶

    F1 =       a       _    c   d   e   _       _ h   _ j
    F2 =       _       i    _   d   f   a       j g   _ _

    F1 =       a       i    c   d   e   b       f   h g    j
    F2 =       b       i    c   d   f   a       j   g e    h




                                                                      15
Crossover de Posição
q   Posições são selecionadas aleatoriamente
q   Posições das tarefas em um genitor são impostas nas tarefas
    correspondentes no outro genitor
     P1 =    a b c d e f g h i j
     P2 =    e i b d f a j g c h
    posições       ✶   ✶       ✶         ✶

    F1 =       _   i   b   _ f     _   _ g    _ _
    F2 =       _   b   c   _ e     _   _ h    _ _

    F1 =       a   i   b c     f d     e g   h j
    F2 =       i   b   c d     e f     a h   j g




Recombinação de Adjacências
q   Crossover combina a informação de adjacências entre as
    tarefas presentes nos genitores

    P1 =       a   b   c   d   e   f
    P2 =       b   d   c   a   e   f



    P1 ➩       ab bc cd de ef fa             informação de adjacência
    P2 ➩       bd dc ca ae ef fb             informação de adjacência

    F =        b c d e a f
    F ➩        bc cd de ea af fb             informação de adjacência




                                                                        16
Recombinação de Adjacências

q   Operador foi originalmente criado para o problema
    do Caixeiro Viajante (TSP)

                                 A        cidades
                          3Km
                                         7Km
    ADBCE             D              B          E
                          1Km
                           4Km            3Km

                                 C

q   No TSP temos:
     – informação de adjacência é importante
     – direção (ordem) entre 2 cidades não importa (A B = B A)




      Resultados do Crossover

q   Testes sem mutação e com elitismo (rápida evolução
    no início, nada acontece após 1000 indivíduos)
q   Crossover de ordem apresenta resultado equivalente
    ao de posição: são de fato o mesmo operador !!
q   Recombinação de Adjacências é equivalente a busca
    aleatória no problema de planejamento




                                                                 17
Resultados do Crossover




      Combinando Crossover e
             Mutação
1 Mutação de Ordem (50%) + Crossover de Ordem (50%)
2 Mutação de Ordem (50%) + Crossover de Posição (50%)
3 Mutação de Ordem (50%) + Recomb. de Adjacências (50%)

q   Curvas menos inclinadas no início e menos planas no final
q   Variando os pesos do crossover e mutação, pode-se melhorar o
    desempenho: aumentando-se a mutação e diminuindo-se o
    crossover, lentamente, durante a evolução.




                                                                   18
Crossover (50%) + Mutação (50%)




 Variando-se os Pesos de
  Crossover + Mutação




                                  19
Fundamentos Matemáticos

                 Como e porque Algoritmos
                   Genéticos funcionam?


             Teoria de Schema (John Holland 1975)
    “Schema é um padrão genético que descreve um conjunto
     de cromossomas do espaço de busca com similaridades
                    em certas posições”




                              Schema
q   Buscando padrões de jogadores de seleção

                                    Sexo   Idade    Gosto   Profissão



Gostam de
                     Médico
Futebol


    Jogadores
    da Seleção    > 30 anos     Feminino


     Masculino
Aptidão dos Padrões

  Sexo       Idade     Gosto   Profissão                Gostam de
                                                        Futebol Médico
                                           Aptidão
Masculino     I>30       X         X       baixa        Jogadores
                                                        da Seleção30 anos
                                                                >
                                                                        Feminino

Feminino       X         X         X       baixa
                                                         Masculino


Masculino     I<30       X         X       boa


    X          X        Sim     Médico     baixa




               Representação de um
                     Schema
    q    Utiliza-se um símbolo adicional:
                           ✴ = don’t care

    q    Exemplo:              H= 1 1 ✴

         H é um padrão que descreve todos os cromossomas do espaço
         2 3 , cujos os dois primeiros bits são iguais a ‘1’, não importando
         os demais.
Interpretação
q   f(x) = x2 , x ∈ 23
q   Seja o schema:
            schema:            H= 1 1 ✴
q   H refere-se a conjectura que a razão pela qual 111 e
    110 são bons cromossomas (ou não), são os dois
    bits mais significativos iguais a ‘1’, não importando os
    demais.
q   Para esta conjectura “podem” existir numa
    determinada população dois representantes: 110 e
    111.

q   110 e 111 “pertencem” a H= 1 1 ✴




         Número de Schemata
q   Seja o espaço de busca KL onde:
    K ≡ número de elementos do alfabeto de representação
    L ≡ comprimento do cromossoma


              ➨ Total de Schemata = (K+1) L

q   Exemplo: K=2; L=3

23 = 8 pontos
Total de Schemata = 27
Ordem de um Schema
q Ordem ou Especificidade O(H)
O(H) ≡ número de posições fixas (diferentes de *)
  presentes no schema

H= 0 1 1 ✴ 1 ✴ ✴                   O(H) =4

H= 0 ✴ ✴ ✴ ✴ ✴ ✴                   O(H) =1




 Comprimento de um Schema
q   δ(H) ≡ distância entre a primeira e a última posições
    específicas (diferentes de *) no schema.

H= 0 1 1 ✴ 1 ✴ ✴                    δ(H) =4

H= 0 ✴ ✴ ✴ ✴ ✴ ✴                    δ(H) =0
Representação Geométrica
 Schemata de Ordem 3: Pontos

                   110                                 111



      010                                     011




               100
                                                       101



        000                             001




Representação Geométrica
 Schemata de Ordem 2: Linhas

                   110            11✶
                                                       111
            ✶ 10                          ✶ 11
                            01✶
      010                                     011


                         1✶ 0                          1✶ 1
            0✶ 0                          0✶ 1

               100                10✶
                                                       101
            ✶ 00
                                                ✶ 01

        000                 00✶         001
Representação Geométrica
        Schemata de Ordem 1: Planos

                          110                               111

                                    ✶ 1✶
                010                                   011


                                         1✶ ✶
                        ✶✶ 0                      ✶ ✶1
                                0✶ ✶
                         100
                                                            101

                                    ✶ 0✶

                  000                           001




    Indivíduos Pertencentes ao
            um Schema
q   Um indivíduo pertence a um schema se para todas as
    L posições o símbolo do indivíduo é igual ao símbolo
    do schema, exceto nas posições onde o símbolo do
    schema é don’t care (✴).
q   Um schema possui 2L-O(H) indivíduos.
q   Exemplo: ✴ 1 ✴ possui 23-1 indivíduos
                                0   10
                                0   11
                                1   10
                                1   11
Indivíduos Pertencentes ao
               Schema
          Sch ema   I ndi ví du os
1          0 00         0 00
2          0 01         0 01
3           00 *        0 00         0 01
4          0 10         0 10
5          0 11         0 11
6           01 *        0 10         0   11
7           0* 0        0 00         0   10
8           0* 1        0 01         0   11
9           0 **        0 00         0   01   0 10     0 11
10         1 00         1 00
11         1 01         1 01
12          10 *        1 00         1 01
13         1 10         1 10
14         1 11         1 11
15          11 *        1 10         1   11
16          1* 0        1 00         1   10
17          1* 1        1 01         1   11
18          1 **        1 00         1   01   1 10     1 11
19          *0 0        0 00         1   00
20          *0 1        0 01         1   01
21          * 0*        0 00         0   01   1 00     1 01
22          *1 0        0 10         1   10
23          *1 1        0 11         1   11
24          * 1*        0 10         0   11   1   10   1   11
25          * *0        0 00         0   10   1   00   1   10
26          * *1        0 01         0   11   1   01   1   11
27          ***         0 00         0   01   0   10   0   11   1 00   10 1   11 0   11 1




     Schemata representados por
           um indivíduo
q    Um indivíduo representa 2L schemata.
q    Para cada uma das L posições de um indivíduo, define-se
     um schema diferente, usando o símbolo presente no
     indivíduo ou o símbolo ‘ ✴ ’.
q    Exemplo: 0 1 0 representa os seguintes schemata:
                                                  0 10
                                                  ✴1 0
                                                  0✴0
                                                  01✴
                                                  0✴✴
                                                  ✴1 ✴
                                                  ✴ ✴0
                                                  ✴✴✴
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico

Weitere ähnliche Inhalte

Andere mochten auch

A Brief Tour of Responsability Driven Design
A Brief Tour of Responsability Driven DesignA Brief Tour of Responsability Driven Design
A Brief Tour of Responsability Driven Designelliando dias
 
Assembling wall panels with robotic technologies
Assembling wall panels with robotic technologiesAssembling wall panels with robotic technologies
Assembling wall panels with robotic technologieselliando dias
 
Scrum in five minutes
Scrum in five minutesScrum in five minutes
Scrum in five minuteselliando dias
 
Scaling Rails with memcached
Scaling Rails with memcachedScaling Rails with memcached
Scaling Rails with memcachedelliando dias
 
How to Design Frameworks
How to Design FrameworksHow to Design Frameworks
How to Design Frameworkselliando dias
 
How To Build A Better Arduino
How To Build A Better ArduinoHow To Build A Better Arduino
How To Build A Better ArduinoAlastairDSilva
 
HTML5: The New html for the web
HTML5: The New html for the webHTML5: The New html for the web
HTML5: The New html for the webelliando dias
 
Programmable Matter with Modular Robots
Programmable Matter with Modular RobotsProgrammable Matter with Modular Robots
Programmable Matter with Modular Robotselliando dias
 
Model-Driven Software Development
Model-Driven Software DevelopmentModel-Driven Software Development
Model-Driven Software Developmentelliando dias
 
Gerenciamento de Projetos OO
Gerenciamento de Projetos OOGerenciamento de Projetos OO
Gerenciamento de Projetos OOelliando dias
 
Interfaces de Usuário Ubíquas - UUI
Interfaces de Usuário Ubíquas - UUIInterfaces de Usuário Ubíquas - UUI
Interfaces de Usuário Ubíquas - UUIelliando dias
 
Enabling White-Box Reuse in a Pure Composition Language
Enabling White-Box Reuse in a Pure Composition LanguageEnabling White-Box Reuse in a Pure Composition Language
Enabling White-Box Reuse in a Pure Composition Languageelliando dias
 
Representação de Números
Representação de NúmerosRepresentação de Números
Representação de Númeroselliando dias
 
hardware de um sistema de computação
hardware de um sistema de computaçãohardware de um sistema de computação
hardware de um sistema de computaçãoelliando dias
 
Linguagens de Transformação de Modelos
Linguagens de Transformação de ModelosLinguagens de Transformação de Modelos
Linguagens de Transformação de Modeloselliando dias
 
UML-Based Web Engineering
UML-Based Web EngineeringUML-Based Web Engineering
UML-Based Web Engineeringelliando dias
 
Gerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de SistemaGerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de Sistemaelliando dias
 
Banco De Dados Básico
Banco De Dados BásicoBanco De Dados Básico
Banco De Dados Básicoelliando dias
 

Andere mochten auch (20)

A Brief Tour of Responsability Driven Design
A Brief Tour of Responsability Driven DesignA Brief Tour of Responsability Driven Design
A Brief Tour of Responsability Driven Design
 
Assembling wall panels with robotic technologies
Assembling wall panels with robotic technologiesAssembling wall panels with robotic technologies
Assembling wall panels with robotic technologies
 
Scrum in five minutes
Scrum in five minutesScrum in five minutes
Scrum in five minutes
 
Scaling Rails with memcached
Scaling Rails with memcachedScaling Rails with memcached
Scaling Rails with memcached
 
Acme Total
Acme TotalAcme Total
Acme Total
 
How to Design Frameworks
How to Design FrameworksHow to Design Frameworks
How to Design Frameworks
 
How To Build A Better Arduino
How To Build A Better ArduinoHow To Build A Better Arduino
How To Build A Better Arduino
 
HTML5: The New html for the web
HTML5: The New html for the webHTML5: The New html for the web
HTML5: The New html for the web
 
Programmable Matter with Modular Robots
Programmable Matter with Modular RobotsProgrammable Matter with Modular Robots
Programmable Matter with Modular Robots
 
Model-Driven Software Development
Model-Driven Software DevelopmentModel-Driven Software Development
Model-Driven Software Development
 
Gerenciamento de Projetos OO
Gerenciamento de Projetos OOGerenciamento de Projetos OO
Gerenciamento de Projetos OO
 
Interfaces de Usuário Ubíquas - UUI
Interfaces de Usuário Ubíquas - UUIInterfaces de Usuário Ubíquas - UUI
Interfaces de Usuário Ubíquas - UUI
 
Enabling White-Box Reuse in a Pure Composition Language
Enabling White-Box Reuse in a Pure Composition LanguageEnabling White-Box Reuse in a Pure Composition Language
Enabling White-Box Reuse in a Pure Composition Language
 
Representação de Números
Representação de NúmerosRepresentação de Números
Representação de Números
 
hardware de um sistema de computação
hardware de um sistema de computaçãohardware de um sistema de computação
hardware de um sistema de computação
 
Linguagens de Transformação de Modelos
Linguagens de Transformação de ModelosLinguagens de Transformação de Modelos
Linguagens de Transformação de Modelos
 
Robótica Móvel
Robótica MóvelRobótica Móvel
Robótica Móvel
 
UML-Based Web Engineering
UML-Based Web EngineeringUML-Based Web Engineering
UML-Based Web Engineering
 
Gerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de SistemaGerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de Sistema
 
Banco De Dados Básico
Banco De Dados BásicoBanco De Dados Básico
Banco De Dados Básico
 

Ähnlich wie Algoritmo Genetico

Algoritmos Genéticos - Trabalho de Inteligência Computacional
Algoritmos Genéticos - Trabalho de Inteligência ComputacionalAlgoritmos Genéticos - Trabalho de Inteligência Computacional
Algoritmos Genéticos - Trabalho de Inteligência ComputacionalLucas Damasceno
 
Interligados Apresentação 1
Interligados   Apresentação 1Interligados   Apresentação 1
Interligados Apresentação 1Hugo Leonardo
 
Trabalho nº9
Trabalho nº9Trabalho nº9
Trabalho nº9Rui Lopes
 
Trabalho nº8
Trabalho nº8Trabalho nº8
Trabalho nº8Rui Lopes
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compactoLuciano Ramalho
 
Dominando Modelos Ocultos de Markov com Python e GHMM
Dominando Modelos Ocultos de Markov com Python e GHMMDominando Modelos Ocultos de Markov com Python e GHMM
Dominando Modelos Ocultos de Markov com Python e GHMMDaker Fernandes
 
Apresentação_Introducao_e_Programacao_Linear.ppt
Apresentação_Introducao_e_Programacao_Linear.pptApresentação_Introducao_e_Programacao_Linear.ppt
Apresentação_Introducao_e_Programacao_Linear.pptMairaLuizaSpanholi
 
Treinamento MLOps Databricks 2023
Treinamento MLOps Databricks 2023Treinamento MLOps Databricks 2023
Treinamento MLOps Databricks 2023Douglas Mendes
 
Genetic Algorithm Applied In Travel Salesman Problem
Genetic Algorithm Applied In Travel Salesman ProblemGenetic Algorithm Applied In Travel Salesman Problem
Genetic Algorithm Applied In Travel Salesman Problemmarcelobeckmann
 
Geração de Números Aleatórios
Geração de Números AleatóriosGeração de Números Aleatórios
Geração de Números AleatóriosSimulação
 
Dia a dia do Cientista de Dados
Dia a dia do Cientista de DadosDia a dia do Cientista de Dados
Dia a dia do Cientista de DadosDiego Nogare
 
Desenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas BasicasDesenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas BasicasVitor Silva
 
OMR (Optical Mark Recognition) with PHP
OMR (Optical Mark Recognition) with PHPOMR (Optical Mark Recognition) with PHP
OMR (Optical Mark Recognition) with PHPJansen Felipe
 

Ähnlich wie Algoritmo Genetico (20)

Algoritmos Genéticos
Algoritmos GenéticosAlgoritmos Genéticos
Algoritmos Genéticos
 
Minicurso Java && Cl
Minicurso Java && ClMinicurso Java && Cl
Minicurso Java && Cl
 
Algoritmos Genéticos - Trabalho de Inteligência Computacional
Algoritmos Genéticos - Trabalho de Inteligência ComputacionalAlgoritmos Genéticos - Trabalho de Inteligência Computacional
Algoritmos Genéticos - Trabalho de Inteligência Computacional
 
Interligados Apresentação 1
Interligados   Apresentação 1Interligados   Apresentação 1
Interligados Apresentação 1
 
Trabalho nº9
Trabalho nº9Trabalho nº9
Trabalho nº9
 
Trabalho nº8
Trabalho nº8Trabalho nº8
Trabalho nº8
 
Manual lindo 6.1
Manual lindo 6.1Manual lindo 6.1
Manual lindo 6.1
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
 
var_copulas
var_copulasvar_copulas
var_copulas
 
Dominando Modelos Ocultos de Markov com Python e GHMM
Dominando Modelos Ocultos de Markov com Python e GHMMDominando Modelos Ocultos de Markov com Python e GHMM
Dominando Modelos Ocultos de Markov com Python e GHMM
 
Apresentação_Introducao_e_Programacao_Linear.ppt
Apresentação_Introducao_e_Programacao_Linear.pptApresentação_Introducao_e_Programacao_Linear.ppt
Apresentação_Introducao_e_Programacao_Linear.ppt
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Introducao a otimizacao
Introducao a otimizacaoIntroducao a otimizacao
Introducao a otimizacao
 
Treinamento MLOps Databricks 2023
Treinamento MLOps Databricks 2023Treinamento MLOps Databricks 2023
Treinamento MLOps Databricks 2023
 
Genetic Algorithm Applied In Travel Salesman Problem
Genetic Algorithm Applied In Travel Salesman ProblemGenetic Algorithm Applied In Travel Salesman Problem
Genetic Algorithm Applied In Travel Salesman Problem
 
Geração de Números Aleatórios
Geração de Números AleatóriosGeração de Números Aleatórios
Geração de Números Aleatórios
 
Dia a dia do Cientista de Dados
Dia a dia do Cientista de DadosDia a dia do Cientista de Dados
Dia a dia do Cientista de Dados
 
Desenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas BasicasDesenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas Basicas
 
OMR (Optical Mark Recognition) with PHP
OMR (Optical Mark Recognition) with PHPOMR (Optical Mark Recognition) with PHP
OMR (Optical Mark Recognition) with PHP
 
Big data
Big dataBig data
Big data
 

Mehr von elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

Mehr von elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Algoritmo Genetico

  • 1. Componentes de um Algoritmo Genético 1. Problema 2. Representação 3. Decodificação 4. Avaliação 5. Operadores 6. Técnicas 7. Parâmetros 1. PROBLEMA GAs são indicados em problemas complexos de otimização- onde se busca uma solução melhor: : ® muitos parâmetros e variáveis; ® mal estruturados: com condições e restrições, difíceis de serem modeladas matematicamente; ® grandes espaços de busca onde não é possível a busca exaustiva.
  • 2. 2. REPRESENTAÇÃO Representação é fundamental na modelagem de um GA e deve: ® descrever o espaço de busca relevante ao problema; ® codificar geneticamente a “essência” do problema: evolução do “código” evolução da solução ® ser compatível com os operadores (crossover e mutação) representação adequada sucesso, evolução 2. REPRESENTAÇÃO Método de Solução ↔ Representação – Numérico – Binário, Real – Ordem – Lista – Grupo – Vetor – Inteiro – Inteiro – Misto – Ex: Real e Ex: Lista
  • 3. BINÁRIO CODIFICANDO REAL O binário é um contador de unidades de precisão Aspectos importantes: ¬variáveis do problema (x1 , x2 , ... , xt ) ¬domínio de valores: xi ∈ (míni, máxi) em R ¬precisão: p casas decimais (máxi-míni)x10p diferentes soluções domínio de xi míni máxi Precisão è 1/10p Representação: k1 bits k2 bits ... kt bits x1 x2 xt onde, 2k i ≥ (máxi-míni)x10p Precisão = (máxi-míni) 2k i - 1 Decodificação para Real: xi real = xi bin .(máxi-míni) + míni ________ 2k i - 1 se xibin=(0 0 ... 0) xi real = míni se xibin=(1 1 ... 1) xi real = máxi
  • 4. REPRESENTAÇÃO BINÁRIA ® simples de criar e manipular ® produz bons resultados ® facilita aplicações de operadores ® fácil decodificação numérica ( inteiro,real ) ® facilita a demonstração de teoremas ® porém, nem sempre é adequada 3. DECODIFICAÇÃO Construir a solução para o problema a partir de um cromossoma: Cromossomas “representam” soluções. Cromossoma Transformação Solução 0011011 bin inteiro x=27 0011011 x=27 x 10/27 -1 x=2,1 x ∈[0,10] 1 casa decimal A cidades 3Km ADBCE D 7Km A→D→B→C→E 1Km B E 4Km 3Km (Σ dist.=18) C
  • 5. 4. AVALIAÇÃO Elo entre o algoritmo genético e o problema . f(cromossoma) = medida numérica de aptidão Chances de seleção são proporcionais à aptidão. f(i) n ∑ f(j) j= 1 5. OPERADORES Atuam no processo de criação de novos indivíduos (descendentes): 1. Crossover 2. Mutação 3. Inversão 4. Operadores específicos ao problema
  • 6. 6. TÉCNICAS - Técnicas de Representação - Técnicas de Inicialização da População - Técnicas de Eliminação da População Antiga - Técnicas de Reprodução - Técnicas de Seleção de Genitores - Técnicas de Aptidão - Técnicas de Parametrização - Técnicas de Elitismo - Técnicas de Seleção de Operadores 7. PARÂMETROS - TAMANHO_POPULAÇÃO - TOTAL_INDIVÍDUOS - NÚMERO_GERAÇÕES - TAXA_CROSSOVER - TAXA_MUTAÇÃO - APTIDÃO_OPERADORES - ETC.
  • 7. Desenvolvimento de um Algoritmo Genético procedure algoritmo_genético begin t=0 ; primeira geração inicializa P(t) ; população inicial aleatória avalia P(t) ; calcula f(i) p/ cada indivíduo while (not condição_parada) do begin t=t+1 ; próxima geração seleciona P(t) de P(t-1) altera P(t) ; crossover e mutação avalia P(t) ; calcula f(i) p/ cada indivíduo end end Sistemas de Desenvolvimento l ICADEMO l Genesis, Genesys l WinGenesis l GENOCOP l GeneHunter l Evolver 4.0 l Escapade l Sugal l Bibliotecas específicas (C, Pascal, etc) – TNA/C++,
  • 8. Algoritmos Genéticos l Exemplos GA1-1 a GA6-1 l Especificação de técnicas e parâmetros por módulos: – Módulo de Avaliação – Módulo de População – Módulo de Representação l Módulo de Avaliação GA1-1 Função de Avaliação: Função binária F 6 l Módulo de População Técnica de Representação: Binária 44 bits Técnica Inicialização da População: Aleatória Técnica Eliminação da População: Elimina todos Técnica de Reprodução: Troca da geração Técnica de Seleção de Genitores: Roleta Técnica de Aptidão: Aptidão é a avaliação Técnica de Parametrização: Nenhuma Técnica de Elitismo: Nenhuma Population Size: 100 Total de Indivíduos: 4000 l Módulo de Reprodução Técnica de Seleção de Operadores: Use todos Operadores: Crossover 1 ponto & Mutação Taxa Mutação: 0,008 Taxa Crossover: 0,65 Técnica de Parametrização: nenhuma
  • 9. Função F6 Função F6(x,y) 1 F6(x,0) 0,9 0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0 -100 - 50 0 50 100 x
  • 10. Características da F6 F6(x,y) = 0,5 - (sen √ x2 + y2 )2 - 0,5 (1,0 + 0,001 (x2 + y2 ))2 l Objetivo: Maximizar F6 l Uma única solução ótima: F6(0,0)=1 l Difícil de otimizar: vários mínimos locais Representação l Binária codificando real l 2 Variáveis: x, y l Domínio: x,y ∈ [-100, +100] l Precisão: 4 a 5 casas decimais 6 7 l log2 2x10 ó Ki ó log2 2x10 l Ki=22 Ô total de 44 bits
  • 11. Exemplo l Cromossoma: 00001010000110000000011000101010001110111011 l Dividido em x e y: 0000101000011000000001 1000101010001110111011 l Convertidos para base 10: 165377 e 2270139 l Multiplicados por: 200/222-1 7,885791751335085 e 108,24868875710696 l Subtraídos de mín: x=-92,11420824866492 e y=8,248688757106959 l Aplicados a F6(x,y): F6(x,y)=0,5050708 Módulo de População l Técnica Inicialização da População: Aleatória Ü Geração aleatória de palavras de 44 bits l Técnica Eliminação da População: Elimina todos Ü Elimina pop_size indivíduos da população anterior l Técnica de Reprodução: Troca da geração Ü Reproduz pop_size indivíduos para a nova população l Técnica de Aptidão: Aptidão é a avaliação Ü Aptidão é numericamente igual à avaliação l Técnica de Seleção de Genitores: Roleta
  • 12. Parâmetros l Tamanho da População: Exemplo pop_size 100 l Número de Gerações: num_ger 40 l Total de Indivíduos: total_ind = pop_size x num_ger 4000 Parâmetros l Tamanho da População: Exemplo pop_size 1000 l Número de Gerações: num_ger 4 l Total de Indivíduos: total_ind = pop_size x num_ger 4000
  • 13. Parâmetros l Tamanho da População: Exemplo pop_size 10 l Número de Gerações: num_ger 400 l Total de Indivíduos: total_ind = pop_size x num_ger 4000 Seleção pela Roleta Objetivo: Selecionar indivíduos aleatoriamente, proporcionando maiores chances de reprodução aos mais aptos. Método por Computador l Encontre a soma da aptidão de todos os membros da população AT= ∑ Ai (0 ó i ó pop_size-1) l Gere um número aleatório 0 ó rand ó AT l Pegue o primeiro membro da população Ik cuja aptidão somada às aptidões dos membros precedentes é maior ou igual a rand. ∑ Ai ò rand (i < k)
  • 14. Exemplo da Roleta Cromossoma 1 2 3 4 5 6 7 8 9 10 Aptidão 8 2 17 7 2 12 11 7 3 7 ∑ Ai 8 10 27 34 36 48 59 66 69 76 Número Aleatório 23 49 76 13 1 27 57 Selecionado 3 7 10 3 1 3 7 1 2 3 4 5 6 7 8 9 10 8 2 17 7 2 12 11 7 3 7 8 10 27 34 36 48 59 66 69 76 Módulo de Reprodução l Técnica de Seleção de Operadores: Use todos Ü Use o primeiro operador da lista de operadores l Operadores: Crossover & Mutação – Taxa Mutação: 0,008 – Taxa Crossover: 0,65 l Valores ideais das taxas são obtidos experimentalmente
  • 15. Mutação l Troca cada gene de um cromossoma se o teste de probabilidade for verdadeiro l Taxa Mutação: 0,8% (0,008) – Teste Verdadeiro Ô troca bit – Teste Falso Ô mantém Cromossoma Número Aleatório Novo Cromossoma 1 0 1 0 0,801 0,102 0,266 0,373 1 0 1 0 1 1 0 0 0,128 0,96 0,005 0,84 1 1 1 0 0 0 1 0 0,768 0,473 0,894 0,001 0 0 1 1 Crossover l Partes de dois cromossomas genitores são trocadas a partir de uma posição escolhida aleatoriamente l Taxa de Crossover : 65% – Teste Verdadeiro Ô Efetua Cruzamento – Teste Falso Ô Copia os Genitores P1 1 0 1 1 0 1 P2 0 0 1 1 0 0 F1 1 0 1 1 0 0 F2 0 0 1 1 0 1 ponto de corte aleatórioÚ
  • 16. Evolução X Convergência l Crossover: – acelerador do processo de busca – tira proveito das soluções mais promissoras l Mutação – operador exploratório – dispersa a população pelo espaço de busca l Convergência (causas): – população com indivíduos muito similares – não há mais evolução: • ótimo encontrado ou convergência prematura (mínimo local) – para continuar a evoluir é preciso introduzir mais diversidade na população Análise de Desempenho l Melhor de um Experimento (valor) l Curva dos Melhores por Geração l Curva da Média de Melhores de Vários Experimentos
  • 17. Média de Experimentos l Calcula a média dos melhores indivíduos por geração em vários experimentos. l Mede o desempenho do GA em encontrar uma solução melhor na geração seguinte l GAs são estocásticos: desempenho varia a cada experimento l São necessários muitos experimentos para se conhecer o desempenho médio do modelo de GA. e A(t) = ∑ Ae (t) 1 ó e ó #_Experimentos #_Experimentos t: geração Ae(t): aptidão do melhor indivíduo em t no experimento e A(t): média em #_Experimentos das aptidões dos melhores indivíduos a cada geração t Média de Experimentos Experimentos Melhores nas gerações 1a. 2a. 3a. 4a. Média ger 1 0,6 0,5 0,8 0,5 0,60 ger 2 0,7 0,5 0,8 0,7 0,68 ger 3 0,7 0,6 0,9 0,7 0,73 ger 4 0,8 0,6 0,9 0,8 0,78 Média de Experimentos 1,00 Avaliação 0,50 0,00 1 2 3 4 5 Experimentos
  • 18. Característica da Curva de Desempenho •bom desempenho no início da evolução •pouco ou nenhum desempenho no final Curva da Média de Experimentos Aptidão A(t) 30000 25000 20000 15000 10000 5000 0 1 5 9 13 17 21 25 29 33 37 41 45 49 Gerações Curva Média de Experimentos para F6(x,y) l Usamos o número de dígitos 9 após o ponto decimal para distinguir avaliações muito próximas de 1,00 . l Exemplo: Avaliação dígitos 9 0,99873578 2 0,82435787 0 0,99995432 4
  • 19. ICADEMO l Módulo de Avaliação GA1-1 Função de Avaliação: Função binária F 6 l Módulo de População Técnica de Representação: Binária 44 bits ICADEMO Técnica Inicialização da População: Aleatória Técnica Eliminação da População: Elimina todos Técnica de Reprodução: Troca da geração Técnica de Seleção de Genitores: Roleta Técnica de Aptidão: Aptidão é a avaliação Técnica de Parametrização: Nenhuma Técnica de Elitismo: Nenhuma Population Size : 100 Total de Indivíduos: 4000 l Módulo de Reprodução Técnica de Seleção de Operadores: Use todos Operadores: Crossover 1 ponto & Mutação Taxa Mutação: 0,008 Taxa Crossover: 0,65 Técnica de Parametrização: nenhuma
  • 20. Novas Técnicas e Parâmetros l Técnicas de Aptidão l Elitismo l Reprodução Steady State l Ajuste dos Parâmetros l Módulo de Avaliação GA2-1 a Função de Avaliação: Função binária F 6 l Módulo de População GA2-5 Técnica de Representação: Binária 44 bits Técnica Inicialização da População: Aleatória é Técnica Eliminação da População: Elimina o último é Técnica de Reprodução: Steady State s/ duplicados Técnica de Seleção de Genitores: Roleta é Técnica de Aptidão: Normalização Linear (100 a 1) Técnica de Parametrização: Nenhuma Técnica de Elitismo: Nenhuma Population Size : 100 Total de Indivíduos: 4000 l Módulo de Reprodução Técnica de Seleção de Operadores: Use todos Operadores: Crossover 1 ponto & Mutação é Taxa Mutação: 0,04 é Taxa Crossover: 0,8 Técnica de Parametrização: nenhuma
  • 21. Medida de Aptidão l O que ocorre se alterarmos a F6 para: F6 (x,y) = 0,5 - (sen √ x2 + y2 )2 - 0,5 (1,0 + 0,001 (x 2 + y2 ))2 Medida de Aptidão l O que ocorre se alterarmos a F6 para: F6Elevada(x,y) = 999,5 - (sen √ x2 + y2 )2 - 0,5 (1,0 + 0,001 (x 2 + y2 ))2 l Formato F6 = formato F6 elevada l Melhor cromossoma para F6 = melhor para F6 elevada l Avaliação de F6 elevada = avaliação F6 + 999 è Todavia, GA 1-1 para F6Elevada não apresenta desempenho algum. è PORQUE?
  • 22. Aptidão = Avaliação Ai = fi : aptidão do indivíduo i pi = Ai/ AT = fi / ∑ fJ : chances de seleção de I há pop_size sorteios, então Di = pi x pop_size = (fi x pop_size) / ∑ fJ = Di = fi / fAV : número provável de sorteios de i, ou número de descendentes na próxima geração l F6 avaliação l F6 Elevada avaliação best 0,979 best 999,979 worst 0,066 worst 999,066 average 0,514 average 999,514 l Dbest = 1,905 l Dbest = 1,0005 l Dworst = 0,128 l Dworst = 0,9996 è forte pressão seletiva em è melhor e pior cromossomas favor do melhor vão gerar o mesmo número de descendentes O efeito da seleção é quase nulo porque as avaliações estão relativamente muito próximas. .
  • 23. Técnicas de Aptidão l Aptidão é a Avaliação Ai = fi Exemplo: Ai = 999,979 l Windowing – subtrair uma constante dos valores de fi l Normalização Linear – atribuir valores a Ai baseados no rank do cromossoma Windowing l Obtenha a avaliação mínima na população. l Atribua a cada cromossoma I uma aptidão igual a: Ai = (f i - Amín) l Opcionalmente, atribua uma aptidão mínima de “sobrevivência”, maior que a aptidão mínima calculada, como garantia de reprodução para os cromossomas menos aptos. l Exemplo: Ai = (999,979 - 999,066)= 0,913
  • 24. Normalização Linear l Coloque os pop_size cromossomas em ordem decrescente de avaliação (i=1 é o menos apto). l Crie aptidões, partindo de um valor mín e crescendo linearmente até o valor máx. l Os valores de máx e mín (ou a constante de incremento) são parâmetros da técnica. Ai = mín + (máx - mín) x (i - 1) pop_size - 1 l Quanto maior a constante de incremento, maior a pressão seletiva sobre os melhores. Exemplo Comparativo Rank dos cromossomas 6 5 4 3 2 1 Avaliação original 200 9 8 7 4 1 Aptidão é avaliação 200 9 8 7 4 1 Normalização Linear, taxa=10 60 50 40 30 20 10 Normalização Linear, taxa=20 101 81 61 41 21 1 Windowing 199 8 7 6 3 0 • SUPER INDIVÍDUO: cromossoma 6 •poucas chance de recombinação com outros indivíduos; elimina competidores em poucas gerações; rápida convergência. • COMPETIÇÃO PRÓXIMA: entre cromossomas 3, 4 e 5 •é preciso aumentar a pressão seletiva sobre os melhores
  • 25. l Módulo de Avaliação GA2-1 Função de Avaliação: Função binária F 6 l Módulo de População Técnica de Representação: Binária 44 bits ICADEMO Técnica Inicialização da População: Aleatória Técnica Eliminação da População: Elimina todos Técnica de Reprodução: Troca da geração Técnica de Seleção de Genitores: Roleta é Técnica de Aptidão: Normalização Linear (100 a 1) Técnica de Parametrização: Nenhuma Técnica de Elitismo: Nenhuma Population Size : 100 Total de Indivíduos: 4000 l Módulo de Reprodução Técnica de Seleção de Operadores: Use todos Operadores: Crossover 1 ponto & Mutação Taxa Mutação: 0,008 Taxa Crossover: 0,65 Técnica de Parametrização: nenhuma Elitismo l Melhor cromossoma de P(t) é copiado em P(t+1), após o mutação e crossover. l Reduz o efeito aleatório do processo seletivo. l Garante que o melhor indivíduo da próxima geração é melhor ou igual ao da geração anterior.
  • 26. l Módulo de Avaliação GA2-2 Função de Avaliação: Função binária F 6 l Módulo de População Técnica de Representação: Binária 44 bits ICADEMO Técnica Inicialização da População: Aleatória Técnica Eliminação da População: Elimina todos Técnica de Reprodução: Troca da geração Técnica de Seleção de Genitores: Roleta é Técnica de Aptidão: Normalização Linear (100 a 1) Técnica de Parametrização: Nenhuma é Técnica de Elitismo: Copia o melhor Population Size : 100 Total de Indivíduos: 4000 l Módulo de Reprodução Técnica de Seleção de Operadores: Use todos Operadores: Crossover 1 ponto & Mutação Taxa Mutação: 0,008 Taxa Crossover: 0,65 Técnica de Parametrização: nenhuma Algoritmo Genético Tradicional l Representação Binária l Reprodução com substituição da população l Elitismo l Normalização Linear l Crossover de 1 ponto e Mutação – Algoritmo de partida em aplicações – Apresenta bom desempenho em vários problemas
  • 27. Reprodução Steady State l Substituição parcial de indivíduos a cada geração (mais elitista) l Bons indivíduos (material genético) são preservados, garantindo mais chances de reprodução l Método: – Crie n filhos (seleção+crossover+mutação) – Elimine os n piores membros da população – Avalie e introduza os filhos na população l GAP = fração da população que é trocada l valor de GAP determina relação entre exploitation e exploration Exemplo de Steady State C19 120 120 121 C18 110 110 120 C17 100 100 110 C16 99 99 100 C15 95 95 99 C14 81 81 95 C13 76 76 88 C12 67 67 81 C11 58 58 76 C10 44 44 67 C9 42 42 58 C8 36 36 58 C7 22 22 44 C6 20 38 38 42 C5 19 6 6 38 C4 17 121 121 36 C3 10 88 88 22 C2 8 58 58 17 C1 5 17 17 6 avaliações crie n substitua os n avaliações de P(t) novos piores de P(t+1)
  • 28. l Módulo de Avaliação GA2-3 Função de Avaliação: Função binária F 6 l Módulo de População Técnica de Representação: Binária 44 bits ICADEMO Técnica Inicialização da População: Aleatória é Técnica Eliminação da População: Elimina o último é Técnica de Reprodução: Steady State Gap Testar de 5 em 5 Técnica de Seleção de Genitores: Roleta é Técnica de Aptidão: Normalização Linear (100 a 1) Técnica de Parametrização: Nenhuma Population Size : 100 Total de Indivíduos: 4000 l Módulo de Reprodução Técnica de Seleção de Operadores: Use todos Operadores: Crossover 1 ponto & Mutação Taxa Mutação: 0,008 Taxa Crossover: 0,65 Técnica de Parametrização: nenhuma Steady State sem Duplicados l Substituição parcial de indivíduos com exclusão de duplicados l Evita os duplicados que são mais frequentes com steady state (populações mais estáticas) l Maior eficiência do paralelismo de busca, garantindo pop_size indivíduos diferentes l Descendentes duplicados são desprezados l Maior overhead para teste de igualdade
  • 29. Novos Técnicas, Parâmetros e Operadores l Crossover de 2 pontos l Crossover Uniforme l Operadores Independentes e Seleção de Operadores l Interpolação dos Parâmetros l Módulo de Avaliação GA3-1 a Função de Avaliação: Função binária F 6 l Módulo de População GA 3-3 Técnica de Representação: Binária 44 bits Técnica Inicialização da População: Aleatória Técnica Eliminação da População: Elimina o último Técnica de Reprodução: Steady State s/ duplicados Gap Testar de 5 em 5 Técnica de Seleção de Genitores: Roleta Técnica de Aptidão: Normalização Linear (100 a 1) é Técnica de Parametrização: Interpolar taxa de incremento (de 0,2 a 1,2) Population Size : 100 Total de Indivíduos: 4000 l Módulo de Reprodução é Técnica de Seleção de Operadores: Roleta é Operadores: Crossover Uniforme é Mutação Taxa Mutação: 0,04 Taxa Crossover: 0,8 é Técnica de Parametrização: Interpolar Pesos dos Operadores é de (70 30) a (50 50)
  • 30. Crossover de 2 Pontos l Semelhante ao crossover de 1 ponto l 2 pontos são escolhidos aleatoriamente l Crossover de 1 ponto não consegue combinar todos os padrões de dois genitores P1 1 1 0 1 1 0 0 1 0 1 1 0 1 1 P2 0 0 0 1 0 1 1 0 1 1 1 1 0 0 pontos de corte P1 1 1 0 1 1 0 0 1 0 1 1 0 1 1 P2 0 0 0 1 0 1 1 0 1 1 1 1 0 0 F1 1 1 0 1 0 1 1 0 1 1 1 0 1 1 F2 0 0 0 1 1 0 0 1 0 1 1 1 0 0 Crossover Uniforme l A contribuição de cada genitor é decidida aleatoriamente por um padrão l Capacidade de combinar quaisquer padrões P1 1 0 0 1 0 1 1 P2 0 1 0 1 1 0 1 Padrão 1 1 0 1 0 0 1 F1 F2
  • 31. Operadores Independentes l Determinados GAs podem incorporar diversos operadores genéticos. l Operadores não devem ser usados todos, com a mesma intensidade, a cada fase da evolução ( por ex: mais crossover no início e mais mutação no final da evolução ). l Uma roleta sorteia um operador a cada reprodução. l Pesos (chances) dos operadores, iniciais e finais, e taxa de interpolação são parâmetros do algoritmo. OP4 OP3 OP2 OP1 l Módulo de Avaliação GA3-1 Função de Avaliação: Função binária F 6 l Módulo de População Técnica de Representação: Binária 44 bits ICADEMO Técnica Inicialização da População: Aleatória Técnica Eliminação da População: Elimina o último Técnica de Reprodução: Steady State s/ duplicados Gap Testar de 5 em 5 Técnica de Seleção de Genitores: Roleta Técnica de Aptidão: Normalização Linear (100 a 1) Técnica de Parametrização: Nenhuma Population Size : 100 Total de Indivíduos: 4000 l Módulo de Reprodução é Técnica de Seleção de Operadores: Roleta é Operadores: Crossover 2 pontos é Mutação Taxa Mutação: 0,01 Taxa Crossover: 0,7 Técnica de Parametrização: Nenhuma é Pesos (50 50)
  • 32. l Módulo de Avaliação GA3-2 Função de Avaliação: Função binária F 6 l Módulo de População Técnica de Representação: Binária 44 bits ICADEMO Técnica Inicialização da População: Aleatória Técnica Eliminação da População: Elimina o último Técnica de Reprodução: Steady State s/ duplicados Gap Testar de 5 em 5 Técnica de Seleção de Genitores: Roleta Técnica de Aptidão: Normalização Linear (100 a 1) Técnica de Parametrização: Nenhuma Population Size : 100 Total de Indivíduos: 4000 l Módulo de Reprodução é Técnica de Seleção de Operadores: Roleta é Operadores: Crossover Uniforme é Mutação Taxa Mutação: 0,01 Taxa Crossover: 0,7 Técnica de Parametrização: Nenhuma é Pesos (50 50) Desempenho l Aspectos importantes: – convergência do GA – proximidade dos melhores cromossomas a um mínimo local – diversidade da população – valores dos parâmetros do GA l Exemplo: variação da aptidão dos operadores durante evolução. 30 30 30 25 25 25 20 20 20 66 6 6 15 15 15 6 6 6 6 10 10 10 6 66 6 6 5 6 6 66 5 6 6 5 0 66 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Início: Meio: Fim: Crossover Crossover Crossover Mutação Mutação Mutação
  • 33. Interpolação de Parâmetros l Consiste na variação dos valores dos parâmetros do GA durante a execução, de modo a alcançar maior desempenho. l Parâmetros: – taxa de crossover – taxa de mutação – taxa incremento da normalização da aptidão – aptidão dos operadores l Interpolação define: – valores inicial e final do parâmetro e frequência de ajuste. l Módulo de Avaliação GA3-3 Função de Avaliação: Função binária F 6 l Módulo de População Técnica de Representação: Binária 44 bits ICADEMO Técnica Inicialização da População: Aleatória Técnica Eliminação da População: Elimina o último Técnica de Reprodução: Steady State s/ duplicados Gap Testar de 5 em 5 Técnica de Seleção de Genitores: Roleta Técnica de Aptidão: Normalização Linear (100 a 1) é Técnica de Parametrização: Interpolar taxa de incremento (de 0,2 a 1,2) Population Size : 100 Total de Indivíduos: 4000 l Módulo de Reprodução é Técnica de Seleção de Operadores: Roleta é Operadores: Crossover Uniforme é Mutação gráfico Taxa Mutação: 0,01 Taxa Crossover: 0,7 é Técnica de Parametrização: Interpolar Pesos dos Operadores é de (70 30) a (50 50)
  • 34.
  • 35. Algoritmos Genéticos Híbridos q Consiste na construção de um GA inspirado no “algoritmo de otimização em uso” em determinado problema (se houver). Alg. Alg . Híbrido = Alg. Em Uso + Alg. Genético Alg. Alg. q Hibridizar: – Adotar REPRESENTAÇÃO em uso – Adaptar OPERADORES – Adotar HEURÍSTICAS de otimização Vantagens q Modelo incorpora o conhecimento no domínio do problema; q Resulta num sistema mais familiar para o usuário; q Algoritmo em uso pode fornecer “sementes” para o GA, garantindo soluções melhores. q Novos operadores devem estar alinhados com a filosofia de GAs: recombinação e mutação – Crossover: recombinação de sub-partes de indivíduos – Mutação: variações globais ou locais para manter agitada a variedade genética 1
  • 36. Representação por Números Reais Cromossomas são estruturas contendo números reais. q Hibridizando com “algoritmo em uso” para a otimização da função f6 (x,y) q “Algoritmo em uso” ≡ Busca Exaustiva de x e y reais •Gera x e y ∈ ℜ aleatoriamente; •Calcula f6 para o par (x,y); •Salva (x,y) e f6(x,y); •Retorna a melhor avaliação se tempo esgotado; avaliação •Retorna ao primeiro passo; Hibridização q Representação: Lista de Reais : (x,y) q Avaliação: f6(x,y) real q Inicialização: Números reais aleatórios q Operadores Genéticos: Crossover e Mutação e Operadores inspirados no problema 2
  • 37. Crossover q Cromossoma é uma lista de reais: (x,y) q Crossover de 1 ou 2 pontos ou Uniforme sobre lista: q Exemplo: Crossover Uniforme Problema com 4 variáveis P1 ≡ (x1, y1, t 1, z 1) F1 ≡ (x2, y1, t 1, z 2) ➨ P2 ≡ (x2, y2, t 2, z 2) F2 ≡ ( x1, y2, t 2, z 1) Padr ão ≡ 0 1 1 0 Padrã Crossover de Média q Cruzamento específico para o problema q Se dois cromossomas são promissores, a média de seus valores reais pode levar a uma melhor solução P1 ≡ (x1, y1) ➨ F1 ≡ ( ( x1+x2)/2, ( y1+ y2)/2) (x (y P2 ≡ (x2, y2) q A média entre dois valores pode resultar em valores mais próximos do valor desejado. 3
  • 38. Crossover de Média q Crossover aritmético é uma combinação linear de dois vetores (genitores) P1 e P2 na geração t: F1 = a . P 1 + (1-a) P 2 (1- F2 = a . P 2 + (1-a) P 1 (1- q a =cte =cte : crossover uniforme q a =f(t) : crossover não-uniforme (a depende da idade da população) Mutação q Mutação de real – substitui cada número real em um cromossoma por um número real aleatório (se teste probabilidade=TRUE) (x1, y1) ➨ (x1, yrand) q Creep – busca uma solução próxima através de ajustes aleatórios em ambas as direções (+ e -) (x1, y1) ➨ (x1 ± ∆ x, y1± ∆ y) ∆ ≡ pequeno ou grande 4
  • 39. Creep - Método de Ajuste 1 Xt + ∆ (máx - Xt) se bit sorteado =0 q Xt+1 = Xt - ∆ (Xt - mín) se bit sorteado =1 máx e mín = limites do domínio de x q ∆ (s) = s . rand rand = número aleatório ∈ [0, p], p≤ 1 ≤ q O ajuste varia com o valor de p : se p = pequeno ➨ ajuste menor se p = grande ➨ ajuste maior Creep - Método de Ajuste 2 Xt + ∆ (t, máx- Xt) se bit sorteado =0 q Xt +1 = Xt - ∆ (t, Xt -mí n) se bit sorteado =1 t= geração; máx e mín = limites do domínio de x . q ∆ (t, s) = s . ( 1 - rand (1 - t/T) b ) rand = número aleatório ∈ [0,1] T = número máximo de gerações b = grau de dependência com o número da geração q A probabilidade de ∆ (t, s) ser próximo de zero pró aumenta com o número de gerações. nú gerações. 5
  • 40. Creep - Método de Ajuste 2 ∆ (t, s) ∆ (t, s) s s t/T=0,50; b=2 t/T=0,90; b=2 1 rand 1 rand q O operador busca uniformemente no espaço no início da evolução (t=pequeno), e mais localmente no final da evolução (t=grande) q Mód ulo de Av aliação GA5-1 ➩ Função de Avaliação: Função F6 real q Mód ulo de População ➩ T écnica de Representação: Lista de números reais ➩ T écnica Inicialização da População: Números reais aleatórios T écnica Eliminação da População: Elimina o último T écnica de Reprodução: Steady State s/ duplicados Gap Testar de 5 em 5 T écnica de Seleção de Genitores: Roleta T écnica de Aptidão: Normalização Linear (100 a 1) T écnica de Parametrização: Interpolar taxa de incremento (0,2 a 1,2) Population Size: 100 Total de Indivíduos: 4000 q Mód ulo de Reprodução T écnica de Seleção de Operadores: Roleta ➩ Operadores: Crossover Uniforme de Lista ➩ Crossover de Média ➩ Mutação de Número Real ➩ Creep ∆ pequeno ➩ Creep ∆ grande ➩ T écnica de Parametrização: Interpolar Pesos dos Operadores ➩ de (10 40 10 30 10) a (10 20 0 40 30) 6
  • 41. Binária x Reais q Representação dos genes por números reais (ponto flutuante) é mais adequada em problemas de otimização de parâmetros com v ariáveis sobre domínio contínuo; q Especialmente em grandes domínios onde a representação binária requer um longo cromossoma: Ex: 100 v ariáveis, [-500,500], 4 casas decimais ➨ 2400 bits q Representação por reais é mais rápida na execução; q Representação por reais of erece maior precisão (depende do computador); q Desempenho pode ser melhorado com operadores específicos ao problema; q Representação por reais tem a propriedade que dois pontos próximos um ao outro no espaço de representação, estão também próximos no espaço do problema; q Representação por reais evita Hamming Cliffs. 7
  • 42. Distância de Hamming q Rep. Binário Valor Real C1 = 0 1 1 1 1 1 31 C2 = 1 0 0 0 0 0 32 ➨ distância = 6 q Rep. Real Valor Real C1 = 31 31 C2 = 32 32 ➨ distância = 1 8
  • 43. GA em Otimização Combinatorial q Problemas onde a busca da solução depende da avaliação de diversas combinações (ORDEM) dos elementos considerados – Problem a do Caixeiro Viajante – Problem as de Planejamento – Problem as de Cronogram as – Alocação de Salas – Grafos: Colorir Particionar, Percorrer Colorir, Problema de Colorir o Grafo índice I-P 1-5 2-8 3-4 peso q Regras: 4-9 5-6 6-7 – Colorir os nós do grafo de modo a maximizar a soma total dos pesos. 7-13 8-10 9-15 – Pares de nós conectados por um arco não podem possuir a mesma cor 1
  • 44. Algoritmo Guloso q Considera apenas uma das possíveis soluções, 1-5 2-8 3-4 colorindo os nós em ordem decrescente de peso. q Nós em ordem 4-9 5-6 6-7 decrescente de peso: (9, 7, 8, 4, 2, 6, 5, 1, 3) q Solução Ótima p/ 1 cor: 7-13 8-10 9-15 (9, 4, 2) ➨ ∑ Pi = 32 Algoritmo Guloso q Considera apenas uma das possíveis soluções, 1-5 2-8 3-4 colorindo os nós em ordem decrescente de peso. q Nós em ordem 4-9 5-6 6-7 decrescente de peso: (9, 7, 8, 4, 2, 6, 5, 1, 3) q Solução Ótima p/ 1 cor: 7-13 8-10 9-15 (9, 4, 2) ➨ ∑ Pi = 32 2
  • 45. Algoritmo Guloso q Considera apenas uma das possíveis soluções, 1-5 2-8 3-4 colorindo os nós em ordem decrescente de peso. q Nós em ordem 4-9 5-6 6-7 decrescente de peso: (9, 7, 8, 4, 2, 6, 5, 1, 3) q Solução Ótima p/ 1 cor: 7-13 8-10 9-15 (9, 4, 2) ➨ ∑ Pi = 32 Algoritmo Guloso q Considera apenas uma das possíveis soluções, 1-5 2-8 3-4 colorindo os nós em ordem decrescente de peso. q Nós em ordem 4-9 5-6 6-7 decrescente de peso: (9, 7, 8, 4, 2, 6, 5, 1, 3) q Solução Ótima p/ 2 cores: 7-13 8-10 9-15 (9, 4, 2) e ( 7, 6, 5) ➨ ∑ Pi = 32 + 26 3
  • 46. Aplicando o Algoritmo Guloso q Nós em ordem decrescente de peso: 2-8 1-12 (7, 3, 4, 1, 6, 5, 2) 3-14 6-10 7-15 4-13 5-9 Aplicando o Algoritmo Guloso q Nós em ordem decrescente de peso: 2-8 1-12 (7, 3, 4, 1, 6, 5, 2) q Algoritmo Guloso começa 3-14 7-15 6-10 e para no nó 7 4-13 5-9 4
  • 47. Aplicando o Algoritmo Guloso q Nós em ordem decrescente de peso: 2-8 1-12 (7, 3, 4, 1, 6, 5, 2) q Soluções Ótimas: 3-14 7-15 6-10 – 1 cor: (1, 5, 3) – 2 cores: (2, 4, 6) 4-13 5-9 Características do Problema q A modificação dos pesos, número de cores e arcos, altera radicalmente a solução do problema. q Estratégias como o algoritmo guloso não funcionam bem para todos os problemas de colorir o grafo. q Heurísticas (Ex: a valiar número de arcos ou pesos de nós vizinhos antes colorir um nó) podem não ser eficientes para grandes espaços de busca. q Algoritmos Genéticos oferecem uma solução (sub- ótima ou ótima) para qualquer problema de colorir o grafo. 5
  • 48. Componentes de um Algoritmo Genético 1. Problema 2. Representação 3. Decodificação 4. Avaliação 5. Operadores 6. Técnicas 7. Parâmetros Tentando a Representação Binária q Cada nó do grafo é representado por um campo (gene) no cromossoma: Símbolo do Campo ≡ Cor do nó q Podemos usar a representação binária. Para apenas 1 cor : 0 ≡ não colorido 1 ≡ colorido 1-5 2-8 3-4 Cromossoma ≡ 0 1 0 1 1 0 0 0 1 Nó 1 2 3 4 5 6 7 8 9 4-9 5-6 6-7 7-13 8-10 9-15 6
  • 49. Avaliando Representação Binária q C é um cromossoma ILEGAL ILEGAL. q Inicialização, crossover e mutação vão gerar soluções ilegais. q Seria necessário um módulo reparador de cromossomas q Representação binária permite soluções sub-ótimas: 1-5 3-4 2-8 C≡ 010100000 Nó 1 2 3 4 5 6 7 8 9 4-9 5-6 6-7 q C ainda poderia ter o nó 6, ou 8 ou 9 colorido e ser legal. 7-13 8-10 9-15 Representação Baseada em Ordem q GA Híbrido ≡ Técnicas de GA + Algoritmo Guloso q Algoritmo Guloso: – Cria uma lista de nós (ordem decrescente de peso) – Constrói a solução: atribui ao próximo nó da lista uma cor legal q Algoritmo Genético – Cria uma lista (nós em ordem qualquer) – Constrói a solução: atribui ao próximo nó da lista uma cor legal 7
  • 50. Exemplo q Cromossoma = lista C1 ≡(9, 7, 8, 4, 2, 6, 5, 1, 3) 1-5 2-8 3-4 C2 ≡(2, 3, 7, 4, 9, 6, 5, 1, 8) C3 ≡(4, 5, 1, 2, 9, 6, 8, 7, 3) 4-9 5-6 6-7 q C1 C2 C3 resultam na solução ótima p/ 1 cor: (9, 4, 2) ➨ ∑ Pi = 32 7-13 8-10 9-15 q Informação codificada é a ordem relativa dos n ós nó Operadores Genéticos q Testando o Crossover de 1 ponto: P1 ≡(9, 7, 8, 4, 2, 6, 5, 1, 3) P2 ≡(2, 6, 7, 4, 9, 3, 5, 1, 8) F1 ≡(9, 7, 8, 4, 2, 3, 5, 1, 8) F2 ≡(2, 6, 7, 4, 9, 6, 5, 1, 3) q Descendentes são cromossomas ilegais: nós repetidos e ausência de determinados nós. q Crossover e mutação devem garantir uma lista válida de todos os nós 8
  • 51. Modelagem do Algoritmo Genético 1. Problema • Problema de Colorir o Grafo 2. Representação • Permutação dos índices dos nós 3. Decodificação • Da esquerda para direita, atribui uma cor válida ao próximo nó 4. Avaliação • ∑ Pi 5. Operadores • Crossover Uniforme Baseado em Ordem q Mutação por Embaralhamento Crossover Uniforme Baseado em Ordem q Dados dos genitores P1 e P2, , criar descendente F1; q Gere um padrão de bits do mesmo comprimento que os genitores; q Preencha F1, copiando o genitor P1 nas posições em que o padrão é igual a “1”; q Faça uma lista dos elementos de P1 associados com os bits “0” do padrão; q Permute estes elementos de modo que eles apareçam na mesma ordem em que aparecem em P2 ; q Preencha as lacunas de F1 com os elementos ordenados no passo anterior; 9
  • 52. Exemplo P1 1 2 3 4 5 6 7 8 P2 8 6 4 2 7 5 3 1 Padrão 0 1 1 0 1 1 0 0 F1 - 2 3 - 5 6 - - F2 8 - - 2 - - 3 1 Elementos de P 1 associados a “ 0”: 1, 4, 7, 8. Ordenados segundo P 2 : 8, 4, 7, 1 Elementos de P 2 associados a “ 1”: 6, 4, 7, 5. Ordenados segundo P 1 : 4, 5, 6, 7 F1 8 2 3 4 5 6 7 1 F2 8 4 5 2 6 7 3 1 Mutação por Embaralhamento q Seleciona aleatoriamente uma sub-lista do cromossoma q Embaralha sub-lista 1 2 3 4 5 6 7 8 9 1 2 3 6 4 8 7 5 9 10
  • 53. q Mód ulo de Av aliação GA6-1 ➩ Função de Avaliação: Avaliador do problema de colorir o grafo ∑ Pi q Mód ulo de População ➩ T écnica de Representação: Lista de nós ➩ T écnica Inicialização da População: Permutação aleatória T écnica Eliminação da População: Elimina o último T écnica de Reprodução: Steady State s/ duplicados Gap Testar de 5 em 5 T écnica de Seleção de Genitores: Roleta T écnica de Aptidão: Normalização Linear (100 a 1) T écnica de Parametrização: Interpolar taxa de incremento (0,2 a 1,2) Population Size: 100 Total de Indivíduos: 4000 q Mód ulo de Reprodução T écnica de Seleção de Operadores: Roleta ➩ Operadores: Crossover Uniforme Baseado em Ordem ➩ Mutação por Embaralhamento ➩ T écnica de Parametrização: Interpolar Pesos dos Operadores ➩ de (60 40) a (30 70) Problema de Colorir o Grafo q Grafo com 100 nós ➨ 100! permutações diferentes q 3 cores possíveis q Listagem descreve o grafo através de: (índice_nó, peso (lista de nós conectados)) (1 62 (20 58 74 82)) (2 183 (6 12 20 28 29 32 51 53 70 79 84 94)) (3 247 (18 24 33 50 88 92)) .................... ........... (99 254 (29 52 53 67 75 80 84 89)) (100 145 (15 20 22 29 34 44 60 87)) 11
  • 54. Busca Aleatória q Muitas vezes não temos como comparar os resultados obtidos por um GA. q Nestes casos, podemos usar a busca exaustiva como base de comparação. q Gera-se uma curva média de desempenho para a busca aleatória com o mesmo número de tentativas que o GA. q Um modelo de GA desempenhando abaixo da busca exaustiva deve prova velmente conter erros de modelagem e/ou programação. Busca Aleatória procedure busca_aleatória begin t=0 ; primeira geração inicializa P(t) ; população inicial aleatória av alia P(t) ; calcula f(i) p/ cada indivíduo salv a_melhor de P(t) ; salva melhor indivíduo while (not total_indivíduos) do begin t =t + 1 ; próxima geração inicializa P(t) ; população aleatória av alia P(t) ; calcula f(i) p/ cada indivíduo compara_melhor P(t) com melhor P(t-1) salv a_melhor end end 12
  • 55. Resultados do GA 6-1 6- q GA 6-1 é em média 7,4% que a busca aleatória após 4000 tentativas: – média GA 6-1= 10300 média busca aleatória=9600 10300; 9600 q GA 6-1 é em média 7,4% que a Algoritmo Guloso: – máximo do Alg. Guloso= 9590 q GA 6-2 com pop_size=1200 e total_indivíduos=10000 encontrou avaliação=10594 10594 13
  • 56. GA em Otimização de Planejamento q Planejamento envolve: Procedimentos Recursos Tarefas Tempo Objetivos Restrições e condições q Otimizar: – “Alocar , no tempo, os recursos para a execução das tarefas, respeitando as restrições e condições, de modo a alcançar os objetivos do problema.” Exemplos – Problema do Caixeiro Viajante – Otimização da Distribuição (Rota de veículos) – Alocação de Salas; Timetabling – Planejamento de Vôos de Cias Aéreas – Otimização de Estoque/Produção – Otimização da Produção Industrial 1
  • 57. Variáveis Típicas do Planejamento q Restrições de Recursos – número de instâncias de cada recurso/máquina; – diferenças entre as instâncias (velocidade, tempo máximo de operação, capacidade etc). – paradas de manutenção – máquinas com programação especial: laminadores de aço (largura, espessura e dureza) q Restrições Temporais – horário de funcionamento preferenciais; – tempo de transporte de material entre máquinas q Reajuste das Máquinas – tarefas exigem setup de máquinas (automático ou manual). Variáveis Típicas do Planejamento (cont.) q Prioridade – tarefas possuem prioridades diferentes (prazo de entrega, emergência, manutenção, tipo de cliente etc). q Estoque – matéria prima: disponibilidade, ordem de desempilhamento q Reprogramação – reprogramação das máquinas em casos de contingências q Precedência – certas tarefas não podem ser programadas antes que outras tenham terminado. 2
  • 58. Características do Planejamento q Há muitas condições e restrições que não podem ser ser expressas matematicamente; q Métodos de busca podem falhar devido aos requisitos de tempo; q Podar o espaço de busca reduz o tempo de execução mas limita desempenho; q Heurísticas são úteis para acelerar a busca; q GA é um técnica adequada a problemas mal estruturados como os de planejamento. Problema Simples de Planejamento de Produção q 90 tarefas: (a, b, c, d, e, f................) q cada tarefa possui um peso associado a sua importância (lucro, prioridade, benefício etc) q 30 recursos: apenas uma instância de cada recurso q tarefas requerem de 1 a 3 horas para execução q programação para um total de 40 horas de produção q algumas tarefas têm restrições nas primeiras 12 horas do planejamento q Objetivo: maximizar a soma dos pesos das tarefas planejadas nas primeiras 40 horas 3
  • 59. Exemplo de Tarefas: a..u Tempo de Execução de cada tarefa: 1, 2 ou 3 horas Recursos requeridos por cada tarefa: “ . ” = recurso não requerido “ a” = recurso requerido Tarefas Tempo Execução Recursos Utilizados pelas Tarefas a 3 . a . . . . a a . . . a a . . . . . . . a . . . . . b 1 . . b . . . . b . b . . b . b b . . b . b . . . . . c 3 . . c . c c . . c . . . . c . . c c . c . c c . . . d 3 . . d . . . d . . d . . d . . . . . . . . d . . . . e 3 . . . . e e e . . e . . . . . . . e . . . . . . . . f 1 . f . f f f . . f . . . . . . . . . . . f . f f f . g 3 g . g . . . . g . . . . g . g g g . . . . g g . g g h 2 h . . . h . h . h . h h . . . . . . . . . . . . . . i 1 . . . i . . . . . . i i i . . . . . i . . i . . . . j 1 . . . . . . . . . . . . . . . . . . . . . . . . j . k 1 . . k k . k . k . . . . . k k . . . . . . k . . . . l 1 l . . . l l . . l . . . l . . l . l l . . . l . . l m 3 . . . . m . m . . . m m . . . . . . . . . . . . m . n 2 . . . . . . . . . . . . . . n n . . n n . . . . . . o 3 . o o . . . . . o . . . . . o . . o o . . o . . . . p 1 . . . . p . . . . . p . p p . . . . p . . p . p . . q 3 . . . q . . . q . . . . q . . q . . q . q . . q . q r 1 r . . . . . . . . . r r . r . . . . . r . . . . . . s 3 . . . s s . . . s s . . . . . s . . . . . s . . . . t 1 t . . . . . . . . . . . . . t . . t t . . . . . . . u Exemplo de Planejamento q Planejamento parcial das tarefas em ordem alfabética Tempo Hora . a c . c c a a c . . a a c . . c c . c a c c . . . . . . . 1 a c . c c a a c . . a a c . . c c . c a c c . . . . . . . 2 . a c . c c a a c . . a a c . . c c . c a c c . . . . . . . 3 . . b . . . . b . b . . b . b b . . b . b . . . . . . . . 4 . f d f f f d . f d . . d . . . . . . . f d f f f . f . f d 5 . . d . . . d . . d . . d . . . . . . . . d . . . . . . . d 6 . . d . . . d . . d . . d . . . . . . . . d . . . . . . . d 7 g . g . e e e g . e . . g . g g g e . . . g g . g g e . . e 8 g . g . e e e g . e . . g . g g g e . . . g g . g g e . . e 9 g . g . e e e g . e . . g . g g g e . . . g g . g g e . . e 10 . f . f f f . . f . . . . . . . . . . . f . f f f . f . f . 11 g . g . . . . g . . . . g . g g g . . . . g g . g g . . . . 4
  • 60. Modelagem do Algoritmo Genético 1. Problema 2. Representação 3. Decodificação 4. Avaliação 5. Operadores 6. Técnicas 7. Parâmetros Representação q Cromossoma ≡ permutação (lista) de tarefas P1 = (a, b, c, d, e, . . . . t) P2 = (d, s, e, h, g, . . . . i) q cromossoma codifica a ordem e a vez (posição) nas quais as tarefas serão planejadas q requer decodificador ≡ construtor de planejamentos legais 5
  • 61. Decodificador do Cromossoma q Constrói soluções LEGAIS q Concentra todo o conhecimento no domínio do problema: restrições, recursos, horários, etc. q Regra Principal: “Se uma tarefa está planejada na hora t, uma outra tarefa não pode ser planejada em t, exceto se a interseção dos recursos requisitados é vazia” Decodificador do Cromossoma 1 Pega a primeira tarefa da lista; 2 Coloca a tarefa no planejamento a partir de t=0; 3 Pega próxima tarefa e procura colocá-la no planejamento, considerando as restrições presentes, a partir de t=0 até t=40 horas; 4 Vai para 3 se não terminou a lista. 6
  • 62. P = (t, c, s, a) Hora t . . . . . . . . . . . . . t . . t t . . . . . . . . . . . 1 2 3 4 5 6 7 8 9 10 11 P = (t, c, s, a) Hora t . . . . . . . . . . . . . t . . t t . . . . . . . . . . . 1 . . c . c c . . c . . . . c . . c c . c . c c . . . . . . . 2 . . c . c c . . c . . . . c . . c c . c . c c . . . . . . . 3 . . c . c c . . c . . . . c . . c c . c . c c . . . . . . . 4 5 6 7 8 9 10 11 7
  • 63. P = (t, c, s, a) Hora t . . . . . . . . . . . . . t . . t t . . . . . . . . . . . 1 . . c . c c . . c . . . . c . . c c . c . c c . . . . . . . 2 . . c . c c . . c . . . . c . . c c . c . c c . . . . . . . 3 . . c . c c . . c . . . . c . . c c . c . c c . . . . . . . 4 . . . s s . . . s s . . . . . s . . . . . s . . . . s . . . 5 . s s . . . s s . . . . . s . . . . . s . . . . s . . . 6 . s s . . . s s . . . . . s . . . . . s . . . . s . . . 7 8 9 10 11 P = (t, c, s, a) ➨ 7 horas Hora t a . . . . a a . . . a a . t . . t t . a . . . . . . . . . 1 . a c . c c a a c . . a a c . . c c . c a c c . . . . . . . 2 . a c . c c a a c . . a a c . . c c . c a c c . . . . . . . 3 . . c . c c . . c . . . . c . . c c . c . c c . . . . . . . 4 . . . s s . . . s s . . . . . s . . . . . s . . . . s . . . 5 . s s . . . s s . . . . . s . . . . . s . . . . s . . . 6 . s s . . . s s . . . . . s . . . . . s . . . . s . . . 7 8 9 10 11 8
  • 64. P = (t, a, s, c) Hora t . . . . . . . . . . . . . t . . t t . . . . . . . . . . . 1 2 3 4 5 6 7 8 9 10 11 P = (t, a, s, c) Hora t a . . . . a a . . . a a . t . . t t . a . . . . . . . . . 1 . a . . . . a a . . . a a . . . . . . . a . . . . . . . . . 2 . a . . . . a a . . . a a . . . . . . . a . . . . . . . . . 3 4 5 6 7 8 9 10 11 9
  • 65. P = (t, a, s, c) Hora t a . s s . a a s s . a a . t s . t t . a s . . . . s . . . 1 . a . s s . a a s s . a a . . s . . . . a s . . . . s . . . 2 . a . s s . a a s s . a a . . s . . . . a s . . . . s . . . 3 4 5 6 7 8 9 10 11 P = (t, a, s, c) ➨ 6 horas Hora t a . s s . a a s s . a a . t s . t t . a s . . . . s . . . 1 . a . s s . a a s s . a a . . s . . . . a s . . . . s . . . 2 . a . s s . a a s s . a a . . s . . . . a s . . . . s . . . 3 . . c . c c . . c . . . . c . . c c . c . c c . . . . . . . 4 . . c . c c . . c . . . . c . . c c . c . c c . . . . . . . 5 . . c . c c . . c . . . . c . . c c . c . c c . . . . . . . 6 7 8 9 10 11 10
  • 66. Avaliação q Uma possível função considera: – pesos das tarefas ➨ maximizar a soma das planejadas – restrições das tarefas ➨ penalizar se violação – período ➨ não planejar se além de t=40 horas Ai = ∑ pt - ∑ pn + ∑ pp + ∑ pv/2 t n p v – pt = pesos de todas as tarefas – pn = pesos das tarefas não planejadas – pp = pesos das tarefas planejadas – pv = pesos das tarefas que violaram restrição q Ai ≥ 0; Ai = 0 ➨ nenhuma planejada; Ai = 2 ∑ pt ➨ todas Avaliando Operadores q Mutação Baseada em Ordem q Mutação Baseada em Posição q Mutação por Embaralhamento q Crossover Baseado em Ordem q Crossover Baseado em Posição q Recombinação de Adjacências Aspectos importantes – Ordem Relativa • tarefas anteriores podem impedir o planejamento das tarefas posteriores – Posição da Tarefa • tarefas no início da lista têm maior chance de serem planejadas 11
  • 67. Avaliação de Desempenho q Avaliação dos Operadores isoladamente: – só mutação – só crossover q Combinando os Melhores Operadores q Busca Aleatória para comparar resultados – gera uma lista de tarefas e avalia q Espaço de Representação = 90! = 10138 q Média de 50 Experimentos de 3000 Indivíduos: média dos melhores a cada instante Busca Aleatória 12
  • 68. Mutação Baseada em Ordem q duas tarefas são selecionadas aleatoriamente e a segunda é colocada na frente da primeira q Exemplo: (a b c d e f) a (a b c d e f) ⇓ ⇓ (e a b c d f) e (a d b c e f) q operador preserva ordem relativa de parte do cromossoma Mutação Baseada em Posição q troca as posições de duas tarefas escolhidas aleatoriamente (a b c d e f) a (a b c d e f) ⇓ ⇓ (e b c d a f) e (a d c b e f) q operador não preserva a ordem relativa das posições selecionadas em relação as tarefas do meio 13
  • 69. Mutação por Embaralhamento q embaralha sub-lista escolhida aleatoriamente (a | b c d | e f) (a b c | d e f |) ⇓ ⇓ (a | c d b | e f) (a b c | f d e |) q operador tem maior poder de dispersão da população Resultados da Mutação q Testes sem crossover e com elitismo q Mutação é mais efetiva que busca aleatória q Mutação baseada em ordem é mais efetiva q Embaralhamento é melhor que busca aleatória q Operadores de mutação são heurísticos, por isso são melhores que busca aleatória 14
  • 70. Resultados da Mutação Crossover de Ordem q Posições são selecionadas aleatoriamente q Ordem das tarefas nas posições selecionadas em um genitor é imposta nas tarefas correspondentes no outro genitor P1 = a b c d e f g h i j P2 = e i b d f a j g c h posições ✶ ✶ ✶ ✶ F1 = a _ c d e _ _ h _ j F2 = _ i _ d f a j g _ _ F1 = a i c d e b f h g j F2 = b i c d f a j g e h 15
  • 71. Crossover de Posição q Posições são selecionadas aleatoriamente q Posições das tarefas em um genitor são impostas nas tarefas correspondentes no outro genitor P1 = a b c d e f g h i j P2 = e i b d f a j g c h posições ✶ ✶ ✶ ✶ F1 = _ i b _ f _ _ g _ _ F2 = _ b c _ e _ _ h _ _ F1 = a i b c f d e g h j F2 = i b c d e f a h j g Recombinação de Adjacências q Crossover combina a informação de adjacências entre as tarefas presentes nos genitores P1 = a b c d e f P2 = b d c a e f P1 ➩ ab bc cd de ef fa informação de adjacência P2 ➩ bd dc ca ae ef fb informação de adjacência F = b c d e a f F ➩ bc cd de ea af fb informação de adjacência 16
  • 72. Recombinação de Adjacências q Operador foi originalmente criado para o problema do Caixeiro Viajante (TSP) A cidades 3Km 7Km ADBCE D B E 1Km 4Km 3Km C q No TSP temos: – informação de adjacência é importante – direção (ordem) entre 2 cidades não importa (A B = B A) Resultados do Crossover q Testes sem mutação e com elitismo (rápida evolução no início, nada acontece após 1000 indivíduos) q Crossover de ordem apresenta resultado equivalente ao de posição: são de fato o mesmo operador !! q Recombinação de Adjacências é equivalente a busca aleatória no problema de planejamento 17
  • 73. Resultados do Crossover Combinando Crossover e Mutação 1 Mutação de Ordem (50%) + Crossover de Ordem (50%) 2 Mutação de Ordem (50%) + Crossover de Posição (50%) 3 Mutação de Ordem (50%) + Recomb. de Adjacências (50%) q Curvas menos inclinadas no início e menos planas no final q Variando os pesos do crossover e mutação, pode-se melhorar o desempenho: aumentando-se a mutação e diminuindo-se o crossover, lentamente, durante a evolução. 18
  • 74. Crossover (50%) + Mutação (50%) Variando-se os Pesos de Crossover + Mutação 19
  • 75. Fundamentos Matemáticos Como e porque Algoritmos Genéticos funcionam? Teoria de Schema (John Holland 1975) “Schema é um padrão genético que descreve um conjunto de cromossomas do espaço de busca com similaridades em certas posições” Schema q Buscando padrões de jogadores de seleção Sexo Idade Gosto Profissão Gostam de Médico Futebol Jogadores da Seleção > 30 anos Feminino Masculino
  • 76. Aptidão dos Padrões Sexo Idade Gosto Profissão Gostam de Futebol Médico Aptidão Masculino I>30 X X baixa Jogadores da Seleção30 anos > Feminino Feminino X X X baixa Masculino Masculino I<30 X X boa X X Sim Médico baixa Representação de um Schema q Utiliza-se um símbolo adicional: ✴ = don’t care q Exemplo: H= 1 1 ✴ H é um padrão que descreve todos os cromossomas do espaço 2 3 , cujos os dois primeiros bits são iguais a ‘1’, não importando os demais.
  • 77. Interpretação q f(x) = x2 , x ∈ 23 q Seja o schema: schema: H= 1 1 ✴ q H refere-se a conjectura que a razão pela qual 111 e 110 são bons cromossomas (ou não), são os dois bits mais significativos iguais a ‘1’, não importando os demais. q Para esta conjectura “podem” existir numa determinada população dois representantes: 110 e 111. q 110 e 111 “pertencem” a H= 1 1 ✴ Número de Schemata q Seja o espaço de busca KL onde: K ≡ número de elementos do alfabeto de representação L ≡ comprimento do cromossoma ➨ Total de Schemata = (K+1) L q Exemplo: K=2; L=3 23 = 8 pontos Total de Schemata = 27
  • 78. Ordem de um Schema q Ordem ou Especificidade O(H) O(H) ≡ número de posições fixas (diferentes de *) presentes no schema H= 0 1 1 ✴ 1 ✴ ✴ O(H) =4 H= 0 ✴ ✴ ✴ ✴ ✴ ✴ O(H) =1 Comprimento de um Schema q δ(H) ≡ distância entre a primeira e a última posições específicas (diferentes de *) no schema. H= 0 1 1 ✴ 1 ✴ ✴ δ(H) =4 H= 0 ✴ ✴ ✴ ✴ ✴ ✴ δ(H) =0
  • 79. Representação Geométrica Schemata de Ordem 3: Pontos 110 111 010 011 100 101 000 001 Representação Geométrica Schemata de Ordem 2: Linhas 110 11✶ 111 ✶ 10 ✶ 11 01✶ 010 011 1✶ 0 1✶ 1 0✶ 0 0✶ 1 100 10✶ 101 ✶ 00 ✶ 01 000 00✶ 001
  • 80. Representação Geométrica Schemata de Ordem 1: Planos 110 111 ✶ 1✶ 010 011 1✶ ✶ ✶✶ 0 ✶ ✶1 0✶ ✶ 100 101 ✶ 0✶ 000 001 Indivíduos Pertencentes ao um Schema q Um indivíduo pertence a um schema se para todas as L posições o símbolo do indivíduo é igual ao símbolo do schema, exceto nas posições onde o símbolo do schema é don’t care (✴). q Um schema possui 2L-O(H) indivíduos. q Exemplo: ✴ 1 ✴ possui 23-1 indivíduos 0 10 0 11 1 10 1 11
  • 81. Indivíduos Pertencentes ao Schema Sch ema I ndi ví du os 1 0 00 0 00 2 0 01 0 01 3 00 * 0 00 0 01 4 0 10 0 10 5 0 11 0 11 6 01 * 0 10 0 11 7 0* 0 0 00 0 10 8 0* 1 0 01 0 11 9 0 ** 0 00 0 01 0 10 0 11 10 1 00 1 00 11 1 01 1 01 12 10 * 1 00 1 01 13 1 10 1 10 14 1 11 1 11 15 11 * 1 10 1 11 16 1* 0 1 00 1 10 17 1* 1 1 01 1 11 18 1 ** 1 00 1 01 1 10 1 11 19 *0 0 0 00 1 00 20 *0 1 0 01 1 01 21 * 0* 0 00 0 01 1 00 1 01 22 *1 0 0 10 1 10 23 *1 1 0 11 1 11 24 * 1* 0 10 0 11 1 10 1 11 25 * *0 0 00 0 10 1 00 1 10 26 * *1 0 01 0 11 1 01 1 11 27 *** 0 00 0 01 0 10 0 11 1 00 10 1 11 0 11 1 Schemata representados por um indivíduo q Um indivíduo representa 2L schemata. q Para cada uma das L posições de um indivíduo, define-se um schema diferente, usando o símbolo presente no indivíduo ou o símbolo ‘ ✴ ’. q Exemplo: 0 1 0 representa os seguintes schemata: 0 10 ✴1 0 0✴0 01✴ 0✴✴ ✴1 ✴ ✴ ✴0 ✴✴✴