UA SIE545 優化理論基礎4 對偶理論簡介4 求解對偶問題的割平面演算法

一個不願透露姓名的孩子發表於2020-12-02

UA SIE545 優化理論基礎4 對偶理論簡介4 求解對偶問題的割平面演算法

這一講我們介紹一個求解對偶問題的演算法——割平面演算法(cutting plane algorithm)。

假設原問題為
min ⁡ x ∈ X f ( x )    s . t .    g ( x ) ≤ 0 , h ( x ) = 0 \min_{x \in X}f(x) \ \ s.t. \ \ g(x) \le 0,h(x)=0 xXminf(x)  s.t.  g(x)0,h(x)=0

假設 f , g , h f,g,h f,g,h是連續函式, X X X是緊集。根據定義,這個優化的對偶問題是
max ⁡ u ≥ 0 θ ( u , v ) = max ⁡ u ≥ 0 min ⁡ x ∈ X f ( x ) + u T g ( x ) + v T h ( x ) \max_{u \ge 0} \theta(u,v)=\max_{u \ge 0}\min_{x \in X} f(x)+u^Tg(x)+v^Th(x) u0maxθ(u,v)=u0maxxXminf(x)+uTg(x)+vTh(x)

我們可以等價地把這個優化改寫成:
max ⁡ z , u , v z s . t .   z ≤ θ ( u , v ) = min ⁡ x ∈ X f ( x ) + u T g ( x ) + v T h ( x ) u ≥ 0 \max_{z,u,v} z \\ s.t. \ z \le \theta(u,v)=\min_{x \in X} f(x)+u^Tg(x)+v^Th(x)\\u \ge 0 z,u,vmaxzs.t. zθ(u,v)=xXminf(x)+uTg(x)+vTh(x)u0

進一步,
max ⁡ z , u , v z s . t .   z ≤ f ( x ) + u T g ( x ) + v T h ( x ) , ∀ x ∈ X u ≥ 0 \max_{z,u,v} z \\ s.t. \ z \le f(x)+u^Tg(x)+v^Th(x),\forall x \in X\\u \ge 0 z,u,vmaxzs.t. zf(x)+uTg(x)+vTh(x),xXu0

當給定 x x x的值時,這個優化就是一個簡單的線性規劃,為了讓這種替代可行,我們希望 X X X是一個有限集,這樣才能在有限步內結束迴圈。但一般 X X X都不會是有限集,這時我們可以先給定一個 x x x的初值,然後在每一次做完這個優化後,再去求解 min ⁡ x ∈ X f ( x ) + u T g ( x ) + v T h ( x ) \min_{x \in X} f(x)+u^Tg(x)+v^Th(x) minxXf(x)+uTg(x)+vTh(x)這個問題,從而得到一個新的 x x x,這樣就避免了去遍歷無限集 X X X。基於這個思想,我們可以定義下面的演算法:

  1. 初始化:定義 k = 1 k=1 k=1,選擇初值 x 0 x_0 x0使得 x 0 ∈ X x_0 \in X x0X, g ( x 0 ) ≤ 0 , h ( x 0 ) = 0 g(x_0) \le 0,h(x_0)=0 g(x0)0,h(x0)=0
  2. 求解Master Program: ( z k , u k , v k ) = arg max ⁡ z , u , v z s . t . z ≤ f ( x ) + u T g ( x ) + v T h ( x ) , ∀ x = x 0 , x 1 , ⋯   , x k − 1 u ≥ 0 (z_k,u_k,v_k)=\argmax_{z,u,v} z \\ s.t. z \le f(x)+u^Tg(x)+v^Th(x),\forall x=x_0,x_1,\cdots,x_{k-1} \\ u \ge 0 (zk,uk,vk)=z,u,vargmaxzs.t.zf(x)+uTg(x)+vTh(x),x=x0,x1,,xk1u0
  3. 求解subproblem: x k = arg min ⁡ x ∈ X f ( x ) + u k T g ( x ) + v k T h ( x ) x_k = \argmin_{x \in X}f(x)+u^T_kg(x)+v^T_kh(x) xk=xXargminf(x)+ukTg(x)+vkTh(x)
  4. 停止準則:如果 z k = θ ( u k , v k ) = f ( x k ) + u k T g ( x k ) + v k T h ( x k ) z_k=\theta(u_k,v_k)=f(x_k)+u^T_kg(x_k)+v^T_kh(x_k) zk=θ(uk,vk)=f(xk)+ukTg(xk)+vkTh(xk)則停止迴圈,返回 ( u k , v k ) (u_k,v_k) (uk,vk);如果 z k > θ ( u k , v k ) z_k>\theta(u_k,v_k) zk>θ(uk,vk), 賦值 k = k + 1 k=k+1 k=k+1,回到第二步。

