Abordagens para Problemas Intratáveis Katia S. Guimarães

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

Algoritmo de Caminho Mínimo
Algoritmos em Grafos (Parte 2)
Gustavo Sant´Anna Ferreira Rodrigo Ribeiro de Souza
Celso C. Ribeiro Caroline T. Rocha
Fluxo em Redes Prof. Ricardo R. Santos.
Solved Exercises 1. Finding the Peak. Let A= a1,…,an be a sequence of n numbers with the following property: there is p in {1,…,n} for which (i) the.
Problemas de fluxo numa rede
2 de Junho de 2005Conclusão1 Pedro Barahona DI/FCT/UNL Junho 2005.
1 Conclusão DI/FCT/UNL 1º Semestre 2004/ Ciclos de Simulação A técnica usada no exemplo da queda livre pode ser utilizada para trajectórias a duas.

2002 LCG/UFRJ. All rights reserved. 1 Localização no Plano Claudio Esperança Paulo Roma.
Dárlinton B. Feres Carvalho
Pesquisa em Memória Primária
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
Pesquisa em Memória Primária
Problema da Mochila Inteira (Bounded Knapsack)
Artigo: The dynamic berth allocation problem for a container port Akio Imai, Etsuko Nishimura, Stratos Papadimitriou O propósito principal do artigo.
Introdução à NP-completude
Problemas NP-completo
Meta - heurísticas Prof. Aurora
Algoritmos em Grafos.
Formas de representação e manipulação básica
Heurísticas, algoritmos gulosos e aproximações
Algoritmos em Grafos Conceitos principais Prof. André Renato
T ÓPICOS DE I.A. Métodos de Busca Busca em Espaços de Estado Prof. Mário Dantas.
Otimização Inteira 5a. Aula Franklina.
Análise e Síntese de Algoritmos
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
GRASP Disciplina: ODST Professores: José Oliveira e Maria Carravilla
Heurísticas, algoritmos gulosos e aproximações
Listas, Filas e Pilhas Katia Guimarães.
Introdução à NP-completude Katia S. Guimarães
Algoritmos Gulosos em Grafos
Abordagens para problemas NP-completos
Mergesort Katia Guimarães.
NP-Completude Algoritmos e Estruturas de Dados – IF672
Algoritmos de Busca Local
Busca Informada.
Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo
Universidade Federal de Mato Grosso do Sul Departamento de Computação e Estatística Circuitos de Euler em Paralelo Universidade Federal de Mato Grosso.
Busca Combinatorial e Métodos de Heurística
Como analisar um algoritmo
Programação Dinâmica.
Problemas NP-completos e Programação Dinâmica
Algoritmos de aproximação

Algoritmos FPT para o Problema da k-Cobertura por Vértices
Alinhamento de Cadeias de DNA COMPARAÇÃO DE SEQÜÊNCIAS
Introdução à NP-completude
XIII Semana da Matemática Mini curso 7 Modelagem de Problemas de Otimização Socorro Rangel (DCCE)
Exercícios de Algoritmos Aproximativos
Exercícios de Fluxo em Redes
Celso C. Ribeiro Caroline T. Rocha
Caixeiro Viajante Problema: Dado um grafo G=(V,E), encontrar o Circuito Hamiltoniano de tamanho mínimo. Teorema: A menos que P=NP, não existe algoritmo.
Métodos Construtivos x Aprimoramento
Análise e Síntese de Algoritmos
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
Grafos e Teoria da Complexidade Professor: Fabio Tirelo
Análise e Síntese de Algoritmos Algoritmos GreedyCLRS, Cap. 16.
Resolução de Problemas Sistemas de Produção Prof. Cláudio M. N. A. Pereira.
Heaps Katia S. Guimarães
Programação Dinâmica IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes.
Alinhamento Global de Seqüências Katia Guimarães.
PROFESSOR: CÉZAR AUGUSTO PEREIRA DOS SANTOS 1.
Grafos e Teoria da Complexidade Professor: Fabio Tirelo
Problema do Empacotamento (Bin Packing) Heurística Simulated Annealing Dionatan de Souza Moura Lucas Nowaczyk Seadi Tobias Brignol Petry.
1 1 Slide Programação Dinâmica Prof. Dr. Alexandre Pereira Salgado Junior.
Introdução à NP-completude
Transcrição da apresentação:

Abordagens para Problemas Intratáveis Katia S. Guimarães

São problemas para os quais  Não se conhece solução polinomial e  Não se sabe se elas existem. O link  Contém informação e apontadores para listas de problemas deste tipo em várias áreas de aplicação. Problemas Intratáveis

