Чи важко заповнити банкноти мінімальними ходами?


33

Існує бункерів і тип куль. й бін має ЕТИКЕТКИ для , тобто очікуване число куль типу .nmiai,j1jmj

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

Розглянемо можливе рішення з кулями типу у bin , тоді вартість. Ми хочемо знайти мінімально можливе рішення.xi,jjii=1nj=1m|ai,jxi,j|

Ця проблема очевидно якщо немає обмежень на . Проблема суми підмножини зводиться до існування можливого рішення.{wj}

Однак якщо ми додамо умову, що ділить для кожного , зменшення суми підмножини більше не працює, тому не ясно, чи залишається виникаюча проблема NP-жорсткою. Перевірка наявності можливого рішення займає лише час (додається в кінці питання), але це не дає нам можливого рішення, що має мінімальні витрати.wjwj+1jO(nm)

Проблема має еквівалентну цілочислову програму. Дано для : ai,j,ci,bj,wj1in,1jm

Minimize:i=1nj=1m|ai,jxi,j|subject to:j=1mxi,jwj=ci for all 1ini=1nxi,jbj for all 1jmxi,j0 for all 1in,1jm

Моє питання:

Чи є вищевказана ціла програма NP важкою, коли wj ділить wj+1 на всі j ?

Алгоритм , щоб вирішити , якщо є допустиме рішення в O(nm) час :

Визначте wm+1=wm(maxjcj+1) і dj=wj+1/wj . Нехай a%b є залишком, коли a ділиться на b .

  1. Якщо існує ci який не ділиться на w1 , поверніть "немає можливого рішення". (інваріант ci розділяє wj завжди буде підтримуватися в наступному циклі)
  2. для j від 1 до m :

    1. ki=1n(ci/wj)%dj . (необхідний мінімум кульок вагоюwj )
    2. Якщо bj<k , поверніть "немає можливого рішення".
    3. cici((ci/wj)%dj)i w j для всіх . (видаліть мінімальну кількість потрібних кульок вагою )iwj
    4. bj+1(bjk)/dj . (згрупуйте менші кульки в більшу кулю)
  3. повернути "є можливе рішення".

розв'язок часу в окремому випадку, де , а - потужність сn=1wj2

Відомо, що якщо і всі - сили , то цей особливий випадок можна розв’язати за багаточлен. n=1wj2

Minimize:j=1m|ajxj|subject to:j=1mwjxj=c0xjbj for all 1jm

Рішення натякнуло Ючжоу Гу , і тут можна знайти записи .

Відповіді:


0

Якесь тло. Вищезазначена проблема - це проблема з обмеженням. Найефективніше рішення проблеми з забиткою з обмеженнями або без них може бути вирішено за псевдополіномічний час, все ще NP-Hard. Про деякі варіанти див. Https://en.wikipedia.org/wiki/Knapsack_problem#Definition . Перше обмеження в цій варіації полягає в тому, що значення предметів (кульок), що розміщуються в рюкзаку (бункерах), не має значення. Потім проблема обмежується кількістю часу, необхідного для того, щоб помістити предмети в рюкзак. Первісна проблема вимагає розміщення найцінніших предметів якнайшвидше. Ще одне обмеження цієї версії полягає в тому, що ваги та всі інші аргументи є цілими числами. А обмеження відсотків полягає в тому, що вагиw j + 1 jшjділимо на всі . Примітка: проблема дробового загину може бути вирішена за багаточлен, але не представляє найбільш практичних рішень вихідної проблеми. Ця проблема використовує цілі числа, які поділяються рівномірно (відсутність раціональних рішень). Можливо, подивіться У чому полягає велика проблема із рюкзаком? .шj+1j

