启发式算法(heuristic algorithm):相对于最优化算法(求得该问题每个实例的最优解)提出的。
启发式算法定义:一个基于直观或经验构造的算法,在可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一个实例的一个可行解,该可行解与最优解的偏离程度一般不能被预计。
通俗的说:启发式算法是指在一个随机的群体寻优过程中,个体能够利用自身或者全局的经验来制定各自的搜索策略。相比最初的穷举迭代搜索或者随机搜索,一个显著的特点就是个体能够基于经验或者个体间经验交流改变搜索方式,是一种有目的或者有策略的方法。再通俗一点就是,咱们都生活在某个小区,你看到你邻居每天晚上摆地摊赚钱,你受到启发也每天去同样的地方摆地摊赚钱,然后越来越多的人发现摆地摊赚钱,就都出来摆地摊了,就这么个道理。
近几年比较活跃的算法有如下:
仿动物类的算法:粒子群优化,蚂蚁优化,鱼群算法,蜂群算法等;
仿植物类的算法:向光性算法,杂草优化算法,等等;
仿人类的算法有:和声搜索算法是较好的算法;
近年开始研究情感计算的人较多。
实际应用时差分进化算法较有优势。
关于粒子群算法,理论成熟,应用广泛。
启发式,本质上是一种贪心策略,这也在客观上决定了不符合贪心规则的更好(或者最优)解会错过。防止早熟收敛是元启发算法的研究热点。