Чи повне з'єднання островів з понтонами NP?


10

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

Ось проблема:

У дуже великому озері є k островів, і є п вентиляторних понтонів. Ці понтони мають однаковий розмір, але мають різні початкові напрямки і знаходяться в різних оригінальних положеннях в озері. Понтони можуть вільно обертатися навколо його центру мас, і це не пов’язано з витратами, пов'язаними з обертанням.

Тепер нам потрібно перемістити ті понтони, щоб усі острови в озері могли бути з'єднані. Ми можемо гарантувати, що кількість понтонів достатня для з'єднання всіх островів.

[Примітка]: Ми не можемо повторно використовувати понтони !!

Завдання полягає в тому, щоб знайти рішення, що має мінімальну загальну відстань рухомих понтонів, щоб зробити з'єднання всіх островів. Відстань переміщення одного понтона може бути обчислена як відстань між центром вихідного положення маси та його розгорнутим положенням.

Щоб було зрозуміло, я намалював таку фігуру. Припустимо, у нас є 3 острови A, B і C. Вони розташовані десь в озері. А у мене кілька віялоподібних пантонів. Тепер рішення - знайти підсумок мінімальної відстані, що рухається, щоб з'єднати A, B і C, показане в нижній частині рисунка. Сподіваюся, це допоможе зрозуміти проблему. :)

введіть тут опис зображення

Здається, що проблема є NPC, але я не знаю, щоб це довести. Хтось може мені в цьому допомогти?


@vsaxena Ні, я не думаю, що остаточне рішення - це пряма лінія, коли-небудь, якщо вже є арка, але нам не потрібно рухати жодну з них. У більшості випадків пряма лінія буде хорошою, але оскільки понтони стають все щільнішими, рішення може бути не прямим. Цифра - лише приклад. :)

1
Здається, дуже близько до дерева Штейнера. У метричному просторі багато прийомів вирішення роботи над обома. en.wikipedia.org/wiki/…
Ніколас Манкузо

@NicholasMancuso мости вузол до вузла, тому це не класичне дерево Штайнера, де міст з'єднує кілька вузлів. У макеті VLSI існує багато проблем, які мають схожі характеристики.
VSOverFlow

1
@vsaxena: Проблема не визначена. Припустимо, у мене є три острова А, В, С у рівносторонній трикутник, а понтони спочатку утворюють пов'язану форму Y з островами на кінцях. Не робиш нічого правильного рішення, чи треба переміщувати понтони далі? Якщо це рішення недійсне, то що саме являє собою дійсну конфігурацію понтонів?
JeffE

1
@vsaxena: І поки ми знаходимося на цьому, чи острови є лише точками чи колами, чи якась більш складна форма вказана у введенні? Це понтонні відрізки ліній, або еліпси, чи якась інша форма? Чи всі острови однакові за розміром і формою, або вони можуть бути різними? Чи всі понтони однакові за розміром і формою, чи можуть бути різними?
JeffE

Відповіді:


1

По-перше: це не проблема продавця подорожі. TSP вимагає ідентифікації гамільтонівського циклу мінімальної ваги; цей цикл взагалі не вимагає циклу або навіть мінімальної траси ваги. Він вимагає мінімальної вартості спорудження з'єднувального набору ребер, де вартість будівництва базується на переміщенні понтонів.

По-друге: Це не проблема мінімальної ваги на дереві. Дивіться вище - нам потрібна конструкція з мінімальними витратами, а не визначення мінімальної ваги.

По-третє: Схоже, що побудована доріжка буде деревом, що перебуває в розрізі, але не обов’язково з мінімальним вагою. Альтернативою є те, що це було б розкинуте дерево плюс деякі додаткові краї, що призведе до циклу; але якщо ми починаємо з конфігурації без країв, то кожен край має певну позитивну вартість, і ми завжди можемо знайти дерево, що має меншу вагу, просто не будуючи зайві краї.

