Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da...

42
Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho

Transcript of Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da...

Page 1: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Algoritmos de aproximação

Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho

Page 2: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Roteiro

• Motivação• Definições

1. Razão de aproximação2. Esquema de aproximação

• Problemas1. Cobertura de vértices2. Caixeiro viajante3. Cobertura de conjuntos4. Soma de subconjuntos

Page 3: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Motivação

Page 4: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Motivação

• Muitos problemas de significância prática são NP-completos

• Três abordagens: Entradas pequenas Isolamento de casos especiais solúveis em

tempo polinomial Pode ser possível achar soluções próximas

da solução ótima

Page 5: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Problema de otimização

• Em um problema de otimização onde cada solução viável tem associada um custo positivo, deseja-se achar uma solução próxima da ótima.

• Dependendo da natureza do problema, a solução ótima pode ser definida como um custo máximo ou mínimo possível.

Page 6: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Definições

Page 7: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Razão de aproximação

• Suponha que em um problema de otimização:cada solução potencial tem um custoe deseja-se encontrar uma solução próxima da ótima determina a medida de aproximação do

algoritmoRazão de aproximação:

em função da entrada de tamanho n.

)(),max(*

* nCC

CC

)(n

Page 8: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Razão de aproximação

• Para muitos problemas foram desenvolvidos algoritmos polinomiais:

Com razão pequena constante Com razões que crescem em função do tamanho da

entrada

• Há algoritmos que produzem razões muito pequenas mas ao custo de um tempo de computação muito alto.

Page 9: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Esquema de aproximação

• É um algoritmo de aproximação que: toma como entrada uma instancia do problema e um valor ε > 0

• tal que para um ε fixoo esquema é um algoritmo (1+ ε)-aproximação.

• Um esquema de aproximação de tempo polinomial (PTAS) é um esquema quepara qualquer ε>0 fixo o esquema executa em tempo

polinomial em função do tamanho n da entrada.

Page 10: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Esquema de aproximação• O tempo de execução de um esquema de aproximação

em tempo polinomial pode crescer tão rápido quanto ε decresce. Ex:

• O ideal é que o tempo seja polinomial tanto em 1/ε quanto em n.

• Em um esquema de aproximação de tempo completamente polinomial (FPTAS) tanto o esquema quanto seu tempo de execução são polinomiais em 1/ε e n. Ex:

)(2nO

))/1(( 32 nO

Page 11: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Problemas

Page 12: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

O problema de cobertura de vértices

• É um problema NP-completo• A cobertura de vértices de um grafo não direcionado

é um subconjunto V’ de V tal que se é uma aresta de G, então u está em V’ ou v está em V’ (ou os dois).

• O problema consiste em achar uma cobertura de tamanho mínimo dado um grafo não-direcionado.

• Tal cobertura é uma cobertura de vértices ótima

(V,E)G ),( vu

Page 13: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Exemplo

Page 14: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

O algoritmo1. INPUT G // grafo não direcionado2. C ← { } 3. E’ ← E[G] 4. while E’ is not empty do 5.     Let (u,v) be an arbitrary edge of E’ 6.     C ← C U {u, v} 7.     Remove from E’ every edge incident on either u or v 8. return C

Page 15: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Execução

Page 16: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Aproximação do algoritmo• O algoritmo é 2-aproximação em tempo polinomial• Prova:

Faça A denotar as arestas tomadas na linha 5. C* deve incluir pelo menos um terminal de cada aresta em A. Todas as arestas incidentes nos terminais da aresta escolhida

são removidas de E’ na linha 7. Como não há duas arestas cobertas pelo mesmo vértice de C*,

então temos um limite inferior:

AC* ||

Page 17: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Aproximação do algoritmo Cada execução da linha 5 toma uma aresta os quais nenhum de

seus terminais (vértices) já está em C, o que nos leva a um limite superior:

||2|| AC

||2||2|| *CAC Que nos leva a:

Page 18: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

O problema do caixeiro viajante• Dado um grafo não direcionado onde

existe um custo associado a cada aresta. Deve-se achar um ciclo hamiltoniano de G com um custo mínimo. Assim

onde A é um subconjunto das arestas de G.

(V,E)G

Avu

vucAc),(

),()(

Page 19: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Desigualdade triangular• É comum em muitas aplicações verificar a

propriedade da desigualdade triangular

• É provado que o problema do caixeiro viajante é NP-completo mesmo verificando-se a propriedade da desigualdade triangular para a função de custo.

),(),(),( wvcvucwuc

Page 20: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

O problema do caixeiro viajante com desigualdade triangular

• Computa-se uma MST o qual o peso é um limite inferior em função do tamanho de uma solução ótima do TSP.

• O custo do ciclo será no máximo duas vezes o peso da MST

Approx-TSP-Tour(G, c)1. select root vertex r in V[G]2. T = MST-Prim(G, c, r) // computes a MST3. L = list of vertices in preorder traversal of T

4. return hamiltonian cycle with vertices ordered as in L

Page 21: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

O problema do caixeiro viajante com desigualdade triangular

Page 22: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

O problema do caixeiro viajante com desigualdade triangular

• Approx-TSP-Tour é um algoritmo 2-aproximação em tempo polinomial.

• Prova: Faça H* ser o ciclo ótimo para o dado conjunto de vértices. Como a MST T é obtida pela deleção de arestas, o peso de T é

um limite inferior com relação ao custo de H*. Temos:

Um caminho completo W de T :a,b,c,b,h,b,a,d,e,f,e,g,e,d,a

)()( *HcTc

Page 23: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

O problema do caixeiro viajante com desigualdade triangular

W percorre as arestas de T duas vezes, logo

Das equações anteriores temos:

W não é um ciclo hamiltoniano, mas pela desigualdade triangular:H = {a,b,c,h,d,e,f,g}

H é a pré-ordem de T e também é um ciclo hamiltoniano. Como H é obtido deletando-se vértices de W, temos

Assim:

)(2)( TcWc

)(2)( *HcWc

)()( WcHc

)(2)( *HcHc

Page 24: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

O problema de cobertura de conjuntos

• Uma instância (X,F) do problema de cobertura de conjuntos consiste em: um conjunto finito X uma família F de subconjuntos tal que todo elemento em X pertence a pelo menos um

subconjunto em F:

É dito que um subconjunto cobre seus elementos.

FS

SX

FS

Page 25: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

O problema de cobertura de conjuntos

O problema é achar um subconjunto de tamanho mínimo, tal que seus membros cubram todos os eltos de X.

Fc

cS

SX

},,,,,{ 654321 ssssssF

},,{ 543 sssc

Page 26: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Um algoritmo de aproximação guloso

GREEDY-SET-COVER(X,F)1. U = X2. C = 3. while U do

4. select S є F that maximizes | S ∩ U |5. U = U - S6. C = C U {S}

7. return C },,,{ 3541 ssssc

Page 27: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Um algoritmo de aproximação guloso

GREEDY-SET-COVER é um algoritmo ρ(n)-aproximação onde

onde H(d) corresponde ao d-ésimo número harmônico:

})|:(max{|)( FSSHn

d

id iH

1

1

Page 28: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Um algoritmo de aproximação guloso

• Prova:Atribui-se um custo de 1 a cada conjunto selecionado

pelo algoritmoDistribui-se este custo para os elementos cobertos

pela primeira vezUtiliza-se estes custos para derivar o relacionamento

desejado entre: o tamanho de uma cobertura de conjuntos ótima C* e o tamanho do conjunto de cobertura C retornado pelo

algoritmo

Page 29: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Um algoritmo de aproximação guloso

Faça-se Si o i-ésimo subconjunto selecionado pelo algoritmo O custo de 1 é atribuído ao adicionar-se Si a C. Distribui-se este custo aos elementos cobertos pela primeira

vez: Tome Cx o custo alocado ao elemento x para cada O custo só é atribuído uma vez a x.

Se x é coberto a primeira vez por Si, então:

Xx

|)...(|1

121

iix SSSS

c

Page 30: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Um algoritmo de aproximação guloso

A cada passo do algoritmo uma unidade de custo é atribuída, então:

O custo atribuído a cobertura ótima é:

E como cada x está em pelo menos um conjunto

Xx

xCC ||

*CS Sx

xc

*CS

Xx

xCS Sx

x cc*

Page 31: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Um algoritmo de aproximação guloso

Então:

Como para qualquer conjunto S pertencente a família F temos:

Assim: (desigualdade (1))

|)(| SHcSx

x

*

||CS Sx

xcC

})|:(max{|||||

|)(|||

*

*

FSSHCC

SHCCS

Page 32: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Resta-os mostrar a desigualdade (1) :

Livro do Cormen (seção 37.3)

Vamos demonstrar no quadro.....

Page 33: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

O problema da soma de subconjuntos

• Uma instância do problema da soma de subconjuntos é a seguinte:Dado um par (S,t), onde S é um conjunto {x1,x2,...,xn}

de inteiros positivos e t é um inteiro positivo.• Este problema de decisão questiona se existe

um subconjunto de S que tendo seus valores adicionados somam exatamente o valor de t.

• Este problema é NP-Completo.

Page 34: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

O problema da soma de subconjuntos

• No problema de otimização associado:Deseja-se encontrar um subconjunto

{x1,x2,...,xn} cujo a soma de seus elementos aproxima-se o máximo mas não supera t.

Page 35: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

O algoritmo

EXACT-SUBSET-SUM(S, t)1. n ← |S|2. L0 ← {0}

3. for i ← 1 to n do4. Li ← MERGE-LISTS(Li-1, Li-1 + xi)

5. remove from Li every element that is greater than t6. return the largest element in Ln

• É um algoritmo exponencial, mas em alguns casos especiais é polinomial

Soma xi a todos os elementos da lista Li-1

Page 36: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Outro algoritmo

• Pode-se derivar um esquema de aproximação em tempo polinomial completo.Realiza-se um “trimming” de cada lista após

sua criação.

?

Page 37: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Trimming

• Idéia:Se dois valores em uma lista são próximos o

suficiente, para o propósito se encontrar uma solução

aproximada,não há necessidade de manter-se os dois

explicitamente

Page 38: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

TrimmingUtiliza-se um parâmetro δ tal que 0 < δ < 1.Então remove-se da lista L tantos elementos quanto

for possível,de forma que para cada y removido em L exista um

z na lista resultante que se aproxima de y, tal que:

yzy

1

Page 39: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

TrimmingExemplo:

Dado L = {10,11,12,15,20,21,22,23,24,29} e δ = 0,1Após realizarmos Trim em em L teremos:

L’ = {10,12,15,20,23,29}onde:

11 está representado por 10 21 e 22 estão representados por 20 24 está representado por 23

Complexidade Ө(n)

Page 40: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

Trimming

TRIM(L, δ)1. m ← |L|2. L′ ← {y1}

3. last ← y1

4. for i ← 2 to m do5. if yi > last * (1 + δ) // yi ≥ last because L is sorted

6. then append yi onto the end of L′

7. last ← yi8. return L′

Page 41: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

SUBSET-SUM aproximada

APPROX-SUBSET-SUM(S, t,)1. n ← |S|2. L0 ← 03. for i ← 1 to n do4. Li ← MERGE-LISTS(Li-1, Li-1 + xi)5. Li ← TRIM(Li, ε /2n)6. remove from Li every element that is greater than t7. let z* be the largest value in Ln8. return z*

• Com 0<ε<1• z* é o valor com 1+ ε o valor da solução ótima

Page 42: Algoritmos de aproximação Aula adaptada do seminário apresentado pelo mestrando Luiz Josué da Silva Filho.

ExemploS={104,102,201,101}, t=308, ε=0,40 e δ= ε/8=0,05linha 2: L0 = {0},linha 4: L1 = {0, 104},linha 5: L1 = {0, 104},linha 6: L1 = {0, 104},linha 4: L2 = {0, 102, 104, 206},linha 5: L2 = {0, 102, 206},linha 6: L2 = {0, 102, 206},linha 4: L3 = {0, 102, 201, 206, 303, 407},linha 5: L3 = {0, 102, 201, 303, 407},linha 6: L3 = {0, 102, 201, 303},linha 4: L4 = {0, 101, 102, 201, 203, 302, 303, 404},linha 5: L4 = {0, 101, 201, 302, 404},linha 6: L4 = {0, 101, 201, 302}

z* = 302 que está dentro dos 40% de aproximação da solução ótima (307)