zoukankan      html  css  js  c++  java
  • 启发式算法(Heuristic Algorithm)

    背景:

      李航的《统计学习方法》一书中提到:决策树算法通常采用启发式算法,故了解之

    问题解答:

      时间有限,这里也只是将算法和启发式算法的区别和简单发展摘录如下: 

      一、算法和启发式方法之间的差别很微妙,两个术语的意思也有一些重叠。就本书的目的而言,它们之间的差别就在于其距离最终解决办法的间接程度:算法直接给你解决问题的指导,而启发式方法则告诉你该如何发现这些指导信息,或者至少到哪里去寻找它们。   

      二、发展

      40年代:由于实际需要,提出了启发式算法(快速有效)。

      50年代:逐步繁荣,其中贪婪算法局部搜索 等到人们的关注。

      60年代: 反思,发现以前提出的启发式算法速度很快,但是解得质量不能保证,而且对大规 模的问题仍然无能为力(收敛速度慢)。

      70年代:计算复杂性理论的提出,NP问题。许多实际问题不可能在合理的时间范围内找到全局最优解。发现贪婪算法和局部搜索算法速度快,但解不好的原因主要是他们只是在局部的区域内找解,等到的解没有全局最优性。由此必须引入新的搜索机制和策略…Holland的遗传算法出现了(Genetic Algorithm)再次引发了人们研究启发式算法的 兴趣。

      80年代以后:模拟退火算法(Simulated Annealing Algorithm),人工神经网络(Artificial Neural Network),禁忌搜索(Tabu Search)相继出现。

      最近比较热或刚热过去的:演化算法(Evolutionary Algorithm), 蚁群算法(Ant Algorithms), 拟人拟物算法,量子算法等。

      三、具体实现

      1.模拟退火算法

      2.遗传算法

    参考链接:

        http://www.jianshu.com/p/e7164b9837bb

        http://summerbell.iteye.com/blog/422398

  • 相关阅读:
    完全二叉树求结点左右孩子编号
    while(p)的作用
    数组和链表的区别
    Seqlist L 与 Seqlist *L的区别
    exit和return
    java EE 的页面获得路径
    如何理解asp.net的AutoEventWireup
    asp.net的服务器控件客户端空件的区别以及如何刷新页面不靠数据库数据停留在页面
    外部样式?内联样式?内部样式表?区别
    html 与 htm的区别
  • 原文地址:https://www.cnblogs.com/arachis/p/Heuristic_Algorithm.html
Copyright © 2011-2022 走看看