基于遗传算法的CVRP建模求解(Python)

本文章已经生成可运行项目,


带容量约束的车辆路径优化问题,CVRP,对一系列装卸货点进行适当的路径规划,在满足约束条件(客户需求、车辆载重和容积、车型、车辆行驶里程、配送中心数量等限制)和目标最优化(路程最短、成本最低、使用车辆数最少、配送时间最快等)下,将客户的配送需求从配送中心送达客户点,或从客户点送回配送中心。

一、CVRP问题描述

1.1场景

单向:纯取货/纯送货;
单配送中心:只有一个配送中心/车场;
单车型:只考虑一种车型,
需求不可拆分:客户需求只能有一辆车满足;
车辆封闭:完成配送任务的车辆需回到配送中心;
车辆充足:不限制车辆数量,即配送车辆需求均能满足;
非满载:任意客户点的需求量小于车辆最大载重;

1.2要求

优化目标:最小化车辆启动成本和车辆行驶成本之和;
约束条件:车辆行驶距离约束,重量约束;
已知信息:配送中心位置、客户点位置、客户点需求、车辆最大载重、车辆最大行驶距离、车辆启动成本、车辆单位距离行驶成本;

二、CVRP数学模型

2.1符号定义

2.2数学模型

min ⁡ Z = C 0 K + C 1 ∑ i = 0 N ∑ j = 0 N ∑ k = 1 K d i j x i j k s.t. ∑ k = 1 K ∑ j = 1 N x 0 j k = ∑ k = 1 K ∑ j = 1 N x j 0 k = K ∑ i = 1 N x i j k = ∑ i = 1 N x j i k , k ∈ m , ∀ j = 1 , 2 , … , N ∑ i = 0 N ∑ j = 0 N m j x i j k ≤ M , ∀ k ∈ m ∑ k = 1 K ∑ i = 0 N x i j k = 1 , ∀ j = 1 , 2 , … , N ∑ i = 0 N ∑ j = 0 N d i j x i j k ≤ D , ∀ k ∈ m K ≥ ⌈ ∑ j = 1 N m j M ⌉ , ∀ K ∈ N ∗ \begin{align} \operatorname{min} \quad & Z=C_{0} K+C_{1} \sum_{i=0}^{N} \sum_{j=0}^{N} \sum_{k=1}^{K} d_{ij} x_{ijk} \\ \text{s.t.} \quad & \sum_{k=1}^{K} \sum_{j=1}^{N} x_{0 j k}=\sum_{k=1}^{K} \sum_{j=1}^{N} x_{j 0 k}=K \\ & \sum_{i=1}^{N} x_{i j k}=\sum_{i=1}^{N} x_{jik}, \quad k \in m, \forall j=1,2, \ldots, N \\ & \sum_{i=0}^{N} \sum_{j=0}^{N} m_jx_{ijk} \leq M, \quad \forall k \in m \\ & \sum_{k=1}^{K} \sum_{i=0}^{N} x_{ijk}=1 , \quad \forall j=1,2, \ldots, N \\ & \sum_{i=0}^{N} \sum_{j=0}^{N} d_{i j} x_{i j k} \leq \mathrm{D} , \quad \forall k \in m \\ & K \geq\left\lceil\frac{\sum_{j=1}^{N} m_{j}}{M}\right\rceil , \quad \forall K \in N^{*} \end{align} mins.t.Z=C0K+C1i=0Nj=0Nk=1Kdijxijkk=1Kj=1Nx0jk=k=1Kj=1Nxj0k=Ki=1Nxijk=i=1Nxjik,km,j=1,2,,Ni=0Nj=0Nmjxijk

本文章已经生成可运行项目
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值