• 应用运筹学3Benders Decomposition


    Benders Decomposition

    Problem Description

    Remove some variables would make the remaining program easy to solve.

    Assume the LP is below and \(x\) is the complicated variable:

    \[\begin{aligned} z=& \min c x+h y \\ & \text { s.t. } A x=b \\ & G x+H y=d \\ & x \in \mathbb{R}_{+}^{n}, y \in \mathbb{R}_{+}^{p} \end{aligned} \]

    Benders Decomposition

    First projecting the problem into the \(x\) space:

    \[z=\min \left\{c x+Q(x): A x=b, x \in \mathcal{K}_{x}, x \in \mathbb{R}_{+}^{n}\right\} \]

    where the second-stage problem is:

    \[Q(x)=\min \left\{h y: H y=d-G x, y \in \mathbb{R}_{+}^{p}\right\} \]

    and

    \[\mathcal{K}_{x}=\left\{x \in \mathbb{R}_{+}^{n}: \exists y \in \mathbb{R}_{+}^{p} \text { with } H y=d-G x\right\} \]

    1. How do we enforce we can find \(x\) such that \(x\in\mathcal K_x\)?

      By Farkas Lemma, which states, we can find \(y:Hy=d-Gx\) iff

    \[v^T(d-Gx)\leq 0,\quad \forall v\in\mathcal V=\{v|vH\leq 0\} \]

    This is equivalent to prove:

    \[\max \left\{v^{\top}(d-G x): v H \leq 0\right\} \leq 0 \]

    Since \(\mathcal V\) is a convex polyhedral cone which obtains its extreme value at the origin, which means along the extreme ray, the objective value can only decrease, let \(v_i^T\) denote the extreme ray, and we can try:

    \[v_{i}^{\top}(d-G x) \leq 0, i\in [N] \]

    1. How could we make sure the solution found in \(\mathcal K\) is optimal (examine the condition \(\phi\geq Q(x)\))?

      Solve the dual program of \(Q(x)\):

      \[Q(x)^{D}=\max \left\{u^{\top}(d-G x): u H \leq h\right\} \]

      by strong duality, we have:

      \[\phi \geq Q^{D}(x) \]

      Since \(Q^D(x)\) is convex and its optimum attained at one of the extreme points, let \(u_j\) be the extreme points, above condition changes to:

      \[\phi \geq \max _{j=1, \ldots, M}\left(u_{j}\right)^{\top}(d-G x)\\ =\left(u_{j}\right)^{\top}(d-G x), \quad j=1, \ldots, M \]

    Finally, we have:

    \[\begin{align} z&=\min. cx+\phi\\ s.t.\quad &Ax=b\\ &\left(v_{i}\right)^{\top}(d-G x) \leq 0 \quad i=1, \ldots, N\\ &\phi \geq\left(u_{i}\right)^{\top}(d-G x) \quad j=1, \ldots, M \end{align} \]

    BD cuts

    Let \((x_t,\phi ^t)\) be the solution to MP at a generic iteration \(t\).

    Feasibility Test

    Solve the program:

    \[\begin{align} F\left(x^{t}\right) &=\max v^{\top}\left(d-G x^{t}\right) \\ v H & \leq 0 \\ v I & \leq e \label{eq1}\\ -v I & \leq e \label{eq2} \end{align} \]

    Without \(\ref{eq1},\ref{eq2}\) the feasibility subproblem is unbounded. Assume the solution is \(v^t\).

    If \(F(x^t)\leq 0\), Farkas Lemma would make sure one feasible solution exists. Otherwise add feasibility cut:

    \[(v^t)^T(d-Gx)\leq 0 \]

    This cut has following two properties:

    1. Would cut \(F(x^t)\), since \((v^t)^T(d-Gx^t)>0\) violating.

    2. Would not cut other solution \(x'\in\mathcal K\), since:

      \[\begin{align} 0\geq F(x')&=(v')^T(d-Gx')\geq (v^t)^T(d-Gx') \end{align} \]

    General we solve the dual, since we care more about the maximum value rather than itself:

    \[\begin{gathered} F^{D}\left(x^{t}\right)=\min e^{T} w^{+}+e^{T} w^{-} \\ H y+w^{+}-w^{-}=d-G x^{t} \\ y, w^{+}, w^{-} \geq 0 \end{gathered} \]

    Optimality Test

    We solve

    \[Q^{D}\left(x^{t}\right)=\max \left\{u^{\top}\left(d-G x^{t}\right): u H \leq h, u \in \mathbb{R}_{+}^{m}\right\} \]

    and if \(\phi \geq Q^D(x^t)\), the solution is optimal. Otherwise, add optimality cut:

    \[\phi\geq (u^t)^T(d-Gx) \]

    This cut would:

    1. Cut the solution \((x^t,\phi^t)\) since \((u^t)^T(d-Gx^t)<0\) violates the cut.

    2. Never cut the optimal solution. Since

      \[Q^D(x')=(u')^T(d-Gx')\geq (u^t)^T(d-Gx') \]

  • 相关阅读:
    ansible-playbook启动的多种方式
    git版本控制
    特征工程
    特征工程:图像特征提取和深度学习
    tensorflow数据读取机制tf.train.slice_input_producer 和 tf.train.batch 函数
    浙大版《C语言程序设计(第3版)》题目集 练习2-9 整数四则运算 (10 分)
    浙大版《C语言程序设计(第3版)》题目集 练习2-8 计算摄氏温度 (10 分)
    浙大版《C语言程序设计(第3版)》题目集 练习2-6 计算物体自由下落的距离 (5 分)
    浙大版《C语言程序设计(第3版)》题目集 练习2-4 温度转换 (5 分)
    浙大版《C语言程序设计(第3版)》题目集 练习2-3 输出倒三角图案 (5 分)
  • 原文地址:https://www.cnblogs.com/romaLzhih/p/15582880.html
Copyright © 2020-2023  润新知