【问题标题】:Iterative-deepening depth first search using limited memory使用有限内存的迭代加深深度优先搜索
【发布时间】:2009-06-28 14:31:19
【问题描述】:

这是Find first null in binary tree with limited memory的后续行动。

维基百科说,迭代加深深度优先搜索将找到最短路径。我想要一个将内存限制为 k 个节点并且访问树的次数最少的实现。

例如,如果我的二叉树是:

           0
    1             2
 3    4        5      6
7 8  9 10    11 12  13 14

而且我的内存限制为 5 个节点,而不是我的搜索顺序:

mem[0] = read node 0
mem[1] = read node 1
mem[2] = read node 2
mem[3] = read node 3
mem[4] = read node 4 //Now my memory is full.  I continue...
mem[3] = read node 5 //overwrite where I stored node 3
mem[4] = read node 6 //overwrite where I stored node 4

现在如果我下一次读到 7,我需要重新读 3。但是如果我下一次读到 14,那么我现在不需要重新读 3。如果解是 14,这将使我的算法更快一点!

我正在寻找一个通用的解决方案;适用于任何大小的内存和每个节点的分支数量的东西。

【问题讨论】:

    标签: depth-first-search iterative-deepening


    【解决方案1】:

    如果您的节点链接到它们的父节点,并且节点的子节点将始终以相同的顺序枚举,您可以跟踪您的步骤而无需保存它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-16
      • 1970-01-01
      • 2022-08-03
      • 2013-04-07
      相关资源
      最近更新 更多