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:VNTN

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?

RB
fonte

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)xjprec(Eu)euj}euEuO(Km)Km

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

Bangye
fonte