实例
本篇博文尝试将上篇博文介绍的拉格朗日松弛启发式算法应用于下面的优化模型,该模型是一个整数规划(0-1规划)模型,是选址问题中经典的p-中值模型。模型中的符号含义如下表所示。
符号 | 含义 |
---|---|
I I I | 需求点集合 |
J J J | 候选投放点集合 |
d i d_i di | 需求点 i i i 的需求量 |
c i j c_{ij} cij | 需求点 i i i 与候选投放点 j j j 的距离 |
p p p | 投放点总数 |
x j x_{j} xj | 0-1变量,表示是否选择投放点 j j j |
y i j y_{ij} yij | 0-1变量,表示需求点 i i i 是否由投放点 j j j 提供服务 |
观察上述模型可以发现约束 ( 2.4 ) (2.4) (2.4) 关联两类决策变量,给问题带来了“耦合”的现象,属于复杂约束。因此,选择将该约束进行松弛,松弛后的问题如下。
对偶问题如下。
z L D = max z L R ( λ i j ) z_{LD}=\text{max}\space z_{LR}(\lambda_{ij}) zLD=max zLR(λij)次梯度优化算法的应用有两个重要部分:一是次梯度的计算,二是给定 λ \lambda λ 后松弛问题的求解。
对于次梯度的计算,回顾定义 7.4.2可以发现次梯度不可能直接由定义计算得到。
定义 7.4.2 若函数 g : R m → R g:\Bbb{R^m}\to\Bbb{R} g:Rm→R 为凹函数,且在点 x ∗ ∈ R m x^*\in\Bbb{R^m} x∗∈Rm 处,向量 s ∈ R m s\in\Bbb{R^m} s∈Rm 满足
g ( x ∗ ) + s T ( x − x ∗ ) ≥ g ( x ) , ∀ x ∈ R m \begin{array}{ll} g(x^*)+s^T(x-x^*)\ge g(x) , \forall x\in \Bbb{R^m} \end{array} g(x∗)+sT(x−x∗)≥g(x),∀x∈Rm则称 s ∈ R m s\in\Bbb{R^m} s∈Rm 为函数 g ( x ) g(x) g(x) 在 x ∗ x^* x∗处的一个次梯度。 g ( x ) g(x) g(x) 在 x ∗ x^* x∗ 处的所有次梯度组成的集合记为 ∂ g ( x ∗ ) \partial g(x^*) ∂<