Розглянемо наступну проблему,
- Враховуючи набір додатних чисел { a 1 , … , a n }, у яких k ≥ 3 - константа, ми хочемо розділити множину на m підмножини розміром k так, що добуток суми кожного підмножини максимізовано.
Проблема досить схожа на добре відомий розділ номерів -way, за винятком того, що у нас є обмеження на кількість чисел у кожному розділі. Для k = 2 можна запропонувати наступний простий поліноміальний алгоритм,
- які передбачають числа сортуються, тобто 1 < 2 < . . . < П . Тоді для i ≤ m призначте a i підмножині i , а i > m призначте його підмножині n - i + 1 .
Не важко зрозуміти, чому алгоритм працює. Просто виберіть дві довільні бункери. Будь-яка заміна чисел не збільшить кількість продукту.
Але для більших 's, мені цікаво, чи можна вирішити проблему в поліноміальний час чи ні? Я також буду вдячний, якщо хтось може показати, що це твердість np.
Примітка. Я зіткнувся з проблемою, коли працював над проблемою планування в бездротових мережах. Я знайшов хороший евристичний алгоритм для вирішення проблеми. Але через деякий час я подумав, що проблема може бути теоретично цікавою.