Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo

Slides:



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

Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Algoritmos em Grafos.
Algoritmos em Grafos (Parte 2)
Gustavo Sant´Anna Ferreira Rodrigo Ribeiro de Souza
Grafos - Caminhos Caminhos Máximo / Mínimo:
AULA 5 PGC Sistemas de Banco de Dados Profa. Sandra de Amo
Cálculo Comprimento de Arco Amintas Paiva Afonso
CC/EC/PPGI/UFES Teoria dos Grafos (INF 5037/INF2781) Coloração.
Percursos em um grafo 2010/1 Teoria dos Grafos (INF 5037/INF2781)
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
Coloração Teoria dos Grafos (INF 5037/INF2781) 1.
Algoritmo polinomial para geração de uma Árvore Geradora Mínima
Análise e complexidade de algoritmos
Problema do caixeiro viajante
Método Hierárquico Aglomerativo de Clusterização Algoritmo CURE
Programação Linear Método Simplex
Teoria da Computação Profa. Sandra de Amo Mestrado em Ciência da Computação 2010 – 1.
Problemas NP-completos
Mineração de Preferências (a partir de amostras superiores e inferiores) J.Pei et al. KDD 2008 AULA 18 Data Mining Profa. Sandra de Amo.
2002 LCG/UFRJ. All rights reserved. 1 Localização no Plano Claudio Esperança Paulo Roma.
Dárlinton B. Feres Carvalho
Ronaldo Celso Messias Correia –
Introdução à NP-completude
Problemas NP-completo
Árvore Geradora Mínima
Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU
Algoritmos em Grafos.
Heurísticas, algoritmos gulosos e aproximações
Algoritmos em Grafos Conceitos principais Prof. André Renato
Grafos Árvores Geradoras.
Teoria dos Grafos Caminhos e Noção de Grafos com pesos
Análise de Redes Complexas – Conceitos e Propriedades Básicas
Algoritmos em Grafos Árvores Geradoras Prof. André Renato
Exercícios: Alg Gulosos Eduardo Laber. Cap 4-Exercício 2 a)Verdadeiro, já que trocando cada elemento pelo seu quadrado não altera a ordem das arestas.
Otimização Inteira 5a. Aula Franklina.
Conceitos Básicos Alysson e Franklina 2ºs/
Operações com grafos União Exemplo
O problema do emparelhamento máximo
Problemas de Fluxo Máximo
Aula T06 – BCC202 Análise de Algoritmos (Parte 4) Túlio Toffolo
Heurísticas, algoritmos gulosos e aproximações
Abordagens para problemas NP-completos
Redes Bayesianas – Inferência
Redes ADSA António Câmara.
Análise de Redes Complexas – Conceitos e Propriedades Básicas
Algoritmo de PRIM para MST
Análise de Complexidade do Algoritmo de Dijkstra
Conexidade 1.
Disciplina Análise de Algoritmos Bacharelado em CC
CAMINHOS MAIS CURTOS EM GRAFOS
A Classe NP Teoria da Computação Profa. Sandra de Amo.
Análise de Algoritmos Informações Gerais da Disciplina
Problemas NP-completos e Programação Dinâmica
Algoritmos de aproximação

Problema MST Método Genérico Guloso usando Estratégia do Corte
Introdução à NP-completude
Números Primos – algoritmos e aplicações
Operações Aritméticas AULA 3 Análise de Algoritmos Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.
Exercícios de Algoritmos Aproximativos
Exercícios de Fluxo em Redes
Redes de transporte Uma rede ou grafo consiste num número finito de pontos chamados nós ou vértices interligados por arcos. Muitos sistemas, físicos ou.
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.
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
Mailson Felipe da Silva Marques Johnson Cordeiro Sarmento
Programação Dinâmica Profa. Sandra de Amo Bacharelado em Ciência da Computação – UFU Disciplina de Análise de Algoritmos.
Abordagens para Problemas Intratáveis Katia S. Guimarães
Comportamento Assintótico
Transcrição da apresentação:

Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo

Hierarquia de Aproximação para Problemas NP-completos Não aproximáveis Caixeiro Viajante geral Clique, Conj. Independente Parcialmente aproximáveis Vertex Cover, Clustering, Caixeiro Viajante “euclidiano” Totalmente aproximáveis Mochila, Two-machine scheduling,...

