matlab中读取blf数据路径,需求可拆分车辆路径优化模型与BLF-GA算法设计

0 引言

车辆路线安排问题最早由Danting和Ramser[在1959年提出,此后车辆路径问题得到了越来越多的关注,带时间窗、多种车型、多个配送中心等车辆路径问题被提出.彭勇等人[在研究车辆路径问题时,考虑车速会因为时间、路段不同而变化后,运用粒子群算法、Dijkstra-GA算法优化路径.1989年Dror & Trudeau首次提出了需求可拆分车辆路径问题(Split Delivery Vehicle Routing Problem, SDVRP)的概念,[并提出SDVRP是在标准车辆路径问题上对“每个客户点的需求只能由一辆车进行配送”这一约束条件的松弛,在标准车辆路径问题的基础上进行扩展,允许每个客户点的需求被两辆及以上的车辆进行配送,这一松弛约束可以减少配送车辆以及行驶总路径长度.至今为止,针对需求可拆分车辆路径问题已有大量的研究方法.研究学者们开始对SDVRP进行扩充,即在VRP问题中不仅考虑客户需求能由两辆及以上的车辆同时进行配送这一松弛约束,还考虑了其他约束条件,如Frizzell和Giffin[在SDVRP中还考虑了时间限制.Lee、Marina等人[在SDVRP中考虑车场不是单一的,即多车场的需求可拆分车辆路径问题.彭勇等人[在团队定向问题中考虑二维装箱约束条件,提出了改进的BLF算法.但在客户需求可进行拆分配送的问题中并没有学者考虑过装箱约束,需求可拆分车辆路径问题求得的目标值虽然低于车辆路径问题,但是其得到的最优路线未考虑被装货物尺寸与车厢尺寸之间的关系,往往会出现分配给一辆车的配送任务由于无法装箱而重新分配,出现重复装卸货物的现象,不仅会增加装卸成本,还降低了配送中心的服务水平.因此,对带二维装箱约束[的SDVRP问题进行研究显得非常重要.由于考虑二维装箱约束的需求可拆分车辆路径问题是装箱问题与需求可拆分车辆路径问题的组合,且两者都属于典型的组合优化问题,属于NP难问题,其计算复杂性已经远远超过单独求解车辆路径问题与装箱问题,本文首先建立2L-SDVRP数学模型,并在此基础上设计了以改进遗传算法作为算法框架,结合改进BLF装箱算法,能求解2L-SDVRP的启发式算法(BLF-GA算法).

1 2L-SDVRP模型建立及解的特征

1.1 2L-SDVRP模型建立

2L-SDVRP可以定义为:图G=(V, E),顶点集V=(1, 2, …, n),其中:1,n表示物流中心(车辆从物流中心出发,最后回到物流中心),其余为客户需求点E={(i, j)|i, j∈V}为边集;Dij表示i和j两点之间的路线距离,也代表车辆由i行驶到j的成本;车场拥有vh辆车,每辆车的最大载重量为Q,单车最大行驶距离为Dmax;tik表示第k辆车在i点装载的需求量;qi表示每个客户点的需求量;Zi表示每个客户点需求量的单位重量.

定义ITi为客户点i所要求配送的mi个矩形物品集合;ITi中物品总重gi.ITi中物品m(Iim)的底面投影为lim(物品水平方向长度)×Wim(物品垂直方向长度)的矩形(在以下数学模型中会增加下标k表示该物品放入对应车辆).令车厢俯视图(车头在下)左下角为(0,0) 坐标原点,水平向右、垂直向上为坐标轴.设物品Iim左下角坐标为(vim,him)(在以下数学模型中会增加下标k表示该物品放入对应车辆).

定义变量:

$\begin{array}{l}

\quad \;{X_{ijk}} = \left\{ {\begin{array}{*{20}{l}}

1\\

0

\end{array}} \right.,i \in \left\{ {1,2, \cdots ,n} \right\};j \in \left\{ {1,2, \cdots ,n} \right\};\\

k \in \left\{ {1,2, \cdots ,vh} \right\}

\end{array}$

(1)

式(1) 中的变量取1时表示第k辆车从i点行驶到j点;反之,则为0;

模型假设:

1) 所有客户点的需求量及坐标位置均已知;

2) 同一客户点需求量可以大于1,但货物相同,即重量和尺寸相同;

3) 任意两节点间的距离对称Dij=Dji;

4) 任意两节点之间符合三角不等式Dij+Djk≥Dik;

5) 所有车辆从配送中心出发,任务完成后均返回配送中心等待下次任务.

则2L-SDVRP数学模型如下:

$\min z = \sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {\sum\limits_{k = 1}^{vh} { {D_{ij}}{X_{ijk}}} } } $

(2)

$\sum\limits_{k = 1}^{vh} {\sum\limits_{i = 2}^{n - 1} { {x_{ijk}}} } \ge 1,\forall j \in \left\{ {1,2, \cdots ,n} \right\}$

(3)

$\begin{array}{l}

\quad \quad \sum\limits_{i = 1}^n { {x_{ipk}}} - \sum\limits_{j = 1}^n { {x_{pjk}}} = 0,\forall p \in \left\{ {2,3,4, \cdots ,n - 1} \right\};\\

k \in \left\{ {1,2, \cdots ,vh} \right\}

\end{array}$

(4)

$\sum\limits_{k = 1}^{vh} { {t_{ik}}} = {q_i},\forall i \in \left\{ {2,3,4, \cdots ,n

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值