Головне питання, можливо, має бути "це ця проблема все ще NP-Hard, коли не пов'язаний поліномом, відповідним , оскільки проблема є менш складною (в P), коли вона обмежена? Причина, яку я кажу, це тому, що проблема може показано, що він знаходиться в P, коли обмежений, і NP-Hard, коли не обов'язково ділиться i w j w j w j + 1 w j w j + 1 w j j w jшjiшjшjшj+1рівномірно (ваги просто випадкові), всі обмеження обмежують складність цієї проблеми цими двома умовами. Ці умови (1. випадкова задача з рюкзаком без обмеження предмета-значення та 2. проблема розбиття ваги без обмеження предмета-значення) заперечують одна одну з точки зору зменшення складності, оскільки коефіцієнти ваг можуть бути самими випадковими ( особливо при безмежному), накладаючи таким чином експоненціальні обчислення часу (це буде показано в прикладі нижче). Крім того, оскільки ділить , збільшується в розмірі експоненціально для кожногошjшj+1шjj. Це тому, що замість використання випадкових зважених предметів (кульок, вага одиниці яких може бути обмежений вагою одиниці менше 100 або 50 або навіть 10), обмеження натомість спричинює складність часу залежно від кількості цифр , таке ж, як пробний поділ, який є експоненціальним.шj

Так, так, вищезазначена ціла програма залишається важкою для NP, навіть коли ділить на всі . w j + 1 jшjшj+1j І це легко спостерігається.

Приклад 1: нехайі- сили двох. Через постійні два, вся проблема вирішується в квадратичний час, як показує ваш приклад. Ваги не випадкові, і тому розрахунок вирішується ефективно.w pн=1шp

Приклад 2: нехайвизначається як, де- просте число, відповідне, так що. Це застосовно, оскількиділитьдля всіх. кожен- добуток всіх простих чисел до. Значення питомих ваг збільшують як такі:. Оскільки існує обмежений (~ w jp p j p = 2 , j = 1 : p = 3 , j =шj+1шjppjw j w j + 1 j w j j 1 ,p=2,j=1:p=3,j=2,p=5,j=3,p=7,j=4,...,П,Jшjшj+1jшjjp j j l o g ( j )1,2,6,30,210,2310,30030,...pjjлог(j)через теорему просте число), оскільки коефіцієнти є усіма простими рівнями, ми отримуємо складність NP-проміжний.

Приклад 3: нехайвизначається як, де- випадкове обране просте число від двох до нескінченності, що відповідає. Це стосується цієї проблеми, оскількиділитьна всі. Отримуємо перші 5 коефіцієнтів (випадковим чином падають від двох до нескінченності), як. Ми бачимо, що навіть на 5-му балі вага має одинадцять цифр. На щастя, п'ятий коефіцієнт був двома, а не простим у порядкуі більше. шj+1R p j w j w j + 1 j 101 , 2657 , 7 , 3169 , 2 10 100шjRpRpjшjшj+1j101,2657 рік,7,3169,210100

Приклад три вище - це те, що відбувається, коли не обмежений (випадкові ваги) поліномом, відповідним . Складність часу експоненціальна, NP-Hard. Для певної точки зору просто складіть всі ваги, щоб побачити, чи вони відповідають. Але не існує рішення, щоб вирішити його значно швидше, зробивши ваги нероздільними, ніж намагаючись кожну підмножину перевірити, чи працює вона. Після кількох десятків балів ви все ще входите в царство навіть трильйонів підмножин або трильйонів цифр. iшji


1
Але основна факторизація вважається не важкою для NP. Він вважається NP-індерідалом.
rus9384

2
Я не бачу скорочення тут. Яке фактичне зменшення? Вводячи основну факторизацію і якось виводячи факторизацію за допомогою рішення цілої програми.
Чао Сю

2
Ви б мали на увазі під "цілою цілою програмою NP-важко"? Індивідуальна програма не може бути важкою для NP.
Yuval Filmus

1
Насправді основний чинник є в . Отже, це -твердо, якщо . N P N P = c o N PNПcоNПNПNП=cоNП
rus9384

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