Mam problem i myślę, że jest to trudny NP, ale nie mogę tego udowodnić.
Oto wykres warstw, w którym warstwa 0 jest najwyższą warstwą, a warstwa L najniższą.
istnieje pewna ukierunkowana krawędź między warstwami, gdzie krawędź (A, B) wskazuje, że węzeł A może [pokrywać] węzeł B. A kiedy A może obejmować B, każdy węzeł na dowolnej ścieżce od A do B może obejmować B, B może obejmować samo.
Wreszcie nadchodzi zestaw węzła S. Muszę wybrać inny zestaw węzła ANS i upewnić się, że dla każdego węzła q w S istnieje węzeł pw ANS, a p obejmuje q.
Każdy węzeł wiąże się z pewnym kosztem i muszę zminimalizować całkowity koszt zestawu ANS.
Czy to trudny NP? Tak mi się wydaje, ale nie mogę tego udowodnić.
Czy mógłbyś mi pomóc?
Dziękuję Ci bardzo.
Odpowiedzi:
Tak, ten problem jest zdecydowanie trudny NP. Publikuję tę odpowiedź, ponieważ potrzebujesz dowodu.
Jeśli podążasz za tym linkiem http://en.wikipedia.org/wiki/Set_cover_problem , to mówi, że optymalizacyjna wersja minimalnego problemu z zestawem obejmuje NP-Hard.
Problem w łączu:
Możesz to powiązać z problemem w następujący sposób:
S to zbiór węzłów obejmujących co najmniej jeden węzeł w zestawie wejściowym. Można to znaleźć, przeprowadzając DFS na węzłach zestawu danych wejściowych z odwróconym kierunkiem krawędzi.
Teraz problem opisany w łączu jest szczególnym przypadkiem twojego problemu, w którym koszt każdego węzła jest równy i chcesz po prostu zminimalizować liczbę węzłów (zestawów).
Dlatego twój problem jest jeszcze trudniejszy do rozwiązania w ogólnym przypadku i dlatego jest trudny.
źródło
S
. Może są koszty ujemne lub coś w tym rodzaju ...