Algoritmos de aproximação - Problema de cobertura por conjuntos

Documentos relacionados
Algoritmos de aproximação - Problema da Mochila

Algoritmos de aproximação - Problema do caixeiro viajante

Algoritmos de aproximação - Método primal-dual

Complexidade computacional

Problemas NP-completos

Análise de Algoritmos

Pontos extremos, vértices e soluções básicas viáveis

Cones e raios extremos

Representação de poliedros

Existência e otimalidade de pontos extremos

ANÁLISE DE ALGORITMOS

Interpolação polinomial: Diferenças divididas de Newton

Interpolação polinomial: Polinômio de Lagrange

Regras para evitar ciclagem

Resolução de sistemas de equações lineares: Método do Gradiente

Marina Andretta. 17 de setembro de Baseado no livro Numerical Optimization, de J. Nocedal e S. J. Wright.

Grafos e Algoritmos Raimundo Macêdo. Teorema de Hall (Prova por Indução)

PCC104 - Projeto e Análise de Algoritmos

Teoremas de dualidade

Corte Máximo em Grafos Notas de aula de MAC-5727

Degenerescência. Marina Andretta ICMC-USP. 19 de outubro de 2016

Interpolação polinomial: Diferenças divididas de Newton

Poliedros na forma padrão

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

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

Método de restrições ativas para minimização em caixas

Algoritmo Aproximação. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Teoria de dualidade. Marina Andretta ICMC-USP. 19 de outubro de 2016

Notações e revisão de álgebra linear

Lema de Farkas e desigualdades lineares

Métodos Previsor-Corretor

Análise de Algoritmos

Resolução de sistemas de equações não-lineares: Método Iterativo Linear

Análise de algorimos de aproximação utilizando o método dual-tting

Resolução de sistemas de equações não-lineares: Método Iterativo Linear

Fabio Augusto Camargo

André Vignatti DINF- UFPR

Método do Ponto Fixo

Marina Andretta/Franklina Toledo. 18 de outubro de Baseado no livro Análise Numérica, de R. L. Burden e J. D. Faires.

Método de restrições ativas para minimização com restrições lineares

Marina Andretta. 10 de outubro de Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis.

Geradores e relações

Melhores momentos AULA 3. Algoritmos p.148/188

Resolução de problemas com apenas restrições lineares de igualdade

O grau de saída d + (v) de um vértice v é o número de arcos que tem

O Problema da 3- Coloração de Grafos

Algoritmo Aproximado. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Análise de Algoritmos. Slides de Paulo Feofiloff

Algoritmos para o problema da árvore de Steiner com coleta de prêmios

Determinação numérica de autovalores e autovetores: Método das Potências Inversas

Algoritmos de Aproximação Segundo Semestre de 2012

Marina Andretta. 9 de agosto de Baseado em problemas presentes em

Geometria Computacional

5COP096 TeoriadaComputação

Como saber se um problema está em NP e não está em P?

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 5: Grafos Conexos. Departamento de Matemática Aplicada

Determinação numérica de autovalores e autovetores: Método de Jacobi

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

Teoria e Algoritmos em Grafos

Determinação numérica de autovalores e autovetores: Método das Potências Inversas

Redução polinomial. Permite comparar o grau de complexidade de problemas diferentes.

Uma Introdução Sucinta à Teoria dos Grafos

apenas os caminhos que passam só por vértices em C, exceto, talvez, o próprio v A Figura 1 a seguir ilustra o significado do conjunto C edovalordist.

Reduções de Problemas Difíceis

ERRATA Uma Introdução Sucinta a Algoritmos de Aproximação

Gabriel Coutinho DCC035 - Pesquisa Operacional Lista 6

Marina Andretta. 18 de outubro de 2010

ANÁLISE DE ALGORITMOS (INF 1721)

Problema de seleção de atividades. Aula 14. Exemplo. Algoritmos Gulosos. Algoritmos Gulosos. Intervalo: par ordenado de números

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

Teoria dos Conjuntos. (Aula 6) Ruy de Queiroz. O Teorema da. (Aula 6) Ruy J. G. B. de Queiroz. Centro de Informática, UFPE