Четверте: Ви кажете, що понтони вільно обертаються; Я припускаю, що це означає, що ніякі витрати не пов'язані з обертанням понтонів. Однак ви не вказуєте, про що обертаються понтони: Їх точки? Їх центри мас? Будь-який внутрішній пункт? (Якщо будь-яка зовнішня точка, то у нас були б нульові конструкції, так?)

Це трохи тонко, тому що якщо ми обертаємось на 90 градусів навколо внутрішньої точки, скажімо, центру маси, яка вартість? Нічого, бо це обертання? Якась кінцева сума, оскільки точка перемістилася? Тепер нам також потрібно знати розміри понтонів.

По-п’яте: один передбачає, що і понтони, і острови вбудовані в евклідову площину?


Дякую за відповідь. Поворот знаходиться навколо центру маси і ніяких витрат, пов'язаних з обертанням, лише рух передбачає витрати. Так, і понтони, і острови вбудовані в евклідову площину. Я змінив публікацію, щоб вона стала зрозумілою.

Я не погоджуюсь, що це не є по суті TSP. Весь цей пост в термінології загорнутий навколо осі, але справа в тому, що якщо провести лінію між кожним понтоном та кожною потенційною кінцевою понтонною позицією, і обчислити відстань кожного рядка, що його вагу, то за винятком кінцевої точки, повертаючись до початкової точки, графік, який формується, виглядає майже точно (до трійника), як TSP. Понтон або кінцеве положення - це вузол на графіку, а ваги складаються за відстанями. ТІЛЬКИ гамільтоновий цикл означає, що він закінчується там, де він почався.

2
Це не відповідь, а серія коментарів.
Рафаель

1

Переглянувши нові діаграми, я бачу, що вам може знадобитися кілька понтонів для перетину між островами. Враховуючи це, ви могли б дуже наблизитись до вирішення проблеми дерева Штейнера , перетворивши вузли на острови та створивши досить різноманітну колекцію понтонів з маленькими дугами. У Вікіпедії сказано, що насправді існує проблема PTAS для дерева дерева Штайнера, тому я не можу відразу сказати, що це робить його NP-завершеним. Однак дивлячись на деталі дерева Steiner може або отримати хороше приблизне рішення, або показати, що проблема є NP-Complete.


Те, що ви описуєте, - це приблизний алгоритм для досягнення майже оптимального рішення. Однак як ви навіть переконаєтесь, що рішення оптимальне?

Я думаю, що справжня проблема полягає в тому, що вам потрібно кілька понтонів, щоб перетинати між островами, що робить це схожим на дерево Штайнера. Погляньте на Branch and Bound, як перейти від нижньої межі (наприклад, породженої знехтуванням обмеження) до відомого оптимального рішення.
mcdowella

2
@mcdowella Це не дерево Штейнера, оскільки кожен понтон може з’являтися лише на одному мосту; це точка-точка система. Крім того, оскільки функцією витрат є рух понтонів, ви можете мати випадок, коли міст формується широкими дугами, які все ще мають меншу вартість, ніж рішення прямолінійної лінії ..
VSOverFlow

З іншого боку, це не може бути стейнером. МИ НЕ МОЖЕ ДОДАТИ БЕЗПЕКИ тільки для задоволення наших потреб
сурми

1
Якщо дозволені переходи Y, це принаймні настільки ж важко, як проблема дерева Штейнера, тому що будь-яка проблема дерева Штейнера може бути перетворена на одну з них - просто створіть багато понтонів і поставте їх так далеко від островів, що це не так дійсно має значення, який понтон ви використовуєте де. Тоді якби ви могли це вирішити, ви могли б вирішити проблему дерева Штейнера: для цього аргументу неважливо, що існують деякі конфігурації понтонів, які не призводять до проблем із деревом Штайнера. Якщо переходи Y не дозволяють нам потрібно точно знати, які правила. Чи перетинаються шляхи на стику?
mcdowella

0