Veremos nesta aula Vertex Cover é parcialmente aproximável. Algoritmo polinomial aproximado para o Problema do Vertex Cover Caixeiro Viajante “euclidiano” é parcialmente aproximável. Algoritmo polinomial aproximado para o Problema do Caixeiro Viajante (“euclidiano”) Mochila é totalmente aproximável Algoritmo polinomial aproximado para o Problema da Mochila.

Problema do Vertex Cover Input: Grafo G = (V,E) não-dirigido Output: Menor V’  V cobrindo todas as arestas de E (qualquer aresta {u,v} tem uma de suas extremidades em V’) Vertex Cover é NP-hard Vertex Cover é parcialmente aproximável.

Ideia geral do algoritmo aproximado Constrói um matching maximal Matching = conjunto de arestas que não possuem vértices em comum Matching maximal = se acrescentar mais uma aresta deixa de ser matching Construção do matching maximal: feito em tempo polinomial Considera S = vértices do matching maximal

Exemplo Grafo G

Exemplo Grafo G Construindo o matching maximal....

Exemplo Grafo G Construindo o matching maximal....

Exemplo Grafo G Construindo o matching maximal....

Exemplo Grafo G Construindo o matching maximal....

Exemplo Grafo G MATCHING MAXIMAL !!

Exemplo Grafo G VERTEX COVER PRODUZIDO PELO ALGORITMO APROXIMADO !!

Exemplo 12 vértices ! Grafo G VERTEX COVER PRODUZIDO PELO ALGORITMO APROXIMADO !! VERTEX COVER OTIMAL : 8 Vértices

Algoritmo realmente aproxima a solução otimal do VC Como provar isto SEM conhecer a solução otimal do VC ???? Argumentação: 1. Resultado S do algoritmo é um vertex cover 2. Qualquer outro vertex cover X satisfaz: |S| ≤ 2. |X| 3. Logo |S| ≤ 2. |opt| 4. Além disto: |S| ≥ |opt| 5. Portanto |opt| ≤ |S| ≤ 2.opt Isto é: 1 ≤ ɑA ≤ 2

Argumentação passo a passo: Resultado S do algoritmo é um VC Suponha que não fosse: Seja e = {u,v} que não é coberta por S, isto é u, v  S Acrescenta {e} ao matching maximal M (de onde foi obtido o S) = M  {e} é um matching ! Logo, M não é matching maximal !! Absurdo. 2. Qualquer outro vertex cover X satisfaz: |S| ≤ 2. |X| Seja X um vertex cover. |X| ≥ |M| pois X deve cobrir todas as arestas de G Logo, X deve cobrir as arestas do matching M. Para isto, |X| precisa incluir pelo menos 1 vértice por aresta de M Logo, X deve ter pelo menos |M| vértices Logo, |X| ≥ |S|/2  |S| ≤ 2.|X|

Problema do Caixeiro Viajante Euclidiano Input: Conjunto de n cidades C = {c1, c2, ..., cn}, matriz de distâncias simétrica, satisfazendo a desigualdade triangular : dik ≤ dij + djk Output: Tour mais curto saindo de c1 e chegando em c1, visitando todas as cidades uma única vez. Caixeiro euclidiano é NP-hard Caixeiro euclidiano é parcialmente aproximável.

Ideia geral do algoritmo aproximado Considera o grafo associado G = (V,E), onde V = conj. de cidades ; E ´= V x V; custo({i,j}) = dij Constrói uma MST de G Considera caminho C obtido percorrendo a MST saindo de C1 e voltando para C1, mesmo que tenha de passar por um trecho mais de uma vez. “Conserta” este caminho C de modo a eliminar revisitas a cidades já visitadas, inserindo desvios mais curtos a cada vez que o caminho C vai revisitar uma cidade.

Exemplo Input do Caixeiro Viajante: conjunto de cidades a visitar. Wichita Tulsa Amarillo Albuquerque Little Rock Dallas El Paso Houston San Antonio Input do Caixeiro Viajante: conjunto de cidades a visitar. Qual o tour de custo minimo saindo de e voltando para San Antonio ?

Exemplo Grafo completo correspondente ao conjunto de cidades, todas Wichita Tulsa Amarillo Albuquerque Little Rock Dallas El Paso Houston San Antonio Grafo completo correspondente ao conjunto de cidades, todas interligadas.

Exemplo UMA MST PARA O GRAFO G

