两阶段鲁棒优化及列和约束生成算法

1. 前言

有同学私信我两阶段鲁棒优化的问题,自己之前主要研究单阶段的鲁棒优化,对于两阶段优化不太懂。查了点资料,通过翻译和自己的理解,写下这篇博文,抛砖引玉,以供大家共同学习交流。

2. 两阶段RO

本文主要翻译自2013年Bo Zeng 博士的高被引论文《Solving two-stage robust optimization problems using a column-and-constraint generation method》[1]。

由于传统单阶段的鲁棒优化对于所有不确定性是完全免疫的,求出的结果一般过于保守、比较悲观。两阶段RO也称鲁棒可调优化或者自适应优化,它的引入就是为了应对传统RO存在的上述问题。两阶段RO是指,在作出第一阶段的决策和不确定性部分展现出来之后,再进行第二阶段的决策。 由于改进的建模能力,两阶段RO,广泛应用于网络/运输问题、投资组合优化和电力系统调度等问题。

文献[1]假设一阶段和二阶段决策问题都是线性规划,并且不确定性集合 U \bf U U是离散有限的点集或者多面体。使用 y \bf y y表示第一阶段决策变量, x \bf x x表示第二阶段决策变量, u ∈ U u \in \bf U uU表示不确定矢量。在此假设下的两阶段RO的一般形式为:
min ⁡ y c T y + max ⁡ u ∈ U min ⁡ x ∈ F ( y , u ) b T x (1) \min_{\bf y } \bf c^{\rm T}y+\rm \max_{u \in \bf U} \min_{\bf x \in F(y,\rm u)} \bf b^{\rm T}x \tag{1} ymincTy+uUmaxxF(y,u)minbTx(1) s . t . A T y ≥ d , y ∈ S y \rm s.t. \quad \bf A^{\rm T}y \geq d,y \in S_{y} s.t.ATyd,ySy

其中, F ( y , u ) = { x : G x ≥ h − E y − M u , x ∈ S x } \bf F(y,\rm u)=\{\bf x: Gx \geq h-Ey-M \rm u,\bf x \in S_{x}\} F(y,u)={x:GxhEyMu,xSx} S y ⊆ R + n \bf S_{y}\subseteq \Bbb R_{+}^{n} SyR+n S x ⊆ R + m \bf S_{x}\subseteq \Bbb R_{+}^{m} SxR+m,向量 c , b , d , h \bf c,b,d,h c,b,d,h和矩阵 A , G , E , M \bf A,G,E,M A,G,E,M都是确定性的数值,不确定性体现在向量 u u u上。注意到第二阶段优化的约束条件 F ( y , u ) \bf F(y,\rm u) F(y,u)是关于不确定性 u u u的线性函数。

两阶段RO有优势,当然有缺点。即便是最简单的两阶段RO,也可以是NP-hard问题,计算复杂度很高。为了减轻计算负担,一般有两种方法。第一种是使用近似算法,该种方法假设第二阶段的决策是关于不确定性的简单函数,例如仿射函数。第二种方法试图根据Benders分解得出精确解,即它们使用第二阶段决策问题的对偶解,逐步构造第一阶段决策的值函数(value function)。一般称为Benders对偶割平面算法。

3. Benders对偶割平面法

由于第二阶段的决策是关于 x \bf x x的线性规划问题,可以作以下假设(relatively complete recourse assumption):该线性规划对于任意给定的 y \bf y y u u u是可行的,也即是有解 (该假设不是很理解)。假设第二阶段的线性规划的对偶变量为 π \pi π,则将其转化为对偶问题为:
S P 1 : O ( y ) = max ⁡ u , π { ( h − E y − M u ) T π } (2) \rm {SP_{1}}: \mathcal O(\bf y) =\rm \max_{u,\pi} \{ \bf (h-Ey-M \rm u)^{T}\pi\} \tag{2} SP1:O(y)=u,πmax{(hEyMu)Tπ}(2) s . t .    G T π ≤ b , u ∈ U , π ≥ 0 s.t. \; \bf G^{\rm T}\pi \leq b, \rm u \in \bf U, \pi \geq \bf 0 s.t.GTπb,uU,π0

在对偶问题中,目标函数从原始的最小化转换为关于对偶变量 π \pi π的最大化,同时与(1)式中的最大化 u u u合并,得到上述子问题(2)。此时不确定性向量转化为对偶问题(2)的决策变量,需要注意到子问题(2)是存在 u T π u^{T}\pi uTπ的双线性项。此时问题(2)被称为关于 u , π u,\pi u,π的双线性规划。对于双线性规划的求解,放在后面再说。

