NP-dureté de trouver un sous-ensemble de sommets dans un graphe pondéré par les sommets

8

C'est une tâche du concours informatique allemand ("Bundeswettbewerb Informatik"), mais comme la date limite est passée, poser cette question n'est pas une tricherie.

Étant donné un graphique orienté pondéré par les sommets g=(V,E) et valeurs cv, trouver un sous-ensemble de nœuds VresV qui maximise

vVrescv
sujet à
(u,v)E:uVresvVres
Ce problème est-il difficile à NP?

Je pourrais prouver que le problème est en P si chaque nœud n'a ni parents ni enfants en montrant que dans ce cas, il peut être résolu par Vertex Cover sur des graphes bipartis, mais je n'ai pas réussi à trouver une réduction qui prouve la dureté NP du problème d'origine.

Quelqu'un peut-il me donner un indice sur la façon de procéder?

PS: Lors du concours, la tâche consistait uniquement à trouver un algorithme qui résout ce problème, la définition originale (allemande) est la tâche 1 de ce document: http://www.bundeswettbewerb-informatik.de/fileadmin/templates/bwinf/ aufgaben / bwinf35 / aufgaben352.pdf

Feanor
la source
5
Sans perte de généralité, vous pouvez vous concentrer sur le cas d'un dag (graphe acyclique dirigé). Dans un graphique orienté général, décomposer en composants fortement connectés; vous prendrez alors tous les nœuds d'un composant ou aucun d'entre eux; afin que vous puissiez former le méta-graphique (avec un sommet par composant) et résoudre le problème sur le méta-graphique.
DW
@DW, je suppose que vous avez l'intention de trier topologiquement le DAG, mais je ne sais pas exactement quelle sera exactement votre prochaine étape? Pour que chaque sommet du méta-graphique résume le poids de tous ses descendants?
Eric_
@Eric_, hélas, je n'ai pas de prochaine étape en tête. Je dis juste que si vous pouvez trouver un algorithme pour résoudre cela pour un DAG arbitraire, vous pouvez l'utiliser pour le résoudre pour un graphe dirigé arbitraire. Peut-être que cela donne à quelqu'un quelques idées sur la façon d'aborder le problème - ou peut-être pas. Je ne sais pas comment le résoudre moi-même, j'ai peur.
DW

Réponses:

1

Le problème est soluble dans le temps polynomial, suggéré dans le lemme 1 de la complexité de calcul de certains problèmes de poids moyen maximum avec des contraintes de priorité .

Fondamentalement, l'idée est d'écrire un programme linéaire sur des variables Xje[0,1], où Xu-Xv0 si (u,v)E. La matrice d'adjacence signée est totalement unimodulaire, nous pouvons donc calculer l'optimum intégral.

Willard Zhan
la source