Computação Evolutiva Oderson Dias de Mello .
Transcript of Computação Evolutiva Oderson Dias de Mello .
![Page 1: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/1.jpg)
Computação Evolutiva
Oderson Dias de Mello www.oderson.com
![Page 2: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/2.jpg)
Introdução
Como otimizar soluções para um processo complexo com um grande número de variáveis?
![Page 3: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/3.jpg)
Indagações de alguns séculos atrás...
Como explicar a diversidade dos animais?
Como explicar sua evolução? Qual é a influência dos antepassados? Qual é a influência do meio ambiente?
![Page 4: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/4.jpg)
Evolução natural A evolução natural pode ser vista como
um processo de otimização no qual: Indivíduos e populações competem entre si
por recursos Alimento Água Abrigo
![Page 5: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/5.jpg)
Terminologia Biológica Em Algoritmos Genéticos são utilizados termos
biológicos como analogia com a biologia.
Cromossomo: codificação de uma possível solução
– indivíduo.
Genes: codificação de uma característica particular.
Genótipo Conjunto de parâmetros representado por um
cromossomo.
Fenótipo Produto da interação de todos os genes.
![Page 6: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/6.jpg)
História da Teoria da Evolução
1809: Jean-Baptiste Lamarck Lei do uso e do desuso.
pelo uso e desuso de suas aptidões, a natureza força os seres a se adaptarem para sobreviverem.
Lei dos caracteres adquiridos. Os serem mais fortes são mais capazes de “trasmitir” suas aptidões às novas
gerações.
![Page 7: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/7.jpg)
História da Teoria da Evolução
1859: Charles Darwin É pela lei da Seleção
Natural que os seres mais adaptados ao seus ambientes sobrevivem.
Contra lei do uso de desuso.
Os caracteres adquiridos são herdados pelas gerações seguintes.
O homem vem do macaco...
![Page 8: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/8.jpg)
História da Teoria da Evolução
1865: Gregor Mendel Formalizou a “herança de características”,
com a teoria do DNA (ervilhas). 1901: Hugo De Vries
Só a seleção natural não é responsável pela produção de novas (mais adaptadas) espécies. Tem que haver uma mudança genética!
Formalizou o processo de geração de diversidade: Teoria da Mutação.
![Page 9: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/9.jpg)
Hipótese Lamarkiana
Fenótipo ou características adquiridas durante a vida de um organismo podem ser transmitidos geneticamente para os seus descendentes.
Aprendizagem local pode alterar o cromossomo e, portanto, a adaptabilidade dos indivíduos.
Exemplo: aquisição de defeitos do fenótipo provocado por
intoxicação química e poluição ambiental.
![Page 10: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/10.jpg)
Hipótese Baldwiniana (1896)
Seleção orgânica
A capacidade de aprendizagem e adaptação pode favorecer a reprodução. Portanto, o conhecimento adquirido pode guiar a evolução genética.
Exemplo: uma aprendizagem local pode alterar somente a adaptação dos indivíduos mas não o seu cromossomo.
![Page 11: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/11.jpg)
Hipótese Waddingtoniana (1942)
Assimilação genética
A plasticidade fenotípica que permite obter novas características comportamentais.
Ativam genes adormecidos ou não expressos que serão transmitidos para gerações seguintes.
![Page 12: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/12.jpg)
Motivação“...Se variações úteis para qualquer
organismo devam ocorrer para que ele venha a existir, certamente indivíduos assim caracterizados terão a melhor chance de serem preservados na luta por sobrevivência; e do forte princípio de hereditariedade, eles tenderão a produzir gerações com características similares. Este princípio de preservação, eu batizei, para ser sucinto, de Seleção Natural.”
(Darwin, 1859)
![Page 13: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/13.jpg)
Evolução natural Indivíduos mais bem sucedidos na
sobrevivência e atração de um parceiro terão, relativamente, mais descendentes (espalham seus genes).
Indivíduos mal sucedidos geram poucos ou nenhum descendente.
![Page 14: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/14.jpg)
Ambientação
ModeloComputacional
Natureza
ModeloBiológico
Teoria de Darwin
Teoria de Computação Evolutiva
![Page 15: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/15.jpg)
Computação Evolutiva Área da Computação Inteligente
que engloba um conjunto de métodos computacionais inspirados na Teoria da Evolução das Espécies.
![Page 16: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/16.jpg)
Conferências na área de Computação Evolutiva International Conferences on
Genetic Algorithms Parallel Problem Solving from
Nature Annual Conferences on Evolutionary
Programming IEEE International Conferences on
Evolutionary Computation
![Page 17: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/17.jpg)
Computação evolutiva Em 1975 Jonh Holland idealizou os algoritmos
genéticos. Adaptation in Natural & Artificial Systems
MIT Press, 1975 (2a ed. 1992). Porque a evolução é uma boa metáfora?
Muitos problemas computacionais envolvem busca através de um grande número de possíveis soluções e requerem que o programa seja adaptativo, apto a agir em um ambiente dinâmico.
A evolução biológica é uma busca massivamente paralela em um enorme espaço
problema. soluções desejadas = organismos mais adaptados.
![Page 18: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/18.jpg)
COMPUTAÇÃO EVOLUTIVA analogia com processos naturais possíveis soluções = indivíduos melhores indivíduos = melhores chance
de sobrevivência e reprodução = sobrevivência do mais apto
solução ótima esperada = indivíduo mais apto
![Page 19: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/19.jpg)
Características Comuns Usam um processo de evolução
baseado na teoria de Darwin para resolver problemas computacionais.
Inspirados na Teoria da Evolução: os indivíduos mais adaptados sobrevivem.
![Page 20: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/20.jpg)
Elementos Chaves dos Algoritmos Evolutivos Uma população de indivíduos. A noção de função de adaptação. Um ciclo de nascimento e morte
baseados na função de adaptação. A noção de herança.
![Page 21: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/21.jpg)
Visão Geral doAlgoritmo Evolutivo
1. Gerar uma população inicial aleatoriamente
2. Fazer até um critério de parada: selecionar indivíduos para pais (função
de adaptação) produzir filhos selecionar indivíduos para morrer
(função de adaptação)
3. Retornar um resultado
![Page 22: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/22.jpg)
Visão Geral doAlgoritmo Evolutivo
população depais
população defilhos
solução
seleção
recombinação
![Page 23: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/23.jpg)
Algoritmos Genéticos Desenvolvido por John Holland e sua equipe
em 1975 e popularizado por David Goldberg. Objetivo:
Desenvolver sistemas artificiais baseados nos mecanismos dos sistemas naturais.
O processo de evolução executado por um algoritmo genético corresponde a um processo de busca em um espaço de soluções potenciais para alcançar o objetivo proposto.
![Page 24: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/24.jpg)
CARACTERÍSTICASCARACTERÍSTICAS Classe dos algoritmos probabilísticos, mas
eles não são métodos de busca puramente aleatórios, pois combinam elementos de procura direcionada e estocástica.
A cada geração, soluções relativamente “boas” se reproduzem, enquanto que soluções relativamente “ruins” são eliminadas.
Para fazer a distinção entre diferentes soluções é empregada uma função-objetivo (de avaliação ou de adaptabilidade) que simula o papel da pressão exercida pelo ambiente sobre o indivíduo.
![Page 25: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/25.jpg)
CARACTERÍSTICASCARACTERÍSTICAS Utilizam uma população de soluções
candidatas (indivíduos). Otimização ocorre em várias
gerações. A cada geração:
mecanismos de seleção selecionam os indivíduos mais aptos.
operadores de reprodução geram novos indivíduos.
![Page 26: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/26.jpg)
CARACTERÍSTICASCARACTERÍSTICAS
Cada indivíduo representa uma possível solução para um dado problema.
A cada indivíduo é associado um escore de aptidão, que mede o quão boa é a solução que ele representa.
Indivíduos mais aptos têm mais oportunidades de serem reproduzidos.
![Page 27: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/27.jpg)
Quando que se deve usar um Algoritmo Genético? Quando o espaço de buscas é
muito grande (nestes casos, a enumeração de todas as possíveis soluções torna-se impraticável) ...
… e quando os métodos tradicionais – por exemplo programação linear – não são aplicáveis.
![Page 28: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/28.jpg)
Aplicabilidade Problemas difíceis de otimização:
Otimização de funções com restrições lineares e não-lineares.
Avaliação de crédito e análise de risco. Previsão financeira. Gestão de recursos. Problema do caixeiro viajante. Planejamento da operação de usinas hidrelétricas. Jogos. Programação genética.
Obs.: Algoritmos Genéticos são paralelos por natureza.
![Page 29: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/29.jpg)
De que modo os algoritmos genéticos diferem de outras técnicas?
Trabalham com uma população de soluções, em vez de uma só solução.
Usam regras de transição probabilísticas em vez de regras determinísticas.
Evitam problemas de continuidade, existência de derivada, etc.
![Page 30: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/30.jpg)
Algoritmos Genéticos
População atual
Reprodução
Avaliação
Seleção
População inicial População final
![Page 31: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/31.jpg)
Indivíduos Material genético. Conjunto de atributos da solução. Cada atributo é uma seqüência de
bits, e o indivíduo é como a concatenação das seqüências de bits.
Codificação binária, real, códigos.
![Page 32: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/32.jpg)
Codificação Cada indivíduo é codificado por um conjunto de
parâmetros (genes) Genes podem assumir valores:
Binários (0; 1) Inteiros (-2; -1; 0 ; 1; 2; 3...) Reais (-2,33; 0; 3,45; 2,5 x 1024)
Parâmetros são combinados para formar strings ou vetores (cromossomos)
Exemplo:Xi = [ 2 1 8 0 -2 -4 1 ]
![Page 33: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/33.jpg)
Codificação binária Cada cromossomo é uma string de
bits – 0 ou 1 Cromossomo A = 1 0 1 1 0 0 1 0 1 1 Cromossomo B = 1 1 1 1 1 1 0 0 0 0
Exemplo de uso: problema da mochila. Codificação: Cada bit diz se um
elemento está ou não na mochila.
![Page 34: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/34.jpg)
Codificação inteira Mais usado em problemas de ordenação. Cada cromossomo é uma string de números
que representa uma posição numa seqüência. Cromossomo A: 1 5 3 2 6 4 7 9 8 Cromossomo B: 8 5 6 7 2 3 1 4 9
Exemplo de uso: problema do caixeiro viajante. Codificação: os cromossomos descrevem a ordem
em que o caixeiro irá visitar as cidades.
![Page 35: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/35.jpg)
Problema do Caixeiro Viajante (TSP)
Um caixeiro viajante deve visitar N cidades em sua área de vendas.
O caixeiro começa de uma base, visita cada cidade uma única vez e retorna à sua cidade no final.
A cada viagem esta associado um custo. O caixeiro deve percorrer a rota mais curta.
1
34
2 5
6
7
![Page 36: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/36.jpg)
TSP: Implementação Cromossomo - Enumerado
Objetivo - minimizar o caminho total (tour).
4 5 2 1 6 3
![Page 37: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/37.jpg)
Codificação por valor. Usado em problemas onde “valores
mais complicados” são necessários. Cada cromossomo é uma seqüência
de valores: Cromossomo A:
1.2324 5.3243 0.4556 2.3293 2.4545 Cromossomo B:
ABDJEIFJDHDIERJFDLDFLFEGT Cromossomo C:
(back), (back), (right), (forward), (left)
![Page 38: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/38.jpg)
Representação Restrição: determinar de modo não
ambíguo uma solução. Exemplos comuns:
vetor de bits matrizes árvores etc.
1 0 1 0 0 1 1 0 0 0 1 1 1 0 1
A B C
![Page 39: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/39.jpg)
População Conjunto de indivíduos que estão sendo
cogitados como solução. Populações pequenas têm grandes chances
de perder a diversidade necessária para exploração adequada do espaço de soluções.
Populações grandes perdem grande parte de sua eficiência pela demora nos cálculos da função de adaptação.
Existe o compromisso qualidade da solução versus tempo.
![Page 40: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/40.jpg)
População inicial
Aleatoriamente escolhida ou não.
Compromisso entre velocidade de
convergência e variedade.
![Page 41: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/41.jpg)
Estrutura básica de um Algoritmo Genético
População
Avaliação da Aptidão
Seleção
Cruzamento
Mutação
Operadores genéticos
Critério de Parada?
Retornar Melhor Indivíduo
Não
Sim
![Page 42: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/42.jpg)
Função de Adaptação (de Aptidão) Mede a adaptação do indivíduo ou quão
boa é a solução dada por este indivíduo. Aptidão = probabilidade do indivíduo
sobreviver para a próxima geração. Representação do problema: diferencia
uma solução boa de uma ruim. É aplicada ao fenótipo do indivíduo.
O genótipo precisa ser decodificado, recuperando o fenótipo associado.
Cada aplicação tem sua própria função de aptidão.
![Page 43: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/43.jpg)
Função de aptidão Heurística de busca no espaço de estado.
Em alguns problemas, encontrar um indivíduo válido é uma problema de otimização, portanto necessitam de heurísticas para gerá-lo.
Exemplo 1: projeto de ponte: menor custo. menor tempo de construção. maior capacidade de carga.
Exemplo 2: Timetabling (horários escolares).
Cuidados com o custo computacional.
![Page 44: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/44.jpg)
Seleção Escolhe preferencialmente, embora
não exclusivamente, indivíduos com maiores notas de aptidão. Procura manter a diversidade da
população. Indivíduos mais aptos têm mais
oportunidades de serem reproduzidos.
![Page 45: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/45.jpg)
Seleção
Objetivo: propagar material genético dos indivíduos mais
adaptados. Problemática da convergência prematura
(compromisso entre rapidez e diversidade): Um indivíduo super adaptado no começo não deve ser
valorizado demais. Indivíduos ruins no começo não podem ser desprezados.
Tipos: Roleta (ranking probabilístico): pselect(i) = f(i) / f(j).
Ranking por ordenação. Torneio binário (eliminatórias 2 a 2). Elitista (n melhores indivíduos são selecionados). Biclassista ( pb % dos melhores e pw % dos piores
indivíduos) Outros.
![Page 46: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/46.jpg)
SELEÇÃO COMPETITIVA
Seleciona k indivíduos e pega o melhor deles para a próxima geração.
Repete o processo n vezes. Seleção de Boltzmann.
![Page 47: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/47.jpg)
4
1
32
Roleta
n. cadeia aptidão % do total
1 01101 169 14,4
2 11000 576 49,2
3 01000 64 5,5
4 10011 361 30,9
1170 100,0Total
![Page 48: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/48.jpg)
Seleção pela roleta
Indivíduo Si
S3 11110
S4 01001
S5 00110
S1 10110
S2 11000
Aptidãof(Si)
1.05
3.35
1.69
2.23
7.27
AptidãoRelativa
0.14
0.47
0.07
0.21
0.11
S1
S2S3
S4
S5
Método da Roleta baseado em Aptidão Relativa
![Page 49: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/49.jpg)
Exemplo
Indivíduosfunção de adaptação
% função de adaptação
10101010110101010111
12 23,08
00001001010101110010
8 15,38
00001100001011011101
9 17,31
00000110010010000010
6 11,54
11100011100010011111
12 23,08
00010101001000010000
5 9,62
Total 52 100,00
Roleta
23%
15%
17%12%
23%
10%
![Page 50: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/50.jpg)
Problemas da Roleta Tecnicamente resulta numa
distribuição proporcional de indivíduos.
Convergência muito rápida.
Variância baixa.
![Page 51: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/51.jpg)
Torneio binário
Escolhe-se um par de indivíduos da população.
O melhor tende a sobreviver, e o pior tende a morrer, segundo uma probabilidade.
Repete-se este processo N vezes (N é o tamanho da população).
![Page 52: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/52.jpg)
Torneio binárioInício
k = 0.75Repita N vezes
Escolha 2 indivíduos da população aleatoriamenter = valor aleatório entre 0 e 1Se r < k
O melhor indivíduo é escolhidoSe não
O pior indivíduo é escolhidoFim Se
Fim RepitaFim Início
![Page 53: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/53.jpg)
Exemplo de seleção com torneio binário
estrutura fitness
A
B
C
D
8
2
4
5
estrutura fitness
A
C
A
D
8
4
8
5
Antes Depois
4 torneios: (A,D) (B,C) (A,B) (C,D)
4 vencedores: A C A D
![Page 54: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/54.jpg)
Elitismo Indivíduo de maior desempenho é
automaticamente selecionado. Evita modificações deste indivíduo pelos
operadores genéticos. Existem várias formas e graus de elitismo. Por
exemplo, uma percentagem dos melhores elementos da atual geração são copiados para a geração seguinte.
![Page 55: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/55.jpg)
Algoritmo
população inicial
pais selecionados
filhos gerados
nova população
seleção (função de adaptação)
operadoresgenéticos
cruz repr mut
nova pop.completa?
não
sim
satisfeito c/a solução?
não
início
soluçãofim
sim
![Page 56: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/56.jpg)
Reprodução / Operadores Permite obtenção de novos
indivíduos. Preserva características úteis. Introduz variedade e novidades. Estratégias:
Parentes únicos: clonar + mutação Parentes múltiplos: recombinação +
mutação
![Page 57: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/57.jpg)
ponto único ponto duplo
Reprodução/recombinação Função:
combinar e/ou perpetuar material genético dos indivíduos mais adaptados
Tipos: assexuada (=duplicação) sexuada (crossover)
![Page 58: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/58.jpg)
Reprodução Reprodução sexual, genes são
intercambiados entre dois pais – crossover.
Os filhos são sujeitos a modificações, na qual bits elementares são mudados – mutação.
![Page 59: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/59.jpg)
Métodos de Recombinação Cruzamento: cria novos indivíduos
misturando características de dois indivíduos pais (crossover).
Cópia de segmentos entre os pais. Crossovers multiponto, dois
pontos, um ponto, uniforme e inversão.
![Page 60: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/60.jpg)
Exemplo de crossover
pai
mãe filho 2
filho 1
Antes de recombinar Depois de recombinar
1110100111 010 1110100111
0100011011010 0011011010100
100
![Page 61: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/61.jpg)
Crossover 1 ponto
Filhos
10 0 0 0 11 0 10 00 1 1
10 0 0 0 110 1000 1 1
Pais
Pai 1 Pai 2
Filho A Filho B
Ponto de crossover
![Page 62: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/62.jpg)
Crossover de 2 pontos
Filhos
10 0 0 0 11 0 10 00 1 1
10 0 0 00 1010 1 1
Pais
Pai 1 Pai 2
Filho A Filho B
0 1
![Page 63: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/63.jpg)
Cruzamento em dois pontos
1 1 1 0 0 1 0 1
1 0 0 0 0 0 0 1
1 1 1 0
0 1 0
1
1 0 0 0
0 0 0
1
Individuo 1
Individuo 2
Descendente 1
Descendente 2
Indivíduo 1
Indivíduo 2
![Page 64: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/64.jpg)
Cruzamento uniforme
Os filhos são formados a partir dos bits dos pais (sorteado).
![Page 65: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/65.jpg)
Crossover uniforme
Filhos
10 0 0 0 11 0 10 00 1 1
10 0 110 0000 1 1
Pais
Pai 1 Pai 2
Filho A Filho B
Sorteio: 0 1 0 1 0 0 0
1 0
![Page 66: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/66.jpg)
Problema das N-Rainhas
Definição: Colocar N rainhas em um tabuleiro N x N de forma
que nenhuma seja atacada pelas outras. A forma geral de uma solução é uma permutação de
um vetor de inteiros [1, . . . , N]. A solução para o problema de 8 rainhas mostrada
abaixo é representada pelo vetor [4, 2, 7, 3, 6, 8, 5, 1].
![Page 67: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/67.jpg)
Histórico
![Page 68: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/68.jpg)
Complexidade
1
10
100
1000
10000
100000
1000000
10000000
100000000
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
# de rainhas
Pas
sos
![Page 69: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/69.jpg)
Resultados
0,01
0,1
1
10
100
1000
10000
5 10 15 16 17 18 19 20 21 22 23 25
Número de rainhas
Tem
po
(se
gu
nd
os)
Algoritmo 1 Algoritmo 2 Algoritmo 3 Algoritmo 4
![Page 70: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/70.jpg)
Conclusões
O PROLOG conseguiu resolver instâncias de
até 25 rainhas em menos de 1000 segundos
(Amzi 3.4 - Pentium II 266 MHz - 128 Mb)
Quando o número de rainhas é impar, a busca
é bem mais rápida do que quando temos um
número par de rainhas.
![Page 71: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/71.jpg)
Exemplo?- tempo(10). . . . . . . . . Q . . . . . . Q . . . . . . . Q . . . . . . . . . . . . Q . . . Q . . . . . . . . . . . . . . . . Q . . . Q . . . . . . . . . . . . Q . . . . . . . Q . . . . . . . . . . . . . . . . Q
0.330002yes?- queens(10,S).S = [5,7,9,3,8,2,4,6,1,10]
![Page 72: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/72.jpg)
RecombinaçãoExemplo:
+ =
![Page 73: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/73.jpg)
X
X
Reprodução Quanto mais “estruturada” a representação
mais difícil é definir o cruzamento.
![Page 74: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/74.jpg)
Mutação Esta operação altera aleatoriamente
alguma característica do indivíduo. Cria novas características que não
existiam. Mantém diversidade na população. Assegura que a probabilidade de
atingir qualquer ponto do espaço de busca nunca será zero.
![Page 75: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/75.jpg)
Mutação Com probabilidade Pm, mudar um
gene de 0 para 1, ou de 1 para 0. Este operador costuma ser usado
com uma probabilidade muito baixa, por exemplo, 0.001.
Antes de mutação Depois de mutação1100101111 1100101101
gene 9 sofreu uma mutação
![Page 76: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/76.jpg)
Mutação
10 0 0 0 11
10 1 10 0 1
Antes da mutação
Após a mutação
![Page 77: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/77.jpg)
Mutação
Mutação de 1 bit01100 ->00100
Mutação de grupo de bits01100 -> 01011
Mutação de todos os bits01100 -> 10011
![Page 78: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/78.jpg)
Mutação O objetivo da mutação é evitar que as
soluções na população fiquem apenas num mínimo local.
Filho1 antes : 1101111000011110 Filho2 antes : 1101100100110110 Filho1 depois : 1100111000011110 Filho2 depois : 1101101100110110
![Page 79: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/79.jpg)
MutaçãoExemplo:
![Page 80: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/80.jpg)
Mutação Objetivo:
gerar diversidade (para escapar de ótimos locais). Tipos:
generativa
destrutiva
swap
swap de seqüência Observação:
A taxa de mutação pode diminuir com o tempo para garantir a convergência.
![Page 81: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/81.jpg)
Permutação
Permutação de dois genes:
000110001010
Troca do bit 4 com o bit 8:
000010011010
![Page 82: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/82.jpg)
Inversão
antes da inversão
1 0 0 | 1 0 1 0 | 0 1 0
depois da inversão
1 0 0 | 0 1 0 1 | 0 1 0
![Page 83: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/83.jpg)
Substituição Objetivo:
garantir uma convergência adequada. Tipos:
Simples: a nova geração SUBSTITUI a antiga. Elitista: a nova geração se MISTURA com a antiga.
Critérios de substituição no caso elitista: os piores. os mais semelhantes. os melhores. os pais. aleatoriamente. ...
![Page 84: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/84.jpg)
Probabilidades Dinâmicas Nas primeiras gerações a população inicializada aleatoriamente já contém
grande diversidade, portanto a probabilidade de mutação (diversidade) deve ser baixa. Ao contrário, a probabilidade de cruzamento (procura local) deve ser elevada.
À medida que o processo avança a população perde diversidade e pode estagnar em mínimos locais pelo que se deve reduzir a probabilidade de cruzamento e aumentar a probabilidade de mutação.
CruzamentoMutação0.8
0.05
t
![Page 85: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/85.jpg)
Evitando a convergência prematura
Escalonamento da função de avaliação. Normaliza a função de avaliação “bruta”.
Diminuição do escore dos indivíduos mais semelhantes.
Algoritmos genéticos paralelos.
![Page 86: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/86.jpg)
Algoritmos genéticos paralelos
k populações são iniciadas e evoluem paralelamente.
A cada n-ésima geração, as populações trocam indivíduos.
![Page 87: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/87.jpg)
LIDANDO COM O PROBLEMA DE CONVERGÊNCIA PREMATURA
Estratégia de prevenção de incesto.
Uso de cruzamento uniforme. Detecção de cromossomos
duplicados na população. Usando um conhecimento prévio
das características da função.
![Page 88: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/88.jpg)
MECANISMO DE AMOSTRAGEM
diversidade da população
pressão seletiva
convergência para sub-ótimos
![Page 89: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/89.jpg)
OUTRO MÉTODO DE AMOSTRAGEM
Introdução artificial de pesos. Crença que convergência prematura é
causada pela presença de super indivíduos que são muito melhores que a média da população.
Tais indivíduos aumentam muito seu número de descendentes nas próximas gerações eliminando a possibilidade de cromossomos desejáveis.
![Page 90: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/90.jpg)
Algoritmos GenéticosResumo
![Page 91: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/91.jpg)
Balanço Explotação-Exploração Pressão de seleção: explotação.
Reduz o espaço de busca. Reprodução: exploração.
Expande o espaço de busca. Balanço
Seleção forte + taxas de mutação altas Seleção fraca + taxas de mutação
baixas
![Page 92: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/92.jpg)
Escolha de parâmetros Escolhidos de acordo com o problema.
Quantos cromossomos em uma população?
Poucos efeito pequeno do cruzamento. Muitos aumenta tempo de computação.
Taxa de mutação? Baixa mudanças lentas. Alta traços desejados não são mantidos
(caos).
![Page 93: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/93.jpg)
Escolha de parâmetros Outros parâmetros:
Quantos indivíduos selecionados para reprodução?
Quantos pontos de crossover? Critério para medir aptidão?
Manter limites no tamanho da população e na complexidade da análise. Algoritmo pode se tornar ineficiente.
![Page 94: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/94.jpg)
Critério de parada Tempo de execução. Número de gerações. Valor de aptidão mínimo e/ou
médio. Convergência:
Nas últimas k iterações não houve melhora nas aptidões.
![Page 95: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/95.jpg)
Análise de SemelhançaOs indivíduos começados por 11*** correspondem aos de maior valor.
11*** representa os seguintes indivíduos:
11000 576
11001 625
11011 729
01*** representa os seguintes indivíduos:
01000 64
01100 144
01101 169
Cromossomo Adaptabilidade
01101 16911000 57601000 6410011 36101100 14411001 62511011 72910000 256
![Page 96: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/96.jpg)
DEFINIÇÃO DE ESQUEMA Um esquema é construído pela introdução do
símbolo ‘*’ dentro do alfabeto genético. Um esquema representa todos os
cromossomos que coincidem em todas as posições que não contém o símbolo ‘*’.
Exemplos: (*,1,0) representa dois cromossomos: (1,1,0) e
(0,1,0). (*,1,*) representa quatro cromossomos: (1,1,0);
(1,1,1); (0,1,0) e (0,1,1). (*,*,*) representa todos os cromossomos de
tamanho 3.
![Page 97: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/97.jpg)
Esquemasn. cadeia aptidão % do total1 01101 169 14,42 11000 576 49,23 01000 64 5,54 10011 361 30,9
esquema 1****, melhor que 0****
![Page 98: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/98.jpg)
ESQUEMAS Cada esquema representa 2r
cromossomos, onde r é o número de símbolos ‘*’.
Cada cromossomo de tamanho m é representado por 2m esquemas.
Exemplo: o cromossomo (1,0,0) é representado por (1,0,0); (*,0,0); (1,*,0); (1,0,*); (*,*,0); (*,0,*); (1,*,*) e (*,*,*).
![Page 99: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/99.jpg)
ExemploO cromossomo 1010 tem os seguintes esquemas:
101* 101010*0 10**1*10 1*1*1**0 1****010 *01* 24 = 16*0*0 *0****10 **1****0 ****
![Page 100: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/100.jpg)
Ordem
Uma População com n indivíduos contém n.2m esquemas.
O(H), a ordem de um esquema H, é o número de símbolos fixos (diferente de *) presentes no esquema.
O(011*1**) = 4O(*01*010*) = 5
![Page 101: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/101.jpg)
Por que converge? Esquemas
“subpartes” comuns recorrentes. Teorema dos esquemas
O número de esquemas bem adaptados cresce exponencialmente.
“Hipóstese da Construção de Blocos” A otimalidade é obtida por
justaposição de pequenos esquemas altamente adaptados.
![Page 102: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/102.jpg)
TEOREMA“Esquemas acima da média, pequenos e de baixa ordem, recebem aumento exponencial em gerações subseqüentes de um algoritmo genético.”
![Page 103: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/103.jpg)
HIPÓTESE DE CONSTRUÇÃO DE BLOCO
“Um algoritmo genético busca performance próximo ao ótimo através da justaposição de esquemas pequenos, de baixa ordem e de alta performance, chamados blocos de construção.”
![Page 104: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/104.jpg)
CONTRA-EXEMPLO: DECEPÇÃO
Suponha que: sejam acima da média os dois esquemas pequenos
e de baixa ordem: S1=(111********) e S2=(*********11).
que a combinação de S1 e S2 dê S3=(111******11). S3 é muito menos adaptado que S4=(000******00). (11111111111) é a solução ótima.
O algoritmo pode tentar convergir para pontos como (00011111100).
![Page 105: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/105.jpg)
DECEPÇÃO: Quando algum bloco de construção
pode enganar o algoritmo genético e levar a uma convergência para pontos subótimos.
Está fortemente ligado com o conceito de epistasia.
![Page 106: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/106.jpg)
PROPOSTAS PARA O PROBLEMA DE DECEPÇÃO
Conhecimento da função Operador “Inversão”
s = {(1,0)(2,0)(3,0)|(4,1)(5,1)(6,0)(7,1)|(8,0)(9,0)}
s’ = {(1,0)(2,0)(3,0)|(7,1)(6,0)(5,1)(4,1)|(8,0)(9,0)}
(11***1) {(1,1)(2,1)(3,*)(4,*)(5,*)(6,1)} poderia ser invertido para: {(1,1)(2,1)(6,1)(3,*)(4,*)(5,*)}.
![Page 107: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/107.jpg)
TEORIA x PRÁTICA
A codificação do problema para Algoritmos Genéticos opera num espaço diferente que o do problema real.
Existe um limite no hipotético número ilimitado de iterações.
Existe um limite no hipotético número ilimitado do tamanho da população.
Convergência prematura é comum resultando em soluções subótimas.
![Page 108: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/108.jpg)
Exemplo: Robótica Evolutiva
![Page 109: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/109.jpg)
Exemplo: Robótica Evolutiva
Objetivo: navegação sem colisões.
Robôs
Simples Complexo
![Page 110: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/110.jpg)
EXEMPLO: REDE DE COMUNICAÇÃO
Indivíduo: grafo (potencial solução). Objetivo: redução de custos ou
sobrevivenciabilidade. Solução inicial: heurística ou aleatória. Conhecimento específico do
problema: Por exemplo: deseja-se árvores.
mutação: retirar um arco e acrescentar outro que una os dois subgrafos disjuntos.
![Page 111: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/111.jpg)
Requisitos para usar AG
Representações das possíveis soluções do problema no formato de um código genético.
População inicial que contenha diversidade suficiente para permitir ao algoritmo combinar características e produzir novas soluções.
Existência de um método para medir a qualidade de uma solução potencial.
![Page 112: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/112.jpg)
Requisitos para usar AG
Um procedimento de combinação de soluções para
gerar novos indivíduos na população.
Um critério de escolha das soluções que permanecerão
na população ou que serão retirados desta.
Um procedimento para introduzir periodicamente
alterações em algumas soluções da população. Desse
modo mantém-se a diversidade da população e a
possibilidade de se produzir soluções inovadoras para
serem avaliadas pelo critério de seleção dos mais
aptos.
![Page 113: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/113.jpg)
Recordando...Recordando...ALGORITMOALGORITMO
CRUZAMENTO ("CROSS-OVER") Os indivíduos selecionados na etapa anterior são cruzados com elementos randômicos da população atual.
![Page 114: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/114.jpg)
Questões centrais Como representar os indivíduos? Quem é a população inicial? Como definir a função objetivo? Quais são os critérios de seleção? Como aplicar/definir o operador de
reprodução? Como aplicar/definir o operador de
mutação? Como garantir a convergência e ao
mesmo tempo a solução ótima?
![Page 115: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/115.jpg)
ALGORITMOS GENÉTICOS APLICADOS NO
SEQÜENCIAMENTO DA OPERAÇÃO DE TURBINAS EM
USINAS HIDRELÉTRICAS
Erinaldo Faria dos SantosErinaldo Faria dos Santos
Oderson Dias de MelloOderson Dias de Mello
Takaaki OhishiTakaaki Ohishi
![Page 116: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/116.jpg)
INICIANDO A POPULAÇÃO
Aleatoriamente. Utilizando um conhecimento prévio sobre a distribuição do ótimo em potencial.
![Page 117: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/117.jpg)
. :1 cromossomo
cada para acumulada adeprobabilid aCalcular
.)(
:1 cromossomo
cada para seleção de adeprobabilid aCalcular
.)( :população da totalaptidão aEncontrar
.1 cromossomo
cada para )( aptidão da valor oCalcular
1
_
1
i
jjii
i
iii
i
sizepop
ii
i
i
pq,pop_size),(iv
qF
vevalp,pop_size),(iv
p
vevalF
,pop_size),(iv
veval
![Page 118: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/118.jpg)
GIRANDO A ROLETA POP_SIZE VEZES
Cada rodada um cromossomo é selecionado para uma nova população assim: Geramos um número aleatório (r)
entre 0 e 1.
.
que tal
ésimo-i o osselecionam não se
; osselecionam então Se
ii
i
i
qrq
sizepopiv
vqr
1
1
)_2(
![Page 119: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/119.jpg)
CROSSOVER - CRUZAMENTO Probabilidade pc. Gere os números aleatórios r (real) em
[0..1] e pos (inteiro) em [1..m-1]. Se r<pc selecione o cromossomo para
cruzamento. Antes: (b1b2...bposbpos+1...bm) e
(c1c2...cposcpos+1...cm). Depois:(b1b2...bposcpos+1...cm) e
(c1c2...cposbpos+1...bm).
![Page 120: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/120.jpg)
MUTAÇÃO Para cada bit de todos os
cromossomos na população atual (depois do cruzamento) faça: Gere um número aleatório (r) entre 0
e 1. Se r<pm mude o bit.
![Page 121: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/121.jpg)
Critérios de parada Número de gerações. Número de avaliações da função
objetivo. Genótipo:
Convergência dos alelos. Fenótipo:
Tamanho do ganho na função objetivo após n iterações.
![Page 122: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/122.jpg)
O Problema
Determinar o número de turbinas que devem operar em cada usina hidrelétrica, para todos os intervalos de tempo do próximo dia, de forma a minimizar as perdas de energia, sujeito a restrições de atendimento das demandas e limites de geração de potência das turbinas.
![Page 123: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/123.jpg)
Turbina
![Page 124: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/124.jpg)
Modelo Matemático
Legenda:
km
td(t)
titiI
itiPF
iiP
iiP
titiP
k
i
usina da diária energética meta :
tempono carga de demanda:
desligado)0 ligado,(1 tempono turbinada estados devetor :),(
turbinana perdas de função:)],([
turbinapela gerada máxima potência:)(
turbinapela gerada mínima potência:)(
tempono turbinapela gerada potência:),(
max
min
.1
1}1,0{
.1
1
1
1),(
),()].,([
maxmin
1
1
1 1
,T,t
,N;,ii,tI
,T,t
,N;,i(i).I(i,t)PP(i,t)(i).I(i,t)P
U.,km,t)P(i,t).I(i
,T.,td(t)tiP(i,t).Isujeito à:
tiItiPFMin
kik
T
t
N
i
T
t
N
ii
![Page 125: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/125.jpg)
Proposta: Tendo em vista que o problema exposto
tem natureza combinatorial (2NxT soluções possíveis), propusemos o desenvolvimento de um algoritmo genético para encontrar uma boa solução.
Como estudo de caso empregaremos o algoritmo à um problema “real” brasileiro com 3 usinas, totalizando 11 turbinas que operam em intervalos de uma hora.
Espaço de busca: 211x24 3x1079.
![Page 126: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/126.jpg)
524
![Page 127: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/127.jpg)
Curva de cargay = 0,001x6 - 0,0824x5 + 2,4399x4 - 33,635x3 + 213,62x2 - 502,31x + 690,11
0
100
200
300
400
500
600
700
800
900
1000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
horas
dem
and
a
![Page 128: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/128.jpg)
Características do Algoritmo Genético Cromossomo - 264 posições Seleção por ranking pc=0.25 pm=0.01 Tamanho da população: 50 Gerações: 1000 Tempo de execução: 140-470 s
![Page 129: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/129.jpg)
FitnessJurumirim
0,0
0,5
1,0
1,5
2,0
2,5
3,0
3,5
4,0
4,5
5 15 25 35 45 55
Potência [MW]
Per
da
[MW
]
Total
Canal Fuga
Hidráulica
Rendimento
Polinômio (Total)
![Page 130: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/130.jpg)
Manuseio de restriçõesOpções:
1. Penalizar2. Factibilizar3. Descartar
![Page 131: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/131.jpg)
Evolução da perda com população inicial aleatória (escala logarítmica)
100
101
102
103
102
103
104
105
106
107
Gerações
Pe
rda
Ene
rgét
ica
Evolução da Perda Energética do Melhor Indivíduo e da Média
Melhor Ind. na Pop.Média
![Page 132: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/132.jpg)
Evolução da perda com população baseada na curva de carga (escala logarítmica)
100
101
102
103
102
103
104
105
106
Gerações
Per
da E
nerg
étic
a
Evolução da Perda Energética do Melhor Indivíduo e da Média
Melhor Ind. na Pop.Média
![Page 133: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/133.jpg)
Programa (sem custos de partida)
![Page 134: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/134.jpg)
Número de turbinas ligadas – sem custos de partida (usina 1)
![Page 135: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/135.jpg)
Número de turbinas ligadas – sem custos de partida (usina 2)
![Page 136: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/136.jpg)
Número de turbinas ligadas – sem custos de partida (usina 3)
![Page 137: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/137.jpg)
Programa (com custos de partida)
![Page 138: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/138.jpg)
Perdas + custos de partida
![Page 139: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/139.jpg)
Número de turbinas ligadas – com custos de partida (usina 1)
![Page 140: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/140.jpg)
Número de turbinas ligadas – com custos de partida (usina 2)
![Page 141: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/141.jpg)
Número de turbinas ligadas – com custos de partida (usina 3)
![Page 142: Computação Evolutiva Oderson Dias de Mello .](https://reader035.fdocument.pub/reader035/viewer/2022062303/552fc0f8497959413d8b5467/html5/thumbnails/142.jpg)
Computação Evolutiva
Oderson Dias de Mello www.oderson.com