假设对于给定的 y k ∗ \bf y_{\mathit k}^{*} yk,子问题(2) 的最优解为 ( u k ∗ , π k ∗ ) (u_{ k}^{*},\pi_{ k}^{*}) (uk,πk),根据对偶定理,则可以构建以下割平面:
η ≥ ( h − E y − M u k ∗ ) T π k ∗ (3) \eta \geq \bf (h-Ey-M \rm u_{\mathit k}^{*})^{T}\pi_{ \mathit k}^{*} \tag{3} η(hEyMuk)Tπk(3)
其中, η = max ⁡ u ∈ U min ⁡ x ∈ F ( y , u ) b T x \eta = \max_{u \in \bf U} \min_{\bf x \in F(y,\rm u)} \bf b^{\rm T}x η=maxuUminxF(y,u)bTx为一维标量。注意该割平面是关于第一阶段决策变量 y \bf y y的约束。

将割平面约束添加第一阶段优化中,可以得到:
M P 1 : min ⁡ y c T y + η (4) \rm MP_{1}: \min_{\bf y } \bf c^{\rm T}y+ \eta \tag{4} MP1:ymincTy+η(4) s . t . A T y ≥ d , y ∈ S y \rm s.t. \quad \bf A^{\rm T}y \geq d,y \in S_{y} s.t.ATyd,ySy η ≥ ( h − E y − M u l ∗ ) T π l ∗ , ∀    l ≤ k \eta \geq \bf (h-Ey-M \rm u_{\mathit l}^*)^{T}\pi_{ \mathit l}^* ,\forall \; \mathit {l \leq k} η(hEyMul)Tπl,lk y ∈ S y , η ∈ R \bf y \in S_{y}, \eta \in \Bbb R ySy,ηR

其中 ( u l ∗ , π l ∗ ) (u_{ l}^{*},\pi_{ l}^{*}) (ul,πl)已知。求解主问题(4)可以获得其最优解 ( y k + 1 ∗ , η k + 1 ∗ ) (\bf y_{\mathit k+1}^{*},\eta_{\mathit k+1}^{*}) (yk+1,ηk+1)

此时问题(4)的目标函数值 c T y k + 1 ∗ + η k + 1 ∗ \bf c^{\rm T}y_{\mathit k+1}^{*}+\eta_{\mathit k+1}^{*} cTyk+1+ηk+1是原始两阶段问题(1)的下界(lower bound, LB)。如何理解?原始的两阶段RO是在worse-case情况下的目标值,也即是对于所有不确定性都具有包容性,可以理解成其最优决策在所有的不确定性下都成立。通过把不确定性转化为割平面,主问题(4)中添加的割平面只是在部分不确定性 u l u_{l} ul下的优化,也即是问题(4)是关于问题(1)的松弛问题,由于是求最小化,问题(4)的最优目标值一定是原问题(1)的一个下界。

注意到 c T y k ∗ + O ( y k ∗ ) \bf c^{\rm T}y_{\mathit k}^{*}+\mathcal O(\bf y_{\mathit k}^{*}) cTyk+O(yk)是原始问题(1)的上界。如何理解? y k ∗ \bf y_{\mathit k}^{*} yk是第一阶段的一个可行解, O ( y k ∗ ) \mathcal O(\bf y_{\mathit k}^{*}) O(yk)是第二阶段优化在 y k ∗ \bf y_{\mathit k}^{*} yk下的最优目标值,也即是说存在二阶段的最优解 x k ∗ \bf x_{\mathit k}^* xk。此时的 y k ∗ , x k ∗ \bf y_{\mathit k}^{*},\bf x_{\mathit k}^{*} yk,xk只是问题(1)的可行解,而不一定是最优解。由于是求最小化问题, c T y k ∗ + O ( y k ∗ ) \bf c^{\rm T}y_{\mathit k}^{*}+\mathcal O(\bf y_{\mathit k}^{*}) cTyk+O(yk)是原始问题(1)的上界。

y k + 1 ∗ \bf y_{\mathit k+1}^{*} yk+1带入到子问题(2)中,求解问题(2)得到最优解 ( u k + 1 ∗ , π k + 1 ∗ ) (u_{ k+1}^{*},\pi_{ k+1}^{*}) (uk+1,πk+1) 和最优值 O ( y k + 1 ∗ ) \mathcal O(\bf y_{\mathit k+1}^{*}) O(yk+1),进而可以构造新的割平面。因此,迭代的引入割平面(3),计算主问题(1),上届和下界逐渐收敛到问题(1)的最优解。

