Мінімальна сумарна сукупність


17

Розглянемо цю проблему: Враховуючи список кінцевих наборів, знайдіть замовлення що мінімізує .s1,s2,s3,|s1|+|s1s2|+|s1s2s3|+

Чи існують відомі алгоритми цього? У чому полягає її складність? Я ще не міг придумати ефективний оптимальний алгоритм, але це очевидно і в NP-Hard.


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

Я вже довів, що жадібний алгоритм не працює для n 3. Контрприклад: A = {0, 1} B = C = {2,3,4}. Оптимальне рішення - B, C, A із вартістю 11, жадібний алгоритм дає A, B, C із вартістю 12. Поки що найкраще, що я придумав - це алгоритм наближення із співвідношенням , що досить погано. n+23
Сурма

Існує динамічна програма , де n - кількість наборів. O(2npoly(n))n

1
Можливо, це краще підходить для cteheory.
Yuval Filmus

5
Чи може хтось вирішити особливий випадок, коли всі ? |si|=2
domotorp

Відповіді:


6

Ця проблема насправді пов'язана з проблемою планування, яка відома як "Графік з обмеженням пріоритетності для мінімізації зваженого часу завершення". Проблема полягає в наступному: Враховуючи набір завдань, де кожне завдання має час обробки (p) і вагу (w), а графік пріоритетності визначається для завдань. Мета полягає в плануванні завдань на одній машині (без попередження) таким чином, щоб обмеження пріоритету були статистично визначені і сума зваженого часу завершення була мінімізована. Проблема є важкою для NP і відомо 2-наближення.

Зменшення від задачі щодо мінімальної сукупної суми до проблеми планування, обмеженої прецедентом: Для кожного елемента створіть завдання з p = 1, w = 0. Також для кожного набору створіть завдання з p = 0, w = 1. Створіть графік пріоритетності таким чином, що якщо елемент , то e необхідно запланувати ранішеeSe . Я думаю, що цей особливий випадок проблеми планування також є важким для NP.S

Дивіться наступні посилання,

1) http://www.win.tue.nl/~gwoegi/papers/precsum.pdf

2) http://web.engr.illinois.edu/~chekuri/papers/dam_sched.ps


Я також рекомендую наступний документ для покращення меж, особливих випадків та твердості для проблеми планування. people.idsia.ch/~monaldo/papers/MOR-schedprec-11.pdf . Дивіться також статтю про твердість 2- \ epsilon у варіанті унікальних ігор Bansal та Khot win.tue.nl/~nikhil/pubs/focs-09-version.pdf .
Чандра Чекурі

Чи не повинно було б скорочення піти в іншому напрямку, щоб довести, що проблема сукупної суми є NP Hard?
Сурма

Неважливо, я думаю, я бачу, як зменшення йде обома напрямками.
Сурма

1

Шалмолі Гупта вже пояснив, що загальною проблемою є NP-Hard, тому я вирішив дослідити, чи можна вирішити якісь особливі випадки в поліномах. Врешті-решт, я знайшов рішення в окремому випадку множин, що представляють собою дерево, або, загалом, послідовний паралельний порядок шляхом включення підмножини з усіма незрівняними множинами наборів.

Однією властивістю, яка полегшує справи, є те, що список наборів закритий під перетином. Якщо , то існує оптимальне впорядкування, в якому s 1 приходить до s 2 . Ми можемо припустити WLOG, що оптимальне впорядкування - це лінійне розширення часткового порядку, заданого включенням підмножини.s1s2s1s2

Оскільки всі підмножини набору з’являються перед ним у порядку, це означає, що сума, додана до поточної суми даним набором, є фіксованою, незалежно від місця її появи. Якщо список множин, то додаткові витрати з набору є кількість елементів в х, які не є в будь-якому підмножині з , який з'являється в S . Якщо один і той самий набір з’являється кілька разів у S , ми можемо довільно вибрати один для першого і дозволити іншим коштувати 0.SSS

Це означає, що проблема еквівалентна проблемі мінімально зваженого часу завершення в одному плануванні машини з обмеженнями пріоритету. У цій проблемі, враховуючи набір завдань з вагою та разів t j та частковим порядком на завдання P , ми хочемо знайти впорядкування завдань, що мінімізує зважений загальний час виконання, тобтоwjtjP

i=1nwji(k=1itjk)

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

Як виявилося, ця проблема є NP-Hard для загального а. Однак певні особливі форми ПPP можуть бути вирішені за поліноміальний час.

У цій роботі дано алгоритм для випадку послідовних порядкових порядків P (який включає також важливий випадок дерев). На жаль, я не зміг отримати доступ до цього документу, тому вирішив спробувати його винаходити самостійно. Ось що я придумав.O(nlogn)P

Для вирішення цієї проблеми потрібно кілька спостережень.

