Problemas de otimização

Documentos relacionados
NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá

Pesquisa Operacional Aplicada à Mineração

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Teoria da Computação. Complexidade computacional classes de problemas

Algoritmos Combinatórios: Introdução

Teoria da Complexidade Computacional

3. Resolução de problemas por meio de busca

Problema do Caixeiro Viajante

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Introdução Paradigmas

Inteligência Computacional para Otimização

ANÁLISE DE ALGORITMOS (INF 1721)

4 Métodos Existentes. 4.1 Algoritmo Genético

Uma Introdução à Busca Tabu André Gomes

Aula 10: Tratabilidade

Circuitos Hamiltorianos

PCC104 - Projeto e Análise de Algoritmos

Otimização por Colônia de Formigas (ACO)

Teoria da Complexidade Computacional

MÉTODOS DE OTIMIZAÇÃO MULTIOBJETIVO

Exemplo do jogo dos fósforos Terça-feira, 9 de maio. Exemplo para o Problema do Corpo de Bombeiros. Exemplo: Localidade do Corpo de Bombeiros

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão

Metaheurísticas. Gustavo Peixoto Silva

ANÁLISE DE ALGORITMOS (INF 1721)

Problema do Caminho Mínimo

Otimização em Colônias de Formigas. Prof. Eduardo R. Hruschka (Slides adaptados dos originais elaborados pelo Prof. André C. P. L. F.

Inteligência Artificial

Ciclos hamiltonianos e o problema do caixeiro viajante

Avaliação de Heurísticas de Melhoramento e da Metaheurística Busca Tabu para Solução de PRV

Buscas Informadas ou Heurísticas - Parte III

Otimização Combinatória - Parte 4

Escola Básica e Secundária Mouzinho da Silveira. MACS 11.º Ano Problema do Caixeiro Viajante

Otimização por Colônia de Formigas (Ant Colony Optimization - ACO)

Paradigmas de Projetos de Algoritmos

INTRATABILIDADE e NP-COMPLETUDE

Algoritmos de aproximação - Problema do caixeiro viajante

MÓDULO 3 - PROBLEMAS DE COBERTURAS DE ARCOS E NÓS

04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

Busca com informação e exploração. Capítulo 4 Russell & Norvig Seção 4.2 e 4.3

Problema do Caixeiro Viajante (The Travelling Salesman Problem-TSP) (Problema Del viajante)

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante

Problemas de Fluxo em Redes

Minicurso Inteligência Artificial Aplicada a Sistemas Elétricos. Niterói, 12 de Maio de 2018

Teoria dos Grafos Aula 24

Projeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (5)

Aula nº / Outubro/ 07. Problema do carteiro chinês

1. Computação Evolutiva

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

Uma introdução à complexidade parametrizada

Grafos: aplicações. Grafos: árvore geradora mínima

O que é Otimização Combinatória. Heurísticas Para Otimização Combinatória. Exemplos Clássicos. Desafios Computacionais

Método Simplex. Marina Andretta ICMC-USP. 19 de outubro de 2016

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

Buscas Informadas ou Heurísticas - Parte II

Problema do Caixeiro Viajante (The Travelling Salesman Problem-TSP) (Problema Del viajante)

Transcrição:

Problemas de otimização Problemas de decisão: Existe uma solução satisfazendo certa propriedade? Resultado: sim ou não Problemas de otimização: Entre todas as soluções satisfazendo determinada propriedade, obter aquela que otimiza certa função de custo. Resultado: uma solução viável ótima Transparência /6

Problemas de otimização Exemplo: problema do caixeiro viajante Entrada: n cidades e distâncias c i,j Problema de decisão: dado um inteiro L, existe uma rota que visite cada cidade exatamente uma vez e cujo comprimento seja menor ou igual a L? Problema de otimização: obter uma rota que visite cada cidade exatamente uma vez e cujo comprimento seja mínimo. Transparência /6

Problemas de otimização Exemplo: problema da mochila Entrada: n itens, peso máximo b, lucros c j e pesos a j associados a cada item j=,,n Problema de decisão: dado um inteiro L, existe S {,,n} tal que j S a j b e j S c j L? Problema de otimização: obter um subconjunto S* maximizando j S c j entre todos os conjuntos S {,,n} tais que j S a j b. Transparência /6

Problemas de otimização Estes problemas de decisão pertencem à classe dos problemas NP-completos, para os quais não são conhecidos algoritmos determinísticos de complexidade polinomial. A versão de otimização destes problemas (e de muitos outros) também são intrinsecamente intratáveis do ponto de vista computacional, não se conhecendo algoritmos eficientes (polinomiais) para sua solução exata. Transparência 4/6

Problemas de otimização Como tratar e resolver estes problemas? Algoritmos exatos não-polinomiais Algoritmos pseudo-polinomiais em alguns casos Processamento paralelo: aceleração na prática, mas sem redução da complexidade! Casos especiais polinomiais Algoritmos aproximativos: encontram uma solução com custo a distância máxima garantida do valor ótimo Algoritmos probabilísticos: convergência em valor esperado ou em probabilidade Transparência /6

Problemas de otimização Como tratar e resolver estes problemas? Heurísticas: métodos aproximados projetados com base nas propriedades estruturais ou nas características das soluções dos problemas, com complexidade reduzida em relação à dos algoritmos exatos e fornecendo, em geral, soluções viáveis de boa qualidade Algoritmos construtivos Busca local (algoritmos de melhoria) Metaheurísticas Transparência 6/6

Problemas de otimização Avanços no estudo e no desenvolvimento de heurísticas: Resolver problemas maiores Resolver problemas em tempos menores Obter melhores soluções Heurísticas e metaheurísticas permitem resolver problemas de grande porte em tempos realistas, fornecendo sistematicamente soluções ótimas ou muito próximas da otimalidade: Exemplo: problema do caixeiro viajante com milhões de cidades Transparência 7/6

Algoritmos construtivos Problema de otimização combinatória: dado um conjunto finito E = {,,,n} e uma função de custo c: E R, encontrar S* F tal que c(s*) c(s) S F, onde F E é o conjunto de soluções viáveis do problema (minimização). Construção de uma solução: selecionar seqüencialmente elementos de E, eventualmente descartando alguns já selecionados, terminando quando for encontrada uma solução viável Transparência 8/6

Algoritmos construtivos Exemplo: problema do caixeiro viajante E: conjunto de arestas F: subconjuntos de E que formam um circuito hamiltoniano, visitando cada cidade exatamente uma vez c(s) = Σ e S c e c e = c i,j : custo da aresta e=(i,j) Transparência 9/6

Algoritmos construtivos Algoritmodo vizinho mais próximo: Escolher o nó inicial i e fazer N N-{i}. Enquanto N fazer: Obter j N: c i,j = min k N {c i,k } N N-{j} i j Fim-enquanto Calcular o custo da solução e terminar. Transparência 0/6

Algoritmos construtivos 7 4 4 Transparência /6

Algoritmos construtivos i= 4 Transparência /6

Algoritmos construtivos i= 7 4 Transparência /6

Algoritmos construtivos i= 4 Transparência 4/6

Algoritmos construtivos i= 4 4 Transparência /6

Algoritmos construtivos i= 4 Transparência 6/6

Algoritmos construtivos i= 4 Transparência 7/6

Algoritmos construtivos i= 4 Transparência 8/6

Algoritmos construtivos 4 i= Transparência 9/6

Algoritmos construtivos 4 i= Transparência 0/6

Algoritmos construtivos comprimento=8 7 i=4 4 Transparência /6

Algoritmos construtivos Podem falhar mesmo para casos muito simples! 4 Transparência /6

Algoritmos gulosos: Algoritmos gulosos A construção de uma solução gulosa consiste em selecionar a cada passo o elemento de E ainda não utilizado que minimiza o incremento no custo da solução parcial sem torná-la inviável, terminando quando se obtém uma solução viável. O incremento no custo da solução parcial é chamado de função gulosa. Transparência /6

Algoritmos gulosos Algoritmo guloso de Kruskal para o problema da árvore geradora de peso mínimo Sempre encontra a solução ótima: este problema pertence a uma classe particular de problemas onde um algoritmo guloso sempre encontra a solução ótima. Algoritmo do vizinho mais próximo para o PCV Cuidado: nem sempre encontra a solução ótima exata, é portanto uma heurística para este problema! Transparência 4/6

Algoritmos gulosos randomizados Um algoritmo guloso encontra sempre a mesma solução para um dado problema. Algoritmo guloso randomizado: Criar uma lista de candidatos a cada iteração com os melhores elementos ainda não selecionados e forçar uma escolha aleatória a cada iteração Aplicar o algoritmo repetidas vezes, obtendo soluções diferentes a cada iteração. Transparência /6

Algoritmos gulosos randomizados i= 4 Transparência 6/6

Algoritmos gulosos randomizados i= 7 4 Transparência 7/6

Algoritmos gulosos randomizados i= 4 Transparência 8/6

Algoritmos gulosos randomizados i= 4 Transparência 9/6

Algoritmos gulosos randomizados i= 4 4 Transparência 0/6

Algoritmos gulosos randomizados i= 4 Transparência /6

Algoritmos gulosos randomizados i= 4 Transparência /6

Algoritmos gulosos randomizados i= 4 Transparência /6

Algoritmos gulosos randomizados i= 4 Transparência 4/6

Algoritmos gulosos randomizados i=4 4 Transparência /6

Algoritmos gulosos randomizados i=4 4 Transparência 6/6

Algoritmos gulosos randomizados comprimento=4 4 i= Transparência 7/6

Algoritmos gulosos randomizados comprimento=4 4 4 L=8 Transparência 8/6

Algoritmos gulosos randomizados A qualidadedasoluçãoobtidadependeda qualidade dos elementos na lista de candidatos. A diversidade das soluções encontradas depende da cardinalidade da lista de candidatos. Casos extremos: algoritmo guloso puro (o candidato único é o melhor) solução gerada de forma completamente aleatória (todos pendentes são candidatos) Transparência 9/6

Vizinhanças Conjunto F de soluções viáveis formado por subconjuntos do conjunto suporte E que satisfazem determinadas condições. Representação de uma solução: indicar quais elementos de E estão presentes e quais não estão. Problema da mochila: itens j=,,n, peso máximo b, lucros c j e pesos a j Solução representada por um vetor 0- com n posições: x j = se o item j é selecionado, x j = 0 caso contrário Transparência 40/6

Vizinhanças Problema do caixeiro viajante: representar cada solução pela ordem em que os vértices são visitados, como uma permutação circular dos n vértices (o primeiro vértice é arbitrário) - (a)bcd a - (a)bdc b - (a)cbd - (a)dcb - (a)cdb - (a)dbc d c Transparência 4/6

Vizinhanças Problema: c(s*) = mínimo { c(s): S F E } Vizinhança: um conceito que introduz a noção de proximidade entre as soluções em F Uma vizinhança é um mapeamento que associa cada solução a um conjunto de soluções (vizinhos) N(S) = {S,S,,S k } soluções vizinhas de S Transparência 4/6

Transparência 4/6

Transparência 44/6

Transparência 4/6

Transparência 46/6

Vizinhanças Boas representações permitem representar de forma compacta o conjunto de soluções vizinhas de uma solução S qualquer e percorrer de modo eficiente o conjunto de soluções. Transparência 47/6

Vizinhanças Exemplo: problema da mochila Solução S = (x,,x i,,x n ) x i {0,}, i=,,n N(S) = {(x,,-x i,,x n ): i=,..,n} Vizinhos de (,0,,) = {(0,0,,), (,,,), (,0,0,), (,0,,0)} Transparência 48/6

Vizinhanças 00 0 000 00 00 0 0 Transparência 49/6

Vizinhanças Espaço de busca: grafocujosvérticessãoas soluções, com arestas entre pares de vértices associados a soluções vizinhas. Caminho: seqüência de soluções, onde duas soluções consecutivas são vizinhas. Ótimolocal: solução melhor ou tão boa quanto qualquer uma das soluções vizinhas Transparência 0/6

Transparência /6

Busca local Algoritmos de busca local: estratégia de exploração do espaço de busca. Partida: solução inicial obtida através de um método construtivo. Iteração: melhoria da solução corrente através de uma busca na sua vizinhança. Parada: primeiro ótimo local encontrado (não existe solução vizinha aprimorante) Transparência /6

Busca local Melhoria iterativa: a cada iteração, selecionar qualquer (eventualmente a primeira) solução aprimorante na vizinhança Descida mais rápida: a cada iteração, selecionar a melhor solução aprimorante na vizinhança Transparência /6

Questões fundamentais: Definição da vizinhança Busca local Estratégiade buscanavizinhança Complexidade de cada iteração Proporcional ao tamanho da vizinhança Eficiência depende da forma como é calculada a função objetivo para cada solução vizinha: algoritmos eficientes são capazes de atualizar os valores quando a solução corrente se modifica, evitando cálculos repetitivos e desnecessários da função objetivo. Transparência 4/6

Busca local Vizinhança -opt para o problema do caixeiro viajante: Um vizinho para cada par de arestas: número de vizinhos é O(n ) Custo de cada vizinho pode ser avaliado em O(): complexidade de cada iteração da busca local é O(n ) Transparência /6

4 L=7 (+) L=4 4 L=8 (+) melhor vizinho 4 4 L= (-) Transparência 6/6 4 L=8 (+) 4 L=9 (+)

Vizinhança -opt para o problema do caixeiro viajante Combinar diferentes vizinhanças no mesmo algoritmo de busca local Busca local Transparência 7/6

Busca local Um vizinho para cada tripla de arestas: número de vizinhos é O(n ) Custo de cada vizinho pode ser avaliado em O(): complexidade de cada iteração da busca local é O(n ) Vizinhança (k+)-opt inclui as soluções de k-opt. Extensão até n-opt corresponderia a uma busca exaustiva do espaço de soluções! A complexidade de cada iteração aumenta com k, enquanto o ganho possível diminui. Transparência 8/6

Busca local Diferentes aspectos do espaço de busca influenciam o desempenho da busca local Conexidade: deve existir um caminho entre qualquer par de soluções no espaço de busca Distância entre duas soluções: número de soluções visitadas ao longo do caminho mais curto entre elas Diâmetro: distância entre as duas soluções mais afastadas (diâmetros reduzidos) Transparência 9/6

Dificuldades: Busca local Término no primeiro ótimo local encontrado Sensível à solução de partida Sensível à vizinhança escolhida Sensível à estratégia de busca Pode exigir um número exponencial de iterações! Como melhorar seu desempenho? Transparência 60/6

Metaheurísticas Simulated annealing Busca tabu GRASP VNS(Variable Neighborhood Search) Algoritmos genéticos Scatter search Colônias de formigas Transparência 6/6