车辆路径规划问题

启发式算法

启发式算法:一个基于直观或经验构造的算法,在可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一个实例的一个可行解,该可行解与最优解的偏离程度一般不能被预计

用途

  • 一般用于解决NP-hard问题,其中NP是指非确定性多项式
    常用的算法有:模拟退火算法(SA)、遗传算法(GA)、蚁群算法(ACO)、人工神经网络(ANN)
  • NP Hard问题,可行时间内在各空间中找到全局最优解的可能性很小,需要使用近似算法(Approximate Method)在有限时间内寻找一个近似最优解

近似方法

  • 近似方法分成:近似算法启发式算法
    近似算法,可以得到一个有质量保证的解,而启发式算法可以在可行时间内找到一个相对比较好的解,但对解的质量没有保证

遗传算法

  1. 通过模拟自然进化过程(达尔文生物进化论)搜索最优解的方法,遗传操作包括:选择、交叉和变异。
  1. 通过参数编码、初始群体的设定、适应度函数、遗传操作设计、控制参数设定以一种群体中的所有个体为对象,利用随机化技术指导对一个被编码的参数空间进行高效搜索

在这里插入图片描述

  • 直接对结构对象进行操作,不存在求导函数连续性的限定
    具有内在的隐并行性和更好的全局寻优能力
  • 采用概率化的寻优方法,不需要确定的规则就能自动获取和指导优化的搜索空间,自适应地调整搜索方向

遗传算法应用

相比二进制编码的暴力穷举,遗传算法属于运筹学

染色体交叉

两个相互配对的染色体按某种方式相互交换其部分基因,从而形成两个新的个体。

  • 单点交叉
  • 两点交叉与多点交叉
  • 均匀交叉
  • 算术交叉

基因突变

  • 基本位变异,对个体编码串中以变异概率、随机指定的某一位或某几位仅因座上的值做变异运算。
  • 均匀变异,用符合某一范围内均匀分布的随机数,以某一较小的概率替换个体编码串中各个基因位上的原有基因值
  • 边界变异,随机的取基因座上的两个对应边界基因值之一去替代原有基因值
  • 非均匀变异:对原有的基因值做一随机扰动,以扰动后的结果作为变异后的新基因值
  • 高斯近似变异:进行变异操作时用符号均值为P的平均值,方差为P平方的正态分布的一个随机数来替换原有的基因值

工具

  • scikit-opt算法工具:

  •   算法库,对遗传算法、粒子群算法、模拟退火、蚁群算法较好的封装
      文档:https://scikit-opt.github.io/scikit-opt/#/zh/
      pip install scikit-opt
      from sko.GA import GA, GA_TSP
    
  • Geatpy工具:

  •   一个高性能实用的Python遗传算法工具箱,提供一个面向对象的进化算法框架
      提供了遗传和进化算法相关算子的库函数,如初始化种群、选择、交叉、变异、重插入、多目标优化非支配排序等,并且提供进化算法模板来实现多样化的进化算法
    

遗传算法与神经网络

遗传算法是一种最优化的算法,可以参与网络参数的学习,网络结构的设计等

网络参数学习

假设神经网络有100个随机权重集合,评估对应每个权重集合的神经网络。基于评估,只保留最佳的20个权重集合,然后从这20个集合中进行随机选择,取代剩余的80个权重集合(应用简单的交叉和突变)
在这里插入图片描述

网络结构学习

增强拓扑神经演化(Neuroevolution of Augmenting Topologies,NEAT)是一种基于遗传算法演化新型神经网络的方法
http://www.cs.ucf.edu/~kstanley/neat.html
在这里插入图片描述

案例练习

自动钻孔机路线规划

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值