Abordagens para Problemas Intratáveis Há uma série de técnicas para lidar com problemas intratáveis. Dependendo da situação, algumas são mais adequadas do que outras. Ex. - Programação Dinâmica (Pseudo-polinomiais) - Heurísticas / Algoritmos de Aproximação - Backtracking - Algoritmos Randômicos

Problema Soma dos Subconjuntos Entrada: n números naturais Saída: Existe uma bipartição dos números na entrada tal que as somas dos elementos em cada conjunto seja igual? Uma entrada poderia ser: Abordagem: Programação Dinâmica

Problema Soma dos Subconjuntos Entrada: Abordagem: Programação Dinâmica x x 0 x 0 0 x x x 0 x 0 x x 0 x x x x x x x x x x x x 0 x Saída: Matriz [n,  x i / 2] Custo: Tamanho da matriz = n   x i (Pseudo-Polinomial)

Problema Soma dos Subconjuntos Entrada: Abordagem: Programação Dinâmica x x x 0 0 x x x 0 x 0 x 0 x x 0 x x x x x x x 0 x x x x x x 0 x Saída: Matriz [4, 8]

Algoritmo de Programação Dinâmica para Soma dos Subconjuntos soma  0 para i = 1.. n faça soma  soma + A [i] para j = 0.. soma faça M [1, j]  0 /* Zera a 1ª. linha da matriz */ M [1, A[1] ]  1 /* Única soma possível = 1ºelem. do array */ para i = 2.. n faça para j = 1.. soma faça M [i, j]  M [i-1, j] /* Copia linha anterior */ se (A[i] < j e M [i-1, j-A[i] ]=1) então M[i,j]  1 M [i, A[i] ]  1 devolva ( M [n, soma/2] )

0/1 Knapsack Problem ou Problema da Mochila

0/1 Knapsack - Problema da Mochila Entrada: - Coleção de itens, com peso e valor - Capacidade C de uma mochila (container) Saída: - Relação de itens que caibam todos dentro da capacidade da mochila, maximizando o valor da carga. Aplicações: Problemas de acomodação e transporte de carga. Ex: Arrumação de Containers ou Ladrão em um museu. GREEDY RESOLVE?

Knapsack - GREEDY RESOLVE? Estratégia Greedy: Tomar os itens em ordem por maior valor Dados: Capacidade: 30 Itens: A B C PESO VALOR A abordagem Greedy escolheria quais itens? Qual seria a melhor escolha?

Knapsack - GREEDY RESOLVE? Estratégia Greedy: Tomar os itens em ordem por menor peso Dados: Capacidade: 50 Itens: A B C PESO VALOR A abordagem Greedy escolheria quais itens? Qual seria a melhor escolha?

Knapsack – Programação Dinâmica? Criar uma Formulação PD: Dados n itens e capacidade X, Construir tabela F, onde Linha 0 = 0 Linha i, 0<i<n, Considerar se vale a pena incluir item i na mochila, mesmo à custa da remoção de algum outro item já incluído.

Heurísticas e Algoritmos de Aproximação Ex. Problema Bin-Packing Entrada: Números 0 < x < 1 Saída: Quantos bins de capacidade 1 são necessários para conter estes números? Uma entrada poderia ser: Abordagem 1: FIRST FIT

Bin-Packing Entrada: Abordagem 1: FIRST FIT Saída: {.4,.3}, {.4,.5}, {.7}, {.6}, {.5}, {.6} Garantia do FIRST FIT:  de bins  2   ótimo. Abordagem 2: DECREASING FIRST FIT

Bin-Packing Entrada: Abordagem 2: DECREASING FIRST FIT Saída: {.7,.3}, {.6,.4}, {.6,.4}, {.5,.5} Garantia do DECREASING FIRST FIT:  de bins  1.25   ótimo.

Problema Cobertura de Vértices INPUT: Grafo G = (V, E) OUTPUT: V’  V, |V’| mínimo, tal que  α=(v, w)  E, (v  E) ou (w  E). Heurística guloso seria uma solução?

Problema Cobertura de Vértices O algoritmo guloso opera iterativamente, e a cada iteração toma um vértice de grau máximo. Mas a solução encontrada nem sempre é ótima. Qual seria o pior relacão entre uma solução obtida pelo algoritmo guloso e uma solução ótima?

Problema Cobertura de Vértices Neste exemplo, guloso daria uma solução ótima. Qual seria o pior relacão entre uma solução obtida pelo algoritmo guloso e uma solução ótima? (Será que você descobre isso sem cursar Algoritmos 2?)

Alg. de aproximação para Cobertura de Vértices VC-Approx(G) C =  E’ = E[G] while E’   Seja (u, v) arco de E’ C = C  { u, v } Remover de E’ qualquer arco incidente em u ou v return C PERGUNTA : Qual a aproximação garantida?