MATLAB编写遗传算法求解vrp问题
vrp问题是有载重限制的物流配送线路优化问题,详细可表述为:有1个配送中心,向m个客户点送货,从配送中心出发,货物不足时回配送中心装货,配送完成后回到配送中心。第i个客户点的需求量为gi(i=1,2,3,…,m),由配送中心派出载重量分别qn的n辆车来承运。将货物运往各个客户点,最后回到配送中心。已知gi ≤qn,要求合理安排车辆路线,在满足各客户点需求和车辆载重约束的前提下,使得车辆的总行程最短。
假设如下:
(1)每辆车所装载的货运总量不得超过车的最大承载量;
(2)每个客户点只能够由一辆车服务一次;
(3)每个客户点的需求量小于车辆的载重;
(4)必须满足用户提出的到货时间要求。
根据以上假设建立数学模型:
其中:
(1)式为目标函数,cij 表示从客户点i到客户点j的运输成本, xijs表示车辆s由点i驶向点j,当事件发生时取值1,否则取值O;
(2)式和(3)式中,yis表示客户点i的货运任务由车辆s来完成。当事件发生时取值1,否则取值0,yjs表示客户点j的货运任务由车辆s来完成。当事件发生时取值1,否则取值0;
(4)式中,qi表示由车辆s的最大承载量,每辆车装载的货运总量不得超过本辆车的最大承重量;
(5)式保证了每个客户点仅能由一辆车完成,而所有运输任务则由k辆车协同完成。模型说完,上代码:
其他子函数包括
crossGA.m
decodingFun.m
drawroute.m
myfun.m
mutationGA.m
select.m
ranking.m等
程序结果:
参考文献:
[1]聂艳芳. VRP的数学模型及算法分析[J]. 山西电子技术, 2010(1):3.