算出有解的1/2的排列的最短路径中最大值就可以作为迭代加深算法的MAX_DEPTH了。
或许我的这句话比较难理解,形式化描述就是:
设集合A是0,1,2,3,4,5,6,7,8这9个元素的全排列集,goal是A的一个元素,f是对A中元素的八数码棋盘变换。
1.函数g(x)定义为x进行f变换为goal的最少变换次数,x∈A
2.集合B定义为,{x |x∈A,存在g(x),即g(x)不为+∞}
3.集合C定义为,{y | y=g(x),x∈B}
如果MAX_DEPTH取C中的最大值,那么使用迭代加深搜索时如果有解必然可以搜索到最优解。