Grafos. Exemplo de árvore geradora mínima. Notas. Notas. Notas. Notas. Árvores espalhadas mínimas. Como construir uma árvore geradora miníma

Melhores momentos AULA 24. Algoritmos p.906/953

Método das Secantes. Marina Andretta/Franklina Toledo ICMC-USP. 4 de setembro de 2012

Redução de Cook-Levin e Considerações Finais

Método de Newton truncado

4.1 Preliminares. No exemplo acima: Dom(R 1 ) = e Im(R 1 ) = Dom(R 2 ) = e Im(R 2 ) = Dom(R 3 ) = e Im(R 3 ) = Diagrama de Venn

Fábio Protti - UFF Loana T. Nogueira - UFF Sulamita Klein UFRJ

SME0801- Probabilidade II Distribuições conjuntas. Primeiras definições e propriedades

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Resolução de sistemas de equações lineares: Método de eliminação de Gauss - estratégias de pivotamento

Método de Newton modificado

COMPLEXIDADE PARAMETRIZADA PARTE 1. Rafael Coelho.

Árvores Árvores Geradoras de Custo Mínimo 0/16

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

x y Grafo Euleriano Figura 1

Algoritmos para resolução de problemas de minimização irrestrita

INTRATABILIDADE e NP-COMPLETUDE

Problema do Caminho Mínimo

Melhores momentos AULA 22. Algoritmos p.824/855

Alguns passos da prova do Teorema de Runge

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Coloração. Carolina Moraes e Lucas Glir

Contando o Infinito: os Números Cardinais

GRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira

Análise e Complexidade de Algoritmos

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 16: Grafos Planares. Departamento de Matemática Aplicada

Método de Euler. Marina Andretta/Franklina Toledo ICMC-USP. 29 de outubro de 2013

Métodos para resolver problemas de otimização restrita

Transcrição:

Algoritmos de aproximação - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de 205 Baseado no livro Uma introdução sucinta a Algoritmos de Aproximação, de M. H. Carvalho, M. R. Cerioli, R. Dahab, P. Feofiloff, C. G. Fernandes, C. E. Ferreira, K. S. Guimarães, F. K. Miyazawa, J. C. Piña Jr., J. A. R. Soares e Y. Wakabayashi. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 / 33

Problema de cobertura mínima por conjuntos Dada uma coleção finita S de conjuntos finitos, dizemos que uma subcoleção T de S cobre um conjunto finito E se todo elemento de E pertence a algum conjunto de T. Neste caso, dizemos também que T é uma cobertura de E. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 2 / 33

Problema de cobertura mínima por conjuntos O problema da cobertura mínima por conjuntos (minimum set cover problem) consiste no seguinte: Problema MinCC(E, S, c): Dados um conjunto finito E, uma coleção finita S de conjuntos finitos que cobre E e um custo c S em Q para cada S em S, encontrar uma cobertura T de E que minimize c(t ). Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 3 / 33

Problema de cobertura mínima por conjuntos A exigência de que S cubra E serve apenas para excluir instâncias inviáveis do problema. Chamamos o número c(t ) de custo da cobertura T. Assim, o problema consiste em encontrar uma cobertura de custo mínimo. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 4 / 33

Exemplo Um caso particular o problema MinCC é o problema de cobertura por arestas. Neste problema, dado um grafo G = (V, A), e um custo c a em Q para cada aresta a A, desejamos encontrar um sub-conjunto T de arestas de A de custo mínimo de forma que todo vértice de V seja atingido por ao menos uma aresta de T. Neste caso, dado G = (V, A), temos que E é o conjunto de vértices de um grafo (E = V ), S é o conjunto de arestas (S = A) e c S é o custo das arestas (c S = c a ). Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 5 / 33

Exemplo Neste exemplo, E = {a, b, c, d, e}, S = {{a, b}, {a, d}, {b, c}, {b, d}, {c, e}, {d, e}} e c S é dado pelos números nas arestas da figura. a 4 d 2 8 b 2 e c Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 6 / 33

Exemplo Uma possível cobertura (minimal) é T = {{a, d}, {d, e}, {b, c}}, com custo c(t ) = 4 + 8 + 2 = 4. a 4 d 2 8 b 2 e c Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 7 / 33