用割平面法求解下面的優化的對偶問題
min ⁡ ( x 1 , x 2 ) ∈ X f ( x 1 , x 2 ) = ( x 1 − 2 ) 2 + x 2 2 4 s . t . g ( x 1 , x 2 ) = x 1 − 7 2 x 2 − 1 ≤ 0 X = { ( x 1 , x 2 ) : 2 x 1 + 3 x 2 = 4 } \min_{(x_1,x_2) \in X} f(x_1,x_2)= (x_1-2)^2+\frac{x_2^2}{4} \\ s.t. g(x_1,x_2)=x_1-\frac{7}{2}x_2-1 \le 0 \\ X = \{(x_1,x_2):2x_1+3x_2=4\} (x1,x2)Xminf(x1,x2)=(x12)2+4x22s.t.g(x1,x2)=x127x210X={(x1,x2):2x1+3x2=4}

找一個初始值 x 0 = ( 5 4 , 1 2 ) x_0=(\frac{5}{4},\frac{1}{2}) x0=(45,21)

第一次迴圈:

求解Master Problem
max ⁡ z , u , v z s . t .   z ≤ f ( x 0 ) + u T g ( x 0 ) + v T h ( x 0 ) = 5 8 − 3 2 u u ≥ 0 \max_{z,u,v} z \\ s.t. \ z \le f(x_0)+u^Tg(x_0)+v^Th(x_0)=\frac{5}{8}-\frac{3}{2}u\\u \ge 0 z,u,vmaxzs.t. zf(x0)+uTg(x0)+vTh(x0)=8523uu0

最優解為 ( z 1 , u 1 ) = ( 5 8 , 0 ) (z_1,u_1)=(\frac{5}{8},0) (z1,u1)=(85,0)

求解subproblem
x 1 = arg min ⁡ x ∈ X f ( x ) + u k T g ( x ) + v k T h ( x ) = arg min ⁡ x ∈ X f ( x ) = ( 2 , 0 ) x_1 = \argmin_{x \in X}f(x)+u^T_kg(x)+v^T_kh(x) \\ =\argmin_{x \in X}f(x) = (2,0) x1=xXargminf(x)+ukTg(x)+vkTh(x)=xXargminf(x)=(2,0)

判斷是否停止
z 1 = 5 8 > θ ( u 1 ) = f ( x 1 ) = 0 z_1 = \frac{5}{8} >\theta(u_1)=f(x_1) = 0 z1=85>θ(u1)=f(x1)=0,所以演算法繼續。

第二次迴圈:
求解Master Problem
max ⁡ z , u , v z s . t .   z ≤ f ( x 0 ) + u T g ( x 0 ) + v T h ( x 0 ) = 5 8 − 3 2 u z ≤ f ( x 1 ) + u T g ( x 1 ) + v T h ( x 1 ) = u u ≥ 0 \max_{z,u,v} z \\ s.t. \ z \le f(x_0)+u^Tg(x_0)+v^Th(x_0)=\frac{5}{8}-\frac{3}{2}u \\ z \le f(x_1)+u^Tg(x_1)+v^Th(x_1)= u \\u \ge 0 z,u,vmaxzs.t. zf(x0)+uTg(x0)+vTh(x0)=8523uzf(x1)+uTg(x1)+vTh(x1)=uu0

最優解為 ( z 2 , u 2 ) = ( 1 4 , 1 4 ) (z_2,u_2)=(\frac{1}{4},\frac{1}{4}) (z2,u2)=(41,41)

。。。。

然後按步驟繼續迴圈即可!

相關文章