Eu tenho um problema e acho difícil de NP, mas não posso provar.
Aqui está um gráfico de camadas, em que a camada 0 é a camada mais alta e a camada L, a mais baixa.
há alguma aresta direcionada entre as camadas, onde uma aresta (A, B) indica que o nó A pode [cobrir] o nó B. E quando A pode cobrir B, todo nó em qualquer caminho de A a B pode cobrir B, B pode cobrir em si.
Finalmente, aqui vem um conjunto de nós S. Preciso escolher outro conjunto de nós ANS e garantir que, para cada nó q em S, exista um nó p no ANS ep cobre q.
Para cada nó existe um custo, e eu preciso tornar o custo total do conjunto ANS mínimo.
Este é um problema difícil de NP? Acho que sim, mas não posso provar.
Você poderia me ajudar?
Muito obrigado.
Respostas:
Sim, este problema é definitivamente NP difícil. Estou postando esta resposta, pois você precisa de provas.
Se você seguir este link http://en.wikipedia.org/wiki/Set_cover_problem , ele indicará que a versão de otimização do problema de cobertura mínima do conjunto é NP-Hard.
O problema no link:
Você pode relacionar isso ao seu problema da seguinte maneira:
S é o conjunto de nós que cobrem pelo menos um nó no seu conjunto de entrada. Isso pode ser encontrado através da realização de um DFS nos nós de entrada definidos com a direção das bordas invertida.
Agora, o problema descrito no link é um caso especial do seu problema, em que o custo de cada nó é igual e você deseja apenas minimizar o número de nós (conjuntos).
Portanto, seu problema é ainda mais difícil de resolver no caso geral e, portanto, é NP Hard.
fonte
S
. Talvez haja custos negativos ou algo parecido ... #