COMPUTER ALGORITHM
最大利益优先
——分支限界算法
对评价函数的讨论
2 n
分支限界法总耗时为O(n 2 ) ,它与回溯法、动态规划法等在
时间复杂性上没有本质的区别。
然而,如果评价函数选择得好,采用分支限界法可能有一个
小得多的常数因子。
好的评价函数应该有一个尽可能高的下界估计和一个尽可能
低的上界估计,从而使得搜索空间能够得到有效的压缩,从
而提高效率。
在理论上可以证明好的评价函数所搜索的结点不会多于坏的
评价函数所搜索的结点。
分支限界法小结
分支限界法是最佳优先(包括广度优先在内)的搜索
1
法,也是一种较为通用的算法。
其搜索的控制是采用有序的队列,即每次优先搜索评价函
2
数值最小的结点,从而希望较快地找到最佳的路径或排列。
与其它算法相比,时间复杂性无本质区别。但好
3
的评价函数可有小的常数,提高了效率。
评价函数应该能正确有效地压缩状态空间。 4
单源最短路径
在下图所给的有向图G中,每一边都有一个非负边权。
要求图G的从源顶点s到目标顶点t之间的最短路径。
7 3
a d g
3
2 3 2 3
3 9 3 2
s b e h t
4 2 1 5 l 2
c 2 f 1 i 2
剪枝策略
在算法扩展结点的过程中,一旦发现一个结点的下界不小
于当前找到的最短路长,则算法剪去以该结点为根的子树。
在算法中,利用结点间的控制关系进行剪枝。从源顶点s
出发,2条不同路径到达图G的同一顶点。由于两条路径的
路长不同,因此可以将路长长的路径所对应的树中的结点
为根的子树剪去。