A soma do subconjunto do DAG é aproximada?


13

Nos é dado um gráfico acíclico direcionado com um número associado a cada vértice ( ) e um número alvo .g : V → N T ∈ NG=(V,E)g:V→NT∈N

O problema de soma de subconjuntos do DAG (pode existir com um nome diferente, uma referência será ótima) pergunta se existem vértices , de modo que e é um caminho em .Σ v i g ( v i ) = T v 1 → . . → v k Gv1,v2,...,vkΣvEug(vEu)=Tv1→..→vkG

Esse problema é trivialmente NP-Completo, pois o gráfico transitivo completo gera o problema clássico de soma de subconjuntos.

Um algoritmo de aproximação para o problema de soma de subconjuntos do DAG é um algoritmo com as seguintes propriedades:

  1. Se existir um caminho com a soma T, o algoritmo retornará TRUE.
  2. Se não houver um caminho que resuma um número entre e para alguns c \ in (0,1) , o algoritmo retornará FALSE.T c ∈ ( 0 , 1 )(1-c)TTc∈(0 0,1)
  3. Se houver um caminho que se soma a um número entre (1-c)T e T , o algoritmo pode gerar qualquer resposta.

Sabe-se que a soma do subconjunto é aproximada em tempo polinomial para todos os c>0 0 .

O mesmo vale para DAG-Subset-Sum?

Respostas:


14

Parece-me que o algoritmo de programação dinâmica de tempo pseudo-polinomial para o problema de Subconjunto de soma também funciona para esse problema. Para cada vértice , calculamos o conjunto consiste em todos os valores possíveis de caminhos terminados em . Então, temos a relação de recorrência: . Seguindo uma ordem topológica, todo o pode ser calculado no tempo , onde é o peso total e é o número de arestas.vEueuEuvEueuEu={g(vEu)}∪{x+g(vEu)∣x∈⋃j∈prec(Eu)euj}euEuO(Km)Km

Eu acho que o escalonamento e arredondamento padrão também pode ser aplicado para derivar um FPTAS.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.