有没有一种不太复杂的方法来实现具有两个标准的优先队列?该队列使用两个比较器创建,并提供(除
请注意,它与这些 two questions 没有任何共同之处。
动机
我的用例是分支限界优化。当您有无限时间时,通过扩展具有最佳边界的候选项可以证明是最佳的。假定无限的时间是可证明错误的。
严格遵循此策略通常会导致在截止日期到达时根本没有解决方案。一个简单的对策是首先将搜索引导到解决方案,然后再切换到最佳边界策略。这相当不令人满意,因为找到的第一个解决方案可能质量很低。
这就是为什么我想使用双标准队列:在一个步骤中,扩展最佳边界候选者,在另一个步骤中,根据某些启发式方法扩展“最佳外观”候选者。
另一个可能的用途是帕累托优化。
add
之外)poll1()
和poll2()
操作,其中每个操作根据相应的比较器删除并返回最小元素。请注意,它与这些 two questions 没有任何共同之处。
动机
我的用例是分支限界优化。当您有无限时间时,通过扩展具有最佳边界的候选项可以证明是最佳的。假定无限的时间是可证明错误的。
严格遵循此策略通常会导致在截止日期到达时根本没有解决方案。一个简单的对策是首先将搜索引导到解决方案,然后再切换到最佳边界策略。这相当不令人满意,因为找到的第一个解决方案可能质量很低。
这就是为什么我想使用双标准队列:在一个步骤中,扩展最佳边界候选者,在另一个步骤中,根据某些启发式方法扩展“最佳外观”候选者。
另一个可能的用途是帕累托优化。