课题名称:遗传算法求解带容量限制的物流配送车辆路径问题CVRP
版本时间:2023-03-12
代码获取方式:
QQ:491052175
VX:Matlab_Lover
模型描述:
设某配送中心有K辆车,每辆车的最大载重量为CarLoad,需要对CityNum个客户城市
进行运输配送,每辆车从中心车场出发给若干个城市配送,最终回到配送中心。
每个城市的需求量为demand(i),且demand(i)<CarLoad。记配送中心编号为0,
各城市编号为i=1,2,3……CityNum.各城市及配送中心之间的距离为distance。
求满足车辆最少,车辆行驶路程最短的运送方案。
算法流程
第一步:导入实际问题数据,根据城市数量进行编码
第二步:初始化种群并计算适应度值,这里的适应度值是车辆行驶的路径长度
第三步:选择适应度值高的染色体(个体,在粒子群里叫粒子)
第四步:对该染色体进行选择、交叉、变异、进化逆转操作得到新的种群
选择:从旧群体中以一定的概率选择个体到新群体中
交叉:采用部分映射杂交,确定交叉操作的父代,将父代样本两两分组
变异:变异策略采取随机选取两个点,将其对换位置
进化逆转:改善局部搜索能力,在上述操作后引进连续多次的进化逆转操作,这里的进化是指逆转算子的单方向性,即只有经逆转后,适应度值有提高的才接受下来,否则逆转无效。
第五步:重复上述迭代次数直至满足终止条件
第六步:解码得到最终结果,计算最后一代种群中每个粒子的适应度值,导出适应度值最小的路径。
特殊说明:
VRP问题算是TSP问题的进化版,不仅仅需要遍历所有城市,还需要考虑汽车的载重,城市的配送需求。
Matlab仿真结果:
遗传算法求解CVRP的仿真结果:
行驶距离随着迭代次数的变化曲线:
GA算法求解CVRP问题的配送路线图: