У чому полягає складність цієї висвітлювальної проблеми?


24

Редагувати: Я спершу неправильно сформулював обмеження (2), тепер воно виправлено. Я також додав більше інформації та прикладів.

З деякими колегами, вивчаючи якесь інше алгоритмічне питання, ми змогли звести нашу проблему до наступної цікавої проблеми, але ми не змогли вирішити питання про її складність. Проблема полягає в наступному.

Екземпляр: Ціле число , ціле число k < n і множина S = { { s 1 , t 1 } , ... , { s n , t n } } з n пар з множини { 1 , , n } .нк<нS={{с1,т1},,{сн,тн}}н{1,,н}

Запитання: Чи існує набір розміром k такий, що для кожного елемента i з { 1 , , n } : (1) якщо i < n , інтервал [ i , i + 1 ] включений у деякий інтервал [ s i , t i ] визначено парою в S , і (2) принаймні один із i , i + 1S'Sкi{1,,н}
i<н[i,i+1][сi,тi]S'
ii+1належить до якоїсь пари ? S'
(2) належить до деякої пари S .iS'

Приклад
Набір є можливим рішенням (якщо n є парним): пара { 1 , n } забезпечує умову (1), тоді як усі інші пари забезпечують умову (2).{{i,i+1} | i  дивно}{1,н}н{1,н}

Зауваження
(I) Оскільки кожна пара містить рівно два елементи, щоб виконати умову (2), нам потрібно принаймні пари. BTW це означає тривіальне 2-наближення шляхом повернення цілогоS, оскільки ми припускаємо| S| п.н2S|S|н

(II) Ще одним способом розгляду проблеми є розгляд драбини з ятьма сходинками (такими, як нижче ) разом із набором S з n циклів сходів. Кожному кроку драбини відповідає якийсь елемент, а кожен бічний край - проміжок [ i , i + 1 ] . Цикл, що включає етапи s , t, відповідає точно парі { s , t } : він охоплює всі послідовні інтервали між s і t , і зупиняється на s і t .нSн[i,i+1]с,т{с,т}стст
Питання полягає в тому, чи існує безліч з k циклів, з'єднання яких охоплює всі краї драбини (включаючи крок і бічні кромки).S'Sк

(III) Якщо б запитували лише умову (1), ця задача відповідала б домінуючій заданій задачі в деякому інтервальному графіку, визначеному з інтервалів заданих парами S разом з додатковими крихітними інтервалами [ i + ϵ , i + 1 - ϵ ] для кожного i в { 1 , , n - 1 } . Ця задача класично вирішується за лінійним часом (див., Наприклад, тут ).[сi,тi]S[i+ϵ,i+1-ϵ]i{1,,н-1}
Точно так само, якби хтось просто запитував умову (2), це могло б бути зведено до проблеми обкладинки ребер (вершини - це елементи, ребра - пари), яка також поліноміально-час вирішується максимальним підходом узгодження.


Тож моє запитання в назві:

Ця проблема в P? Це NP-комплект?

Будь-яке посилання на подібну проблему вітається.


1
Це може бути десь посеред ... хто знає, що це не може бути еквівалентним, скажімо, графічному ізоморфізму? :)
Tsuyoshi Ito

Звичайно, це теж варіант ... Але насправді я відчуваю, що це "пахне" на P - можливо тому, що я сподіваюся, що це буде :)
Флорент Фуко

Чому будь-яке здійснене рішення повинно мати розмір ? Чи не могли б ви пояснити, чому набір пар {[1,n-1],[2,n]} неможливо. n2[1,n1],[2,n]
hbm

@hbm: рішення, яке ви пропонуєте, не відповідає умові (2) (навіть із обмеженням до мого оновлення). Зараз я включив більше пояснень, сподіваюся, це буде зрозуміліше.
Флорент Фуко

Що щодо k = n / 2? Чи можемо ми вирішити проблему для цього особливого випадку?
domotorp

Відповіді:


8

Хоча це не вирішує поставлене вами питання, деякі попередні коментарі розглядають алгоритми наближення. FWIW, я думаю, що PTAS (схема багаторазового наближення) можлива з використанням динамічного програмування. Ось ідея.

