Now is best !

随笔分类 -  Algorithms

回溯法
摘要:一、回溯法算法框架回溯法是一种枚举状态空间中所有可能状态的系统方法,它是一个一般性的算法框架,应用时须具体问题具体分析。在回溯法的每一步,我们从一个给定的部分解a=(a_1, a_2, ... , a_k)开始,尝试着在最后添加元素来扩展这个部分解。扩展之后,我们必须测试他是否为一个完整的解——如果是的话,需要输出这个解、更新解的计数器或者其他任何你想做的事。如果仍不完整,我们必须检查这个部分是否有可能扩展成完整解。如果有可能,递归下去;如果没有可能,从a中删除新加入的最后一个元素,然后尝试该位置上的其他可能性。下面是代码,使用了一个全局的finished标志来允许提前终止回溯过程。bool 阅读全文

posted @ 2013-11-29 23:34 fang0703 阅读(362) 评论(0) 推荐(0)

动态规划01
摘要:DP技术广泛应用于许多组合优化问题,比如图的多起点与多终点的最短路径问题,矩阵链的乘法问题,最大效益投资问题,背包问题,最长公共子序列问题,图像压缩问题,最大子段和问题,最优二分检索书树问题,RNA的最优二级结构问题等。实践中的组合优化问题搜索空间往往比较大,由于中间有很多重复计算。DP技术通过划分子问题的边界,从小的子问题开始,逐层向上求解,通过子问题之间的依赖关系,有效利用前面已经得到的结果,最大限度减少重复工作,以提高算法效率。一、动态规划的设计思想1. 首先看下面这个多起点,多终点的例子:我们首先想到的是蛮力算法,也就是穷举每一个起点到每一个终点的所有可能的路径,然后计算每条路径的长度 阅读全文

posted @ 2013-10-18 16:48 fang0703 阅读(720) 评论(0) 推荐(0)

导航