Це NP-важко? Я не можу цього довести.


11

У мене проблема, і я думаю, що це важко, але я не можу її довести.

Ось графік шарів, де шар 0 - найвищий шар, а шар L - найнижчий.

є деякі спрямовані ребра між шарами, де ребро (A, B) вказує, що вузол A може [прикрити] вузол B. себе.

Нарешті, ось набір вузла S. Мені потрібно вибрати інший набір вузла ANS і переконатися, що для кожного вузла q в S існує вузол p в ANS і p охоплює q.

Для кожного вузла існує вартість, і мені потрібно зробити загальну вартість встановленого ANS мінімальною.

Це NP-важка проблема? Я так думаю, але не можу цього довести.

Не могли б ви мені допомогти?

Велике спасибі.


Вартість вузла з верхнього шару дорожча за будь-який шлях у графіку.

Так, це справді здається, що NP важко. Подивіться на закриття подібної проблеми з мінімальним покриттям. en.wikipedia.org/wiki/Set_cover_problem

Чи є якесь обмеження у спрямованому ребрі, наприклад, ребра з'єднують лише вузол у більш високому шарі з вузлом у нижньому шарі? Чи можу я уточнити, що між вузлами в одному шарі не може бути краю?
justhalf

@justhalf Ні, немає краю між вузлами в одному шарі. Дякую :)
qin.sun

Відповіді:


6

Так, ця проблема, безумовно, непроста. Я надсилаю цю відповідь, оскільки вам потрібні докази.

Якщо ви переходите за цим посиланням http://en.wikipedia.org/wiki/Set_cover_problem , це говорить про те, що версія оптимізації мінімальної заданої кришки задає NP-Hard.

Проблема у посиланні:

Враховуючи набір елементів {1,2, ..., m} (що називається Всесвітом) та безліч S з n множин, об'єднання яких дорівнює Всесвіту, задача покриття множини полягає у визначенні найменшого підмножини S, об'єднання якого дорівнює Всесвіт. Наприклад, розглянемо Всесвіт U = {1, 2, 3, 4, 5} і безліч множин S = {{1, 2, 3}, {2, 4}, {3, 4}, {4, 5}}. Очевидно, що об'єднання S дорівнює U. Однак ми можемо охопити всі елементи наступною меншою кількістю наборів: {{1, 2, 3}, {4, 5}}

Ви можете пов’язати це зі своєю проблемою так:

S - це набір вузлів, що охоплюють щонайменше один вузол у вашому наборі входів. Це можна дізнатися, провівши DFS на вузлах вхідного набору з напрямком ребер, обернених назад.

Тепер проблема, описана у посиланні, - це особливий випадок вашої проблеми, коли вартість кожного вузла дорівнює, і ви просто хочете мінімізувати кількість вузлів (наборів).

Отже, вашу проблему ще важче вирішити в загальному випадку, а значить, це і є NP Hard.


Я думаю, що це справедливо з визначенням ОП, але він також ніколи не вказує, чи можна "прикрити" вузол ребром в тому ж шарі, що і цей вузол. Якщо це так, то проблема здається дещо іншою. В іншому випадку, якщо ви можете покрити лише вузол через край з більш високого шару, то він, здається, є еквівалентом встановлення оптимізації покриття
roliu

@roliu Як би не важливо, чи можна покривати однакові вузли шару чи ні. Як я розумію, проблема полягає в тому, що у нас є спрямований графік з доріжкою між вузлом А до В означає, що A охоплює Б.

Гм, не впевнений, гадаю. Це просто дивно, тому що я не думаю, що майже будь-яка інформація в ОП насправді корисна. Шари здаються неактуальними, а також транзитивність. Я здебільшого просто чекаю, коли ОП уточнить, що він насправді мав на увазі щось інше. Зокрема, ви можете показати, що це не тільки принаймні так важко, як встановлене покриття, це фактично рівнозначно. Оскільки будь-яке мінімальне покриття проблеми ОП буде містити лише сусідні вузли його вхідного набору S. Можливо, є негативні витрати чи щось подібне ...
roliu
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.