З огляду на будь-який екземпляр і , побудуйте рішення наступним чином. Позначте кожну ( 1 / ϵ ) '-ву вершину. Для кожної позначеної вершини i з усіх ребер ( j , k ), які "прольотом" i (тобто, що задовольняють обмеженню (1) для i ), виберіть один край, який мінімізує j, і той, що мінімізує максимізує k . Додайте до розчину ці 2 ϵ n ребра.ϵ>0(1/ϵ)i(j,k)iijk2ϵn

Ці ребра задовольняють обмеження типу (1) для багатьох вершин. Тим часом вони вносять краю до розчину, що є лише O ( ϵ OPT ) . Для закінчення ми знайдемо оптимальне рішення решти проблеми пошуку набору ребер, який відповідає всім обмеженням типу (1) та типу (2).2nϵO(ϵOPT)

Визначте "блок" вершин як набір послідовних вершин, чиї обмеження типу (1) відповідають досі доданими ребрами. Між будь-якими двома послідовними блоками є послідовність вершин, обмеження типу (1) не виконані. (Будь-яка така послідовність має довжину не більше , оскільки позначені вершини мають свій тип (1) обмеження, якими відповідають вже додані ребра.) Назвіть будь-яку таку послідовність "сусідством" двох сусідніх блоків (тому кожен блок має сусідство зліва і околиці праворуч).1/ϵ

У межах кожного мікрорайону для кожної вершини в околиці кожен край, що залишає вершину, проходить відстань не більше (оскільки край не охоплює жодної позначеної вершини). Таким чином, вершина має ступінь не більше 1 / ϵ . Таким чином, кожне сусідство має максимум 1 / ϵ вершин і торкається не більше 1 / ϵ 2 ребер. Назвіть будь-яку підмножину цих країв "конфігурацією" мікрорайону. Якщо конфігурація відповідає усім обмеженням типу (1) та типу (2) для вершин у околицях, виклик конфігурації "дійсною".1/ϵ1/ϵ1/ϵ1/ϵ2

Для кожного блоку , для кожної пари ( C i , C i + 1 ) дійсних конфігурацій двох мікрорайонів блоку, обчислюйте (у поліноміальний час, використовуючи максимальну відповідність тощо), мінімальний розмір F i ( C i , C i + 1 ) будь-якого набору S ребер (якщо такі є) таким чином, що ребра в C iS C i + 1 відповідають обмеженням типу (2) для вершин у блоці. Оскільки існує максимум 2 1i(Сi,Сi+1)Жi(Сi,Сi+1)SСiSСi+1конфігурації, це можна зробити за полиномного часу (для фіксованих eps). 21/ϵ2=О(1)

Тепер ви можете вирішити вихідний екземпляр, знаходячи послідовність дійсних конфігурацій, по одному для кожного мікрорайону, що мінімізує i | Д я | + F i ( D i , D i + 1 ) , де F i є таким, як визначено в попередньому пункті. Це можна зробити, знайшовши найкоротший шлях у графіку, сформованому всіма допустимими конфігураціями, з краєм вартості | Д я | +D1,D2,..,Dкi|Di|+Жi(Di,Di+1)Жi від кожної конфігурації D i для сусідства i до кожної конфігурації D i + 1 для сусідства i + 1 . (Цей графік має розмір O ( 2 1 / ϵ 2 n ) , який є O ( n ) для фіксованого ϵ .)|Di|+Жi(Di,Di+1)DiiDi+1i+1О(21/ϵ2н)О(н)ϵ


1
Приємно. і ласкаво просимо до cstheory!
Суреш Венкат

Дякую за вашу відповідь, Ніл (і вибачте, я не встиг перевірити це раніше)! Хоча це не відповідає повністю на моє запитання, це все-таки крок вперед. Лише два коментарі: Я думаю, що це має бути "максимізує k", а не "мінімізує k" (2-й абзац). Крім того, якщо бути точним, якщо хочеться апроксимації ( ), слід позначити кожну k = 4 / ϵ '-ву вершину (оскільки O P T n / 2, і тоді ми візьмемо 2 n / k ϵ O P T ребер на першому кроці). 1+ϵк=4/ϵОПТн/22н/кϵОПТ
Флорент Фуко
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.