文章目录
- [1. 原问题:](#1. 原问题:)
- [2. 割平面法程序步骤](#2. 割平面法程序步骤)
-
- [2.1 第一次迭代](#2.1 第一次迭代)
- [2.2 第二次迭代](#2.2 第二次迭代)
- [2.3 第三次迭代](#2.3 第三次迭代)
1. 原问题:
给定下列约束优化问题:
( P ) min 3 x 1 2 + 2 x 2 2 s t . − 5 x 1 − 2 x 2 + 3 ≤ 0 , x ∈ X = { x ∈ Z n ∣ 8 x 1 + 8 x 2 ≥ 1 , 0 ≤ x 1 ≤ 1 , 0 ≤ x 2 ≤ 2 } \begin{equation}\begin{aligned} &(P)\; \;\min\; 3x_1^2+2x_2^2\\ &st.\;\;-5x_1-2x_2+3\le 0,\\ &\;\;x\in X=\{x\in Z^n\big| 8x_1+8x_2\ge1,0\le x_1 \le 1,0\le x_2 \le 2\} \end{aligned}\end{equation} (P)min3x12+2x22st.−5x1−2x2+3≤0,x∈X={x∈Zn 8x1+8x2≥1,0≤x1≤1,0≤x2≤2}
给定 X 1 = { ( 1 , 1 ) T } X^1=\{(1,1)^T\} X1={(1,1)T},利用外逼近法求解其对偶问题
- 因为x为整数,所以我们可以依次根据约束问题求解出所有的点
X = { x 0 = ( 0 , 1 ) , x 1 = ( 0 , 2 ) x 2 = ( 1 , 0 ) x 3 = ( 1 , 1 ) x 4 = ( 1 , 2 ) } \begin{equation} X=\{x_0=(0,1),x_1=(0,2)x_2=(1,0)x_3=(1,1)x_4=(1,2)\} \end{equation} X={x0=(0,1),x1=(0,2)x2=(1,0)x3=(1,1)x4=(1,2)} - 构造拉格朗日函数:
f ( x ) = 3 x 1 2 + 2 x 2 2 , g ( x ) = − 5 x 1 − 2 x 2 + 3 \begin{equation} f(x)=3x_1^2+2x_2^2,g(x)=-5x_1-2x_2+3 \end{equation} f(x)=3x12+2x22,g(x)=−5x1−2x2+3 - 构建对偶问题
( D ) max λ > 0 d ( λ ) d ( λ ) = min x ∈ X L ( x , λ ) L ( x , λ ) = 3 x 1 2 + 2 x 2 2 + λ ( − 5 x 1 − 2 x 2 + 3 ) X = { x 0 = ( 0 , 1 ) , x 1 = ( 0 , 2 ) , x 2 = ( 1 , 0 ) , x 3 = ( 1 , 1 ) , x 4 = ( 1 , 2 ) } \begin{equation}\begin{aligned} &(D)\; \;\max\limits_{\lambda >0} d(\lambda)\\ &d(\lambda)=\min\limits_{x\in X}L(x,\lambda)\\ &L(x,\lambda)=3x_1^2+2x_2^2+\lambda(-5x_1-2x_2+3)\\ &X=\{x_0=(0,1),x_1=(0,2),x_2=(1,0),x_3=(1,1),x_4=(1,2)\} \end{aligned}\end{equation} (D)λ>0maxd(λ)d(λ)=x∈XminL(x,λ)L(x,λ)=3x12+2x22+λ(−5x1−2x2+3)X={x0=(0,1),x1=(0,2),x2=(1,0),x3=(1,1),x4=(1,2)} - 将 X 代入可得:
L ( x 0 , λ ) = 2 + λ L ( x 1 , λ ) = 8 − λ L ( x 2 , λ ) = 3 − 2 λ L ( x 3 , λ ) = 5 − 4 λ L ( x 4 , λ ) = 11 − 6 λ \begin{equation}\begin{aligned} &L(x_0,\lambda)=2+\lambda\\ &L(x_1,\lambda)=8-\lambda\\ &L(x_2,\lambda)=3-2\lambda\\ &L(x_3,\lambda)=5-4\lambda\\ &L(x_4,\lambda)=11-6\lambda\\ \end{aligned}\end{equation} L(x0,λ)=2+λL(x1,λ)=8−λL(x2,λ)=3−2λL(x3,λ)=5−4λL(x4,λ)=11−6λ - 画图可得:·
图形法
- 根据图形可以求出最大值可得:
2. 割平面法程序步骤
程序迭代法
:- 第一次迭代
step1:
:
将 X 1 = { ( 1 , 1 ) } X^1=\{(1,1)\} X1={(1,1)}代入拉格朗日函数: L ( x 3 , λ ) = 5 − 4 λ L(x_3,\lambda)=5-4\lambda L(x3,λ)=5−4λ
( D ) max λ ≥ 0 θ s t : θ ≤ 5 − 4 λ , λ ≥ 0 \begin{equation}\begin{aligned} &(D)\; \;\max\limits_{\lambda \ge0} \theta\\ &st:\; \theta \le 5-4\lambda,\lambda\ge0 \\ \end{aligned}\end{equation} (D)λ≥0maxθst:θ≤5−4λ,λ≥0
根据定义可得,在 λ 1 = 0 \lambda_1=0 λ1=0,可得 max θ = θ 1 = 5 \max \theta=\theta_1=5 maxθ=θ1=5
2.1 第一次迭代
- 第一次迭代
step2:
:
将 λ 1 = 0 \lambda_1=0 λ1=0代入到对偶函数:
d ( λ ) = min x ∈ X L ( x , λ ) = { 2 + λ , 8 − λ , 3 − 2 λ , 5 − 4 λ , 11 − 6 λ } \begin{equation}\begin{aligned} &d(\lambda)=\min\limits_{x\in X}L(x,\lambda)=\{2+\lambda,8-\lambda,3-2\lambda ,5-4\lambda,11-6\lambda\} \end{aligned}\end{equation} d(λ)=x∈XminL(x,λ)={2+λ,8−λ,3−2λ,5−4λ,11−6λ} - 可得最小值为 d ( λ 1 = 0 ) = 2 d(\lambda_1=0)=2 d(λ1=0)=2,并且是 x 1 = ( 0 , 1 ) x_1=(0,1) x1=(0,1)这个点取得最小。
- 第一次迭代
step3:
:
判断 d ( λ 1 ) = 2 d(\lambda_1)=2 d(λ1)=2 与 θ 1 = 5 \theta_1=5 θ1=5之间的大小关系,不相等,算法继续迭代 - 第一次迭代
step4:
:新增约束点: X 2 = X 1 ∪ { ( 0 , 1 ) } X^2=X^1\cup\{(0,1)\} X2=X1∪{(0,1)} - 第二次迭代
step1:
:以 X 2 X^2 X2作为约束条件 - 第二次迭代
step1:
:
将 X 1 = { ( 1 , 1 ) ( 0 , 1 ) } X^1=\{(1,1)(0,1)\} X1={(1,1)(0,1)}代入拉格朗日函数: L ( x 3 , λ ) = 5 − 4 λ ; L ( x 3 , λ ) = 2 + λ L(x_3,\lambda)=5-4\lambda;L(x_3,\lambda)=2+\lambda L(x3,λ)=5−4λ;L(x3,λ)=2+λ
( D ) max λ ≥ 0 θ s t : θ ≤ 5 − 4 λ , λ ≥ 0 s t : θ ≤ 2 + λ , λ ≥ 0 \begin{equation}\begin{aligned} &(D)\; \;\max\limits_{\lambda \ge0} \theta\\ &st:\; \theta \le 5-4\lambda,\lambda\ge0 \\ &st:\; \theta \le 2+\lambda,\lambda\ge0 \\ \end{aligned}\end{equation} (D)λ≥0maxθst:θ≤5−4λ,λ≥0st:θ≤2+λ,λ≥0
根据定义可得,在 λ 1 = 3 5 \lambda_1=\frac{3}{5} λ1=53,可得 max θ = θ 2 = 13 5 \max \theta=\theta_2=\frac{13}{5} maxθ=θ2=513
2.2 第二次迭代
- 第二次迭代
step2:
:
将 λ 1 = 3 5 \lambda_1=\frac{3}{5} λ1=53代入到对偶函数:
d ( λ 2 ) = min x ∈ X 2 L ( x , λ ) = { 2 + λ , 8 − λ , 3 − 2 λ , 5 − 4 λ , 11 − 6 λ } \begin{equation}\begin{aligned} &d(\lambda_2)=\min\limits_{x\in X^2}L(x,\lambda)=\{2+\lambda,8-\lambda,3-2\lambda ,5-4\lambda,11-6\lambda\} \end{aligned}\end{equation} d(λ2)=x∈X2minL(x,λ)={2+λ,8−λ,3−2λ,5−4λ,11−6λ} - 可得最小值为 d ( λ 2 = 3 5 ) = 9 5 d(\lambda_2=\frac{3}{5})=\frac{9}{5} d(λ2=53)=59,并且是 x 2 = ( 1 , 0 ) x_2=(1,0) x2=(1,0)这个点取得最小。
- 第二次迭代
step3:
:
判断 d ( λ 2 ) = 9 5 d(\lambda_2)=\frac{9}{5} d(λ2)=59 与 θ 2 = 13 5 \theta_2=\frac{13}{5} θ2=513之间的大小关系,不相等,算法继续迭代,并且我们发现其中在 x 2 = ( 1 , 0 ) x_2=(1,0) x2=(1,0)这个点取得最小,所以我们将其加入 { 3 − 2 λ } \{3-2\lambda\} {3−2λ}到约束中 - 第二次迭代
step4:
:新增约束点: X 3 = X 2 ∪ { ( 1 , 0 ) } = { ( 1 , 1 ) , ( 0 , 1 ) , ( 1 , 0 ) } X^3=X^2\cup\{(1,0)\}=\{(1,1),(0,1),(1,0)\} X3=X2∪{(1,0)}={(1,1),(0,1),(1,0)}
2.3 第三次迭代
- 第三次迭代
step1:
:以 X 3 X^3 X3作为约束条件 - 第三次迭代
step1:
:
将 X 1 = { ( 1 , 1 ) ( 0 , 1 ) , ( 1 , 0 ) } X^1=\{(1,1)(0,1),(1,0)\} X1={(1,1)(0,1),(1,0)}代入拉格朗日函数: L ( x 3 , λ ) = 5 − 4 λ ; L ( x 3 , λ ) = 2 + λ , L ( x 3 , λ ) = 3 − 2 λ L(x_3,\lambda)=5-4\lambda;L(x_3,\lambda)=2+\lambda,L(x_3,\lambda)=3-2\lambda L(x3,λ)=5−4λ;L(x3,λ)=2+λ,L(x3,λ)=3−2λ
( D ) max λ ≥ 0 θ s t : θ ≤ 5 − 4 λ , λ ≥ 0 s t : θ ≤ 2 + λ , λ ≥ 0 s t : θ ≤ 3 − 2 λ , λ ≥ 0 \begin{equation}\begin{aligned} &(D)\; \;\max\limits_{\lambda \ge0} \theta\\ &st:\; \theta \le 5-4\lambda,\lambda\ge0 \\ &st:\; \theta \le 2+\lambda,\lambda\ge0 \\ &st:\; \theta \le 3-2\lambda,\lambda\ge0 \\ \end{aligned}\end{equation} (D)λ≥0maxθst:θ≤5−4λ,λ≥0st:θ≤2+λ,λ≥0st:θ≤3−2λ,λ≥0
根据定义可得,在 λ 3 = 1 3 \lambda_3=\frac{1}{3} λ3=31,可得 max θ = θ 3 = 7 3 \max \theta=\theta_3=\frac{7}{3} maxθ=θ3=37 - 第三次迭代
step2:
:
将 λ 3 = 1 3 \lambda_3=\frac{1}{3} λ3=31代入到对偶函数:
d ( λ 2 ) = min x ∈ X 2 L ( x , λ ) = { 2 + λ , 8 − λ , 3 − 2 λ , 5 − 4 λ , 11 − 6 λ } \begin{equation}\begin{aligned} &d(\lambda_2)=\min\limits_{x\in X^2}L(x,\lambda)=\{2+\lambda,8-\lambda,3-2\lambda ,5-4\lambda,11-6\lambda\} \end{aligned}\end{equation} d(λ2)=x∈X2minL(x,λ)={2+λ,8−λ,3−2λ,5−4λ,11−6λ} - 可得最小值为 d ( λ 3 = 1 3 ) = 9 5 d(\lambda_3=\frac{1}{3})=\frac{9}{5} d(λ3=31)=59,并且是 x 2 = ( 1 , 0 ) x_2=(1,0) x2=(1,0)这个点取得最小。
- 第三次迭代
step3:
:
判断 d ( λ 3 ) = 7 3 d(\lambda_3)=\frac{7}{3} d(λ3)=37 与 θ 3 = 7 3 \theta_3=\frac{7}{3} θ3=37之间的大小相等,算法停止