启发式算法的简要总结

学生一枚,在网上学习的过程中发现CSDN、博客园、知乎上的一些文章被一些人抄来抄去,个人觉得很没意思;有些代码对初学者很不友好,因为门槛很高,例如,我本意是要学习某个库的接口函数A,结果搜到的代码给我介绍其他函数B、函数C、函数D,结果我需要把函数ABCD全部学一遍才能get到我想学习的函数A,这无形之中就加重了我的学习负担;有些讲解也逻辑不够清晰,让初学者摸不着头脑。

希望总结一下学习过程中的注意事项以及感悟,帮助和我一样的其他初学者少踩一些坑,因为坑真的很多。

简要总结一下启发式算法的相关内容,以开启第一篇博文。

一. 基本定义

启发式算法heuristic algorithm,heuristic这个单词本意就包括“启发”“探索”等含义,相应的,启发式算法本质可以理解为是一种试探性的搜索方法,也可以理解为通过随机性不断的找到一个问题的更好的解。

二. 相关名称

相关的叫法包括:智能优化算法、仿生算法、近似算法、演化算法、群体智能算法等等。(注意,是相关的叫法,不是完全等同的叫法)

这些名称不一定有准确的范围,有学术化的叫法也有口语化的叫法,多数时候这些名称的含义相同,所以不要纠结算法的名称,理解算法的原理最重要

三. 需要注意的地方:

1. 启发式算法只是解决问题的一种框架

也可以说是一种套路,启发式算法需要联系具体问题,问题的建模、搜索过程与启发式算法框架合理的结合,才能体现出比较好的效果。(结合越紧密,搜索效率也就越高,效果也就越好。对于这一点的理解只有实践后才能深入体会,刚接触启发式算法的人,可能成功让算法跑起来并且通过迭代不断找到更好的解就已经兴奋不已了,我当初就是这样)

2. 启发式算法的各种新式命名层出不穷,掌握经典算法才是最关键的

接触过博士毕业论文答辩,论文评审专家的意见包含这么一条,大概意思是,“阿猫阿狗”各种算法很多,你的算法和他们有什么区别或者改进。“阿猫阿狗”这个词我记的特别清楚,说明现在各种新式命名有些泛滥了。

目前,很多算法可以认为是换汤不换药。对于应用启发式算法的应用者来说,掌握经典算法并理解其思路就行了,其他很多算法都是衍生出的算法,意义不是太大。

经典的五种方法包括:遗传算法,粒子群算法,蚁群算法,禁忌搜索,模拟退火。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值