Dureza NP de encontrar um subconjunto de vértices em um gráfico ponderado por vértices

8

Essa é uma tarefa do concurso alemão de TI ("Bundeswettbewerb Informatik"), mas como o prazo já passou, fazer esta pergunta não é trapaça.

Dado um gráfico direcionado ponderado por vértice e valores , encontre um subconjunto de nós que maximize sujeito a Esse problema é difícil para o NP?G=(V,E)cvVresV

vVrescv
(u,v)E:uVresvVres

Eu poderia provar que o problema está em P se cada nó não tiver pais ou filhos, mostrando que, neste caso, ele pode ser resolvido pela Vertex Cover em gráficos bipartidos, mas não consegui encontrar uma redução que comprove a dureza NP do problema original.

Alguém pode me dar uma dica de como fazer isso?

PS: No concurso, a tarefa era apenas encontrar um algoritmo que resolvesse esse problema, a definição original (alemã) é a tarefa 1 deste documento: http://www.bundeswettbewerb-informatik.de/fileadmin/templates/bwinf/ aufgaben / bwinf35 / aufgaben352.pdf

Feanor
fonte
5
Sem perda de generalidade, você pode se concentrar no caso de um dag (gráfico acíclico direcionado). Em um gráfico direcionado geral, decomponha-se em componentes fortemente conectados; então você pega todos os nós em um componente ou nenhum deles; para que você possa formar o meta-gráfico (com um vértice por componente) e resolver o problema no meta-gráfico.
DW
@ DW, suponho que você pretenda classificar topicamente o DAG, mas não está claro para mim como será exatamente o seu próximo passo? Para cada vértice no meta-gráfico somar o peso de todos os seus falecidos?
Eric_
@ Eric_, infelizmente, não tenho um próximo passo em mente. Estou apenas dizendo que, se você puder encontrar um algoritmo para resolver isso para um DAG arbitrário, poderá usá-lo para resolvê-lo para um gráfico direcionado arbitrário. Talvez isso dê a alguém algumas idéias de como abordar o problema - ou talvez não. Eu não sei como resolver isso sozinho, receio.
DW

Respostas: