除了太多重复和低效率以外,穷举搜索还有一个根本的问题。如果你做过一些实验,会发现在大部分状态下,汉诺塔问题都有三种移动的可能性,即分支因子为3。不同的问题对应着不同的分支因子。比如,围棋的分支因子为250,这就意味着在游戏给定的任意状态下,每个玩家约有250种落子的可能性,当然,这只是平均值。所以,我们来看看搜索树随着分支因子能增长到多大——对确定了分支因子数的搜索树,在不同层级有多少种状态。以围棋为例[24]:
·搜索树的第一级有250种状态,因为在游戏棋盘的初始状态下,可以有250种新出现的状态。
·第二级搜索树有250×250 = 62 500种状态,因为我们必须考虑到250种落子选择后,每一种状态都有250种可能出现的新状态。
·第三级搜索树有62 500×250,大约有1560多万种状态。
·以此类推,第四级搜索树就会有大约39亿种状态。
到此为止吧,在我撰写这篇文章的时候,一台普通的台式机已经没有足够的内存来存储四级围棋搜索树的状态了。而通常一局围棋游戏要走大概200步,在围棋搜索树中存储200步走棋的搜索树状态数目,那是一个大到你我都无法想象的天文数字,它比我们宇宙中所有原子的数目还大几百个数量级。无论对传统计算机技术做出怎样的改进,它们都无法完成这样可怕的搜索树。