最后,我设法用@Holt提出的B&B方法解决了这个问题。这是关键设置:
(0)在运行B&B算法之前,对所有项目进行分组取决于其依赖性。一个分区中的所有项目都与同一组中的所有其他项目具有权重相关性,而与其他组中的项目则不具有权重相关性。
B&B的设置:
(1)上限:假设当前项的权重 最小 ,即假设所有依赖项都存在。
(2)下限:假设当前项目具有 最大 权重,即假设所有依赖项都不存在。
(3)当前重量:计算实际当前重量。
通过与在步骤0中获得的组进行比较,可以在线性时间内完成所有上述计算。具体地说,当获得这些权重时,仅扫描当前组(当前项目所在的组)中的项目就足够了-
项目在其他组中,与当前组没有依赖性,因此不会更改当前项目的实际权重。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)