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的对偶变量用非负向量
来表示,根据对偶理论,我们希望找到一个
能够使得
的值最小。
(2)受限主问题求解及对偶变量
当
的值很大时,这种直接定价(pricing)的方法运算成本很高。所以考虑取一个合理的子集
来操作,用 间接枚举(implicit enumeration)的方法来计算 检验成本(reduced cost),得到限制主问题。假设
和
分别是当前RMP的原始最优解和对偶最优解,给定一个集合A,它由列(column)
组成,目标函数的成本系数
可以通过关于
的函数式