Exemplo A cobertura mínima, neste caso, é T = {{a, b}, {c, e}, {b, d}}, com custo c(t ) = + + 2 = 4. a 4 d 2 8 b 2 e c Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 8 / 33

Exemplo 2 Um outro problema que pode ser escrito como um problema MinCC é o problema de cobertura por vértices. Neste problema, dado um grafo G = (V, A), e um custo c v em Q para cada vértice v V, desejamos encontrar um sub-conjunto T de vértices de V de custo mínimo de forma que toda aresta de A seja incidente a pelo menos um vértice T. Neste caso, dado G = (V, A), temos que E é o conjunto de arestas de um grafo (E = A), c S é o custo dos vértices (c S = c v ) e, para cada v V, temos um conjunto S S formado por todas arestas de A incidentes em v. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 9 / 33

Exemplo 2 Neste exemplo, E = {a, b, c, d, e, f }, S = {{a, b}, {a, c, d}, {d, e}, {b, c, f }, {e, f }} e c S é para todo S S. a d b 2 3 c e 4 5 f Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 0 / 33

Exemplo 2 Uma cobertura mínima é T = {{a, b}, {a, c, d}, {e, f }}, correspondente ao conjunto de vértices {, 2, 5}, com custo c(t ) = 3. a d b 2 3 c e 4 5 f Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 / 33

Exemplo 2 Outra cobertura mínima é T = {{a, b}, {d, e}, {b, c, f }}, correspondente ao conjunto de vértices {, 3, 4}, com custo c(t ) = 3. a d b 2 3 c e 4 5 f Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 2 / 33

Problema de cobertura mínima por conjuntos O MinCC é NP-difícil mesmo quando cada conjunto em S não tem mais que três elementos. Uma estratégia gulosa simples para o problema consiste em selecionar repetidamente o conjunto em S que é mais promissor em termos de custo com relação ao número de elementos ainda não cobertos que ele contém. Essa estratégia dá origem ao seguinte algoritmo, proposto por Chvátal, que apresentamos em sua versão recursiva. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 3 / 33

Algoritmo de aproximação Algoritmo MinCC-Chvátal(E, S, c): se E = 2 então devolva ; 3 senão seja Z em S tal que c Z / Z E é mínimo; 4 faça E E \ Z; 5 faça S {S S : S E }; 6 seja c a restrição de c a S ; 7 faça T MinCC-Chvátal(E, S, c ); 8 devolva {Z} T. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 4 / 33

Exemplo Considere a instância do exemplo 2. Temos E 0 = {a, b, c, d, e, f }, S 0 = {{a, b}, {a, c, d}, {d, e}, {b, c, f }, {e, f }} e c S é para todo S S 0. a d b 2 3 c e 4 5 f Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 5 / 33

Exemplo Como E 0 não é vazio, iremos para a linha 3 do algoritmo. Temos que Z {a, b} {a, c, d} {d, e} {b, c, f } {e, f } c Z Z E 0 2 3 2 3 2 Vamos escolher Z 0 = {a, c, d}. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 6 / 33

Exemplo Definimos E E 0 \ Z 0 = {b, e, f }, S {S S 0 : S E } = {{a, b}, {d, e}, {b, c, f }, {e, f }}, e chamamos o algoritmo novamente com estes parâmetros. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 7 / 33

Exemplo Temos agora E = {b, e, f }, S = {{a, b}, {d, e}, {b, c, f }, {e, f }} e c S é para todo S S. a d b 2 3 c e 4 5 f Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 8 / 33

Exemplo Como E não é vazio, iremos para a linha 3 do algoritmo. Temos que Z {a, b} {d, e} {b, c, f } {e, f } c Z Z E 2 2 Vamos escolher Z = {b, c, f }. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 9 / 33

Exemplo Definimos E E \ Z = {e}, S {S S : S E } = {{d, e}, {e, f }}, e chamamos o algoritmo novamente com estes parâmetros. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 20 / 33

Exemplo Temos agora E 2 = {e}, S 2 = {{d, e}, {e, f }} e c S é para todo S S 2. a d b 2 3 c e 4 5 f Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 2 / 33

