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?

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.