`

启发式算法简谈(一)

阅读更多

转载自http://blog.csdn.net/aris_zzy/archive/2006/05/27/757156.aspx

 

引言:

解决实际的问题,要建模型,在求解。求解要选择算法,只有我们对各种算法的优缺点都很熟悉后才能根据实际问题选出有效的算法。但是对各种算法都了如指掌是不现实的,但多知道一些,会使你的选择集更大,找出最好算法的概率越大。现在研一,要开题了些点文献综述,愿与大家分享。

 

大自然是神奇的,它造就了很多巧妙的手段和运行机制。受大自然的启发,人们从大自然的运行规律中找到了许多解决实际问题的方法。对于那些受大自然的运行规律或者面向具体问题的经验、规则启发出来的方法,人们常常称之为启发式算法(Heuristic Algorithm)。现在的启发式算法也不是全部来自然的规律,也有来自人类积累的工作经验。

 

启发式算法的发展:

启发式算法的计算量都比较大,所以启发式算法伴随着计算机技术的发展,取得了巨大的成就。

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

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

60年代: 反思,发现以前提出的启发式算法速度很快,但是解得质量不能保证,而且对大规

        模的问题仍然无能为力(收敛速度慢)。

70年代:计算复杂性理论的提出,NP问题。许多实际问题不可能在合理的时间范围内找到全局最优解。发现贪婪算法和局部搜索算法速度快,但解不好的原因主要是他们只是在局部的区域内找解,等到的解没有全局最优性。

        由此必须引入新的搜索机制和策略………..

        Holland的遗传算法出现了(Genetic Algorithm)再次引发了人们研究启发式算法的

        兴趣。

80年代以后:

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

最近比较热或刚热过去的:

演化算法(Evolutionary Algorithm, 蚁群算法(Ant Algorithms), 拟人拟物算法,量子算法等。

各个算法的思想这就不再详细给出,为什么要引出启发式算法,因为NP问题,一般的经典算法是无法求解,或求解时间过长,我们无法接受。这里要说明的是:启发式算法得到的解只是近似最优解(近似到什么程度,只有根据具体问题才能给出). 二十一世纪的最大的数学难题NP=P,如果NP=P启发式算法就不在有存在的意义。

 

启发式算法的不足和如何解决方法:

(水平有限 仅仅提出6点)

启发式算法目前缺乏统一、完整的理论体系。

很难解决! 启发式算法的提出就是根据经验提出,没有什么坚实的理论基础。

由于NP理论,启发式算法就解得全局最优性无法保证。

NP=P有结果了再说吧,不知道这个世纪能不能行。

各种启发式算法都有个自优点如何,完美结合。

如果你没有实际经验,你就别去干这个,相结合就要做大量尝试,或许会有意外的收获。

启发式算法中的参数对算法的效果起着至关重要的作用,如何有效设置参数。

还是那句话,这是经验活但还要悟性,只有try again………..

启发算法缺乏有效的迭代停止条件。

还是经验,迭代次数100不行,就200,还不行就1000…………

还不行估计就是算法有问题,或者你把它用错地方了………..

启发式算法收敛速度的研究等。

你会发现,没有完美的东西,要快你就要付出代价,就是越快你得到的解也就远差。      (待续)

分享到:
评论

相关推荐

    简谈计算机应用基础教学.doc

    简谈计算机应用基础教学 简谈计算机应用基础教学 任务驱动教学法是一种建立在建构主义学习理论基础上的教学法,怎样分析计算 机应用基础教学? 一、引言 从事中职计算机教学多年来,发现了一个非常普遍的现象,即使...

    简谈jdk动态代理

    ### 简谈JDK动态代理 #### 一、引言 JDK动态代理机制是Java反射机制的一个重要应用,它允许程序在运行时创建一个实现了特定接口的新类实例,并且能够控制这些新类实例的方法调用行为。这种机制不仅提高了代码的灵活...

    欧柏泰克:.NET简谈面向接口编程

    欧柏泰克:.NET 简谈面向接口编程 面向接口编程是一种高抽象的开发模式,旨在将类与类之间的关系提升到一个更高的抽象层次。这种编程方式可以帮助开发人员更好地设计和实现软件系统,从而提高开发效率和质量。 在...

    简谈Windows下的反调试技术.pdf

    简谈Windows下的反调试技术 简谈Windows下的反调试技术 简谈Windows下的反调试技术 简谈Windows下的反调试技术 简谈Windows下的反调试技术 简谈Windows下的反调试技术

    班级管理方法简谈.doc

    "班级管理方法简谈" 班级管理是学校教育中的一项重要工作,直接关系到学生的学习和成长。在《班级管理方法简谈》中,作者卢海战提出了五点班级管理方法,旨在提高班级管理的效率和质量。 首先,作者强调了加强学生...

    简谈工程项目成本管理.doc

    简谈工程项目成本管理.doc

    简谈公司员工绩效承诺.doc

    简谈公司员工绩效承诺.doc

    简谈情思深度学习视野下初中英语项目式教学的路径.pdf

    【标题】: "简谈情思深度学习视野下初中英语项目式教学的路径" 【描述】: 本文探讨了在情思深度学习的视角下,如何在初中英语教学中运用项目式学习的方法,以提高学生的学习效果和综合素质。 【标签】: 深度学习 ...

    房地产开发流程简谈.pptx

    房地产开发流程简谈.pptx

    简谈英文自我介绍精选.doc

    简谈英文自我介绍精选.doc

    简谈ERP上机实验心得体会.doc

    简谈ERP上机实验心得体会

    计算机网络安全漏洞防范简谈.pdf

    计算机网络安全漏洞防范简谈.pdf

    手机成像技术简谈.doc

    【手机成像技术简谈】 手机成像技术是现代生活中不可或缺的一部分,随着智能手机的发展,越来越多的人选择使用手机作为日常拍照的主要工具。手机成像技术的关键在于如何在各种环境条件下捕捉到理想亮度的照片,这...

    简谈校园网络安全方案的设计.pdf

    简谈校园网络安全方案的设计.pdf

    简谈buntu之DIY发行版.pdf

    ### 知识点生成:简谈Ubuntu之DIY发行版 #### 1. 概述 随着二十一世纪的到来,个性化需求愈发明显,这不仅体现在日常生活中,也体现在技术领域,比如自定义操作系统(OS)。本文将详细介绍如何通过简单的步骤DIY一...

    简谈三菱PLC编程软件.docx

    【标题】:简谈三菱PLC编程软件 【描述】:本文主要探讨了三菱可编程逻辑控制器(PLC)的编程软件,包括不同系列的软件特点及其在编程、监控、调试和维护中的应用。 【标签】:互联网 cs 【正文】: 三菱PLC编程...

    简谈手机游戏移植j2me

    #### 一、引言 随着移动设备技术的不断发展,手机游戏市场也在迅速扩大。而Java 2 Micro Edition(J2ME)作为早期移动开发领域的重要平台之一,在那个时代占据着举足轻重的地位。本文将基于一篇关于手机游戏移植到...

    大众车系编码简谈.pdf

    《大众车系编码简谈》 编码在大众车系中扮演着至关重要的角色,它不仅是控制单元的灵魂,更是车辆功能多样化的关键。大众、奥迪、斯柯达、西亚特和宾利等品牌的汽车,因其丰富的编码系统,给人留下了“无控制单元不...

    简谈基于FPGA的千兆以太网

    今天我们来简单的聊一聊以太网,以太网在FPGA学习中属于比较高级的内容了,有些同学肯定会感觉以太网学习起来非常不容易。其实,我可以告诉大家,前期学习的基础打扎实了,后期的学习也没那么难。总之就是说难没那么...

Global site tag (gtag.js) - Google Analytics