首页 > 其他分享 >一种构造CVRP问题初始解的启发式方法

一种构造CVRP问题初始解的启发式方法

时间:2022-09-29 17:02:32浏览次数:79  
标签:节约 路径 小编 启发式 CVRP 顾客 初始

一种构造CVRP问题初始解的启发式方法_邻域


今天小编为大家讲解一种构造CVRP(容量受限的车辆路径问题)的启发式方法。什么是CVRP问题,不太了解的小伙伴可以看一下​VNS(变邻域搜索算法)求解CVRP问题​这篇文章。首先说一下思路,构造CVRP问题启发式方法,最著名的莫过于Clark and Wright在1964年提出的方法——节约算法

在这里我们以solomon算例种的c102算例为例进行讲解。

顾客数量为n,每辆车容量为200,0代表配送中心

下面小编详细介绍一下这种经典的启发式方法。

step1:假设有n辆车,每辆车只服务一个顾客,因此就产生n个独立的回路。

一种构造CVRP问题初始解的启发式方法_启发式方法_02

然后计算将顾客i 和顾客j合并到一条路径上,距离的减少量也就是所谓的节约值:一种构造CVRP问题初始解的启发式方法_搜索算法_03,找出最大节约值对应的那两个顾客和顾客j,然后将顾客和顾客j合并到一条路径上,如下图所示。

一种构造CVRP问题初始解的启发式方法_启发式方法_04


step2:当一条路径上有两个顾客时,比如说上图中的0120这种情况,再想将没有被融合的路径上的一个顾客融合到该路径时,一共有3种插入位置,也就是:0i12001i20012i0,需要计算这3种情况的节约值。如果一条路径上只有一个顾客,节约值还像上述方法计算即可。

step3:当一条路径上所有顾客的需求总量超过车的容量时,这时就需要开辟一条新的路径,然后按照step1和step2再次计算节约值,然后进行路径融合,直到所有的顾客都被分配到车辆来送货时,该算法就STOP了。

代码小编今天没有码完,下次再更新代码。

最后祝各位小伙伴圣诞节快乐!


小编的微博名也是“随心390”,各位有什么问题的话可以微博私信我,我会及时回复的。

标签:节约,路径,小编,启发式,CVRP,顾客,初始
From: https://blog.51cto.com/u_15810430/5723539

相关文章

  • VNS(变邻域搜索算法)求解CVRP问题
    最近小编在学(xiao)习(xi)CVRP问题,相信小伙伴们CVRP问题并不陌生,没错CVRP问题就是容量受限制的车辆路径问题,容量受限指的是每辆车的容量都有限制,我们对问题的目标进行设定,本......
  • 淘宝的样式初始化代码
    body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{margin:0;padding:0;}bo......
  • Timer定时器在项目初始化的时候注入service为null
    问题在自定义的timer中需要注入业务类接口(service)完成相应的操作,但是在通过@Autowired注入后为null,导致在执行业务操作的时候报空指针错误。源代码需要做一个定时更新数......
  • 三种初始化
    三种初始化静态初始化动态初始化数组的默认值初始化数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被......
  • Oracle 12C R2-新特性-新的初始化参数
    12.2中新引入的初始化参数ALLOW_GLOBAL_DBLINKSALLOW_GROUP_ACCESS_TO_SGAAPPROX_FOR_AGGREGATIONAPPROX_FOR_COUNT_DISTINCTAPPROX_FOR_PERCENTILEASM_IO_PROCESSESAUTOTAS......
  • 结构体指定初始化
    结构体指定初始化应该是C和C++都有的一个语法。这个语法在ffmpeg中被大量使用。 1.应用场景比如ffmpeg中AVInputFormatff_mov_demuxer={.name=......
  • Go语言版黑白棋(七):初始化棋子、改变角色
    功能说明启动程序时,棋盘默认有黑白棋各2枚,落子时,黑白子交替下(角色切换)原理说明示例代码packagemainimport("fmt""os""unsafe""github.com/mattn/go-gtk......
  • C++11:初始化
    类内成员初始化classMem{public:Mem(inti):m(i){}//初始化列表给m初始化intm;};classGroup{public:Group(){}private:intdata=1;//使用"=......
  • [答疑]序列图如何表示“审核不通过则回到初始步骤”的循环流程
    xieh2021-1-1318:09潘老师您好,请教一个问题我在制作签订合同用例的业务序列图。业务要求:地市合同起草人起草合同,地市、省分、总部三级领导审批。每级审批不通过,都要回到起......
  • 7、caffe之train函数片段之初始网络开始
    当运行下列命令的时候ubuntu@ubuntu:~/caffe$./examples/mnist/train_lenet.sh这是脚本train_lenet.sh命令行(如果只有cpu需要修改这个文件的lenet_solver.prototxt,选择......