matlab vrp 线性规划,VRP算法学习

title: VRP算法学习

author: Chen Yanbo

mathjax: true

date: 2019-04-13 14:41:48

tags:

列生成

介绍

列生成算法是求解大规模整数规划问题的优化算法,其理论基础由Danzig 等于1960 年提出,1995年Desrochers等将列生成算法实际应用到驾驶员调度及VRP问题中。目前,列生成已经被成功应用于多个领域列生成求解过程中,将整数规划问题线性松弛后成为 主问题MP(Master Problem)。鉴于变量规模较大,初始时只考虑小部分变量,构造 限制主问题RMP(Restricted Master Problem),通过求解受限主问题的最优解,获得线性规划的对偶变量,并在构造网络中寻找可以使目标函数优化的新变量,并将之加入到受限主问题中再次进行求解,如此迭代,直到无法寻找到可使目标函数优化的变量,得到松弛问题的最优解。如果解为整数,则为原问题的最优解,如果存在非整数解,则需要进行分支定界寻找整数解。

算法

(1)主问题与初始可行解

\begin{align}

&\min \sum_{j \in J} c_j \lambda_j\

s.t \quad &\sum_{j \in J} a_j \lambda_j\geq b \

& \lambda\geq 0,j \in J

\end{align}

这是一个通用的线性规划模型,其中集合J代表所有的列(column)。MP的对偶变量用非负向量

math?formula=%5Cpi来表示,根据对偶理论,我们希望找到一个

math?formula=j%5Cin%20J能够使得

math?formula=c_j%3Dcj-%5Cpi%5ET%20a_j的值最小。

(2)受限主问题求解及对偶变量

math?formula=%7CJ%7C的值很大时,这种直接定价(pricing)的方法运算成本很高。所以考虑取一个合理的子集

math?formula=j'%5Cin%20J来操作,用 间接枚举(implicit enumeration)的方法来计算 检验成本(reduced cost),得到限制主问题。假设

math?formula=%5Clambda

math?formula=%5Cpi分别是当前RMP的原始最优解和对偶最优解,给定一个集合A,它由列(column)

math?formula=a_j%2Cj%5Cin%20J组成,目标函数的成本系数

math?formula=c_j可以通过关于

math?formula=a_j的函数式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值