Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de...
Transcript of Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de...
![Page 1: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/1.jpg)
Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos
Disciplina Análise de Algoritmos
BCC-UFU
Profa. Sandra de Amo
![Page 2: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/2.jpg)
Hierarquia de Aproximação para Problemas NP-completos
1. Não aproximáveis Caixeiro Viajante geral
Clique, Conj. Independente
2. Parcialmente aproximáveis
Vertex Cover, Clustering, Caixeiro Viajante “euclidiano”
3. Totalmente aproximáveis Mochila, Two-machine scheduling,...
![Page 3: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/3.jpg)
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.
![Page 4: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/4.jpg)
Problema do Vertex CoverInput: 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.
![Page 5: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/5.jpg)
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
![Page 6: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/6.jpg)
Exemplo
Grafo G
![Page 7: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/7.jpg)
Exemplo
Grafo G Construindo o matching maximal....
![Page 8: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/8.jpg)
Exemplo
Grafo G Construindo o matching maximal....
![Page 9: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/9.jpg)
Exemplo
Grafo G Construindo o matching maximal....
![Page 10: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/10.jpg)
Exemplo
Grafo G Construindo o matching maximal....
![Page 11: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/11.jpg)
Exemplo
Grafo G MATCHING MAXIMAL !!
![Page 12: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/12.jpg)
Exemplo
Grafo G VERTEX COVER PRODUZIDO PELO ALGORITMO APROXIMADO !!
![Page 13: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/13.jpg)
Exemplo
Grafo G VERTEX COVER PRODUZIDO PELO ALGORITMO APROXIMADO !!
VERTEX COVER OTIMAL : 8 Vértices
12 vértices !
![Page 14: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/14.jpg)
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
![Page 15: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/15.jpg)
Argumentação passo a passo:
1. Resultado S do algoritmo é um VCSuponha que não fosse: Seja e = {u,v} que não é coberta por S, isto é u, v SAcrescenta {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 GLogo, X deve cobrir as arestas do matching M. Para isto, |X| precisa
incluir pelo menos 1 vértice por aresta de MLogo, X deve ter pelo menos |M| vérticesLogo, |X| ≥ |S|/2 |S| ≤ 2.|X|
![Page 16: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/16.jpg)
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.
![Page 17: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/17.jpg)
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.
![Page 18: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/18.jpg)
ExemploWichita
Tulsa
Little Rock
Dallas
Houston
San Antonio
El Paso
Albuquerque
Amarillo
Input do Caixeiro Viajante: conjunto de cidades a visitar.Qual o tour de custo minimo saindo de e voltando para San Antonio ?
![Page 19: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/19.jpg)
ExemploWichita
Tulsa
Little Rock
Dallas
Houston
San Antonio
El Paso
Albuquerque
Amarillo
Grafo completo correspondente ao conjunto de cidades, todas interligadas.
![Page 20: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/20.jpg)
Exemplo
UMA MST PARA O GRAFO G
![Page 21: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/21.jpg)
Exemplo
Percorre a MST, saindo de San Antonio e voltando para San Antonio, passando por todas as cidades
Já foi visitado !
Todos foram visitados !Pega o atalhodireto para San Antonio
![Page 22: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/22.jpg)
Exemplo
Já foi visitado !
Tour produzido pelo algoritmo aproximado
![Page 23: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/23.jpg)
Algoritmo realmente aproxima a solução otimal do Caixeiro Viajante1. Considere um tour otimal OPT passando por todas as cidades
uma única vez2. Removendo uma aresta de OPT, temos um caminho C que
passa por todos os vértices, sem ciclos = spanning tree3. Logo: Custo de OPT ≥ Custo de C ≥ custo MST4. C’ = tour do tipo “ida-e-volta” produzido saindo da raiz e voltando
para a raiz (San Antonio), seguindo a MST5. Custo C’ = 2.custo MST ≤ 2.custo OPT6. 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
![Page 24: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/24.jpg)
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
ɑ = OPT / A ≤ (1 + ε / (1 – ε) ) Razão de aproximação
![Page 25: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/25.jpg)
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.
![Page 26: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/26.jpg)
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
![Page 27: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/27.jpg)
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
![Page 28: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/28.jpg)
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*
![Page 29: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/29.jpg)
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
![Page 30: Algoritmos Aproximados: uma maneira de se lidar com problemas NP-completos Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo.](https://reader036.fdocumentos.tips/reader036/viewer/2022062404/552fc160497959413d8e9257/html5/thumbnails/30.jpg)
Algoritmo A realmente aproxima a solução optimal de um fator ≤ 1 + ε / (1 – ε)
• Logo:
OPTA
Fator de aproximação = ɑ = OPT/A ≤ 1/(1 – ε) = 1 + (1/(1 – ε) – 1) = 1 + ε / (1 – ε)