现代启发式算法(一)——遗传算法

本文介绍了遗传算法的基本原理和步骤,包括染色体编码、初始群体生成、适应度计算以及复制、交叉和变异操作。通过解决旅行商问题(TSP)展示了遗传算法的应用,强调了问题转化、编码方式和适应度函数设计的重要性。遗传算法以其全局搜索能力和并行性,尤其适用于处理大规模优化问题。
摘要由CSDN通过智能技术生成

/**仅记录自己的学习历程**/

一、概述

在阅读本文之前,可以先阅读这两篇文章(文章1文章2),不需要理解理论部分,概览全文,着重看一下原文举的例子,有助于理解遗传算法的实现原理。

前面的理论部分看不懂没有关系,后面有很详细的实例说明,把例子看懂并自己动手敲个代码(源码我会上传,但一定要自己亲自去实现一下,这样才能对遗传算法的每一步以及参数的意义有深刻的认识),再回过头来看遗传算法的理论部分,相信遗传算法你就入门了。

 

标准遗传算法的步骤如下:

(1)构造满足约束条件的染色体。由于遗传算法不能直接处理解空间中的解,所以必须通过编码将解表示成适当的染色体。实际问题的染色体有多种编码方式,染色体编码方式的选取应尽可能的符合问题约束,否则将影响计算效率。

(2)随机产生初始群体。初始群体是搜索开始的一组染色体,其数量应适当选择。

(3)计算每个染色体的适应度。适应度是反应染色体优劣的唯一指标,遗传算法就是要寻求适应度最大的染色体。

(4)使用复制、交叉和变异算子产生子群体。这三个算子是遗传算法的基本算子,其中复制体现了优胜劣汰的自然规律,交叉体现了有性繁殖的思想,变异体现了进化过程中基因突变。

(5)重复步骤,直到满足终止条件为止。

   

从生物学角度简单来说,每一个染色体就代表一个个体,N个个体形成一个种群,计算每一个个体的适应度大小,从种群中挑选适应度大的个体,进行遗传、交叉、变异操作生成下一代种群。

从数学角度出发,上面的话翻译下来的意思就是说对某个待解决的问题先生成N个初始解,形成一个解集。计算每一个解的好坏,留下好的解,对留下的解进行一番倒腾,再生成一组解,不断循环,最后解集中的解趋近于理想值。

   

遗传算法是一种复杂度为O(1)的并行全局搜索算法。

与传统方法相比,遗传算法的优越性主要表现在首先,在遗传算子的作用下,遗传算法具有很强的搜索能力,能以很大的概率找到问题的全局最优解其次,由于它固有的并行性,能有效处理大规模的优化问题。

  

二、求解TSP问题

前面理论和优点说了一大堆,遗传算法到底该怎么用呢?下面通过解决TSP问题,我们来看看如何将问题转化,进而使用遗传算法求解(掌握思想最重要,用什么语言无所谓,我这里使用Matlab,不用担心不会Matlab,我会很详细的解释每一行

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值