设置优化问题-它是否完整?


10

给出集合S={e1,,en}。对于每个元素ei,权重wi>0,成本ci>0。目标是找到子集M尺寸的k最大化以下目标函数:

eiMwi+eiMwicieiMci

问题是NP难吗?

由于目标函数看起来很奇怪,因此有助于解释目标函数的应用。

假设我们有n项e1en并且清单中每个对象e i都有ci副本。我们有一些客户,他们对这些物体的重量w i感兴趣,这意味着w i更大的物体更受欢迎。我们有一个在线销售系统,我们需要正确回答客户的要求。我们无法通过物体的形状识别物体(它们看起来都一样!)。但是我们有一些分类器可以找到它们。每个分类器可用于检测对象的副本。我们旨在运行k分类器,以最大程度地提高客户的满意度。Ë一世w一世w一世

PS:这可能是考虑的情况下有用的对于所有Ñ ; 但是,我不确定。[ 我错了!根据这个假设在P中 ]w一世C一世=p一世ñ


正确的术语小于或等于不在M中的元素的最大权重。因此,如果元素的权重较大,最好将其放在M中,而不是浪费掉。因此,M应该由权重为k的元素组成。对?
zotachidil 2012年

这是不正确的,因为成本也很重要。考虑以下示例:
Nasooh 2012年

w1 = 50,c1 = 80-w2 = 40,c2 = 15-w3 = 10,c3 = 5。对于等于1的k,选择e2比e1更有利。
Nasooh 2012年

你是对的。嗯...
zotachidil 2012年

2
感谢您尝试解释动机。不幸的是,我对您的解释和目标函数之间的联系仍然不清楚,但是我想我必须对当前的解释感到满意,以使问题保持​​在合理的范围内。
伊藤刚(Tsuyoshi Ito)2012年

Answers:


2

下面的答案表明,该问题的一种特殊情况可以在多项式时间内解决。这并不能完全回答帖子中的问题,但是可以对NP硬度证明可能需要的内容提供一些见解,并可能引起对该帖子的更多兴趣...

观察。 帖子中的问题有一个算法,在给定每个是整数的情况下,该算法在nD = i c i的时间多项式中运行。C一世ñd=一世C一世

证明草图。 修复任何输入其中瓦特Ç [R Ñ +和(WLOG) 小号= { 1 2 ... Ñ }。稍微改写这个问题,我们的目标是要找到中号小号尺寸的ķ最大化Σ 中号 W¯¯ Ç 小号wCķwC[R+ñ小号={1个2ñ}中号小号ķ一世中号w一世C一世一世中号C一世-一世中号w一世

考虑下面的动态程序。对于任何整数0 d 1d 2d0 ķ ķ,和ķ Ñ,定义 φ d 1d 2ķ = 最大{ Σ 中号瓦特d1个d2ķ0d1个d2d0ķķķñ 所需的解是 max d ϕddKn

ϕd1个d2ķ=最大值{一世中号w一世C一世/d1个-1个  中号[]|中号|=ķ一世中号C一世=d2}
最大值dϕddķñ

的可能解划分为包含m和不包含m的解,我们得到递归 ϕ d 1d 2k m = max { ϕ d 1d 2c mk 1 m 1 + w mϕd1个d2ķ 我们将边界案例作为练习。

ϕd1个d2ķ=最大值{ϕd1个d2-Cķ-1个-1个+wC/d1个-1个ϕd1个d2ķ-1个

子问题的数量为,并且每个递归的右侧都可以在恒定的时间内求值,因此该算法在nD中以时间多项式运行。Øñ2d2ñd  

结果。 除非P = NP,否则显示NP硬度的任何减小都将减小为不是n中的多项式的情况。dñ

备注。除非我错了,有也是在后的问题PTAS,根据四舍五入的的,然后使用动态规划。但是,正如帖子中所问的那样,PTAS的存在与问题是否是NP难题没有直接关系。w一世

w一世=C一世一世中号ķ


1
w一世=C一世一世Ĵ中号w一世wĴ/一世中号w一世中号w一世

@WillardZhan,是的,这似乎是正确的。
Neal Young

-6

您在询问无限制的功能最大化吗?

真的很简单。如果M是最大集合,则它是最佳解决方案。无需计算任何东西。

这个问题似乎类似于背包问题,顺便说一下,这是NP。


3
问题是“大小为k的子集M”。
伊藤刚(Tsuyoshi Ito)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.