首页 > 编程知识 正文

遗传算法是用来干嘛的(遗传算法原理及应用pdf)

时间:2023-05-05 20:36:30 阅读:74408 作者:2692

本文研究了遗传算法遗传算法在哪里使用1 .优化问题2 .组合优化问题3 .机器人运动选择问题4 .特征选择遗传算法的原理和步骤1 .遗传密码2 .个体群马自行车运动中心的定义和初始化3 .适应度函数4 .选择进化

什么是遗传算法

在问题的最佳解中,有时问题不容易解决,有时没有凹凸,或者不能采用NP问题等暴力解。 此时一种想法是采用遗传算法。 遗传算法(Genetic Algorithm,GA )是模拟达尔文生物进化论自然选择和遗传学机制的生物进化过程计算模型,是通过自然进化过程寻找最优解的方法。 遗传算法中一个非常重要的概念是我们在生物学课上学到的基因。 在求解优化问题中,解是基因序列。 举个不太合适的例子,在相亲市场上,我们总是想选择最好的对象。 对方的基因是身高、财富、有无房间、脸部几分。 把对象的完美表现

m a x f (对象基因)=a身高b身高c脸值m a x f (对象基因) )身高b*体型c*脸值m a x f ()对象基因)=a身高b体型c脸值

其中对象的基因都有其约束值。 但是,人类有缺点。 随着人类的繁衍进化,会产生在社会、审美上越来越适应的后代,最终会有“身高、体型、脸”值达到上述公式最大的一代。

遗传算法用于什么样的地方遗传算法被用于很多领域,主要是一个很难解决问题的领域。 让我列举几个领域。

1 .优化问题下面这些约束问题,很难一见钟情,可以用遗传算法求解。 可查阅http://dy.163.com/v2/article/detail/ebahllkt 05313 S8 b.html

2 .组合优化问题背包问题,背包问题(Knapsack problem )是组合优化的NP完全问题。 问题是,一组物品每个物品都有自己的重量和价格,在限定的总重量中,该如何选择,才能使物品的总价格最高? 问题的名称来源于如何选择最适合特定背包的物品。

3 .机器人运动选题机器人移动与迷宫问题相似,机器人策略选择多,求解最优计算量大,可用遗传算法求解。 这里可以作为参考

3359 segment fault.com/a/11900007846563

4 .在某些特征选择的情况下,使用原始数据训练机器学习算法可能不是正确的选择。 该算法在接受原始数据训练时,需要进行特征挖掘,检测不同群体之间的差异。 但是,这需要大量的数据来自动化特征挖掘。 对于小数据集,数据科学家最好自己执行特征挖掘步骤,然后告诉机器学习算法使用哪个特征集。 因此,特征集的选择很困难。 遗传算法可以解决这个问题。

遗传算法的原理和步骤1 .基因编码首先要对问题的潜在解进行数字化编码,编码的方式有二进制编码、浮点编码、编码等。 他们各有优劣,根据问题的需要制定原则。 一般来说,二进制文件使用得很多。 编码方式请参考https://www.Jian Shu.com/p/AE 5157 c 26 af 9的讲义。 例如对于上述优化问题, 3.0=x 1

= 12.1 -3.0<= x_1<=12.1 −3.0<=x1​<=12.1这个问题,采用二进制编码。为避免使用小数点,可以将自变量放大,进行转换编码。

由此可见变量x1可以转换成二进制编码

2. 定义种群大小并初始化

种群中应包含一定数目的染色体。多个染色体构成一个种群。下表就是包含n个染色体个体的种群。

基因序列染色体个体000000000000000000 000000000000000染色体1000000000000000011 000000001100000染色体2000110000000000011 000010001100000染色体3…染色体n

种群一般由随机产生。

3. 适应度函数

适应度还是就是我们的优化目标,我们把种群里的每个个体带入到适应度函数里就可以得到个体的适应度。在这里,对编码过的基因需要解码然后带入到目标函数。若优化目标是求最大值,那么带入函数计算,结果越大代表适应度越强。

4. 选择进化

“物竞天择,适者生存”是遗传算法进化的核心思想,接下来要根据适应度来决定哪些个体被淘汰,哪些个体被自然选择而进化。自然选择方法有很多,包括轮盘赌选择,随机竞争选择,最佳保留选择,确定式选择等。这里简单介绍一下轮盘赌选择。
具体步骤如下:
(1)首先计算出所有个体的适应度总和Σfi。
(2)其次计算出每个个体的相对适应度大小fi/Σfi,类似于softmax。
(3)再产生一个0到1之间的随机数,依据随机数出现在上述哪个概率区域内来确定各个个体被选中的次数。
5. 交叉
经过选择进化过后的个体开始交叉繁衍。过程实际上是染色体基因相互交叉的过程,这里可以设定参数交叉率,来确定对交叉的选择。
(1)先对群体随机配对。
(2)再随机设定交叉点的位置。
(3)再互换配对染色体间的部分基因

6. 变异

设定另外一个参数“变异率”,通过修改染色体上随机位置的一个基因实现变异。

7. 多代进化,重复上述2-6步骤

通过设置迭代次数(一般是200~500次)或者条件,终止算法。获得最佳的种群。

遗传算法总结 优点

遗传算法主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,不需要确定的规则就能自动获取和指导优化的搜索空间,自适应地调整搜索方向。有良好的全局搜索能力,可以快速地将解空间中的全体解搜索出,而不会陷入局部最优解的快速下降陷阱。

缺点

1、遗传算法的编程实现比较复杂,首先需要对问题进行编码,找到最优解之后还需要对问题进行解码,
2、另外三个算子的实现也有许多参数,如交叉率和变异率,并且这些参数的选择严重影响解的品质,而目前这些参数的选择大部分是依靠经验.
3、没有能够及时利用网络的反馈信息,故算法的搜索速度比较慢,要得要较精确的解需要较多的训练时间。
4、算法对初始种群的选择有一定的依赖性,能够结合一些启发算法进行改进。
5、算法的并行机制的潜在能力没有得到充分的利用,

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。