计算复杂度[1]
命题1:如果不确定集合 U \bf U U是多面体,用 p p p表示极点的数量,如果 U \bf U U是离散点集,用 p p p表示集合的势(集合中元素的数量)。用 q q q表示多面体 { π : G T π ≤ b , π ≥ 0 } \{\pi: \bf G^{\rm T}\pi \leq b, \pi \geq 0 \} {π:GTπb,π0} 的极点数量。Benders对偶算法需要经过 o ( p q ) o(pq) o(pq)次迭代才能求出问题(1)的最优解。

Benders 对偶割平面法主要的问题是求解问题(2)的双线性规划问题

4. 列和约束生成(C&CG)算法

列和约束生成(column-and-constraint generation) 算法是基于以下事实:
假设 x l \bf x^{\mathit l} xl是不确定性 u = u l u=u_{l} u=ul(一个实例)下 η = max ⁡ u ∈ U min ⁡ x ∈ F ( y , u ) b T x \eta = \max_{u \in \bf U} \min_{\bf x \in F(y,\rm u)} \bf b^{\rm T}x η=maxuUminxF(y,u)bTx的最优解,则一定存在如下约束成立:
η ≥ b T x l \eta \geq \bf b^{\rm T}x^{\mathit l} ηbTxl G x l ≥ h − E y − M u l \bf Gx^{\mathit l} \geq h-Ey-M \rm u_{\mathit l} GxlhEyMul
可以根据以上约束构造割平面,形成C&CG算法。

Step 1 :设置 L B = − ∞ \rm LB=-\infty LB= U B = + ∞ \rm UB=+\infty UB=+,索引 k = 0 k=0 k=0,集合 O = ∅ \bf O=\emptyset O=
Step 2: 求解如下主问题:
M P 2 : min ⁡ y c T y + η (5) \rm MP_{2}: \min_{\bf y } \bf c^{\rm T}y+ \eta \tag{5} MP2:ymincTy+η(5) s . t . A T y ≥ d , y ∈ S y \rm s.t. \quad \bf A^{\rm T}y \geq d,y \in S_{y} s.t.ATyd,ySy η ≥ b T x l , ∀ l ∈ O \eta \geq \bf b^{\rm T}x^{\mathit l}, \forall \mathit {l \in \bf O} ηbTxl,lO G x l ≥ h − E y − M u l ∗ ∀ l ≤ k \bf Gx^{\mathit l} \geq h-Ey-M \rm u_{\mathit l}^* \forall \mathit {l \leq k} GxlhEyMullk y ∈ S y , η ∈ R , x l ∈ S x    ∀ l ≤ k \bf y \in S_{y}, \eta \in \Bbb R, x^{\mathit l} \in S_{x} \; \forall \mathit {l \leq k} ySy,ηR,xlSxlk
求出最优解 ( y k + 1 ∗ , η k + 1 ∗ , x 1 ∗ , ⋯   , x k ∗ ) (\bf y_{\mathit k+1}^*,\eta_{\mathit k+1}^*,x^{\mathit 1*},\cdots,x^{\mathit k*}) (yk+1,ηk+1,x1,,xk),更新下界 L B = c T y k + 1 ∗ + η k + 1 ∗ \rm LB=\bf c^{\rm T}y_{\mathit k+1}^{*}+\eta_{\mathit k+1}^{*} LB=cTyk+1+ηk+1

Step 3 :代入 y = y k + 1 ∗ \bf y=y_{\mathit k+1}^* y=yk+1,求解如下子问题:
S P 2 : O ( y ) = max ⁡ u ∈ U min ⁡ x ∈ F ( y , u ) { b T x : G x ≥ h − E y − M u , x ∈ S x } (6) \rm SP2: \mathcal O(\bf y)= \rm \max_{u \in \bf U} \min_{\bf x \in F(y,\rm u)} \{ \bf b^{\rm T}x :\bf Gx \geq h-Ey-M \rm u, \bf x \in S_{x} \} \tag{6} SP2:O(y)=uUmaxxF(y,u)min{bTx:GxhEyMu,xSx}(6)
更新上界 U B = min ⁡ { U B , c T y k + 1 ∗ + O ( y k + 1 ∗ ) } \rm UB=\min\{UB,\bf c^{\rm T}y_{\mathit k+1}^{*}+\mathcal O(\bf y_{\mathit k+1}^{*})\} UB=min{UB,cTyk+1+O(yk+1)}

