Algoritmos de aproxima - PowerPoint PPT Presentation

1 / 42
About This Presentation
Title:

Algoritmos de aproxima

Description:

Title: Slide 1 Author: SPIDER Last modified by: CIN Created Date: 10/8/2006 9:18:33 PM Document presentation format: Apresenta o na tela Company – PowerPoint PPT presentation

Number of Views:80
Avg rating:3.0/5.0
Slides: 43
Provided by: spider
Category:

less

Transcript and Presenter's Notes

Title: Algoritmos de aproxima


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

2
Roteiro
  • Motivação
  • Definições
  • Razão de aproximação
  • Esquema de aproximação
  • Problemas
  • Cobertura de vértices
  • Caixeiro viajante
  • Cobertura de conjuntos
  • Soma de subconjuntos

3
Motivação
4
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

5
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.

6
Definições
7
Razão de aproximação
  • Suponha que em um problema de otimização
  • cada solução potencial tem um custo
  • e deseja-se encontrar uma solução próxima da
    ótima
  • determina a medida de aproximação do
    algoritmo
  • Razão de aproximação
  • em função da entrada de tamanho
    n.

8
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.

9
Esquema de aproximação
  • É um algoritmo de aproximação que
  • toma como entrada uma instancia do problema
  • e um valor e gt 0
  • tal que para um e fixo
  • o esquema é um algoritmo (1 e)-aproximação.
  • Um esquema de aproximação de tempo polinomial
    (PTAS) é um esquema que
  • para qualquer egt0 fixo o esquema executa em tempo
    polinomial em função do tamanho n da entrada.

10
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 e decresce.
  • Ex
  • O ideal é que o tempo seja polinomial tanto em
    1/e 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 e n.
  • Ex

11
Problemas
12
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

13
Exemplo
14
O algoritmo
  1. INPUT G // grafo não direcionado
  2. C ?
  3. E ? EG
  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

15
Execução
16
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

17
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
  • Que nos leva a

18
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.

19
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.

20
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)
  • select root vertex r in VG
  • T MST-Prim(G, c, r) // computes a MST
  • L list of vertices in preorder traversal of T
  • return hamiltonian cycle with vertices ordered as
    in L

21
O problema do caixeiro viajante com desigualdade
triangular
22
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

23
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

24
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.

25
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.

26
Um algoritmo de aproximação guloso
  • GREEDY-SET-COVER(X,F)
  • U X
  • C ?
  • while U ? ? do
  • select S ? F that maximizes S n U
  • U U - S
  • C C U S
  • return C

27
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

28
Um algoritmo de aproximação guloso
  • Prova
  • Atribui-se um custo de 1 a cada conjunto
    selecionado pelo algoritmo
  • Distribui-se este custo para os elementos
    cobertos pela primeira vez
  • Utiliza-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

29
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

30
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

31
Um algoritmo de aproximação guloso
  • Então
  • Como para qualquer conjunto S pertencente a
    família F temos
  • Assim (desigualdade (1))

32
Resta-os mostrar a desigualdade (1)
Livro do Cormen (seção
37.3) Vamos demonstrar no quadro.....
33
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.

34
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.

35
O algoritmo
  • EXACT-SUBSET-SUM(S, t)
  • n ? S
  • L0 ? 0
  • for i ? 1 to n do
  • Li ? MERGE-LISTS(Li-1, Li-1 xi)
  • remove from Li every element that is greater
    than t
  • return the largest element in Ln
  • É um algoritmo exponencial, mas em alguns casos
    especiais é polinomial

36
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.

37
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

38
Trimming
  • Utiliza-se um parâmetro d tal que 0 lt d lt 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

39
Trimming
  • Exemplo
  • Dado L 10,11,12,15,20,21,22,23,24,29 e d
    0,1
  • Apó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)

40
Trimming
  • TRIM(L, d)
  • m ? L
  • L' ? y1
  • last ? y1
  • for i ? 2 to m do
  • if yi gt last (1 d) // yi last
    because L is sorted
  • then append yi onto the end of L'
  • last ? yi
  • return L'

41
SUBSET-SUM aproximada
  • APPROX-SUBSET-SUM(S, t,)
  • n ? S
  • L0 ? 0
  • for i ? 1 to n do
  • Li ? MERGE-LISTS(Li-1, Li-1 xi)
  • Li ? TRIM(Li, e /2n)
  • remove from Li every element that is
    greater than t
  • let z be the largest value in Ln
  • return z
  • Com 0ltelt1
  • z é o valor com 1 e o valor da solução ótima

42
Exemplo
  • S104,102,201,101, t308, e0,40 e d e/80,05
  • linha 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)
Write a Comment
User Comments (0)
About PowerShow.com