求教 类似于背包问题
有一定数量的物品(可重复),装到容量一定的背包中。如重量分别为{10,10,9,8,8,7,5,3,3,2}的物品,要装到承重量为14的背包中,假定背包数量足够,要把所有物品都装上,而且要求背包中的冗余最少。这跟用最少的背包是否一致? 用动态规划算法能实现吗??
[解决办法]
背包的数量最少,当然也就意味着总体冗余最少,这二者是一致的。
难点在于这是个NP难的问题,尤其是数据量大一些的时候,还是尽量考虑一些近似算法。
[解决办法]
不光是增加背包,还牵扯到划分的问题。
如果数据量不大,可以回溯剪枝。
如果数据量再大,只能是遗传、模拟褪火之类的近似算法了,应该有专门关于这类问题的论文~
一模一样的问题:
http://topic.csdn.net/u/20080430/11/2205274b-62a2-4c41-95d2-c4448006cdb5.html
[解决办法]
那个不是最优解,充其量算是一种近似解~
[解决办法]
装箱问题.
[解决办法]
程序解码的时候无非是进行宽搜,把不符合要求的分支裁去,裁到最后就得到了结果。
n个数的排列只有n!种,因此不是说随便写出一个所谓的“编码”就是合法的。
至于你说的论文中怎样去规避这种情况,只有你慢慢去看了,别人也无从猜起~