Computação Natural: Conceitos Básicos de Otimização Prof. Dr. Rafael Stubs Parpinelli E-mail: [email protected] Programa de Pós-Graduação em Computação Aplicada - UDESC Otimização Min ou Max Sujeito a Otimização Função objetivo A qual se quer maximizar ou minimizar Pode não existir ou ser mais de uma Conjunto de variáveis Ex: max(lucro), min(custo) Que afetam o valor da função objetivo Em problemas complexos este conjunto pode ser muito grande Conjunto de restrições Não permite que o conjunto de variáveis assuma determinados valores Otimização Espaço de busca ou espaço de soluções Define o espaço no qual o algoritmo de otimização deverá realizar a busca pela solução ótima ou pelas soluções ótimas Região de soluções factíveis ou região comum Define a região no espaço de busca onde se encontram todas as possíveis soluções válidas ou viáveis para o problema. Ou seja, a região onde não existe infração de restrições. Região comum a todas as restrições Otimização Otimização Contínua: Otimização Combinatória ou Discreta: variáveis assumem valores reais (ou contínuos) variáveis com valores discretos (ou inteiros) Otimização Mista: variáveis inteiras e contínuas Otimização Definição de Otimização Processo de melhoramento iterativo/interativo de uma solução para um problema, com respeito a uma função objetiva específica Problemas típicos da área de otimização Maximização (minimização) de funções algébricas Problemas combinatoriais (caixeiro viajante, problema da mochila, escalonamento de tarefas...) Projetos de engenharia (maximização de desempenho, minimização de custo...) Otimização multiobjetivos O conceito de ótimo não é óbvio e deve respeitar a individualidade de cada critério Otimalidade de Pareto: Conjunto de soluções P-ótimas e não um único ponto Minimizar Custo e Número de Acidentes Dominância: Neste caso: P-ótimo: {A, B, C} Tipos de Problemas Função Objetivo SIM NÃO SIM COP CSP NÃO FOP Restrições COP: Problema de Otimização com Restrições (Constrained Optimization Problem) CSP: Problema de Satisfação de Restrições (Constraint Satisfaction Problem) FOP: Problema Livre de Restrições (Free Optimziation Problem) Problemas de Otimização: Dentre as soluções viáveis, qual é a melhor? Características do Espaço do Problema Métodos de soluções de problemas Métodos fortes Métodos específicos Para problemas genéricos em um mundo específico (linearidade e estacionaridade). Podem garantir uma solução ótima. Para problemas específicos em mundos específicos. Métodos fracos Para problemas genéricos em mundos genéricos (pode haver não-linearidade e não estacionaridade). Não garantem uma solução ótima, eventualmente uma solução satisfatória. Métodos de Otimização Busca local – Exploitation / Intensificação Busca global – Exploration / Diversificação Single solution methods – Otimizam uma única solução a cada execução do algoritmo Population-based methods – Utilizam um conjunto de soluções (população) para realizar a busca no espaço de soluções Como gera uma possível solução para o problema? – Algoritmos de construção: iterativamente o algoritmo “monta”/constrói uma solução para o problema – Algoritmos de melhoria: o algoritmo parte de uma possível solução do problema e tenta melhorá-la a cada iteração Métodos de otimização Enumerativos Numéricos Busca exaustiva Analíticos: derivadas parciais Diretos: técnicas de gradiente (steepest descent ou hill-climbing) Probabilísticos (Heurísticas e Meta-heurísticas) Busca aleatória Simulated Annealing Computação Evolucionária Inteligência de Enxame Métodos enumerativos Excelentes para um grande número de problemas, entretanto: Aplicável somente a problemas de “dimensões pequenas” Aceitável quando envolve tempos computacionais “razoáveis” Tendem a ser cada vez mais utilizados a medida que a capacidade computacional disponível aumenta. Quando utilizar IC para otimização? Quando a aplicação de métodos fortes ou específicos são inviáveis Quando a complexidade do problema torna inviável sua formulação matemática Quando o número de possíveis soluções a serem examinadas leva a uma explosão combinatória intratável Quando o problema é fortemente não estacionário Quando não existe outra alternativa viável Necessidade de métodos heurísticos e meta-heurísticos Problemas complexos: problemas do mundo real Problemas que demandam tempos de processamento muito grandes Métodos heurísticos são executados em tempos aceitáveis, porém não garantem a obtenção da solução ótima, nem mesmo garantem encontrarse uma solução factível Entretanto, o objetivo de um método heurístico é tentar encontrar uma solução “aceitável” de maneira simples e rápida Natureza como Inspiração O conceito de otimização pode ser abstraído de diferentes processos naturais Evolução das espécies Comportamento de grupos sociais Sinapses de neurônios Dinâmica do sistema imunológico Estratégias de busca por alimento Relações ecológicas Sonar de morcego Teias de aranha