По-перше, за відсутності будь-яких обмежень пріоритету оптимальним рішенням є просто сортування завдань у порядку збільшення . Для простоти я буду називати це значенням завдання, скороченимv(j). Зауважте, що оскільки сортування єO(nlogn)tjwjv(j)O(nlogn) , то краще, ніж ця складність, неможливо.

Правило 1 Нехай і b є завданнями такі, що a < b P і b охоплюють a. Якщо v ( a ) < v ( b ) , то ми можемо скинути обмеження a < b, не впливаючи на оптимальне впорядкування чи об'єктивне значення.aba<bPv(a)<v(b)a<b

Припустимо, з'являється перед aba в оптимальному впорядкуванні розслабленої проблеми. Оскільки b спочатку охоплював, це означає, що всі завдання між b і a в новому порядку впорядковані з a і b. Але оскільки b має більш високе значення, ніж a, ми можемо зменшити об'єктивне значення, замінивши b і a, протиріччя.

Так само ми можемо скинути обмеження у випадку, коли тих пір, поки ми гарантуємо, що після сортування за значенням ми розірвемо зв’язки, порадивши відносини пріоритету вихідної (спрощеної) задачі. Це гарантує, що оптимальне рішення для розслабленої проблеми є також оптимальним рішенням вихідної проблеми.v(a)=v(b)

Тому, коли b охоплює a і , ми можемо спростити задачу, скинувши обмеження a < bv(a)v(b)a<b .

Правило 2 Припустимо, що ми знаємо, що b іде відразу після оптимального рішення. Ми можемо об'єднати а й Ь в новий вузол з з і т з = т + т б , в той час як контракт відвідати P відповідним чином .wc=wa+wbtc=ta+tbP

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

Правило 3 Припустимо, що в оптимальному вирішенні екземпляра задачі надходить безпосередньо перед b і v ( a ) > v ( b ) . Тепер припустимо, що ми створюємо більший проблемний екземпляр, додаючи нові завдання з новим набором, сформованим із серії або паралельної композиції з оригіналом. Там завжди буде оптимальним рішенням для великої проблеми , де приходить безпосередньо перед б .abv(a)>v(b)ab

a,x1,x2,,bPxiabxixv(x)v(x)v(a)xav(x)v(b)xbv(a)<v(x)<v(b)v(a)>v(b), a contradiction.

O(n2) algorithm. Since P is a series parallel order, assume the input contains a tree representation of P where each node represents series composition or parallel composition, and the leaves are individual jobs. We can find an optimal solution with preorder traversal of the tree by maintaining the invariant that the optimal solution to each subproblem is a chain in increasing value order.

Suppose P is the series composition of subproblems with posets P1 and P2. Let the optimal solutions be ordering C1 and C2. The optimal solution to P is clearly the concatenation of these chains. However, it is possible that the first job in C2 has lower value than the last job in C1. In order to maintain the invariant that the solution is a sorted chain, we use rule 3 + rule 2 to merge the endpoints as long as they aren't in sorted order.

If P is instead a parallel composition, we simply take the sorted chains S1 and S2 and merge them into a new sorted chain. Thanks to the invariant, this is valid.

Unfortunately, this algorithm is O(n2). In order to get an O(nlogn) algorithm, we need to compute the chains lazily using rule 1.

Specifically, if a subproblem contains only nodes where the precedence constraints are the same as the order of values, then we can forget the precedence constraints completely and only look at the values. This is ensured by the same invariant that ensured the solutions are sorted chains in the previous algorithm.

Instead of computing a sorted chain for each subproblem, we represent the optimal solution to a subproblem as a pair of Fibonacci heaps, one a min heap, and one a max heap, both containing all the jobs in the subproblem. This means that we can pop off the minimum or maximum element of the solution in logarithmic time.

As before, we do a preorder traversal. Where P is a series composition, we examine the maximum job of the first heap pair and the minimum job of the second heap pair. If their values are out of order, we pop them off and merge them using rule 2 and 3. Then we compare the newly created job to the new endpoints and continue popping and merging as long as they are out of order. Once the endpoints no longer have out of order values, we can safely forget the series precedence restriction thanks to rule 1. Then we just push the newly created jobs if any onto a heap, then merge the heaps to create the heap pair representing the solution to P itself.

For a parallel composition, we simply merge the heap pairs. The new min heap is the merge of the min heap from each subproblem and likewise with the max heap. Note that Fibonacci heaps are mergeable in constant time.

Once we have a heap pair representing the solution to the entire problem, we can find the actual solution ordering by popping off the min heap until it is empty. After that we undo all the rule 2 substitutions to get a solution to the original problem.

Each job that is popped off a heap is either immediately merged into a new job, reducing the total job count, or is popped exactly once at the end. Therefore there is at most a linear number of heap pops, leading to O(nlogn) time over all. The other operations are constant time per node or job and hence linear over all.

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