La somme des sous-ensembles DAG est-elle approximable?

13

On nous donne un graphe acyclique dirigé g=(V,E) avec un nombre associé à chaque sommet ( ), et un nombre cible .g:VNTN

Le problème de somme de sous-ensemble DAG (peut exister sous un nom différent, une référence sera excellente) demande s'il existe des sommets , tels que , et est un chemin dans .v1,v2,...,vkΣvjeg(vje)=Tv1..vkg

Ce problème est trivialement NP-Complet, car le graphe transitif complet donne le problème de somme de sous-ensemble classique.

Un algorithme d'approximation pour le problème de somme de sous-ensemble DAG est un algorithme avec les propriétés suivantes:

  1. S'il existe un chemin avec la somme T, l'algorithme retourne TRUE.
  2. S'il n'y a pas de chemin se résumant à un nombre compris entre et pour certains , l'algorithme retourne FAUX.(1-c)TTc(0,1)
  3. S'il existe un chemin additionnant un nombre compris entre et , l'algorithme peut produire n'importe quelle réponse.(1-c)TT

La somme des sous-ensembles est connue pour être approximable en temps polynomial pour tout .c>0

Est-ce la même chose pour DAG-Subset-Sum?

RB
la source

Réponses:

14

Il me semble que l'algorithme de programmation dynamique temporelle pseudo-polynomiale pour le problème Subset Sum fonctionne également pour ce problème. Pour chaque sommet , nous calculons l'ensemble L i composé de toutes les valeurs possibles de chemins se terminant en v i . Ensuite, nous avons la relation de récurrence: L i = { g ( v i ) } { x + g ( v i ) x j p r e c ( i ) LvjeLjevje . Suivant un ordre topologique, tous les L i peuvent être calculés en temps O ( K m ) , où K est le poids total et m est le nombre d'arêtes.Lje={g(vje)}{X+g(vje)Xjprec(je)Lj}LjeO(Km)Km

Je pense que la mise à l'échelle et l'arrondi standard peuvent également être appliqués pour dériver un FPTAS.

Bangye
la source