530 likes | 711 Views
Métodos de otimização bioinspirados. Leandro M. Almeida. Sistemas computacionais. Computação clássica tem dificuldade em lidar com mudanças inesperadas Entradas e interações devem ser cuidadosamente gerenciadas “Redoma de vidro”
E N D
Métodos de otimização bioinspirados Leandro M. Almeida
Sistemas computacionais • Computação clássica tem dificuldade em lidar com mudanças inesperadas • Entradas e interações devem ser cuidadosamente gerenciadas • “Redoma de vidro” • Dispositivos computacionais interagem cada vez mais com mundo real • Aberto • Ruidoso • Incontrolável • Necessidade de uma forma completamente diferente de projetar e implementar programas.
Sistemas computacionais • Computação Não-clássica • Permite construção de sistemas computacionais complexos • Autônomos • Adaptáveis • Robustos • Sistemas devem ser executados corretamente e com segurança em ambientes • Imprevisíveis • Em constante mudança • Hostis • Por longos períodos de tempo
Sistemas computacionais • Processos biológicos lidam bem com esses problemas • Criaturas vivas são robustas, autônomas e adaptáveis • Podem sobreviver a: • Machucados • Danos • Uso prolongado • Ataques contínuos de outras criaturas • Adaptam-se ao ambiente de forma continuada;
Sistemas computacionais - futuro • Deverão ser mais flexíveis e amigáveis; • Robustos; • Capazes de executar várias atividades sem intervenção humana: • Configuração • Otimização • Manutenção • Conserto • Detecção, diagnóstico, reparo • Diferenciação • Possíveis caminhos: orientação as aspectos, reflexão computacional, etc.
Biologia • Biologia produz organismos complexos adaptáveis, mesmo utilizando quantidades enormes de componentes pouco confiáveis • Como é possível? • Auto-avaliação • Auto-reparo • Auto-configuração • Vários níveis de redundância • Vários níveis de defesa • Por que não modelos computacionais bio-inspirados?
Relacionamento natural Biologia Engenharia
Computação bioinspirada • A natureza possui soluções elegantes e eficientes para vários problemas; • Presentes nas mais diversas espécies de seres vivos; • Inspira novas técnicas computacionais • Inspiração ≠ Cópia.
Computação bioinspirada • Biologia • Evolução da espécies • Colônia de formigas • Enxames • Sistemas imunológicos • Cérebro • DNA • Células • Membranas biológicas • Computação • Algoritmos evolucionários • Inteligência de colônia de formigas • Inteligência de exames • Sistemas imunes artificiais • Redes neurais artificiais • DNA computing • Autômato celular • Membrane computing A maioria das abordagens computacionais bioinspiradas resultam de modelos matemáticos projetados para melhor compreender os sistemas naturais, e.g. por meio de simulações
Algoritmos evolucionários • Existem muitas variações de Algoritmos Evolucionários (AE) • Dada uma população de indivíduos, a pressão exercida pelo ambiente causa uma seleção natural (sobrevivência dos mais aptos), a qual causa o aumento da aptidão da população; • Dada uma função de qualidade a ser maximizada, podemos criar aleatoriamente um conjunto de soluções candidatas; • Com base na aptidão, alguns dos melhores candidatos são escolhidos para serem a semente da nova geração, através da recombinação e/ou mutação; • O operador de recombinação pode ser aplicado a dois ou mais pais, gerando um ou mais filhos;
Algoritmos evolucionários • A mutação é aplicada em apenas um candidato resultando em um novo candidato; • Produção de novos candidatos que competem com base na aptidão e/ou na idade para formar a nova geração; • O processo normalmente é iterativo até que uma qualidade (soluções) seja alcançada ou então um limite computacional, temporal, etc; • Processos fundamentais dos sistemas evolucionários • Operadores de variação (recombinação e mutação) • Ação de seleção como força que pressiona a qualidade
Algoritmos evolucionários • A evolução é visto com um processo de adaptação • Necessidade de manutenção da diversidade de indivíduos; • Procedimentos de seleção contam com mecanismos baseados em aleatoriedade e elitismo;
Algoritmos evolucionários • AE são baseados em populações, processam simultaneamente uma coleção de soluções; • AE freqüentemente usam recombinação para mesclar informações de mais de uma solução candidata para a criação de uma nova solução; • AE são estocásticos; Pais Inicialização Seleção de pais Recombinação População Mutação Seleção de sobreviventes Prole Termino
Comportamento típico de um AE • Fases da otimização de um problema unidimensional Fase inicial: Distribuição quase aleatória da população Fase mediana: População disposta nas encostas Fase final: População concentrada no alto das colinas
Outras características dos AE • Possuem uma fase de exploração e outra chamada de explotação; • Podem sofrer problemas de convergência prematura, ou seja, perda acelerada da diversidade da população; • Possuem um “anytime behaviour”, ou seja, conseguem apresentar uma solução a qualquer momento da busca; • Freqüentemente chamados de métodos de otimização global; • Englobam um conjunto de algoritmos que diferem em alguns detalhes.
Família de AE • Normalmente são classificados de acordo com a forma de representação das soluções candidatas • Genétic Algorithms (GA) – cadeia de caracteres sob um alfabeto finito; • Evolution Strategies (ES) – vetores de valores reais; • Evolutionary Programming (EP) – máquinas de estados finitos; • Genetic Programming (GP) – estrutura de árvores. • Essas diferenças possuem uma origem principalmente histórica.
Por que utilizar AE para resolver problemas de otimização? • Propriedades das funções • Embora as considerações sobre convexidade/concavidade e continuidade não sejam necessariamente um fundamento de AE, esse é o real propósito das maioria das técnicas de programação matemática. Embora ambos os domínios compartilhem o mesmo conceito de algoritmos “gerar-e-testar”, procedimentos de busca evolucionários não são diretamente comparáveis as técnicas de busca convencionais. • Uma única solução • Técnicas de programação matemáticas fornecem uma única “melhor” solução que não é interessante para muitas tomadas de decisão. AE são várias “melhores”.
Por que utilizar AE para resolver problemas de otimização? • Impraticabilidade • Normalmente não tratável com técnicas de programação matemáticas, já com AE o problema pode vir a tornar-se tratável. • Conhecimento do domínio • Não é difícil utilizar AE, não requerem um conhecimento rico do domínio. • Robustez • Uma mesma estrutura pode ser utilizada para resolver vários problemas. • Manipulação de restrição e métodos de penalidade • A função de pênalti é facilmente implementável assim como a mudança de seus parâmetros.
Por que utilizar AE para resolver problemas de otimização? • Exploração e explotação • AE são de propósito geral, independente de domínio e possuem características de exploração e explotação. • Tempo computacional • Provêm rápidas aproximações a funções, near-optimal • Otimização multiobjetivo • Conseguem trabalhar muito bem em problemas com objetivos conflitantes. • Soluções iniciais • Não requerem um método especializado para gerar as soluções iniciais.
Por que utilizar AE para resolver problemas de otimização? • Problemas árduos • Devido ao paralelismo inerente dos AE os problemas árduos passam ser menos árduos se comparados quando do uso de técnicas clássicas. • Otimização sob mudança do ambiente • Em muitos problemas de otimização do mundo real, o ambiente flutua, provocando mudanças dramáticas na aptidão dos indivíduos. Otimização sob mudanças no ambiente (dinâmica, não-estacionária ou on-line) podem ser manipuladas eficientemente através do uso de AE.
Quando é recomendável usar AE? • Otimização do conhecimento • Mesmo pesquisadores/profissionais com um pobre ou nenhum conhecimento matemático a respeito do problema de otimização ainda podem resolver o problema usando uma metodologia baseada em AE; • Quando soluções ranked como 2ª, 3ª, etc. melhores são desejadas; • Para solucionar problemas multimodais; • Para uma rápida aproximação de soluções; • Para solucionar problemas multiobjetivos; • Otimização sob mudanças no ambiente;
Quando é recomendável usar AE? • Para a construção de sistemas inteligentes híbridos; • Se AE são computacionalmente menos custosos que outras técnicas, devem então ser preferidos; • Se o tempo computacional não é uma preocupação, métodos baseados em AE podem ser empregados para encontrar soluções quase-ótimas; • Problemas envolvendo características complexas como multi-objetividade, multimodalidade, mudanças no ambiente, etc. torna-se útil a aplicação de AE.
Desvantagens do uso de AE • Técnicas baseadas em AE são reconhecidas com algoritmos de busca heurísticos. • Não há garantia de “ótimalidade” quando aplicados a solução de problemas de otimização; • Os parâmetros usados pelas técnicas baseadas em AE são orientadas ao problema. • Não é uma tarefa fácil a determinação de parâmetros apropriados para um problema; • O padrão de convergência e complexidade de tempo também são dependentes do problema; • Não ajudam a examinar a percepção matemática de problemas de otimização, onde pode haver informações adicionais úteis para a tomada de decisão.
Desvantagens do uso de AE • A análise de sensibilidade pode ser executada, para todo o tipo de modelo, na escala desejada, embora não seria tão eficiente quanto a sensibilidade do LP (Linear Programming); • Em alguns casos não são úteis para o ajuste fino de soluções (busca local, explotação); • Alto custo computacional na avaliação do indivíduo (dependente do problema); • Convergência prematura (manutenção da diversidade); • Ausência de um mecanismo explicativo.
Por que hibridizar AE? • Modelos híbridos cujos AEs… • são parte de um sistema maior ou • têm outros métodos ou estruturas de dados incorporados a eles. • Objetivos da hibridização: • Modelos híbridos para melhorar desempenho de técnicas já existentes. • Modelos híbridos para melhorar a busca por boas soluções. • Modelo híbridos para resolver os pontos negativos dos AE.
Por que hibridizar AE? • Muitos problemas complexos podem ser decompostos em sub-problemas a serem resolvidos com técnicas distintas. • Não existe um método de propósito geral totalmente bem sucedido ou eficiente. • Pode-se combinar AEs com heurísticas específicas. • Deve-se ter cautela para não fazer a busca local inviabilizar a geração de novas soluções. • Busca-se solução híbrida por ser melhor que cada um dos algoritmos que compõe o modelo híbrido.
No FreeLunch (NFL) Teorema • A quantidade de conhecimento específico no algoritmo híbrido é variável e pode ser ajustada.
Algoritmos meméticos • AEs podem explorar melhor que explotar: • Em parte devido à natureza aleatória dos operadores de variação. • Pode-se adicionar uma etapa de busca local para melhorar explotação. • A combinação de AEs com operadores de busca local que atuam dentro do laço do AE é chamada de Algoritmo Memético. • O termo memético também é usado para AEs cujos operadores empregam conhecimento específico de instâncias do problema.
Busca local • Busca local é um processo iterativo para examinar o conjunto de pontos na vizinhança da solução atual e a substituir por um vizinho melhor, caso exista.
Busca local • Componentes principais que afetam o algoritmo: • Regra de pivoteamento (encerra o laço interno): • Condição de profundidade (encerra o laço externo): • Determina o número de interações da busca local. • Escolha da função geradora de vizinhança
Busca local • Escolha da função de vizinhança: • N(i) é freqüentemente definida como um conjunto de pontos que podem ser alcançados através da aplicação de algum operador de movimento ao ponto i. • Representação equivalente: grafo não direcionado • G(v,E): • v é o conjunto de vértices que representa todos os pontos representáveis, as soluções em potencial. • E é o conjunto de arestas que representa as possíveis transições que podem ocorrer a partir da aplicação de um único operador. As arestas podem ser direcionadas e ponderadas.
Busca local • Em resumo: • É definida pela combinação de vizinhança, N(x), e regra de pivoteamento. • É relacionada a metáfora da paisagem (landscape). • N(x) é definida como o conjunto de pontos que podem ser alcançados a partir da aplicação de um operador de movimento. • Exemplo: Busca bit flipping em problemas binários.
Lamarckianismo e Efeito Baldwin • Herança das mudanças feitas ao indivíduo (características adquiridas): • Um AM é dito Lamarckiano se o indivíduo resultante da busca local substitui o original. Isto é, as características são herdadas. • Um AM é dito Baldwiniano se o processo evolucionário for guiado pelas adaptações favoráveis sem modificações nas aptidões dos indivíduos, devido a aprendizagem ou desenvolvimento, refletindo em mudanças de características genéticas. • Abordagem Baldwiniana ou uma combinação probabilística dos dois mecanismos.
Two Models of Lifetime Adaptation • Lamarkian • traits acquired by an individual during its lifetime can be transmitted to its offspring • e.g. replace individual with fitter neighbour • Baldwinian • traits acquired by individual cannot be transmitted to its offspring • e.g. individual receives fitness (but not genotype) of fitter neighbour
Estrutura de um Algoritmo Memético • Possíveis pontos onde se pode hibridizar
Estrutura de um AM - Inicialização • Possíveis benefícios por iniciar AES com soluções existentes: • Evitar a perda de esforço computacional refletindo aumento de eficiência (velocidade). • Direcionar busca para regiões promissoras do espaço de busca levando a aumentar efetividade (qualidade da solução final). • Dividir o esforço computacional entre inicialização heurística e busca evolucionária pode gerar melhores resultados que gastar todo o esforço em busca evolucionária apenas.
Estrutura de um AM - Inicialização • Maneiras de mudar a função de inicialização em relação a um critério aleatório: • Semeadura (Seeding): Semeia a população com uma ou mais soluções boas, vindas de outras técnicas: • Exemplos de emprego de informação específica do problema: heurística do vizinho mais próximo para os problemas do tipo TSP e agendamento do mais difícil em primeiro lugar para problemas de agenda e planejamento. • Incialização Seletiva (Selective initialisation): Cria-se grande número de soluções aleatórias e seleciona-se a população inicial a partir delas: • Realizar N torneios de tamanho k; • Selecionar baseando-se também na diversidade.
Estrutura de um AM - Inicialização • Ainda maneiras de mudar a função de inicialização em relação a um critério aleatório: • Realizar busca local em cada membro da população escolhido aleatoriamente. Produz-se um conjunto de indivíduos localmente ótimos. • Empregar um ou mais métodos anteriores para identificar uma ou mais boas soluções: • Deve clonar e aplicar mutação com altas taxas (mass mutation) nas soluções iniciais encontradas de forma a gerar um número de indivíduos na vizinhança do ponto inicial.
Estrutura de um AM – Operadores Inteligentes • Operadores inteligentes de variação: Incorporam conhecimento específico da instância ou do problema ao operador. • Introdução de viés (bias) nos operadores: • Exemplo 1: Aumentar a probabilidade de escolha de características mais compactas para emprego em um classificador. • Exemplo 2: Genes codificando instruções de microprocessador de modo a serem agrupados em conjuntos de efeitos similares.
Estrutura de um AM – Operadores Inteligentes • Uso de conhecimento específico do problema: • Incorporação de uma fase de busca local dentro de um operador de recombinação. • Ex.: testar todas as possíveis orientações dos dois fragmentos de estrutura de proteína “separados” pelo ponto de cruzamento e pegar a energeticamente mais favorável. Se nenhum ajuste possível for encontrado, escolher outro ponto de cruzamento. • Uso de conhecimento específico da instância: • Operadores recebem heurística muito específica. • Ex.: Merz and Friesleben’s distance-preserving crossover (DPX) operator para o TSP.
Estrutura de um AM – Operadores Inteligentes • Busca local atuando sobre todas as soluções criadas pelos operadores de variação. • É compatível com o conceito de meme, pois realiza uma ou mais fases de melhorias de indivíduos durante um ciclo do AE. • É o tipo mais comum.
Projeto de AM • AMs não são “soluções mágicas” para problemas de otimização. • Deve-se tomar cuidado com: • Diversidade da população. • Escolha dos operadores. • Uso do conhecimento adquirido durante o processo de otimização.
Projeto de AM – Preservação da diversidade • O problema da convergência prematura. • Técnicas para combater este problema: • Usar somente uma proporção pequena de boas soluções conhecidas na população inicial. • Usar operadores de recombinação que são projetados para preservar diversidade (como Merz’s DPX). • Modificar operador de seleção para prevenir duplicações. • Modificar operador de seleção ou o critério de aceitação da busca local para usar um método de Boltzmann.
Projeto de AM – Preservação da diversidade • Manutenção de diversidade em uma população é o objetivo de algoritmos com algum sucesso: • O cruzamento DPX de Merz explicitamente gera indivíduos que são eqüidistantes para cada pai, tendo a mesma distância entre os pais. • Operador adaptativo de Boltzmann, por Krasnogor, usa critério de aceitação de novo indivíduo baseado no cozimento simulado. A temperatura é inversamente proporcional à diversidade da população.
Projeto de AM – Escolha dos operadores • O fator crucial no projeto de um AM é: • Escolha da heurística de melhoramento ou do operador de movimento da busca local. • Merz e Freisleben mostram que a escolha do operador de movimento pode ter efeito dramático na eficiência e na efetividade da busca local. • Krasnogor mostrou vantagens em usar busca local com um operador de movimento que é diferente dos operadores de movimento usados pela mutação e pelo cruzamento. • Podem-se disponibilizar múltiplos operadores de busca local, escolhendo-se qual a ser aplicado em cada caso.
Projeto de AM – Uso do conhecimento • Como usar e reusar o conhecimento adquirido durante o processo de otimização? • Na recombinação. • De modo geral não são usados mecanismos explícitos. • Uma possível hibridização – tabu search. • Extensões dos esquemas de aceitação/seleção de Boltzmann. • Uso de informação sobre os genomas da população atual e/ou populações anteriores.