-
Notifications
You must be signed in to change notification settings - Fork 370
Open
Description
作者在2.3小节写到
完全背包问题有一个很简单有效的优化,是这样的:若两件物品
$$i$$ ,$$j$$ 满足$$C_i \le C_j$$ 且$$W_i \ge W_j$$ ,则将可以将物品$$j$$ 直接去掉,不用考虑。
这个优化的正确性是显然的:任何情况下都可将价值小费用高的$$j$$ 换成物美价廉的$$i$$ , 得到的方案至少不会更差。对于随机生成的数据,这个方法往往会大大减少物品的件数,从而加快速度。然而这个并不能改善最坏情况的复杂度,因为有可能特别设计的数据可以一件物品也去不掉。
思考这样的问题, 背包空间为5, 只有有两件物品:
- A: 代价=3, 收益=4, 性价比=1.33
- B: 代价=5, 收益=5, 性价比=1
如果按照作者的理解, 将物品B删除, 则最终收益只有3. 而实际上可以选择B获得总收益5
性价比高的物品在空间限制中也许并不一定表现更好
这也许是作者的失误, 也有可能是我误解了, 不知道有没有朋友可以解释
Metadata
Metadata
Assignees
Labels
No labels