广度优先搜索算法中队列的预期大小

问题描述

在未加权图上执行的最常见和最简单的操作之一是 Breadth-first search

留给实际实现的算法的一个方面是如何实现队列,尤其是它应该具有什么容量。具体来说,对于具有 N 个节点的给定图,如果分配一个容量为 N 的队列,则肯定不会有时间需要重新分配队列,因为它已达到容量,但如果 N 值足够高,这可能会导致过多的 RAM 需求,如果图的结构导致队列很少使用(例如,充满卷须的丝状图),特别是如果 BFS 只有返回最大长度(如计算 graph diameter 所需)或总长度(如计算 Closeness centrality 所需)。

基于给定图的某些属性(即使有预处理),是否有关于 BFS 算法中队列的预期最佳大小的好论文?

如果有的话,它是否可以推广到 Dijkstra 等上下文中的其他最短路径树算法?

为了让我的具体实现细节更加具体,我正在研究使用 VecDeque 作为队列的 Rust 算法。我不知道为了 BFS 的目的还有什么更好的队列,因为不需要排序等......

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)