Задача оптимизации множества - это np-полная?

10

Задано S={e1,,en} . Для каждого элемента ei имеем вес wi>0 и стоимость ci>0 . Цель состоит в нахождении подмножества M размера k , что максимизировать следующую целевую функцию:

eiMwi+eiMwicieiMci
.

Проблема NP-сложная?

Поскольку целевая функция кажется странной, полезно объяснить применение целевой функции.

Предположим, у нас есть n предметов от e1 до en и в нашем инвентаре есть ci копии каждого предмета ei . У нас есть клиенты, и они интересуются этими объектами пропорционально их весу wi , что означает, что объект с большим wi более популярен. У нас есть система онлайн-продаж, и мы должны правильно отвечать на запросы наших клиентов. Мы не можем распознать объекты по их формам (все они выглядят одинаково!). Но у нас есть какой-то классификатор, чтобы найти их. Каждый классификатор может быть использован для обнаружения копий объекта. Мы стремимся запустить классификатор k, чтобы максимизировать удовлетворение наших клиентов.

PS: может быть полезно подумать о случае, когда для всех i n ; Однако я не уверен. [ Я был неправ в этом! Именно в P этим предположением ]wici=pin

Nasooh
источник
Правильный термин меньше или равен наибольшему весу элемента, которого нет в M. Поэтому, если у вас есть элемент с большим весом, лучше поместить его в M, а не тратить его впустую. Таким образом, M должен состоять из элементов с k наибольшим весом. Правильно?
зотачидил
Это не правильно, потому что затраты также важны. Рассмотрим следующий пример:
Nasooh
w1 = 50, c1 = 80 - w2 = 40, c2 = 15 - w3 = 10, c3 = 5. Для k, равного 1, выбор e2 более выгоден, чем e1.
Насухо
Вы правы. Хм ...
зотачидил
2
Спасибо за попытку объяснить мотивацию. К сожалению, связь между вашим объяснением и целевой функцией в этом вопросе для меня все еще совершенно неясна, но я думаю, что я должен быть удовлетворен текущим объяснением, чтобы держать вопрос в разумных пределах.
Цуёси Ито

Ответы:

2

Ответ ниже показывает, что частный случай задачи разрешим за полиномиальное время. Это не полностью отвечает на вопрос в посте, но может дать некоторое представление о том, что может понадобиться для доказательства NP-твердости, и может вызвать дополнительный интерес к посту ...

cinD=ici

(S,w,c,K)w,cR+nS={1,2,,n}MSKiMwiciiMciiMwi

(d1,d2,k,m)0d1d2D0kKkmn

ϕ(d1,d2,k,m)=max{iMwi(ci/d11) : M[m],|M|=k,iMci=d2}.
maxdϕ(d,d,K,n)

возможные решения для на те, которые содержат и те, которые не содержат , мы получаем рекуррентность Мы оставляем граничные случаи в качестве упражнения.ϕ(d1,d2,k,m)m

ϕ(d1,d2,k,m)=max{ϕ(d1,d2cm,k1,m1)+wm(cm/d11)ϕ(d1,d2,k,m1).

Количество подзадач является , и для каждого правой сторона рецидива может быть оценена в постоянная время, поэтому алгоритм работает в полиномиальное время в и . O(n2D2)nD  

Следствие. Если P = NP, любое уменьшение, показывающее твердость NP, будет сводиться к случаям, когда не является полиномом по .Dn

Замечание. Если я не ошибаюсь, в этой статье также есть PTAS для этой проблемы, основанный на округлении с последующим использованием динамического программирования. Однако существование PTAS не имеет прямого отношения к тому, является ли проблема NP-трудной, как это было сказано в посте.wi

Мне также любопытно --- кто-нибудь знает, есть ли в особом случае, когда (для каждого ), алгоритм поли-времени? (РЕДАКТИРОВАТЬ: он делает, согласно комментарию Уилларда Жана, это, кажется, оптимизировано, принимая чтобы содержать самых больших элементов.)wi=ciiMk

Нил Янг
источник
1
Разве случай совпадает с минимизацией , которая оптимизируется, когда состоит из наибольшего «S? wi=ci(ijMwiwj)/(iMwi)Mwi
Уиллард Жан
@WillardZhan, да, это кажется правильным.
Нил Янг
-6

Вы спрашиваете о максимизации функции без ограничений?

Это действительно просто. Если М - самый большой набор, то это лучшее решение. Не нужно ничего вычислять.

Эта проблема кажется похожей на проблему с ранцем, которая, кстати, является NP.

Гильермо.
источник
3
Вопрос говорит: «Множество размера k».
Цуёси Ито