Step 4 : 如果 U B − L B ≤ ϵ \rm UB-LB\leq \epsilon UBLBϵ, 返回 y k + 1 ∗ \bf y_{\mathit k+1}^* yk+1,程序终止。否则:
(a) 如果 O ( y k + 1 ∗ ) < + ∞ \mathcal O(\bf y_{\mathit k+1}^{*}) < +\infty O(yk+1)<+,添加变量 x k + 1 \bf x^\mathit {k+1} xk+1,添加如下约束:
η ≥ b T x k + 1 (7) \eta \geq \bf b^{\rm T}x^{\mathit {k+1}} \tag{7} ηbTxk+1(7) G x k + 1 ≥ h − E y − M u k + 1 ∗ (8) \bf Gx^{\mathit {k+1}} \geq h-Ey-M \rm u_{\mathit {k+1}}^* \tag{8} Gxk+1hEyMuk+1(8)
到问题(5)中。其中 u k + 1 ∗ u_{\mathit {k+1}}^* uk+1是问题(6)在 y = y k + 1 ∗ \bf y=y_{\mathit k+1}^* y=yk+1下的最优场景(不确定性),对问题(6)可以利用数据库(Call the oracle to solve subproblem SP2)进行枚举求得。
然后,更新 k = k + 1 k=k+1 k=k+1,集合 O = O ⋃ k + 1 \bf O= O \bigcup {\mathit {k+1}} O=Ok+1,跳转至步骤Step 2

(b) 如果 O ( y k + 1 ∗ ) = + ∞ \mathcal O(\bf y_{\mathit k+1}^{*}) =+\infty O(yk+1)=+ (对于某些 u ∗ ∈ U u^*\in \bf U uU,如果第二阶段决策 O ( y k + 1 ∗ ) \mathcal O(\bf y_{\mathit k+1}^{*}) O(yk+1)不可行(infeasible),则把 O ( y k + 1 ∗ ) \mathcal O(\bf y_{\mathit k+1}^{*}) O(yk+1)记为 + ∞ +\infty +),添加变量 x k + 1 \bf x^\mathit {k+1} xk+1,添加如下约束:
G x k + 1 ≥ h − E y − M u k + 1 ∗ (9) \bf Gx^{\mathit {k+1}} \geq h-Ey-M \rm u_{\mathit {k+1}}^* \tag{9} Gxk+1hEyMuk+1(9) 到问题(5)中。其中 u k + 1 ∗ u_{\mathit {k+1}}^* uk+1是问题(6)在 y = y k + 1 ∗ \bf y=y_{\mathit k+1}^* y=yk+1下不可行的不确定性 u u u的值。
然后,更新 k = k + 1 k=k+1 k=k+1,跳转至步骤Step 2

对于步骤Step 4(a)的约束(7)和(8)被称为最优割(optimality cuts),而Step 4(b)的约束(9)被称为可性割(feasibility cuts)。对于可行割不是很明白,虽然在某些 y = y k + 1 ∗ \bf y=y_{\mathit k+1}^* y=yk+1下不可行,但是仍然是其中一个不确定性 u k + 1 ∗ u_{\mathit {k+1}}^* uk+1对二阶段决策的一个反映,因为二阶段是包含所有的不确定性。 不知以上理解是否正确。 由于约束(7)对于不可行的场景仍然是成立的,此时的步骤4(a)和4(b)可以合并,因此可以用统一的方法和程序去处理最优性和可行性。

由于生成的割平面是由第二阶段决策变量(wait-and-see decision variables/recourse decision variables)以二阶段决策约束的形式定义的,整个过程其实就是列和约束生成,其中列生产是指在主问题中添加第二阶段决策变量,约束生成是指添加割平面约束。

C&CG算法的复杂性
命题2:如果不确定集合 U \bf U U是多面体,用 p p p表示极点的数量,如果 U \bf U U是离散点集,用 p p p表示集合的势(集合中元素的数量)。C&CG算法需要经过 o ( p ) o(p) o(p)次迭代才能求出问题(1)的最优解。

C&CG算法与Benders对偶的区别:
– (1) 主问题中决策的决策变量。C&CG算法每次迭代都添加决策变量 x l \bf x^\mathit l xl,而Benders对偶每次迭代决策变量不变。

– (2)计算复杂度。由以上两个命题可以看出,在( the relatively complete recourse assumption)假设下,C&CG算法具有更低的复杂度。

– (3)求解问题的能力。Benders分解要求第二阶段的决策问题为行性规划问题,C&CG算法对于第二阶段优化问题的变量的类型不敏感,可以是混合整数规划问题。

