Рассмотрим следующую проблему:
- Учитывая набор из положительных чисел { a 1 , … , a n }, в которых k ≥ 3 является константой, мы хотим разбить набор на m подмножеств размера k так, чтобы произведение суммы каждого подмножества максимально
Эта проблема очень похожа на хорошо известное разбиение номеров way, за исключением того, что у нас есть ограничение на число номеров в каждом разделе. Для k = 2 может быть предложен следующий простой полиномиальный алгоритм,
- предположим, что числа отсортированы, то . Затем для i ≤ m назначьте a i подмножеству i , для i > m назначьте его подмножеству n - i + 1 .
Нетрудно понять, почему алгоритм работает. Просто выберите две произвольные корзины. Любой обмен числами не приведет к увеличению количества товара.
Но для больших я задаюсь вопросом, может ли проблема быть решена за полиномиальное время или нет? Я был бы также благодарен, если бы кто-то мог показать это нп-твердость.
Примечание. Я столкнулся с проблемой, когда работал над проблемой планирования в беспроводных сетях. Я нашел хороший эвристический алгоритм для решения проблемы. Но через некоторое время я подумал, что проблема может быть теоретически интересной.