Ця проблема є важкою для NP . Щоб показати це, спершу переформулюю цю (оптимізаційну) проблему в проблему рішення. Потім я переформулюю цю проблему в еквівалентну, з якої досить просто отримати скорочення від -барвлення, що є NP-важким для будь-якого .k ≥ 3kk≥3
Коротка постановка проблеми полягає в наступному:
З огляду на осіб та графік який кодує їхні стосунки "дарування подарунків", знайдіть необхідну мінімальну кількість поїздок таким чином, щоб усі подарунки можна було придбати, не зіпсувавши жодних сюрпризів.GnG
Однак це проблема оптимізації. Клас NP, як правило, визначається для задач з рішенням (де відповідь на кожен екземпляр - ТАК чи НІ). Варіантом цього рішення є:
З огляду на осіб та графік що кодує їхні "подарункові" відносини та ціле число , чи не більшість поїздок є достатнім, щоб придбати всі подарунки, не руйнуючи жодних сюрпризів?G t tnGtt
Я визначаю проблему пошуку правильного спрямованого мультиколіруванняt деякого графіка як знаходження багатобарвної функції яка є правильною , де - деякий набір 'кольори' (тобто ) і - набір потужності (тобто множина всіх підмножин ). Багатобарвна функція є правильною тоді і лише тоді, коли для кожного ребра ми маємо, що .G=(V,E) c:V→P(C)Ct|C|=tP(C)CC(u→v)∈Ec(u)⊈c(v)
Я стверджую , що проблема похід по магазинах еквівалентна задачі про прийняття рішення про існування спрямованого -multicoloringt одного і того ж графа .G
Доведення : Якщо у нас є правильне спрямоване -мультикольорове для , де ми перейменовуємо такі кольори, що то розглянемо послідовність відключень , де a vertex йде по магазинах у поїздці якщо і лише тоді, коли . Тоді для кожного ребра маємо, що існує такий, що і , оскільки . Тому поїздкиc G C = { 1 , … , t } t T 1 , … , T t v T i i ∈ c ( v ) ( u → v ) ∈ E T i u ∈ T i v ∉ T i c ( u ) ⊈ c ( v ) T itcGC={1,…,t}tT1,…,TtvTii∈c(v)(u→v)∈ETiu∈Tiv∉Tic(u)⊈c(v)Ti достатні, щоб придбати всі подарунки.
Якщо у нас є послідовність відключень , тоді побудуємо багатоколірну функцію на наборі кольорів таку, що . Тоді для кожного краю існує поїздка така, що і (оскільки можете купити подарунок для в якійсь поїздці), це означає, що і , тому . c C =T1,…,Ttcc ( u ) = { i ∈ N | u ∈ T i } ( u → v ) ∈ E T i u ∈ T i v ∉ T i u v i ∈ c ( u ) i ∉ c (C={1,…,t}c(u)={i∈N|u∈Ti}(u→v)∈ETiu∈Tiv∉Tiuvi∈c(u)c ( u ) ⊈ c ( v ) ◻i∉c(v)c(u)⊈c(v)□
Пошук правильного спрямованого мультиколірування - це в основному дивне переформулювання конкретного випадку -кольорування. Отже, я можу показати скорочення полінома часу з -проблемою забарвлення: Дано ненаправлений графік , спочатку перетворіть цей графік у спрямований графік , такий, що і тоді і тільки тоді, коли або ( іншими словами, ми змінюємо непрямі краї на два спрямовані краї).k ( ttk G′=(V′,E′)G=(V,E)V=V′(u→v)∈E(u,v)∈E′(v,u)∈E′(t⌊t/2⌋)G′=(V′,E′)G=(V,E)V=V′(u→v)∈E(u,v)∈E′(v,u)∈E′
Розглянемо найбільший набір , такий, що немає , , таким, що . Сукупність усіх підмножини розміром , де, є такий набір. Тому максимальний розмір такого підмножини - .a , b ∈ K a ≠ b a ⊂ b C ⌊ t / 2 ⌋ t = | C | ( т. звK⊂P(C)a,b∈Ka≠ba⊂bC⌊t/2⌋t=|C|(t⌊t/2⌋)
Якщо для існує правильне -мультиколірування , то існує власне забарвлення, яке використовує не більше нерівних елементів з (*) , тож це дійсний -кольоровий колір для .G ( ttG P(C) ( t(t⌊t/2⌋)P(C) G′(t⌊t/2⌋)G′
Якщо власне -кольорування існує для , то існує безліч , , така що і не існує жодного , , такого що . Отже, має належну спрямовану -мультиколірність. G′K⊂P(C)| C| =t| К| ≥ ( t(t⌊t/2⌋)G′K⊂P(C)|C|=t a,b∈Ka≠ba⊂bGt|K|≥(t⌊t/2⌋)a,b∈Ka≠ba⊂bGt
Отже, це дійсне скорочення поліноміального часу з -кольору до теперішньої проблеми покупок за допомогою поїздок, що означає, що теперішня проблема покупок є важкою для NP. Зауважте, що ця проблема покупок не є повною, оскільки ми можемо легко перевірити, чи даний перелік максимум поїздок дозволяє нам купувати всі подарунки, не руйнуючи сюрпризів. tt(t⌊t/2⌋)tt
(*): Якщо деякі різнокольорові використовують більше кольорових наборів, ніж максимальне багатобарвне забарвлення , ми можемо перейменувати таким чином, що це надмножина . залишається належним, оскільки жоден з елементів, що знаходяться в , суміжний з іншим елементом, ніж не є проблемою, і жоден набір кольорів не примикав один до одного в оригінал . Отже, не втрачаючи загальності, ми можемо припустити .C ∗ C C ∗ C C ∗ C ∗ C C ∗ ⊂ CCC∗CC∗CC∗C∗CC∗⊂C
Потім зауважте, що "перейменування" до будь-якого підмножини не зруйнує краї між вузлами наборів кольорів , оскільки не містить елементів, які є підмножиною іншого. Залишилося лише переконатися, що краї між та не «руйнують» забарвлення.C ∗ C ∖ C ∗ C ∗ C ∖ C ∗ C ∗C∖C∗C∗C∖C∗C∗C∖C∗C∗
Розглянемо наступне відношення на колірних множин в : дві кольорові набори і є з'єднані , якщо і тільки якщо існує пара вершин , такі , що має колір набору і колірної набір і . Це співвідношення може бути представлене непрямим графіком .R A B a , b a A b B ( a , b ) ∈ E G = ( C ∪ C ∗ , R )C∪C∗ABa,baAbB(a,b)∈EG=(C∪C∗,R)
По-перше, ми можемо 'зменшити' , замінивши будь-яку пару, у якої немає ребра в , на один набір кольорів. Забарвлення залишається належним, оскільки зміна двох наборів кольорів, які зовсім не суміжні, в один і той же колір, не вводить недійсних країв. В результаті ми звели до повного графа.G GC∖C∗GG
Це означає, що якщо має меншу або рівну кількість наборів кольорів, як, необхідне фарбування існує. Інакше взагалі не існує належного багатобарвного забарвлення, оскільки є найбільшим набором "без підмножини", тому ми не можемо забарвити цю кліку. Тому необхідна багатобарвність обов’язково існує.| C ∗ | C ∗G|C∗|C∗
Оскільки повний графік на вузлах може кольори, якщо і тільки якщо у нас є принаймні кольорів, ми маємо, що людей можуть ходити по магазинах подарунки один для одного в поїздках, якщо і тільки тоді, якщо . Це означає, що, якщо , достатньо здійснити лише поїздок. Якщо менше подарунків для купівлі, більше поїздок не знадобиться, тож це загальна верхня межа кожного рішення.K n n n t ( tnKnnntn≤1287016(t⌊t/2⌋)≥nn≤1287016
Нижче наводиться моя попередня «відповідь», яка дає евристичний алгоритм, який не гарантує отримання оптимальності, але може бути обчислений у багаточлен.
Інший спосіб сформулювати цю проблему - знайти покриття двосторонніх графіків на розділах для деякого спрямованого графіка з вузлами , таким, що кількість перегородок (тобто поїздок), тут , мінімальна.( S i , T i ) G n mC={(S1,T1),…,(Sm,Tm)}(Si,Ti)Gnm
По-перше, деякі спостереження, частково виходячи з інших відповідей:
- Жадібна стратегія, де ми вибираємо з двостороннім графіком, де кількість ребер, спільних з є максимальним, не призводить до оптимального рішення (Важливим зустрічним прикладом є повний графік з вузлами, де ця стратегія не вдається, незалежно від того, який максимальний двосторонній графік обраний.)G 6(Si,Ti)G6
- Жадна стратегія не є оптимальною для довільних ациклічних графіків, врахуйте наступний графік:
І для і для двосторонній графік видаляє ребра, але тільки є оптимальним.S i = { 1 , 3 , 6 } 4 { 3 , 5 , 6 }Si={3,5,6}Si={1,3,6}4{3,5,6}
- Будь-який (оптимальний) жадібний алгоритм не може віддавати перевагу розміру розділу, обраному за кількість циклів ( будь-якого розміру), 'видалених' розділом. Щоб побачити це, розглянемо графік з вузлами, де є один цикл вузлів, і кожен вузол циклу має додаткові вихідні ребра до додаткових вузлів , які не мають вихідних ребер (див. Рисунок нижче для приклад, де ). Жадібний вибір, який вважає за краще максимізувати кількість ребер за циклами довжини , надішле всі вершини циклу під час першої поїздки. Це неоптимально, оскільки це не видаляє ребер циклу та просто ігноруєn 2 2 A , B n = 4 n A , B A , Bn+2n22A,Bn=4nA,Bі видалення всіх ребер з циклу видаляє всі ребра в напрямку , а також. Тому будь-який жадібний вибір, який віддає перевагу розміру розділу над видаленням циклу, не є оптимальним.A,B
Виходячи з цих спостережень, я пропоную такий жадібний вибір: Виберіть такий, щоб кількість циклів, яку ця поїздка 'вилучає' з була максимальною, і в разі зв’язків, виберіть розділ з максимальним перекриттям з серед їх (тобто дивіться на краї, а не на цикли).(Si,Ti)GGG
Оскільки цей алгоритм не відрізняється від «основної» жадібної стратегії на ациклічних графіках (видалення максимальної кількості ребер за кожну поїздку), то цей жадібний алгоритм не є оптимальним. Однак інтуїція зняття циклів все ж має сенс і є вдосконаленням у порівнянні з базовою жадібною стратегією, тому це може бути гідною евристикою.