15读《算法基础》有感——决策树

15读《算法基础》有感——决策树

学完本学期的《算法设计与分析基础》,想对“决策树”做进一步的了解,于是读了Rod Stephens《算法基础》里面的决策树内容。

决策树经常被用来模拟经一系列决定或条件来解决问题的情况。树的每一个分支代表一个单独的选择,叶结点代表一个完整的可得出最终结果的决定。我们的目标是找到可能的最佳选择或者树中最佳的叶结点。

决策树非常有用,它可以模拟各种情况,可以使用一系列步骤操作来产生一个解决方案。例如,将一堆物体分成相同重量两堆的过程,可以使用二叉树对其进行建模,树中的一条完整路径对应了一个完整地将物品分配为两堆的方案。我们的目标是寻找使两堆重量尽可能均匀的方法。

其实,在平常的实践中,我们也早已接触到了决策树,如投资问题、背包问题、图着色问题等。典型地,对于图着色问题,我们构建出一颗决策树,每一层代表图中某顶点的着色方案,满足图中连线相邻顶点着色不同,即满足树中相邻层连线结点颜色不同。最终,每一个叶结点都代表着一种着色方案,我们用给定的条件来衡量这个方案是否可行。

不幸的是,决策树通常非常庞大。例如,上述二叉树将N个物体分成有2^N个叶结点的两堆,因此搜索整个树几乎是不可能的。但基于决策树良好的结构,结合一些其他想法往往能产生不错的效益。

回溯和分支界限的思想自然而然与决策树挂上了钩。回溯法的核心思想是:用深度优先策略遍历整棵树,如果发现向下搜索不可能达到解节点,就回头,解向量在搜索过程中不断生成。分支界限的核心思想是:在进行到树的一个分支时,算法会在此分支能获得的最佳可能的结果,如果此最佳可能结果并未比已找到的最好解决方案有进步,算法会舍弃此分支并不会进行子树的计算,也就是回溯。

回溯和分支界限在决策树的基础上,增加了特定的剪枝策略,而剪枝策略通常能节省大量时间。然而,尽管回溯和分支界限总是避免搜索决策树的大部分,比穷举法快得多,可决策树十分庞大,因而两者仍旧相对较慢,它们只适用相对小的问题。
要搜索较大的树,要启发式方法。启发式方法不需要寻找最优可能的结果,但它会找到一个相对较好的结果。书中提到了四种启发式方法——随机搜索、改进路径、模拟退火和爬山。

随机搜索是最简单的,在每个结点只需选择一个分支随机地搜索,如果尝试了足够多的随机路径,如一次仅运行一个固定数的实验,就可以得到一个相当不错的解决方案。改进路径指如果选择了一个随机路径,然后对其进行优化,则可以让随机路径的选择更有效。模拟退火算法最初让一个解决方案发生大的变化,然后随着时间的推移,变化越来越小,最后尝试优化解决方案。爬山算法总是让该移动接近于一个更好的解决方案,或者可以将其质量排序,考虑移动的缩减范围等。

读完书中的内容,让我进一步认识到了决策树的优缺点、以及它适合解决什么样的问题,并对决策树和回溯法、分支界限之间的联系有了更深的把握。决策树是解决复杂问题的强大工具,但是它并不是解决所有问题的最佳方法,但在不知道一个问题更好的解决方法前,我们至少要考虑这样的方法。生活中的问题要复杂的多,数据要庞大的多,没有什么算法是万能的,但总有想法是适合的。

参考资料:《算法基础》 [美] 罗德·斯蒂芬斯(Rod Stephens) 著,王宏志 黎玲利 译,机械工业出版社

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值