Exemplo Já foi visitado ! Todos foram visitados ! Pega o atalho direto para San Antonio Percorre a MST, saindo de San Antonio e voltando para San Antonio, passando por todas as cidades

Exemplo Já foi visitado ! Tour produzido pelo algoritmo aproximado

Algoritmo realmente aproxima a solução otimal do Caixeiro Viajante Considere um tour otimal OPT passando por todas as cidades uma única vez Removendo uma aresta de OPT, temos um caminho C que passa por todos os vértices, sem ciclos = spanning tree Logo: Custo de OPT ≥ Custo de C ≥ custo MST C’ = tour do tipo “ida-e-volta” produzido saindo da raiz e voltando para a raiz (San Antonio), seguindo a MST Custo C’ = 2.custo MST ≤ 2.custo OPT A = caminho produzido pelo algoritmo aproximado Custo A ≤ Custo C’ (pois A usa atalhos) e Custo C’ ≤ 2.custo OPT Logo: 1 ≤ Custo A / Custo OPT ≤ 2

Problema da Mochila (sem repetição) Input: W > 0 (capacidade máxima da mochila) itens 1,2,...,n, pesos p1, p2,..., pn, valores v1, v2,..., vn Output: Conjunto de itens (sem repetição) com soma total máxima que se pode carregar na mochila Mochila é NP-hard – Problema de MAXIMIZAÇÃO Mochila é Totalmente Aproximável. Vamos mostrar que para qualquer ε > 0 existe um algoritmo polinomial A tal que OPT ≤ A (1 + ε / (1 – ε) ) Muito pequeno Razão de aproximação ɑ = OPT / A ≤ (1 + ε / (1 – ε) )

Ideia do Algoritmo Ideia central: considerar o algorimo de Programação Dinâmica O(nV) que resolve o problema da mochila sem repetição (ver exercicio 3 – lista Aula 26-27), onde V = total dos valores dos itens disponíveis. Aplicar este algoritmo sobre os valores escalados de modo que a complexidade em V não seja muito grande ! Ex. se os valores são v1 = 202.479, v2 = 40.000, v3 = 87.500 considera-se os valores v’1 = 202, v’2 = 40, v’3 = 87 e aplica-se o algoritmo O(nV) para estes valores. Os artigos retornados por este algoritmo caberão na mochila, já que os pesos não foram alterados. Tais artigos podem não corresponder à solução optimal, mas o valor total (original) dos itens propostos pelo algoritmo aproximado ficará bem próximo do valor optimal.

Algoritmo Seja ε > 0 dado. Consideramos o Algoritmo A (abaixo) que vai aproximar a solução otimal K* da Mochila de um fator ɑ ≤ 1 + ε(1- ε) Escala vi ≤ vi. n/ ε.vmax Logo: vi ≥ vi ε.vmax/n

Complexidade de A Complexidade de A = O(nV’), onde V’ = soma total dos valores dos itens escalonados. Para todo i : v’i ≤ vi . n/ε.vmax ≤ vmax. n/ε.vmax = n/ε Logo V’ = Σ v’i ≤ Σ n/ε = n2/ε Logo O(nV’) ≤ O(n3/ε) : polinomial em n

Algoritmo A realmente aproxima a solução optimal de um fator ≤ 1 + ε / (1 – ε) Suponha que a solução otimal OPT com os valores originais consiste em selecionar um conjunto S de itens com valor total K* Consideramos os valores escalonados dos itens considerados na solução OPT Vamos analisar qual a relação entre o total destes valores escalonados e o valor otimal K*

Algoritmo A realmente aproxima a solução optimal de um fator ≤ 1 + ε / (1 – ε) Suponha que a solução otimal fornecida pelo algoritmo A sobre os itens com valores escalonados consiste em selecionar um conjunto S de itens, com soma total maximal Consideramos os valores originais dos itens considerados na solução de A e a soma de seus valores Vamos analisar qual a relação entre o total destes valores originais (resultado de A) e o valor optimal K* ≥ K* - ε K* ≥ Pois S^ é o optimal para A

Algoritmo A realmente aproxima a solução optimal de um fator ≤ 1 + ε / (1 – ε) Logo: OPT A Fator de aproximação = ɑ = OPT/A ≤ 1/(1 – ε) = 1 + (1/(1 – ε) – 1) = 1 + ε / (1 – ε)