Computação Evolutiva Osvaldo R. Saavedra Grupo de Sistemas de Potência DEE - UFMA São Luís- MA www.dee.ufma.br Metáforas utilizadas em IA • Cérebro e sistema nervoso ⇒ conexionismo • Linguagem + processos cognitivos ⇒ IA simbólica • Teoria da evolução ⇒ computação evolutiva Introdução Herança Genética --> Sobrevivência do mais apto ♦ 1859: “Seleção natural” princípio evolucionário fundamental formulado por Charles Darwin antes da descoberta dos mecanismos genéticos. Sobre Darwin • Charles Darwin era, antes da viagem do Beagle, um ardoroso criacionista e membro da igreja ortodoxa anglicana. • Aparentemente continuou criacionista até pouco após o retorno à Inglaterra, quando as primeiras idéias "transformistas" lhe vieram em 1837 discutindo sobre diferentes espécies de pássaros de galápagos com um ornitologista. Sobre Darwin • A seleção natural emergiu em 1838 lendo Malthus sobre o Princípio das populações. • Em 1844 escreveu um ensaio sobre seleção natural mas não chegou a apresentá-lo à comunidade científica com medo de represálias. Sobre Darwin • Em 1856 começou a escrever sua grande obra que se chamava "Natural Selection" a qual não terminou porque recebera de Alfred Russel Wallace, em 1858, a carta com a descrição do manuscrito "Sobre a tendência de variedades de se afastarem indefinidamente a partir do ponto original". Seleção natural • As espécies evoluem pelo principio da seleção natural e sobrevivência do mais apto. ♦Hipótese da mistura das heranças: qualidades dos pais fluem, misturadas, no organismo do descendente. • A polêmica sobre a origem do homem.... Pesadelo de Jenkins (1867) ♦ a Hipótese de Darwin é objetada: ♦ As distinções entre indivíduos rapidamente desaparecem, não havendo seleção num população homogênea. Leis de Mendel (1865) ♦ Gregor Medel: ♦ Princípios básico de transferência de fatores genéticos pais-filhos ⇒ Natureza discreta ♦ Experimentos do cruzamento genético de ervilhas Leis de Mendel • A herança dos caracteres era particulada, cada parental (pai) contribuía uma parte para a prole. Esta parte (partícula, fator) é agora chamada de gene que codifica o que chamamos de fenótipos (caracteres). • Um gene pode existir em várias formas diferentes, e cada uma destas formas é chamada de alelo. • Em alguns casos, pode existir dominância de um alelo (dominante) sobre o outro (recessivo). Leis de Mendel • Cada planta carregava duas cópias do mesmo gene, portanto foram chamadas diplóides, e de acordo com este conceito deduziu que os homozigotos possuíam cópias idênticas do mesmo alelo, enquanto que heterozigotos possuíam cópias de alelos diferentes. • Posteriormente, Mendel também deduziu que as células sexuais deveriam ser haplóides pois conteriam apenas uma das cópias. Leis de Mendel ♦ As Leis de Mendel foram redescobertas independentemente (1900) por Hugo de Vries, K. Correns e K. Tschermark: – Só a seleção natural não é responsável pela produção de novas espécies: – Tem que existir mecanismo de mudança genética. • Teoria da Mutação Leis de Mendel ♦ Morgan e equipe: provam experimentalmente que cromossomos são o principal meio de transferência da herança e genes representam os fatores hereditários. Leis de Mendel ♦ Durante muitos anos as Leis de Mendel e a Teoria da Seleção Natural de Darwin ficaram independentes e opostas entre elas. ♦ Década dos 20: Cetverikov mostra que ambas teorias não são conflitantes. • Sobre este feliz casamento descansa a teoria evolucionária moderna. O Paradigma Neo-Darwiniano • O paradigma neo-Darwiniano estabelece que a história da vida envolve apenas uns poucos processos estatísticos que agem nas -e entre- as populações e espécies. • Estes processos são : reprodução, mutação competição e seleção. Computação Evolutiva • A Evolução Simulada - ou Computação Evolutiva - é baseada em processos de aprendizagem coletiva dentro de uma população de indivíduos, onde cada um representa um ponto de busca no espaço de possíveis soluções para um determinado problema. Correntes Algorítmicas Algoritmos Evolutivos Algoritmos Genéticos Estratégias Evolutivas Programação Evolucionária Programação Genética Simulated Annealing Colónias de Formigas ... ... Computação Evolutiva • A maioria das implementações atuais de algoritmos Evolutivos derivam-se de três grandes correntes independentes, ainda que fortemente relacionadas, que são: ♦ Algoritmos Genéticos; ♦ Estratégias Evolutivas; ♦ Programação Evolutiva. Computação Evolutiva • Em cada um destes métodos, uma população de indivíduos é inicializada e evolui para sucessivas regiões melhores no espaço de busca, através de um processo estocástico de seleção, mutação e, se apropriado, recombinação (cruzamento). Computação Evolutiva • Em que diferem estes Métodos ? Os métodos diferem com relação à: – representação específica; – operações de mutação e – processo de seleção Breve Histórico • Os Algoritmos Genéticos (AG’s) foram introduzidos por J. Holland na década dos 60, tendo posteriormente a atenção de vários autores, entre eles De Jong, Goldberg, Davis e Koza, entre outros. AG´s • Enfatizam os operadores cromossômicos, sendo estes baseados na observação dos mecanismos genéticos, isto é, cruzamento e mutação. • Os AG´s canônicos utilizam representação binária Estratégias Evolutivas (EE’s) • Foram inicialmente desenvolvidas na Alemanha, por Schewefel e Rechenberg, também na década de 1960, e posteriormente estendidas por Herdy, Rudolph e Schwefel, entre outros. • Esta técnica foi inicialmente orientada para a resolução de problemas complexos de otimização de parâmetros. Programação Evolutiva (PE) • Foi introduzida por L. Fogel em 1962 e estendida por Burgin, Atmar e D. Fogel recentemente, entre outros. • A meta original da Programação Evolutiva foi criar inteligência artificial, através do desenvolvimento de máquinas de estado finito para predizer eventos a partir de observações prévias. EE´s e PE • O Paradigmas Estratégias Evolutivas e Programação Evolutiva são muito similares. • Ambos métodos operam com uma população de soluções, sujeitando essas soluções a alterações através de mutações aleatórias e competição entre soluções existentes com base em uma função objetivo externa Por que Computação Evolutiva ? • Muitos problemas encontrados na engenharia envolver otimizar um ou vários critérios. Por que Computação Evolutiva ? • Em termos gerais, um problema de otimização consiste em encontrar um vetor x ∈ M, onde M define a região de soluções viáveis, tal que um certo critério de qualidade f é maximizado (ou minimizado): Maximizar f(x) Por que Computação Evolutiva ? • A função objetivo pode ser para sistemas reais de complexidade arbitrária. • A solução para a otimização global para este problema, denominada x*, é caracterizada como: x* / ∀ x ∈ M, f(x) < f(x*) Complexidade de f - Dificuldades • • • • • • • Multimodalidade; Dimensionalidade; Fortes não-linearidades; Não-diferenciabilidades; ruídos; Funções objetivos variantes no tempo; etc. Métodos de busca: otimização • Tipo gradiente: hill-climbing – problema: mínimos locais • Enumerativos -> cada ponto é avaliado – Problema: custa caro Métodos de busca: otimização • Heurísticos: Resfriamento simulado (simulated annealing) • Heurísticos : computação evolutiva – indivíduo = solução Processo adaptativo e paralelo Complexidade de f : Dificuldades • Essas dificultades levam a problemas de otimização de difícil solução, ou às vezes, insolúveis. • Neste último caso, a obtenção de soluções próximas - e não apenas uma indicação de divergência - são de grande ajuda em problemas práticos. Modelos aproximados • Com o excesso de simplificações, as soluções obtidas não resolvem o problema original. • Tais problemas, como no caso de modelos para simulações, são na maioria das vezes considerados sem solução. Técnicas Evolutivas • A maioria dos autores destaca três aspectos chave, que são: • O grau de adaptabilidade e flexibilidade; • Robustez; • Busca global. Técnicas Evolutivas • Não há restrição quanto à complexidade dos problemas: • Podem ser tanto discretos como contínuos; • As funções objetivos e restrições podem ser: – lineares, – não lineares, – contínuas ou discretas. Técnicas Evolutivas • A diferença fundamental da Computação Evolutiva está em adaptar os métodos aos problemas a serem tratados. • Os Algoritmos Evolutivos não devem ser considerados como um conjunto de algoritmos prontos para serem utilizados..... Técnicas Evolutivas • É um conceito geral que pode ser adaptado para as aplicações do mundo real, geralmente encontrando melhores soluções quando comparados aos resultados obtidos utilizando métodos tradicionais. Conceitos biológicos - Genes: blocos funcionais responsáveis de determinar as características de un indivíduo – Codifica um simples parâmetro do problema – Cromosomos: “anteprojeto” do indivíduo(cadeia de ADN); Estão compostos de Genes – As possibilidades de escolher uma caracteristica são os Alelos – Ex.: Um gene representando a cor de um objeto pode ter alelos como azul, preto, verde etc... Conceptos biológicos – Cada gene tem uma posição no cromossomo ou Locus – Genoma O conjunto do material genético – Genótipo O conjunto de genes; Na biologia, representa a composição genética contida no Genoma. Nos AGs, representa a informação contida no cromossomo ou genoma. Conceptos biológicos – Fenótipo: é o conjunto de características finais físicas e mentais do indivíduo – É o cromossomo decodificado. • Exemplo: Se o cromossomo codifica as dimensões de um edifício, então o fenótipo é o edifício construído. Conceitos (II) Natureza Algoritmos Genéticos Cromosomo (Indivíduo) Alelo Palavra binária, vector,... (Solução) Característica do problema (parâmetro) Alfabeto de representação Locus Posição dos bits no cromosomo Genótipo Configuração concreta de bits Geração Ciclo Gene Estratégias Evolutivas (EE’s) Estratégias Evolutivas (EE’s) • Desenvolvidas inicialmente na Alemanha, na década dos 60, focalizando a resolução de problemas contínuos de otimização paramétrica; • Estendidas recentemente para tratamento de problemas discretos; Exemplo de Motivação • Consideremos apenas a geração de um novo indivíduo através da regra: x i+1 = xi + N(0, 1) • Com estes elementos será possível criar um procedimento de otimização ???? Estratégias Evolutivas (EE’s) • Representação: Par de vetores reais : v = (x, σ) • x representa o ponto de busca no espaço; • σ o vetor de desvio padrão associado. EE’s Atuais • Utilizam dois operadores: cruzamento e mutação. • Seleção Determinística. • O parâmetro σ : – determina a mutação de x; – também está sujeito ao processo de evolução. EE’s Atuais “ Assumindo algumas hipóteses, é possível provar que as EE’s convergem ao ótimo global com probabilidade 1, considerando um tempo de busca suficientemente longo” EE’s - População Unitária • Denominada (1+1)-ES: Um único descendente é criado a partir de um único genitor e ambos são confrontados numa competição por sobrevivência, onde a seleção elimina a solução mais pobre. ♦Elas processam apenas um indivíduo; ♦Único operador genético: mutação. EE’s - População Unitária • Geração de um novo indivíduo: É realizada pela mutação de x, seguindo a seguinte regra: x i+1 = xi + N(0, σ 2) • Onde N(0,σ2) é um vetor de números Gaussianos independentes com média zero e desvio padrão σ. EE’s - População Unitária Competição: • O indivíduo x e seu genitor xi competem i+1 para ganhar a vaga na população; • Neste estágio tem-se temporariamente a população dobrada. • Ganha quem tem fitness melhor e satisfaz as restrições do problema. EE’s - População Unitária Competição: No caso de maximização: Se f(xi+1) > f (xi) então (xi+1, σ) substitui (xi, σ); caso contrário, permanece o indivíduo original. EE’s - População Unitária Exemplo: Maximizar x2 sujeito a 0<x<100 1.- População Inicial: • Unitária; • Aleatória entre 0-100 EE’s - Exemplo 1.- População Inicial: {11} , σ = 1, Nger = 0 2.- Mutação: x i+1 = xi + N(0, 1) assumindo N(0, 1)= -0.5 x i+1 = 11 - 0.5 = 10.5 EE’s - Exemplo 3.- Competição População intermediária: {11, 10.5} Fitness: f(11)= 121 f(10.5)= 110.25 Melhor fitness = 121 ==> Permanece o genitor Nova população: {11} Nger = Nger +1 EE’s - Exemplo 4.- Segunda geração: {11} Mutação: x i+1 = xi + N(0, 1) assumindo N(0, 1)= +0.8 x i+1 = 11 + 0.8 = 11.8 EE’s - Exemplo 5.- Competição População intermediária: {11, 11.8} Fitness: f(11)= 121 f(10.5)= 139.24 Melhor fitness = 139.24 ==> Vence o descendente Nova população: {11.8} Nger = Nger +1 EE’s - Evolução •Fitness •Nger EE’s - Comentários - As EE´s são robustas; - (1+1)-EE é uma estratégia lenta (pouco prática) Solução: estratégias multi-indivíduos Estratégias Evolutivas Multi-indivíduos Estratégias Evolutivas Multi-indivíduos Existem dois tipos: • Estratégias (µ +λ)-EE • Estratégias (µ , λ)-EE Estratégias (µ +λ)-EE • µ indivíduos produzem λ descendentes, gerando-se uma população temporária de µ +λ indivíduos; • São escolhidos geração. µ indivíduos para a próxima Estratégias (µ ,λ ) - EE • µ indivíduos produzem λ descendentes, com λ >µ ; • A nova população de µ indivíduos é formada por indivíduos selecionados do conjunto de λ descendentes. • Assim, o período de vida de cada indivíduo é limitado apenas a uma geração. EE´s: algoritmo geral begin t←0 initializar P(t) avaliar P(t) while( critério de Parada não Satisfeito) do begin P’(t):= recombinar e mutar [P(t)] avaliar [P’(t)] P(t+1):=selecionar [P’(t) ∪ Q] t ← t+1 end end Onde Q = P(t) ou Q=φ; vi = (x, σ) , i=1, ...., µ EE´s: algoritmo geral População Inicial: • Aleatória, tanto para x, como para σ; • x deve respeitar as restrições do problema; • Tamanho típico da população: µ =10 ... 100 • Número de descendentes típico: λ= 1...4 vezes o valor de µ EE´s: algoritmo geral Recombinação i) Selecionar dois (ou mais) indivíduos: v1 = (x1, σ1) = ((x11,...., xj1 ..., xn1 ), ( σi1, ..., σj1 .... ,σn1)) v2 = (x2, σ2) = ((x12,...., xj2 ..., xn2 ), ( σi2, ..., σj2 .... ,σn2)) Duas formas de recombinar (há várias): • Discreto • Intermediário Recombinação Discreta v1 = (x1, σ1) = ((x11,...., xj1 ..., xn1 ), ( σi1, ..., σj1 .... ,σn1)) v2 = (x2, σ2) = ((x12,...., xj2 ..., xn2 ), ( σi2, ..., σj2 .... ,σn2)) • O novo descendente é dado por: v = ((x1q1,....., xjqj ...., xnqn ), ( σiq1, ...., σjqj ..... ,σnqn)) Onde qi ={ 1 ou 2}, i = 1, ....n; cada componente provém do primeiro ou segundo genitor selecionado. Recombinação Intermediária v1 = (x1, σ1) = ((x11,...., xj1 ..., xn1 ), ( σi1, ..., σj1 .... ,σn1)) v2 = (x2, σ2) = ((x12,...., xj2 ..., xn2 ), ( σi2, ..., σj2 .... ,σn2)) • Cada descendente é dado por: v = (((x11+ x12)/2, ..., (xn1+ xn2)/2), ( (σ11+ σ12)/2, ..., (σn1+ σn2)/2)) • Cada componente é dado pela média dos componentes dos genitores selecionados. Mutação • Aplicar mutação ao descendente v obtido dos passos anteriores. • O novo descendente é v’ = (x’, σ’) onde: x'i = xi + σ i ⋅ N (0,1) j j j j j j σ ' i = σ i ⋅ exp( τ '⋅ N ( 0,1) + τ ⋅ N ( 0,1)) Mutação • Os fatores τ e τ' são normalmente definidos por: 2 n − 1 e ( 2 n ) − 1 respectivamente. • O parâmetro n representa a dimensão dos vetores do problema. Recapitulando .... População inicial Parar? Fim Cruzamento Mutação Seleção Nova População Aplicações Aplicações a Sistemas de Potência • Aplicação em Otimização de reativos; • Planejamento de sistemas de distribuição, • Reconfiguração de sistemas de distribuição; • Unit Commitment; • Fluxo de Potência Ótimo; • Expansão de sistemas de transmissão, etc. Dificuldades: • Característica multimodal; • Não convexidade; • A maioria das técnicas convergem a uma solução local; • Vários tipos de variáveis de controle (posições de taps, bancos de capacitores, etc.): inteiras, discretas, contínuas. Dificuldades - Exemplos Planejamento da expansão de sistemas de transmissão • Problema de otimização combinatorial de grande porte, de difícil solução; • O número de opções cresce exponencialmente com o tamanho da rede; • Elevado número de soluções locais. Dificuldades - Exemplos Reconfiguração de redes de distribuição: • Problema de otimização combinatorial; • Os resultados típicos reportados: mínimos locais ; • A manipulação das variáveis inteiras envolvidas se torna simples quando é utilizado AG. Otimização de Potência Reativa em Sistemas de Energia Elétrica ∗ Grande desafio em controle e planejamento de sistemas de potência; ∗ As caraterísticas não convexas restringem utilização de métodos de otimização clássica. Operação econômica de um sistema de energia elétrica ∗ A operação econômica de um sistema de energia elétrica consiste basicamente em dois aspectos: – a regulação de potência ativa e – despacho de potência reativa. • Isto leva a um problema de otimização global multiobjetivo de grande porte. Operação econômica de um sistema de energia elétrica ♦ Tipicamente envolve: ♦Determinar os níveis de geração visando minimizar custo de combustíveis nas usinas; ♦Minimização de perdas no sistema através do controle de tensão em barras PV e de taps de transformadores ♦Restrições operacionais e de segurança. Despacho de potência reativa • Pode ser definido como um problema de otimização global de uma função não linear descontínua, com um grande conjunto de restrições lineares e não lineares, atingido dimensões elevadas para sistemas de energia elétrica de grande porte” Formulação do Problema • Despacho ótimo de potência reativa “Minimizar as perdas reais de potência na rede e melhorar o perfil de tensão, utilizando como controles as tensões das barras geradoras, compensadores estáticos e taps de transformadores”. Formulação do Problema Min f = ∑(k,m) ∈ NL Prdkm • s. a.: • Pdi - Pi (V, θ) =0, • Qdi - Qi (V, θ) =0, i ∈ NB-1 i ∈ NPQ • Qmingi ≤ Qgi ≤ Qmaxgi • amini ≤ ai • Vmini ≤ Vi (1) ≤ amaxi ≤ Vmaxi , (2) (3) i ∈ NPV (4) i ∈ NTAP (5) i ∈ NB (6) • onde: • Prdkm = gkm(V2k + Vm2 - Vk Vm cosθkm ) : perdas no ramo k-m; Formulação para Resolução Utilizando Estratégias Evolutivas Variáveis de controle: – tensões nos geradores; – posição de controláveis. tap em transformadores Formulação para Resolução Utilizando Estratégias Evolutivas Forma penalizada: Min f = ∑(k,m) ∈ NL Prdkm + ∑i ∈ NPV ρqi(Qgi - Qlgi)2 + ∑i ∈ NB ρvi(Vi - Vli)2 s. a.: Pdi - Pi(V, θ) = 0 , Qdi - Qi(V, θ) = 0 , i ∈ NB-1 i ∈ NPQ ρqi ρvi: fatores de penalidade para as violações de potência reativa e de tensões, respectivamente; Qlgi e Vli são os limites violados correspondentes. Modificações Incluidas 1.- População inicial: • Os µ candidatos devem satisfazem as equações de fluxo-de-carga “As restrições de igualdade sempre são respeitadas” Modificações Incluídas 2.- Mutação: O intervalo das variáveis de controle é incluído como ganho na mutação: x i+1 = xi + σi (ximax - ximin )N(0, 1) Também é possivel utilizar mutações com distribuição de Cauchy. Distribuições de Gauss e Cauchy Modificações Incluídas 2.- Controle da Mutação (σ ): Para obter mais eficiência no algoritmo, a mutação nos σ é controlada: “Limites Dinâmicos” Limites para os desvios padrão Variantes Implementadas Variantes Nome MPEE1 EEE0 Meta-PE Extendida 1 Meta-PE Extendida 2 EE Extendida 0 EEE1 EE Extendida 1 Gaussiana EEE2 EE Extendida 2 Gaussiana EEE3 EE Extendida 3 Gaussiana EEE4 EE Extendida 4 Cauchy MPEE2 Mutação Principal Gaussiana Seleção Recombinação Torneio - Gaussiana Determinística - Gaussiana Determinística (µ+λ) Determinística (µ+λ) Determinística (µ+λ) Determinística (µ,λ) Determinística (µ+λ) Seleção Aleatória IG-II R1 IG-II R2 IG-II R2 IG-II R2 Sistemas Testados Sistema Geradores Barras PQs IEEE57 IEEE118 7 54 50 64 Ramos Trafos com tapes variáveis 80 17 179 9 Limites dos tapes e das tensões de barra Barras PVs Barras PQs Tapes m in max m in ma x m in Vg Vg V V a a max 0.90 1.10 0.95 1.05 0.90 1.10 Sistema IEEE57 IEEE118 ρ Qi ρ Vi 10 10 6 10 10 8 4 5 Perdas ativas (PU) 0.2793 1.5237 Parâmetros Parâmetros µ λ TMAX βO βf βPASSO Tβ Seleção q LM 60 60 200 0.10 -4 5.10 0.10 1 Sq 60 MPEE1 60 60 200 Sq 60 MPEE2 60 60 200 Sd - EEE0100 30 60 100 Sd - σomax σomin σfmax σfmin 1 1.10 1.10 1.10 -2 -2 -4 EEE0200 30 60 200 Sd - Desempenho Performance geral Método LM MPEE1 MPEE2 EEE0100 EEE0200 f min l 0.2484 0.2474 0.2482 0.2438 0.2417 f max l 0.2922 0.2848 0.2830 0.2630 0.2486 fl σl% f lr % 0.2641 0.2643 0.2592 0.2541 0.2443 4.89 3.68 3.38 2.30 0.82 94.56 94.62 92.79 90.99 87.47 CPU (min) 1.56 1.55 1.36 0.69 1.34 Evolução do melhor indivíduo Computação Evolutiva Programação Evolutiva ( PE) • A Programação Evolutiva original foi similar às EE’s desenvolvidas por Schwefel e Rechenberg, porém envolvendo um problema mais complexo, que era criar inteligência artificial. • Posteriormente David Fogel estendeu este procedimento para problemas de otimização numérica. • Neste modelo, cada componente de uma solução candidata é visto como um rasgo comportamental e não como um gene. • É pressuposta a existência de uma fonte genética para esses rasgos fenotípicos, porém a natureza do elo não é detalhada. • É assumido que qualquer que seja a transformação genética que aconteça, a alteração resultante em cada traço comportamental seguirá de uma distribuição Gaussiana de média nula e algum desvio padrão. • Em razão que algumas alterações genéticas podem afetar as características do fenótipo por pleitropia e poligenia, é apropriado que todos os componentes de um genitor sejam perturbados na criação de um descendente O que são esses conceitos? • Pleitropia: Capacidade de um único gene ser o responsável, no fenótipo do organismo, por múltiplos efeitos que aparentemente não se relacionam. • Poligenia: Condição do caráter determinada por vários genes. Algoritmo Canônico • O algoritmo padrão ou canônico proposto por Fogel é dado a seguir, sendo que várias modificações têm sido propostas por outros autores. i) A população inicial S, de dimensão m, é determinada aleatoriamente, a partir de um conjunto uniformemente distribuído num intervalo [a, b]. ii) Avaliação: Para cada si ∈ S é associada uma fitness individual definida em geral como: • φ(si) = G( F(si) , vi ) φ(si) = G( F(si) , vi ) Onde: • F(si) denota a fitness verdadeira de si • vi representa uma alteração aleatória em si , uma variação aleatória na avaliação de F(si) ou outra relação com si . iii) Mutação: Cada indivíduo si ∈ S , i=1, ...., m, é alterado e associado a si+m tal que: si+m, j = si, j + N(0, βjφ(si) + zj), ∀ j =1, ....., k onde: • si, j : elemento j do indivíduo i; N(µ, σ2) representa uma variável aleatória com média µ e variância σ2; βj é uma constante de escala de φ(si) zj representa um valor de ajuste de offset; k é a dimensão de si. iv) A cada indivíduo si+m, j, i=1, ..., m, é associado um valor de fitness dado por: φ(si+m) = G( F(si+m) , vi+m ) Competição : torneio v) Para cada si , i=1, ...,2m, é associado um valor wi de acordo com: wi =∑ t=1 w t ; c * •ondee: w t = 1, se φ(si) ≤ φ(sr); = 0, caso contrário. * • Com: r = [2mu1 + 1] , r ≠ i que representa o maior inteiro menor ou igual a 2mu1 + 1 c : número de competições u1 um número aleatório de distribuição uniforme no intervalo [0,1]. vi) Os indivíduos si, i=1, .....2m são classificados em ordem decrescente de seus valores wi. Os m primeiros indivíduos são selecionados para formar a próxima geração. vii) Se o critério de parada é satisfeito, parar; caso contrário voltar para iii). Resumindo.... Algoritmo de CE: • • • • Solução inicial aleatória de m indivíduos Aplicar mutação para gerar m descendentes Aplicar torneio e selecionar o m melhores Testar critério de parada Discussão • Diferenças entre Programação Evolutiva e Estratégias Evolutivas. • Como foi dito anteriormente, há poucos anos as técnicas de PE foram generalizadas para manipular problemas de otimização numérica. • Elas são muito similares com relação às EE’s. • Elas usam representação de ponto flutuante e o operador chave é a mutação. Diferenças entre PE e EE´s As diferenças básicas entre elas são: • Em PE não são utilizados operadores de recombinação; • Em PE é utilizada uma seleção probabilística (torneio), ao passo que EE´s selecionam os µ melhores indivíduos para a próxima geração; Diferenças entre PE e EE´s • Em PE os valores de fitness são obtidos a partir dos valores da função objetivo escalados e eventualmente impondo algum componente aleatório. • O desvio padrão para cada mutação de indivíduo é calculado como a raiz quadrada de uma transformação linear de seus valores de fitness. Diferenças entre PE e EE´s EE´s: • Mutação dos desvios é baseado em distribuição exponencial • Garante positividade dos desvios CE: • È necessário um off-set para evitar negatividade Algoritmos Genéticos Fundamentos dos Algoritmos Genéticos “Quanto melhor um indivíduo se adaptar ao seu meio ambiente, maior será sua chance de sobreviver e gerar descendentes.” (DARWIN, 1859) O que são? • Os Algoritmos Genéticos são uma classe de procedimentos, com passos distintos bem definidos. • Essa classe se fundamenta em analogias a conceitos biológicos já testadas à exaustão. • Cada passo distinto pode ter diversas versões diferentes. Para que servem? • Busca e Otimização • Amplamente utilizados, com sucesso, em problemas de difícil manipulação pelas técnicas tradicionais • São considerados como metodologia de propósito geral Características Gerais • • • • Utilizam uma codificação do conjunto de parâmetros (indivíduos) e não com os próprios parâmetros (estados); Varrem várias regiões do espaço de busca de cada vez; Utilizam como direção de busca a qualidade, em contraste com as derivadas utilizadas nos métodos tradicionais de otimização; Utilizam regras de transição probabilísticas e não regras determinísticas. Características Gerais Algoritmos Genéticos podem ser considerados como métodos que trabalham com Buscas Paralelas Randômicas Direcionadas Forma canônica 1. Gerar População Inicial 2. Seleção: Descartar uma parte dos Indivíduos menos aptos 3. Reprodução 4. Mutação 5. Se o critério de parada foi satisfeito, encerrar. Senão, voltar ao passo 2. Modelagem Indivíduos • Cada indivíduo possui um código genético • Esse código é chamado cromossomo • Tradicionalmente, um cromossomo é um vetor de bits • Representação binária: nem sempre é o ideal Operadores Fundamentais Seleção Natural: escolha dois mais aptos Criação de novas estruturas: Operador Reprodução Operador Mutação Cromossomo – Estrutura de dados que representa uma possível solução para o problema. – Os parâmetros do problema de otimização são representados por cadeias de valores. Exemplos: • Vetores de reais, (2.345, 4.3454, 5.1, 3.4) • Cadeias de bits, (111011011) • Vetores de inteiros, (1,4,2,5,2,8) • ou outra estrutura de dados. Seleção Seleção Natural • É o princípio básico para o direcionamento da evolução de uma população • Utiliza uma função de avaliação para medir a aptidão de cada indivíduo • Essa aptidão pode ser absoluta ou relativa • Existem vários métodos de seleção Aptidão ou Fitness • Aptidão – Nota associada ao indivíduo que avalia quão boa é a solução por ele representada. • Aptidão pode ser: – Igual a função objetivo – Resultado do escalonamento da função objetivo. – Baseado no ranking do indíviduo da população. Principais Métodos de Seleção Natural • Roleta • Torneio • Amostragem Universal Estocástica População: Exemplo Indivíduo Aptidão Absoluta Aptidão Relativa 1 2 0,052631579 2 4 0,105263158 3 5 0,131578947 4 9 0,236842105 5 18 0,473684211 Total 38 1 Método da Roleta • Coloca-se os indivíduos em uma roleta, dando a cada um uma “fatia” proporcional à sua aptidão relativa • Depois roda-se a agulha da roleta. O indivíduo em cuja fatia a agulha parar permanece para a próxima geração • Repete-se o sorteio quantas vezes forem necessárias para selecionar a quantidade desejada de indivíduos Roleta - Exemplo Método do Torneio • Utiliza sucessivas disputas para realizar a seleção • Para selecionar k indivíduos, realiza k disputas, cada disputa envolvendo n indivíduos escolhidos ao acaso • O indivíduo de maior aptidão na disputa é selecionado • É muito comum utilizar n = 3 Torneio - Exemplo Indiv 1, Indiv 2, Indiv 4 Indiv 4 Indiv 1, Indiv 2, Indiv 3 Indiv 3 Indiv 2, Indiv 3, Indiv 4 Indiv 4 Indiv 3, Indiv 4, Indiv 5 Indiv 5 Amostragem Universal Estocástica - SUS • SUS – Stochastic Universal Sampling • Semelhante à Roleta, mas para selecionar k indivíduos utiliza k agulhas igualmente espaçadas, girando-as em conjunto uma só vez • Apresenta resultados menos variantes que a Roleta SUS - Exemplo Operador de Cruzamento Operador de Cruzamento • Também chamado de reprodução ou crossover • Combina as informações genéticas de dois indivíduos (pais) para gerar novos indivíduos (filhos) • Versões mais comuns criam sempre dois filhos para cada operação Operador de Cruzamento • Operador principal do AG • Responsável por gerar novos indivíduos diferentes (sejam melhores ou piores) a partir de indivíduos já promissores • Aplicado a cada par de indivíduos com alta probabilidade (normalmente entre 0,6 e 0,99) Abordagens para Cruzamento • Cruzamento Um-Ponto • Cruzamento Multi-Pontos • Cruzamento Uniforme Cruzamento Um-Ponto 0 0 0 0 Pais 1 1 1 1 0 0 1 1 Filhos 1 1 0 0 Cruzamento Multi-Ponto 0 0 0 0 Pais 1 1 1 1 0 1 1 0 Filhos 1 0 0 1 Cruzamento Uniforme Máscara 0 1 0 1 0 0 0 0 Pais 1 1 1 1 0 1 0 1 Filhos 1 0 1 0 Operador Mutação Operador de Mutação • Introduz e mantém a variedade genética da população • Garante a possibilidade (potencial) de se alcançar qualquer ponto do espaço de busca • Útil para evitar mínimos locais Operador de Mutação • É um operador genético secundário • Se seu uso for exagerado, reduz a evolução a uma busca totalmente aleatória • Logo, um indivíduo sofre mutações com probabilidade baixa (normalmente entre 0,001 e 0,1) Exemplo de Mutação 0 1 1 0 0 0 1 0 1 0 0 0 0 1 Parâmetros Genéticos • • • • • Tamanho da população Taxa de cruzamento Taxa de mutação Intervalo de geração Critério de parada Convergência do Algoritmo Genético Convergência do Algoritmo Genético • Apesar do sucesso uso dos AG’s em problemas de otimização, os avanços nos aspectos teóricos têm sido limitados. • As atuais bases teóricas dos AG’s descansam na representação binária das soluções e na noção de Esquemas, que permite explorar as similaridades entre cromossomos. • Considere-se um caso onde alguns bits de uma string são fixados em valores específicos, enquanto os restantes são considerados livres. • Define-se o símbolo # para representar os bits que estão nesta última condição. Teoria dos Esquemas • Por exemplo: • a string (01##) define o conjunto: {(0100), (0101), (0110), (0111)}. Esquema é uma família de configurações que compartilham um conjunto de genes comuns Teoria dos Esquemas • O número de # no esquema define o número de strings associadas a ele ( 2^{n} ) • Existem duas importantes propriedades associadas com os Esquemas: • Ordem • Comprimento Definido Ordem de um Esquema • Definida como o(S), é o número de posições fixas presentes no esquema. • Por exemplo, a ordem do esquema S = (##001#11) é o(S) = 5. Este conceito é útil no cálculo da probabilidade de sobrevivência de um esquema sob mutações. Comprimento Definido É a distância δ(S) entre a primeira e a última posição fixada da string S ⇒ “grau de compactação da informação contida no esquema”. No exemplo anterior: S = (##001#11) δ(S) = 8 - 3 = 5. Esquemas • Uma string específica é simultaneamente a instância de 2l esquemas, sendo l o comprimento da string Esquemas: um visão 3D • Uma vez que um esquema representa um subconjunto de strings, podemos associar a ele uma fitness, que é determinada pela fitness média das instâncias do esquema. • Através do conceito de esquema, um processo de busca do ótimo através de AG pode ser visto como uma competição entre esquemas para incrementar o número de suas instâncias na população • Se definimos a string ótima como a contraposição de esquemas com pequeno comprimento definido e altos valores de fitness média, então o vencedor das competições individuais de esquemas pode, potencialmente, incluir a string ótima. Blocos Construtivos • Esses esquemas com pequenos comprimentos definidos e alta fitness são chamados de building blocks. Hipótese dos Blocos Construtivos • A noção de que strings com altos valores de fitness podem ser conseguidas mapeando building blocks com valores altos de fitness e combinando-os efetivamente é chamada de hipótese dos building blocks Hipótese dos Blocos Construtivos • Esta hipótese nem sempre se cumpre; • Dependendo da natureza da função objetivo, podem ser geradas strings de baixa qualidade a partir de bons building blocks. • Essas funções objetivos são chamadas de funções AG-ilusórias Teorema dos Esquemas • Desconsiderando o cruzamento, um esquema com alta fitness média cresce exponencialmente para vencer a competição. Porém, uma alta fitness média não é suficiente para uma alta razão de crescimento. Um esquema deve ter também um comprimento definido pequeno. Teorema dos Esquemas • Como o cruzamento é disruptivo, comprimentos definido elevados levam a uma alta probabilidade que o ponto de cruzamento esteja entre as posições fixas do esquema, causando a destruição de uma instância. Teorema dos Esquemas • Logo, esquemas com alta fitness e pequenos comprimentos definidos crescem exponencialmente no tempo. • Esta é a essência do Teorema dos Esquemas, proposto por Holland. Fim Parte I