前言

VRP问题(Vehicle Routing Problem)是指在给定数量的配送车和一系列客户需求点之间,将车辆分配到不同的客户需求点,在满足需求的前提下,使得车辆行驶的总里程达到最小。该问题属于NP-hard问题,难以通过穷举法求解,需要采用优化算法求解。

CPLEX是一种高效的优化求解器,在解决VRP问题中具有很好的应用效果。下面介绍使用MATLAB和CPLEX求解VRP问题的步骤:

1. 定义问题变量

使用MATLAB进行编程,需要使用CPLEX库中的函数定义问题变量。通过定义变量,可以描述车辆行驶的路线和运输物品的数量等信息。在VRP问题中,变量可以表示车辆经过的路径、运输物品的数量和各个需求点之间的距离等。

2. 设计目标函数

VRP问题的目标函数通常是最小化总行驶里程。通过定义目标函数,可以将VRP问题转化为一个优化问题。在MATLAB中,可以使用CPLEX库中的函数定义目标函数,如调用CPLEX库函数cplexmilp。

3. 添加约束条件

VRP问题还有许多约束条件,如车辆容量限制、路径连续性限制和需求点之间的时间限制等。在MATLAB中,可以使用CPLEX库中的函数添加约束条件。

4. 调用CPLEX库函数

在将问题变量、目标函数和约束条件定义完之后,可以使用CPLEX库中的函数求解VRP问题。在MATLAB中,可以调用CPLEX库函数cplexmilp或其他相关函数。

5. 分析和优化解决方案

在求解VRP问题时,可能会得到多种解决方案。可以通过分析和优化解决方案,提高车辆行驶路线的效率、降低运输成本和开销等。在MATLAB中,可以使用MATLAB内置的分析和可视化工具进行方案分析和优化。

三种软件的下载

YALMIP

YALMIP作为MATLAB的优化求解工具包,可以统一调用gurobi、cplex等多种求解器,十分方便,工具包开源免费下载点击进入官网

VRP绘制路径图python vrp模型路径优化_matlab


点击下载

VRP绘制路径图python vrp模型路径优化_MATLAB_02


下载完成后,可以参考各论坛上的yalmip安装教程或者yalmip官网的安装教程,大致流程就是将YALMIP文件夹及其子文件夹的路径添加到MATLAB路径当中,如下图:点击设置路径找到yalmip解压后的文件位置添加并包含子文件夹

VRP绘制路径图python vrp模型路径优化_cplex_03


VRP绘制路径图python vrp模型路径优化_cplex_04

cplex

ILOG CPLEX Optimization Studio在IBM的官网可以下载试用版或使用教育邮箱申请“免费学术版”。当然,如果你有“其他途径”下载安装包,可以忽略一下步骤。软件官网 下载完成后安装(在下载该软件时需注册谷歌账户)

VRP绘制路径图python vrp模型路径优化_VRP绘制路径图python_05


VRP绘制路径图python vrp模型路径优化_matlab_06


VRP绘制路径图python vrp模型路径优化_matlab_07


在弹出的界面点击“Download”,正式进入Softwar Downloads界面

VRP绘制路径图python vrp模型路径优化_开发语言_08


在页面中找到Search options板块

VRP绘制路径图python vrp模型路径优化_cplex_09


选择Text,在Product name中输入“IBM ILOG CPLEX windows x86-64”Download method选择“HTTP”,点击Search

VRP绘制路径图python vrp模型路径优化_VRP绘制路径图python_10


VRP绘制路径图python vrp模型路径优化_VRP绘制路径图python_11


找到适合自己的版本并安装

安装完成后继续添加路径选择cplex/matlab添加并包含子文件完成安装

VRP绘制路径图python vrp模型路径优化_MATLAB_12

测试是否安装成功

这个时候我们就可以在MATLAB命令行窗口输入

yalmiptest

安装的哪一个版本,那个版本安装成功可看到found字样,则表示安装成功

VRP绘制路径图python vrp模型路径优化_VRP绘制路径图python_13

接下来的文章将会为大家讲解一些在规划问题中cplex的使用

matlab+yalmip+cplex求解车辆路径优化问题(VRP)–VRP问题的求解