Exemplo Como E 2 não é vazio, iremos para a linha 3 do algoritmo. Temos que Z {d, e} {e, f } c Z Z E 2 Vamos escolher Z 2 = {d, e}. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 22 / 33

Exemplo Definimos E E 2 \ Z 2 =, S {S S 2 : S E } =, e chamamos o algoritmo novamente com estes parâmetros. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 23 / 33

Exemplo Temos agora E 3 = S 3 =. Assim, o algoritmo termina e devolve a cobertura T = {Z 0 } {Z } {Z 2 } = {{a, c, d}, {b, c, f }, {d, e}}, que corresponde aos vértices {2, 3, 4}. a d b 2 3 c e 4 5 f Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 24 / 33

Algoritmo de aproximação Claramente o algoritmo devolve uma cobertura de E. Há uma boa delimitação inferior para o valor ótimo do problema MinCC(E, S, c) relacionada ao algoritmo. Suponha que Z é um elemento de S tal que para todo S em S. c Z Z E c S S E Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 25 / 33

Algoritmo de aproximação Então, para qualquer cobertura T de E, c Z Z E E c Z Z E S T S E S T c S S E S E = S T c S = c(t ). Como esta relação vale inclusive para a cobertura ótima T, temos que c Z c(t ) = opt(e, S, c) E Z E. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 26 / 33

Algoritmo de aproximação - teorema Seja H n o número harmônico H n := + 2 + 3 +... + n. Teorema: O algoritmo MinCC-Chvátal é uma H n -aproximação polinomial para o MinCC(E, S, c), com n := E. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 27 / 33

Algoritmo de aproximação - demonstração Demonstração: Vamos mostrar que o algoritmo é uma H n -aproximação por indução em E. Se E = 0, então o algoritmo devolve o conjunto vazio, que é uma cobertura de custo mínimo. Vejamos agora o caso em que E > 0 e, portanto, S > 0. Defina n := E e k := Z E, com Z o conjunto escolhido na linha 3 do algoritmo. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 28 / 33

Algoritmo de aproximação - demonstração Como E = n k < E, pela hipótese de indução temos que a coleção T produzida na linha 7 do algoritmo é uma cobertura de E e que c (T ) H n k opt(e, S, c ). Além disso, como toda cobertura de E contém uma cobertura de E formada por conjuntos de S, temos que opt(e, S, c ) opt(e, S, c). Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 29 / 33

Algoritmo de aproximação - demonstração Assim, c({z} T ) = c Z + c (T ) c Z + H n k opt(e, S, c). Como opt(e, S, c) E Z E = n k c Z, c Z c({z} T ) k n opt(e, S, c) + H n kopt(e, S, c) ( ) n + n +... + n k+ + H n k opt(e, S, c) = H n opt(e, S, c). Ademais, o algoritmo é polinomial, já que consome tempo O( E S ). Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 30 / 33

Algoritmo de aproximação O algoritmo MinCC-Chvátal pode produzir coberturas de custo arbitrariamente próximo de H n opt(e, S, c), onde n := E. Mais precisamente, para cada ɛ positivo, existe uma instância do problema para a qual o algoritmo produz uma cobertura de custo H n opt(e, S, c)/( + ɛ). Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 3 / 33

Algoritmo de aproximação Basta tomar E := {,..., n}, S := {E, {},..., {n}}, c E = + ɛ e c {i} := /i, para cada i. Uma cobertura de custo mínimo é {E} e o custo desta cobertura é + ɛ. Por outro lado, o algoritmo MinCC-Chvátal produz a cobertura {{},..., {n}}, cujo custo é H n. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 32 / 33

Algoritmo de aproximação Assintoticamente, o algoritmo MinCC-Chvátal tem a melhor razão possível para o problema MinCC, pois sabe-se que H n + ln(n) e existe uma constante positiva α para a qual não existe algoritmo com razão de aproximação menor que α ln(n), com n := E, para o MinCC(E, S, c), a menos que P = NP. Marina Andretta (ICMC-USP) sme026 e 5826 22 de setembro de 205 33 / 33