如何计算有效分支因子?

How to calculate effective branching factor?

我想计算树的 有效分支因子 以评估我在 A* 搜索中的启发式算法的质量.

post here 对公式提供了很好的解释: N+1=1+B∗+(B∗)^2+⋯+(B∗)^d,出现在 AI: A Modern Approach(斯图尔特·罗素和彼得·诺维格的)书中。其中,N为搜索节点数,求解深度为 d 和 "b* 是深度为 d 的均匀树必须具有的分支因子 包含 N +1 个节点

我对书中给出的例子感到非常困惑。他们说:

For example, if A* finds a solution at depth 5 using 52 nodes, then the effective branching factor is 1.92.

他们是怎么得出这个值的?正如所解释的 here 该公式的近似值由 B∗≈N^(1/d) 给出。

将该公式与书中示例中的值一起使用,我得到 2.20 = 52 ^ (1/5),这与书中作为解决方案给出的值相去甚远(顺便说一句,没有提到是一个近似值)。

那么,我的问题是他们是如何得出 1.92 这个值的?我错过了什么?

方程 B∗ ≈ N^(1/d)N+1 = 1+B∗+(B∗)^2+⋯+(B∗)^d 的近似仅对 B∗ 的较大值是准确的。真正的公式是((B∗)^(d+1) - 1) / (B∗ - 1) = N+1。当 B∗ 不显着大于 1 时,近似值的误差可能非常高。

如果您在方程 53 = ((B∗)^(d+1) - 1) / (B∗ - 1) 中求解 B∗,例如使用 Newton's method 或其他数值求解器,则真实值(至 6 s.f)为B∗ ≈ 1.916729,或者课本上的B∗ ≈ 1.92