Існує (дуже загальна) проблема, яку я мав розглядати як частину проекту: варіант цієї проблеми залишається жорстким навіть на графіках з двома вершинами та одним ребром, а інший варіант - NP-жорсткий на деревах. Оскільки NP-твердість першого варіанту очевидно не випливає з форми графіка, другий, мабуть, цікавіший.
SCG=(V,E)S⊂VC⊂VS∩C=∅s∈S|s|Ff∈F|f|e∈EteR⊆C×F(c,f)∈Rcf
s∈SAs∑f∈As|f|≤|s|PrGr=(c,f)∈Rcsf∈AseDer=(c,f)∈DePre∑(c,f)∈De|f|≤te
Якщо вам не потрібні всі завантаження , щоб маршрутизировать , але замість того, щоб спробувати максимізувати суму filesizes завантажених файлів , які є маршрутизацією ви можете легко зменшити підмножина-суму до цієї проблеми: у вас є один сервер з величезною кількістю простору, одиночний клієнт, підключений до сервера з краєм з ємністю, рівним цільовому значенню екземпляра підмножини підсумків, і для кожного цілого числа в екземплярі суми підмножини ви створюєте файл однакового розміру; Потім клієнт бажає завантажити всі ці файли.
Більш цікавим варіантом цього питання є той випадок, що ви намагаєтеся мінімізувати кількість ребер, ємність яких перевищена - можливо, мережа, над якою ми працюємо за моделями трансатлантичних інтернет-кабелів та заміна кабелю, така дорога, що різниця у вартості оновлення до коефіцієнта два швидше, а оновлення до коефіцієнта три швидше - незначне. Ми також кажемо, що місця розміщення файлів на серверах вже задані і їх неможливо змінити, тому ми розглядаємо виключно проблеми маршрутизації.
US⊆P(U)u∈U
s∈Su∈su
Ідея полягає в тому, що клієнту потрібні файли, унікальні для всіх серверних кластерів, тому краї, що з'єднують клієнта з серверними кластерами, вже знаходяться на межі їх потужностей (їх ємність - 1, файли мають розмір 1). Якщо клієнт завантажує будь-які елементи Всесвіту з будь-якого кластера, край, що з'єднується з цим кластером, перевантажується. Оскільки нам потрібно лише мінімізувати кількістьперевантажень (а не на скільки ми перевищуємо потужності), клієнт може завантажувати решту елементів всесвіту, розміщених на цьому серверному кластері (так, решта елементів відповідного підмножини) без штрафних санкцій. Отже, це відповідає вибраному підмножині. Клієнт хоче завантажити всі файли у Всесвіті один раз, тому Всесвіт дійсно буде охоплено, і щоб мінімізувати кількість перевантажених країв, нам потрібно мінімізувати кількість обраних підмножин.
Зауважте, що вищезгадана конструкція дає графік дерева, тому це є прикладом важких для NP проблем.