Scala PriorityQueue 冲突解决?
Scala PriorityQueue conflict resolution?
我正在从事一个使用 PriorityQueue 和 A* 的项目。经过大量挖掘后,我认为我在搜索试图解决我的问题时遇到的部分问题在 PriorityQueue 中。我猜想当它生成得分相等的节点时(例如一个较早的节点和一个较晚的节点),它会选择较早的节点而不是最近生成的节点。
有谁知道如果分数相同,PriorityQueue 是否优先考虑最新的节点?如果没有,我怎样才能做到这一点?
谢谢!
PriorityQueue
使用堆来 select 下一个元素。除此之外,它不保证元素的排序方式。如果节点按添加顺序排序对您很重要,您应该记录添加的项目数量并按元组 (priority, -order)
.
确定优先级
如果你做任何其他事情,即使它现在碰巧可以工作,它也可能随时中断,因为 API 不保证它如何从相等的元素中进行选择。
我正在从事一个使用 PriorityQueue 和 A* 的项目。经过大量挖掘后,我认为我在搜索试图解决我的问题时遇到的部分问题在 PriorityQueue 中。我猜想当它生成得分相等的节点时(例如一个较早的节点和一个较晚的节点),它会选择较早的节点而不是最近生成的节点。
有谁知道如果分数相同,PriorityQueue 是否优先考虑最新的节点?如果没有,我怎样才能做到这一点?
谢谢!
PriorityQueue
使用堆来 select 下一个元素。除此之外,它不保证元素的排序方式。如果节点按添加顺序排序对您很重要,您应该记录添加的项目数量并按元组 (priority, -order)
.
如果你做任何其他事情,即使它现在碰巧可以工作,它也可能随时中断,因为 API 不保证它如何从相等的元素中进行选择。