5 存在的难点

以上两种算法存在的难点在于:Benders对偶算法求解子问题(2)的双线性规划;C&CG算法求解子问题(6)。

针对相对简单的多面体不确定性集,一般使用外部近似算法(outer approximation algorithm)和混合整数线性重构(mixed integer linear reformulation)两种方法求解。 第一种是求解SP1的启发式算法。 第二种是使用不确定性集的特殊结构,将双线性规划SP1转换为等效的混合整数线性规划。 文献[1] 使用经典的Karush–Kuhn–Tucker(KKT)条件来处理一般的多面体不确定性集,只要( the relatively complete recourse assumption)假设成立即可。文献[1]对于问题(6)SP2,通过引入对偶变量、利用KKT、结合大M方法,将鲁棒优化问题(6)转化为确定性的整数线性规划问题,再利用现成的求解器进行求解。具体转化就不翻译了,自己没看懂。

文献[2]中表述:根据文献[3]的结论,问题(2)的双线性规划,变量 u u u的最优解为不确定集合 U U U的极点。对于多面体的不确定集合,其极点是有限的,需要找出所有的极点,然后通过枚举就可以求出最优的 u u u。同样根据文献[4],在问题(2)达到最优时,变量 u u u 和对偶变量 π \pi π取值总是其各自可行集的极点,因此也需要求出 π \pi π的极点。如果变量 u u u π \pi π的维数比较大的话,枚举的复杂度仍然比较高。

对于问题(6)本实质上是单阶段的RO问题,可以使用求解一般RO的求解器进行求解。但是它们与传统的RO仍有区别,不论是问题(2)还是(6)都需要求出具体的不确定性 u u u的值。可以认为,传统的线性RO其最大的不确定性,在不确定性集合的极点处取得,因此还是需要计算不确定集合 U U U的极点。先使用单阶段RO求解出决策变量 x l \bf x^{\mathit l} xl,然后在枚举所有的 U U U的极点,找到满足临界约束条件的点,应该就是具体的 u u u。不知理解是否正确,后面有时间再写代码吧。

参考文献
[1] Zeng B , Zhao L . Solving Two-stage Robust Optimization Problems by A Constraint-and-Column Generation Method[J]. Operations Research Letters, 2013, 41(5):457-461.
[2]刘一欣, 郭力, 王成山. 微电网两阶段鲁棒优化经济调度方法[J]. 中国电机工程学报, 2018, 038(014):4013-4022.
[3] D. Bertsimas, E. Litvinov, X.A. Sun, Jinye Zhao, Tongxin Zheng, Adaptive robust optimization for the security constrained unit commitment problem, IEEE Transactions on Power Systems 28 (1) (2013) 52–63.
[4] Bo Zeng. Solving Two-stage Robust Optimization Problems by A Constraint-and-Column Generation Method. 2011. http://www.optimization-online.org/DB_FILE/2011/06/3065.pdf

  • 50
    点赞
  • 257
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
电网是现代社会的重要基础设施之一,而鲁棒性优化ccg算法则是电网优化中的一种方法。这种算法通过优化电网的结构与参数,使其在面对外部扰动和内部变化时能够保持稳定运行。 电网的鲁棒性优化ccg算法一般分为阶段。第一个阶段是电网的结构优化。在这一阶段中,算法通过分析电网的拓扑结构,确定哪些电网节点之间的连接可以增强电网的鲁棒性。例如,选择一些关键节点进行增强,使得在这些节点发生故障时,电网仍能保持正常运行。此外,算法还会对电网进行容错处理,使得在某些节点存在故障时,电网能够自动切换到备用的节点继续供电。 第二个阶段是电网的参数优化。在这一阶段中,算法通过优化电网的参数配置,使得电网的鲁棒性得到进一步提升。参数优化的过程通常是一个迭代的过程,通过多次迭代,不断调整电网的参数,以使得电网在面对不同扰动和变化时的稳定性得到最大程度的提高。 电网的鲁棒性优化ccg算法可以提高电网的稳定性和可靠性,具有重要的现实意义。它可以有效应对电网运行过程中的各种异常情况,如设备故障、天气变化等。通过此算法的应用,电网可以更好地适应各种复杂环境和未知变化,提供高质量、稳定可靠的电力供应服务。因此,电网的鲁棒性优化ccg算法的研究与应用对于电力系统的安全稳定运行具有重要意义。在未来的发展中,我们还需要进一步完善和改进电网的鲁棒性优化ccg算法,以应对不断变化的电力需求和电网运营环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值