# CVRP-GA
基于C++,使用遗传算法解决物流运输中的VRP问题
##1.导言
当今社会,随着像阿里,京东这样的电商巨头的崛起,我国的物流行业也变得空前的繁荣。特别是诸如淘宝双十一的日子里,更是达到了全民网购这种盛况。而随之而来的则是物流的运输问题。物流公司为了获得更高的利益,目标是在完成物流任务的条件下,通过合理的运输路径安排,使得使用最少的货车,运输的总里程也最少,货车利用率更高。而这也就是经典的CVRP问题。由于该问题为NP-hard问题,使用传统的算法较难解决,所以这里我们使用启发式智能算法中的遗传算法,去解决这个问题。
##2.实验过程
####在使用遗传算法解决CVRP问题时,步骤如下:
1. 输入要选择的数据文件,种群大小,遗传进化的代数。
2. 读取数据文件,得到每个客户点的坐标、运载需求量,以及货车最大装载量。
3. 按种群大小与客户数量,初始化种群。假设种群大小为100,有75个客户,初始化的方式为产生一个100 * 75的二维vector,然后对这100条染色体,每一条都产生一个1~75随机排序的数列。
4. 算出种群中每一条染色体的适应度。具体方法是,从左往右遍历染色体,并在里面插入0(代表原点仓库)。每两个0之间,则代表一趟货车的运输路线。而插入的方法是多个0之间的距离尽量远,让每一趟货车经过的点尽量多,直至再加就要超过货车的载重。
5. 根据每条染色体的适应度,求每条染色体累积概率。产生0到1之间的一个随机数,对轮盘转动种群大小的次数,选择下一代(或者转动种群大小-1的次数,最后一条染色体固定为当前最高适应度的染色体)。
6. 进行遗传操作。与传统的交叉和变异的遗传方式不同,这里使用一种称为Inver- Over算子的遗传操作。具体步骤是设定一个变异概率p 。先在染色体中随机选择一个起始客户C,如C=5,。产生一个随机小数,若小于p,则第二个客户C’来自同一个个体的另外一个任意客户,如C’ =2,然后客户C与C’之间的部分被导致(不包括城市C);若小数大于p,则从种群中任意再选择一个染色体,找出C=5在该个体中,下一个位置客户的值,如下一个客户为9,则回到原来的个体,C’=9,客户5到9之间被导致(不包括C=5)。这种遗传的思路在于,它能尽量利用种群中获得的信息,来指引个体的变异或者导致操作,最后使得遗传算子比较高效。
7. 判断当前迭代的代数。若迭代次数已够,则进入第8步,否则回到第4步。
8. 输出迭代中,最高适应度染色体的客户排列情况,以及该染色体的运输花费。
##3. 程序运行
####运行程序时,需要输入以下三样数据:
1.所使用的数据文件名字,如:"../tc/tai75a.dat"
2.种群大小,如: "300"
3.遗传迭代的代数,如:"10000"
程序运行的时间,取决于种群大小与迭代代数的大小,需要耐心等候。最终的最优解,将在程序最后输出。
##4.结果分析
####在对第一个数据样本”tai75a.dat”进行测试时,采用种群大小为300,迭代次数为10000代得到最少花费为1955,目标值是1618,大概有300的差距;而当把种群大小设到500,然后迭代20万代,得到最少花费为1660,目标值是1618,大概只有40的差距。
![Alt text](./img/image1.png)
![Alt text](./img/image2.jpg)
没有合适的资源?快使用搜索试试~ 我知道了~
基于遗传算法解决物流运输中的VRP问题(开发源码+项目说明+文档)(C++).zip
共21个文件
dat:13个
png:2个
md:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 22 浏览量
2024-03-10
15:44:57
上传
评论
收藏 704KB ZIP 举报
温馨提示
1、该资源内项目代码经过严格调试,下载即用确保可以运行! 2、该资源适合计算机相关专业(如计科、人工智能、大数据、数学、电子信息等)正在做课程设计、期末大作业和毕设项目的学生、或者相关技术学习者作为学习资料参考使用。 3、该资源包括全部源码,需要具备一定基础才能看懂并调试代码。 基于遗传算法解决物流运输中的VRP问题(开发源码+项目说明+文档)(C++).zip 基于遗传算法解决物流运输中的VRP问题(开发源码+项目说明+文档)(C++).zip 基于遗传算法解决物流运输中的VRP问题(开发源码+项目说明+文档)(C++).zip 基于遗传算法解决物流运输中的VRP问题(开发源码+项目说明+文档)(C++).zip 基于遗传算法解决物流运输中的VRP问题(开发源码+项目说明+文档)(C++).zip 基于遗传算法解决物流运输中的VRP问题(开发源码+项目说明+文档)(C++).zip 基于遗传算法解决物流运输中的VRP问题(开发源码+项目说明+文档)(C++).zip 基于遗传算法解决物流运输中的VRP问题(开发源码+项目说明+文档)(C++).zip
资源推荐
资源详情
资源评论
收起资源包目录
基于遗传算法解决物流运输中的VRP问题(开发源码+项目说明+文档)(C++).zip (21个子文件)
project_code_0628
doc
用遗传算法解决CVRP问题.doc 151KB
src
cvrp.cpp 8KB
readme.txt 238B
img
image2.png 52KB
image2.jpg 80KB
image1.png 25KB
bin
cvrp.exe 1.92MB
README.md 4KB
tc
tai150b.dat 7KB
tai150d.dat 7KB
tai75b.dat 4KB
tai100d.dat 5KB
tai100c.dat 5KB
tai75d.dat 4KB
tai150c.dat 7KB
tai75a.dat 4KB
tai100a.dat 5KB
tai75c.dat 4KB
tai385.dat 20KB
tai150a.dat 7KB
tai100b.dat 5KB
共 21 条
- 1
资源评论
辣椒种子
- 粉丝: 4065
- 资源: 5733
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 编译原理课程设计,Python基于有穷自动机的类 C 语言词法分析器源代码+使用说明
- XC7Z010CLG-400 HDMI文字叠加实验完整工程
- 利用自定义注解与Hutool库对SpringBoot接口返回数据进行高效脱敏处理
- 传媒行业研究报告:聚焦AI辅助创作与AIGC能力的产品化进展 - 2023年上半年值得买(300785)公司业绩点评
- 本科毕业设计-基于WIFI网络的车间设备监测与控制系统+项目源码+文档说明
- 基于java swing实现的银行帐目管理系统(源代码+论文)
- MySQL安装手册:适用于Windows、Linux及macOS系统的技术指导
- 【java毕业设计】程序设计基础课程辅助教学系统(springboot+vue+mysql+说明文档).zip
- 【java毕业设计】餐饮连锁店管理系统的设计与实现(springboot+vue+mysql+说明文档).zip
- 【java毕业设计】博物馆文博资源库系统设计(springboot+vue+mysql+说明文档).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功