Після креслення Це все ще проблема NPC. Навіть якщо ми скоротимо проблему до кожного понтона, можна прийняти 1 з n позицій (тобто відомих ліній з'єднання. Щоб отримати найбільш оптимальну відповідь, нам доведеться спробувати кожен понтон у кожній позиції, додавши їх відстань, щоб дістатися до цих репсивних позицій кожного час, і порівнюючи з усіма іншими. Якщо кожен понтон повинен бути протестований у кожній позиції, то є n! комбінації, які потребують тестування.

Я вирішив редагувати зображення оригінальних плакатів із деякими доповненнями, щоб показати ідеї графіків, що стоять за цією проблемою.

На зображенні нижче показані всі (мінус 2 для спрощення) понтони різних кольорів, а всі потенційні місця понтона в червоному кольорі. Я лише намалював лінії між 3 понтонами та всіма кінцевими місцями, але можна було побачити, як CRAZY це може отримати.

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

Нижче ми бачимо саме це, понтон і відстань (він же зважена відстань подорожі), яким він повинен буде проїхати.

введіть тут опис зображення

Звідси може бути зроблений віртуальний вузол з двома кінцевими місцями поруч із щойно розміщеним розташуванням. Відстань від встановленого вузла та двох сусідніх вузлів у віртуальному вузлі мають віртуальну відстань ходу 0.

Нижче ми бачимо віртуальний вузол, створений із ВСІМ потенційними вагами відстані, які можна розмістити там.

введіть тут опис зображення

Бачачи, як це триватиме далі, і як найоптимальнішим рішенням (як це бачилося багато разів з TSP) не завжди буде, вибираючи найкоротшу відстань для кожного вибору, нам доведеться протестувати по суті всі шляхи для всіх вузлів / віртуальних вузлів.

Зрештою, першим вузлом проблеми (TSP) може бути будь-яка з потенційних кінцевих точок понтона, а лінії, проведені від цього, - це відстані від цієї кінцевої точки до всіх інших понтонів. всі інші вузли згодом стають віртуальними вузлами, як я зобразив, коли їхні лінії відходять як відстані / ваги до всіх залишилися понтонів тощо, тощо. Як ця графська проблема НЕ ТОЧНО проблема продавця подорожей без ОСТАНОГО стрибку з вимоги гамільтонівського циклу не в мене. Щоб мати точну відповідь, потрібно перевірити всі шляхи через графік.


1
Залишаючи осторонь, чи це розумна модель заявленої проблеми чи це навіть насправді модель TSP, це не так, як працюють скорочення NP. Ви не показуєте, що ваша цільова проблема може бути охарактеризована як екземпляр проблеми NPC. Вам потрібно показати, що екземпляр проблеми NPC може бути охарактеризований як ваша цільова проблема.

3
Здається, що ваше розуміння складності глибоко хибно. Розмір простору пошуку не такий, як складність обчислень. Існує маса проблем, які можна вирішити без грубого насильства, тобто без перевірки кожного елемента простору рішення. Сортування було одним із прикладів. Або візьміть Vertex Cover, ще одну повну NP-проблему: її можна вирішити в гіршому випадкуO(1.3n) , так чітко, не перевіряючи кожну підмножину вузлів.
Рафаель

2
О Боже. Якщо ви потурбувались прочитати мій коментар та посилання, яке я надав, ви дізналися, що алгоритм посилань є точним (вони це доводять) і тому суперечить вашому розумінню. Зауважте, що ваша думка говорить про те, що P! = NP - це все ще відкрите питання. Так ні, ви цього не зрозуміли, вибачте. (Навіть якби було правдою, що проблеми, повні з NP, можна вирішити не краще, ніж наївно, міркування, які ви використовуєте, були б неправильними.)
Рафаель

2
@trumpetlicks: Суперечності немає. Алгоритм Рафаеля посилається на вирішення NP-твердого покриття вершин саме в час, який є експоненціальним у , але не шляхом перерахування грубої сили. Що ще важливіше, хоча "NP-завершений" не означає "я не бачу, як це вирішити за менший, ніж експоненційний час". nO(1.3n)n
JeffE

3
@JeffE: Іншими словами, ця відповідь лише доводить, що проблема, ймовірно, є справді NP-повною.
Цуйосі Іто
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.