Algorithm 广度优先搜索的时间和空间复杂性

Algorithm 广度优先搜索的时间和空间复杂性,algorithm,time-complexity,breadth-first-search,space-complexity,Algorithm,Time Complexity,Breadth First Search,Space Complexity,我只是想检查一下我对Russell和Norvig给出的算法和计算的理解是否正确 我用传教士和食人族作为问题来测试时间和空间的复杂性。计算深度没什么大不了的。我总是在深度11处找到解决方案。我无法理解的是分支因子 Russell和Norvig第82页说: “在探索的集合中将有O(b^(d-1))节点和O(b^d)节点 在边境……” 我的程序显示了探索集中的8502节点和边界中的14006节点 我的思维过程是这样的:根据Russell和Norvig,如果我取节点数并取d根,我应该得到分支因子。现在我

我只是想检查一下我对Russell和Norvig给出的算法和计算的理解是否正确

我用传教士和食人族作为问题来测试时间和空间的复杂性。计算深度没什么大不了的。我总是在深度11处找到解决方案。我无法理解的是分支因子

Russell和Norvig第82页说:

“在探索的集合中将有
O(b^(d-1))
节点和
O(b^d)
节点 在边境……”

我的程序显示了探索集中的
8502
节点和边界中的
14006
节点

我的思维过程是这样的:根据Russell和Norvig,如果我取节点数并取
d
根,我应该得到分支因子。现在我不知道我的想法是否正确。我刚想到的

因此,我取
8502
的第10(d-1)根,得到
2.47
(大约),取
14006
的第11(d)根,得到
2.39
(大约)。所以我的结论是,分支因子b大致是
2.43


我是不是说对了,还是完全错了?这是我现在正在做的事情之一。但是我很想知道我是对是错。

你基于探索集和前沿集对分支因子的估计基本上是正确的。对于小深度,对于边界集,分支因子的估计比探索集更合理,因为探索集包括过去访问过的所有顶点,更像
1+b+…+b^(d-1)
而不仅仅是
b^(d-1)
。请注意,随着探索集的增长,您将拥有越来越多已探索的相邻顶点,因此边界集的近似值将随着深度的增加而变得越来越差。在极端情况下,当您浏览完所有顶点后,您将发现边界集不包含任何顶点,因此将
b^d
近似为0。但是无论如何,您的估计过程看起来不错,并且在边界集和探索集之间给出了高度一致的结果。您可能应该单独使用边界集来估计分支因子