估价函数:对需要最小步数的近似
可以估少,不可估多
IDA*
估价函数对迭代加深的优化
设当前限定深度d
若当前步数+估价步数>d,可剪枝
if st+f(x)>d return 0;
曼哈顿距离:|x1-x2|+|y1+y2|
八数码问题:估价:求每个数码到目标的曼哈顿距离和=f(n)
编辑书稿:每一次操作最多使3个人归位
当前步数k,当前maxx
maxx*2^k<n: return 0;
小木棍:
1、从大到小排序,尽可能放大的
2、棍的长度是总和的因数
3、找下一根拼的小木棍时用二分
4、某根拼不了,同长度的亦然
5、若某根小木棍作为开头,发现他拼不起来,则整根必然拼不起来
剪枝:
1、优化搜索顺序(先搜概率大的)
2、避免重复搜索(记忆化)
3、前瞻性预测
生日蛋糕:
void dfs(v,r,h,p,s)
/已用体积、上层半径、上层高度、当前层数、已有面积/
1.当前s+将来最小s>现有smin
2.当前v+将来最大V<目的v
3.当前v>目标v