この章の内容
1. 基本的な考え方
1.1 凸集合と極
若集合 C C C满足: ∀ x , y ∈ C , λ ∈ [ 0 , 1 ] \forall\boldsymbol{x},\boldsymbol {y}\in C,\lambda\in[0,1] ∀x,そして∈C、私∈[0,1], 都有 λ x + ( 1 − λ ) y ∈ C \lambda \boldsymbol{x}+(1-\lambda)\boldsymbol{y}\in C λx+(1−λ)y∈C, 则称集合 C C C为凸集。直观来讲, 如果集合 C C C の任意の 2 点を結ぶ線もセット内にあります C C C中, 那么集合 C C C は凸集合であり、図 1.1 に凸集合と非凸集合の例を示します。
设 C C C は凸集合、 x ∈ C \boldsymbol{x}\in C バツ∈C, 若 ∀ y , z ∈ C , λ ∈ ( 0 , 1 ) , y ≠ z \forall\boldsymbol{y },\boldsymbol{z}\in C,\lambda\in (0,1),\boldsymbol{y}\ne\boldsymbol{z} ∀y,と∈C、私∈(0,1)、そして=z、 λ y + ( 1 − λ ) z ≠ x \lambda\boldsymbol{y}+(1-\ lambda) )\boldsymbol{z}\ne\boldsymbol{x} λy+(1−λ)z=x, 则称 x \boldsymbol{x} xある C C A極または x \boldsymbol{x} の頂点。直感的に言えば、 Cxある C C C的极点, 那么 x \boldsymbol{x} x不能由 C C C 内の任意の 2 つの異なる点の線形結合が取得されます。
1.2 実行可能解、基本解、基本的実行可能解
実現可能な解: 制約を満たす解は実現可能な解;
と呼ばれます 基本的な解: Let基本変数は 0 0 です。0、得られた解は基本解と呼ばれます;
基本的な実行可能解: 実行可能な基本的な解は基本的な実行可能解と呼ばれます。
2. 線形計画法の標準形式
線形計画法の問題には標準形式があります。線形計画法の標準形式は次のように記述できます。 min z = c 1 x 1 + c 2 x 2 + ⋯ + c n x n s . t . a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n = b 1 a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n = b 2 ⋮ a m 1 x 1 + a m 2 x 2 + ⋯ + a m n x n = b m x j ≥ 0 , j = 1 , 2 , ⋯ , n \begin{matrix} \min & z=c_1x_1+c_2x_2+\cdots+c_nx_n \\ \rm s.t.& a_{11}x_1+a_{ 12} x_2+\cdots+a_{1n}x_n=b_1 \\ & a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n=b_2 \\ & \vdots \\ & a_{ m1} x_1+a_{m2}x_2+\cdots+a_{mn}x_n=b_m\\ & x_j\ge0,j=1,2,\cdots,n \end{行列} 分セントと=c1 バツ1 +c2 バツ2 +⋯+cn バツn ある11 バツ1 +ある12 バツ2 +⋯+ある1n バツn =b1 ある21バツ1 +ある22 バツ2 +⋯+ある2n バツn =b2 ⋮あるm1 バツ1 +あるm2 バツ2 +⋯+あるんバツn =bm バツj ≥0、j=1、2、⋯、n 非標準形式の線形計画問題を標準形式に書き直す手順は次のとおりです。
- 目的が最大化である場合、目的関数の負の値をとって最小化します。つまり、 max f ( x ) ⇔ min − f ( x ) \max f(\boldsymbol{x})\Leftrightarrow\min -f(\boldsymbol{x}) 最大f(x)⇔分−f(x);
- 制約の右側の項が負の数である場合、制約の左側と右側の両方が同時に負になり、右側の項は非負になります。
- If 決定変数 x j x_j バツj 非負の要件がない場合は、 x j = x j 1 − x j 2 x_j=x_{j1}-x_{j2} とします。バツj =バツj1 −バツj2 , 其中 x j 1 , x j 2 ≥ 0 x_{j1},x_{j2}\ge0 バツj1 、バツj2 ≥0;
- If 決定変数 x j x_j バツj は非正の制約です。つまり x j ≤ 0 x_j\le0 バツj ≤0, 则令 x j ' = − x j ≥ 0 x_j'=-x_j\ge0 バツj' =−xj ≥0;
- 如果存在不等式约束 a i 1 x 1 + a i 2 x 2 + ⋯ + a i n x n ≥ b i a_{i1}x_1+a_{i2}x_2+\cdots+a_{in}x_n\ge b_i あるi1 バツ1 +あるi2 バツ2 +⋯+ある中 バツn ≥bi , 则添加变量 y i ≥ 0 y_i\ge0 そしてi ≥0, 约束就改写为 a i 1 x 1 + a i 2 x 2 + ⋯ + a i n x n − y i = b i a_{i1}x_1+a_{i2}x_2+\cdots+a_{in}x_n-y_i= b_i あるi1 バツ1 +あるi2 バツ2 +⋯+ある中 バツn −そしてi =bi ;
- 如果存在不等式约束 a i 1 x 1 + a i 2 x 2 + ⋯ + a i n x n ≤ b i a_{i1}x_1+a_{i2}x_2+\cdots+a_{in}x_n\le b_i あるi1 バツ1 +あるi2 バツ2 +⋯+ある中 バツn ≤bi , 则添加变量 y i ≥ 0 y_i\ge0 そしてi ≥0, 约束就改写为 a i 1 x 1 + a i 2 x 2 + ⋯ + a i n x n + y i = b i a_{i1}x_1+a_{i2}x_2+\cdots+a_{in}x_n+y_i= b_i あるi1 バツ1 +あるi2 バツ2 +⋯+ある中 バツn +そしてi =bi 。
標準的な線形計画問題は行列形式で記述できます min z = c T x s . t . A x = b x ≥ 0 \begin{matrix} \min & z =\boldsymbol{c}^{\rm T}\boldsymbol{x} \\ \rm s.t.& \boldsymbol{A}\boldsymbol{x}=\boldsymbol{b}\\ & \boldsymbol{x} \ ge\bold{0} \end{マトリックス} 分セントと=cTxAx=bバツ≥0
3. シンプレックス方式
シンプレックス法を使用して線形計画問題を解く一般的な手順は次のとおりです。
- 問題を標準形式に変換する
- ベースのセットを選択し、シンプレックス テーブルをリストします。
- すべてのテスト数値が負でない場合、終了
- 最小のテスト番号を持つ列に対応する変数をベース変数として選択します。
- 选择 b i b_i bi 係数比が正で最小である行に対応する変数は、基準外変数として使用されます。
- 基本変数に対応する行列を単位行列に変換し、ステップ 3 に戻ります。
[例 1] 次の線形計画問題を解きます
max 4 x 1 + 5 x 2 + 3 x 3 s . t . 8 x 1 + 2 x 2 + 5 x 3 ≤ 400 4 x 1 + 6 x 2 + 5 x 3 ≤ 320 7 x 1 + 3 x 2 + 4 x 3 ≤ 500 x i ≥ 0 , i = 1 , 2 , 3 \begin{matrix} \max & 4x_1 +5x_2+3x_3 \\ \rm s.t.& 8x_1+2x_2+5x_3\le400 \\ & 4x_1+6x_2+5x_3\le320 \\ & 7x_1+3x_2+4x_3\le500\\ & x_i\ge0,i = 1,2,3 \end{行列} 最大セント4x1 +5x2 +3x3 8x1 +2x2 +5x3 ≤4004x1 +6x2 +5x3 ≤3207x1 +3x2 +4x3 ≤500バツi ≥0、私=1、2、3
[解法] まず問題を標準形式に変換します
min − 4 x 1 − 5 x 2 − 3 x 3 s . t . 8 x 1 + 2 x 2 + 5 x 3 + x 4 = 400 4 x 1 + 6 x 2 + 5 x 3 + x 5 = 320 7 x 1 + 3 x 2 + 4 x 3 + x 6 = 500 x i ≥ 0 、 i = 1 、 2 、 ⋯ , 6 \begin{行列} \min & -4x_1-5x_2-3x_3 \\ \rm s.t.& 8x_1+2x_2+5x_3+x_4=400 \\ & 4x_1+6x_2+5x_3+x_5=320 \\ & ; 7x_1+3x_2+4x_3+x_6=500\\ & x_i\ge0,i=1,2,\cdots,6 \end{行列} 分セント−4x1 −5x2 −3x3 8x1 +2x2 +5x3 +バツ4 =4004x1 +6x2 +5x3 +バツ5 =3207x1 +3x2 +4x3 +バツ6 =500バツi ≥0、私=1、2、⋯、6
第 1 1 1 反復、シンプレックス テーブルは
×1×_1バツ1 | ×2×_2バツ2 | ×3×_3バツ3 | × 4 ×_4バツ4 | ×5×_5バツ5 | ×6×_6バツ6 | b bb | |
---|---|---|---|---|---|---|---|
検査数 | − 4 -4−4 | − 5 -5−5 | − 3 -3−3 | 0 00 | 0 00 | 0 00 | 0 00 |
×5×_5バツ5 | 8 88 | 2 22 | 5 55 | 1 11 | 0 00 | 0 00 | 400 400400 |
×6×_6バツ6 | 4 44 | 6 \color{レッド}{6}6 | 5 55 | 0 00 | 1 11 | 0 00 | 320 320320 |
×7×_7バツ7 | 7 77 | 3 33 | 4 44 | 0 00 | 0 00 | 1 11 | 500 500500 |
检验数中, − 5 -5 −5最小, 所以 x 2 x_2 バツ2 は基本変数です。以降 min { 400 ÷ 2 , 320 ÷ 6 , 500 ÷ 3 } = 320 ÷ 6 \min \left\lbrace400\div2,320\div6,500\div3 \right \rbrace= 320\div6 分{ 400÷2、320÷6、500÷3}=320÷6, 所以 x 6 x_6 バツ6 は基準外変数です。
第 2 2 2 反復、シンプレックス テーブルは
×1×_1バツ1 | ×2×_2バツ2 | ×3×_3バツ3 | × 4 ×_4バツ4 | ×5×_5バツ5 | ×6×_6バツ6 | b bb | |
---|---|---|---|---|---|---|---|
検査数 | − 2 3 -\dfrac{2}{3}−32 | 0 00 | 7 6 \dfrac{7}{6}67 | 0 00 | 5 6 \dfrac{5}{6}65 | 0 00 | 800 3 \dfrac{800}{3}3800 |
×5×_5バツ5 | 20 3 \color{赤}\dfrac{20}{3}320 | 0 00 | 10 3 \dfrac{10}{3}310 | 1 11 | − 1 3 -\dfrac{1}{3}−31 | 0 00 | 880 3 \dfrac{880}{3}3880 |
×2×_2バツ2 | 2 3 \dfrac{2}{3}32 | 1 11 | 5 6 \dfrac{5}{6}65 | 0 00 | 1 6 \dfrac{1}{6}61 | 0 00 | 160 3 \dfrac{160}{3}3160 |
×7×_7バツ7 | 5 55 | 0 00 | 3 2 \dfrac{3}{2}23 | 0 00 | − 2 -2−2 | 1 11 | 340 340340 |
只有 x 1 x_1 バツ1 のテスト番号は負であるため、 x 1 x_1 バツ1 は基本変数です。以降 min { 880 3 ÷ 20 3 , 160 3 ÷ 2 3 , 340 ÷ 5 } = 880 3 ÷ 20 3 \min \left\lbrace\dfrac{880}{3}\ div\dfrac{20}{3},\dfrac{160}{3}\div\dfrac{2}{3},340\div5 \right \rbrace=\dfrac{880}{3}\div\dfrac{ 20}{3} 分{ 3880÷320 、3160÷32 、340÷5}=3880÷320 , 所以 x 5 x_5 バツ5 は基準外変数です。
第 3 3 3 反復、シンプレックス テーブルは
×1×_1バツ1 | ×2×_2バツ2 | ×3×_3バツ3 | × 4 ×_4バツ4 | ×5×_5バツ5 | ×6×_6バツ6 | b bb | |
---|---|---|---|---|---|---|---|
検査数 | 0 00 | 0 00 | 3 2 \dfrac{3}{2}23 | 1 10 \dfrac{1}{10}101 | 4 5 \dfrac{4}{5}54 | 0 00 | 296 296296 |
×1×_1バツ1 | 1 11 | 0 00 | 1 2 \dfrac{1}{2}21 | 3 20 \dfrac{3}{20}203 | − 1 20 -\dfrac{1}{20}−201 | 0 00 | 44 4444 |
×2×_2バツ2 | 0 00 | 1 11 | 1 2 \dfrac{1}{2}21 | − 1 10 -\dfrac{1}{10}−101 | 1 5 \dfrac{1}{5}51 | 0 00 | 24 2424 |
×7×_7バツ7 | 0 00 | 0 00 | − 1 -1−1 | − 3 4 -\dfrac{3}{4}−43 | − 7 4 -\dfrac{7}{4}−47 | 1 11 | 120 120120 |
テストの数値はすべて非負の数値です。反復の終了時点で、標準問題の最適解は x = (44, 24, 0, 0, 0, 0, 120) T \boldsymbol{x}=(44,24,0,0,0,0,120)^{\rm T} バツ=(44,24、0、0、0、0、120)T, 最优值为 − 296 -296 −296。
したがって、元の問題の最適解は x = ( 44 , 24 , 0 ) T \boldsymbol{x}=(44,24,0) となります。 ) ^{\rm T} バツ=(44,24、0)T, 最优值为 296 296 296。
4. 二段法とビッグM法
場合によっては、最初の基本的な実行可能解を直接取得できない場合があるため、最初に最初の基本的な実行可能解を見つけることを試みる必要があります。
4.1 二段階法
線形計画問題の標準形式については、補助問題を見つけてください。 min ∣ ∣ y ∣ ∣ 1 s . t . A x + y = b x ≥ 0 y ≥ 0 \begin {行列} \min & ||\boldsymbol{y}||_1 \\ \rm s.t.& \boldsymbol{A}\boldsymbol{x}+\boldsymbol{y}=\boldsymbol{b}\\ & \boldsymbol{x}\ge\bold{0}\\ & \boldsymbol{y}\ge\bold{0} \end{マトリックス} 分セント∣∣y∣∣1 Ax+そして=bバツ≥0そして≥0 の最適解と最適値。補助問題の最適値が 0 0 でない場合0 の場合、元の問題には最適解がありません。それ以外の場合、得られる最適解は、元の問題に対する基本的な実行可能な解になります。
[例 2] 次の線形計画問題を解きます
min 2 x 1 + x 2 s . t . x 1 + x 2 + x 3 = 8 x 2 − x 3 = − 3 x i ≥ 0 、 i = 1 , 2 , 3 \begin{matrix} \min & 2x_1+x_2 \\ \rm s.t.& x_1+x_2+x_3=8 \\ & x_2-x_3=- 3 \\ & x_i\ge0,i=1,2,3 \end{行列} 分セント2x1 +バツ2 バツ1 +バツ2 +バツ3 =8バツ2 −バツ3 =−3バツi ≥0、私=1、2、3
[解法] まず問題を標準形式に変換します
min 2 x 1 + x 2 s . t . x 1 + x 2 + x 3 = 8 − x 2 + x 3 = 3 x i ≥ 0 , i = 1 , 2 , 3 \begin{matrix} \min & 2x_1+x_2 \\ \rm s.t.& x_1+x_2+x_3=8 \\ & -x_2+x_3= 3 \\ & x_i\ge0,i=1,2,3 \end{行列} 分セント2x1 +バツ2 バツ1 +バツ2 +バツ3 =8−x2 +バツ3 =3バツi ≥0、私=1、2、3
一段階问题
分 y 1 + y 2 s 。と。 x 1 + x 2 + x 3 + y 1 = 8 − x 2 + x 3 + y 2 = 3 x i ≥ 0 , i = 1 , 2 , 3 y 1 , y 2 ≥ 0 \begin{matrix} \min & ; y_1+y_2 \\ \rm s.t.& x_1+x_2+x_3+y_1=8 \\ & -x_2+x_3+y_2=3 \\ & x_i\ge0,i=1,2,3 \\ & y_1,y_2\ge0 \end{行列} 分セントそして1 +そして2 バツ1 +バツ2 +バツ3 +そして1 =8−x2 +バツ3 +そして2 =3バツi ≥0、私=1、2、3そして1 、そして2 ≥0 初期のシンプレックス テーブルは次のとおりです。
×1×_1バツ1 | ×2×_2バツ2 | ×3×_3バツ3 | y 1 y_1そして1 | y 2 y_2そして2 | b bb | |
---|---|---|---|---|---|---|
c cc | 0 00 | 0 00 | 0 00 | 1 11 | 1 11 | 0 00 |
y 1 y_1そして1 | 1 11 | 1 11 | 1 11 | 1 11 | 0 00 | 8 88 |
y 2 y_2そして2 | 0 00 | − 1 -1−1 | 1 11 | 0 00 | 1 11 | 3 33 |
第 1 1 1 反復し、基本的な行変換を通じて最初の行をテスト番号の行に変換し、
×1×_1バツ1 | ×2×_2バツ2 | ×3×_3バツ3 | y 1 y_1そして1 | y 2 y_2そして2 | b bb | |
---|---|---|---|---|---|---|
検査数 | − 1 -1−1 | 0 00 | − 2 -2−2 | 0 00 | 0 00 | − 11 -11−11 |
y 1 y_1そして1 | 1 11 | 1 11 | 1 11 | 1 11 | 0 00 | 8 88 |
y 2 y_2そして2 | 0 00 | − 1 -1−1 | 1 \color{レッド}11 | 0 00 | 1 11 | 3 33 |
检验数中, − 2 -2 −2最小, 所以 x 3 x_3 バツ3 は基本変数です。以降 min { 8 ÷ 1 , 3 ÷ 1 } = 3 ÷ 1 \min \left\lbrace8\div1,3\div1\right \rbrace=3\div1 分{ 8÷1、3÷1}=3÷1, 所以 y 2 y_2 そして2 は基準外変数です。
第 2 2 2 反復、シンプレックス テーブルは
×1×_1バツ1 | ×2×_2バツ2 | ×3×_3バツ3 | y 1 y_1そして1 | y 2 y_2そして2 | b bb | |
---|---|---|---|---|---|---|
検査数 | − 1 -1−1 | − 2 -2−2 | 0 00 | 0 00 | 2 22 | − 5 -5−5 |
y 1 y_1そして1 | 1 11 | 2 \color{レッド}22 | 0 00 | 1 11 | − 1 -1−1 | 5 55 |
×3×_3バツ3 | 0 00 | − 1 -1−1 | 1 11 | 0 00 | 1 11 | 3 33 |
检验数中, − 2 -2 −2最小, 所以 x 2 x_2 バツ2 は基本変数です。 y 1 y_1 のみそして1 の対応する係数は正であるため、 y 1 y_1 そして1 は基本変数です。
第 3 3 3 反復、シンプレックス テーブルは
×1×_1バツ1 | ×2×_2バツ2 | ×3×_3バツ3 | y 1 y_1そして1 | y 2 y_2そして2 | b bb | |
---|---|---|---|---|---|---|
検査数 | 0 00 | 0 00 | 0 00 | 1 11 | 1 11 | 0 00 |
×2×_2バツ2 | 1 2 \dfrac{1}{2}21 | 1 11 | 0 00 | 1 2 \dfrac{1}{2}21 | − 1 2 -\dfrac{1}{2}−21 | 5 2 \dfrac{5}{2}25 |
×3×_3バツ3 | 1 2 \dfrac{1}{2}21 | 0 00 | 1 11 | 1 2 \dfrac{1}{2}21 | 1 2 \dfrac{1}{2}21 | 11 2 \dfrac{11}{2}211 |
检验数全为非负数, 迭代结束, 得到辅助问题的最优值为 0 0 0, 所以 x = ( 0 , 5 2 , 11 2 ) T \boldsymbol{x}=\left(0,\dfrac{5}{2},\dfrac{11}{2}\right)^{\rm T} x=(0,25,211)T是标准形式问题的一个基本可行解。
二阶段问题
令 y 1 = y 2 = 0 y_1=y_2=0 y1=y2=0, 得到
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | b b b | |
---|---|---|---|---|
c c c | 2 2 2 | 1 1 1 | 0 0 0 | 0 0 0 |
x 2 x_2 x2 | 1 2 \dfrac{1}{2} 21 | 1 1 1 | 0 0 0 | 5 2 \dfrac{5}{2} 25 |
x 3 x_3 x3 | 1 2 \dfrac{1}{2} 21 | 0 0 0 | 1 1 1 | 11 2 \dfrac{11}{2} 211 |
通过初等行变换把第一行变为检验数行, 得到
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | b b b | |
---|---|---|---|---|
检验数 | 3 2 \dfrac{3}{2} 23 | 0 0 0 | 0 0 0 | − 5 2 -\dfrac{5}{2} −25 |
x 2 x_2 x2 | 1 2 \dfrac{1}{2} 21 | 1 1 1 | 0 0 0 | 5 2 \dfrac{5}{2} 25 |
x 3 x_3 x3 | 1 2 \dfrac{1}{2} 21 | 0 0 0 | 1 1 1 | 11 2 \dfrac{11}{2} 211 |
检验数全为非负数, 迭代结束, 所以标准问题的最优解为 x = ( 0 , 5 2 , 11 2 ) T \boldsymbol{x}=\left(0,\dfrac{5}{2},\dfrac{11}{2}\right)^{\rm T} x=(0,25,211)T, 最优值为 5 2 \dfrac{5}{2} 25, 此即为原问题的最优解与最优值。
4.2 大M法
对于标准形式的线性规划问题, 设 M M M是充分大的正数, 求辅助问题
min c T x + M ∣ ∣ y ∣ ∣ 1 s . t . A x + y = b x ≥ 0 y ≥ 0 \begin{matrix} \min & \boldsymbol{c}^{\rm T}\boldsymbol{x}+M||\boldsymbol{y}||_1 \\ \rm s.t.& \boldsymbol{A}\boldsymbol{x}+\boldsymbol{y}=\boldsymbol{b}\\ & \boldsymbol{x}\ge\bold{0}\\ & \boldsymbol{y}\ge\bold{0} \end{matrix} mins.t.cTx+M∣∣y∣∣1Ax+y=bx≥0y≥0的最优解 ( x ∗ T , y ∗ T ) T \left(\boldsymbol{x}^{*\rm T},\boldsymbol{y}^{*\rm T}\right)^{\rm T} (x∗T,y∗T)T。若 y ∗ = 0 \boldsymbol{y}^*=\bold{0} y∗=0, 则 x ∗ \boldsymbol{x}^* x∗为原问题的最优解, 否则, 原问题无最优解。
【例3】求解以下线性规划问题
min 2 x 1 + x 2 s . t . x 1 + x 2 + x 3 = 8 x 2 − x 3 = − 3 x i ≥ 0 , i = 1 , 2 , 3 \begin{matrix} \min & 2x_1+x_2 \\ \rm s.t.& x_1+x_2+x_3=8 \\ & x_2-x_3=-3 \\ & x_i\ge0,i=1,2,3 \end{matrix} mins.t.2x1+x2x1+x2+x3=8x2−x3=−3xi≥0,i=1,2,3
【解】构造辅助问题
min 2 x 1 + x 2 + M y 1 + M y 2 s . t . x 1 + x 2 + x 3 + y 1 = 8 − x 2 + x 3 + y 2 = 3 x i ≥ 0 , i = 1 , 2 , 3 \begin{matrix} \min & 2x_1+x_2+My_1+My_2 \\ \rm s.t.& x_1+x_2+x_3+y_1=8 \\ & -x_2+x_3+y_2=3 \\ & x_i\ge0,i=1,2,3 \end{matrix} mins.t.2x1+x2+My1+My2x1+x2+x3+y1=8−x2+x3+y2=3xi≥0,i=1,2,3
初始的单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | y 1 y_1 y1 | y 2 y_2 y2 | b b b | |
---|---|---|---|---|---|---|
c c c | 2 2 2 | 1 1 1 | 0 0 0 | M M M | M M M | 0 0 0 |
y 1 y_1 y1 | 1 1 1 | 1 1 1 | 1 1 1 | 1 1 1 | 0 0 0 | 8 8 8 |
y 2 y_2 y2 | 0 0 0 | − 1 -1 −1 | 1 1 1 | 0 0 0 | 1 1 1 | 3 3 3 |
第 1 1 1次迭代, 通过初等行变换把第一行变为检验数行, 得到
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | y 1 y_1 y1 | y 2 y_2 y2 | b b b | |
---|---|---|---|---|---|---|
检验数 | 2 − M 2-M 2−M | 1 1 1 | − 2 M -2M −2M | 0 0 0 | 0 0 0 | − 11 M -11M −11M |
y 1 y_1 y1 | 1 1 1 | 1 1 1 | 1 1 1 | 1 1 1 | 0 0 0 | 8 8 8 |
y 2 y_2 y2 | 0 0 0 | − 1 -1 −1 | 1 \color{Red}1 1 | 0 0 0 | 1 1 1 | 3 3 3 |
检验数中, − 2 M -2M −2M最小, 所以 x 3 x_3 x3为进基变量。由于 min { 8 ÷ 1 , 3 ÷ 1 } = 3 ÷ 1 \min \left\lbrace8\div1,3\div1\right \rbrace=3\div1 min{ 8÷1,3÷1}=3÷1, 所以 y 2 y_2 y2为离基变量。
第 2 2 2次迭代, 单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | y 1 y_1 y1 | y 2 y_2 y2 | b b b | |
---|---|---|---|---|---|---|
检验数 | 2 − M 2-M 2−M | 1 − 2 M 1-2M 1−2M | 0 0 0 | 0 0 0 | 2 M 2M 2M | − 5 M -5M −5M |
y 1 y_1 y1 | 1 1 1 | 2 \color{Red}2 2 | 0 0 0 | 1 1 1 | − 1 -1 −1 | 5 5 5 |
x 3 x_3 x3 | 0 0 0 | − 1 -1 −1 | 1 1 1 | 0 0 0 | 1 1 1 | 3 3 3 |
检验数中, 1 − 2 M 1-2M 1−2M最小, 所以 x 2 x_2 x2为进基变量。 只有 y 1 y_1 y1对应的系数是正的, 所以 y 1 y_1 y1为进基变量。
第 3 3 3次迭代, 单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | y 1 y_1 y1 | y 2 y_2 y2 | b b b | |
---|---|---|---|---|---|---|
检验数 | 3 2 \dfrac{3}{2} 23 | 0 0 0 | 0 0 0 | M − 1 2 M-\dfrac{1}{2} M−21 | M + 1 2 M+\dfrac{1}{2} M+21 | − 5 2 -\dfrac{5}{2} −25 |
x 2 x_2 x2 | 1 2 \dfrac{1}{2} 21 | 1 1 1 | 0 0 0 | 1 2 \dfrac{1}{2} 21 | − 1 2 -\dfrac{1}{2} −21 | 5 2 \dfrac{5}{2} 25 |
x 3 x_3 x3 | 1 2 \dfrac{1}{2} 21 | 0 0 0 | 1 1 1 | 1 2 \dfrac{1}{2} 21 | 1 2 \dfrac{1}{2} 21 | 11 2 \dfrac{11}{2} 211 |
检验数全为非负数, 迭代结束, 得到辅助问题的最优解为 ( 0 , 5 2 , 11 2 , 0 , 0 ) T \left(0,\dfrac{5}{2},\dfrac{11}{2},0,0\right)^{\rm T} (0,25,211,0,0)T, 所以原问题的最优解为 x = ( 0 , 5 2 , 11 2 ) T \boldsymbol{x}=\left(0,\dfrac{5}{2},\dfrac{11}{2}\right)^{\rm T} x=(0,25,211)T, 最优值为 5 2 \dfrac{5}{2} 25。
5. 线性规划的对偶问题
5.1 对偶问题
任何一个线性规划问题都有与之对应的对偶问题, 且线性规划问题的对偶问题的对偶问题是原问题。
标准形式的线性规划问题
min c T x s . t . A x = b x ≥ 0 \begin{matrix} \min & \boldsymbol{c}^{\rm T}\boldsymbol{x} \\ \rm s.t.& \boldsymbol{A}\boldsymbol{x}=\boldsymbol{b}\\ & \boldsymbol{x}\ge\bold{0} \end{matrix} mins.t.cTxAx=bx≥0的对偶问题为
max b T x s . t . A T x ≤ c \begin{matrix} \max & \boldsymbol{b}^{\rm T}\boldsymbol{x} \\ \rm s.t.& \boldsymbol{A}^{\rm T}\boldsymbol{x}\le\boldsymbol{c} \end{matrix} maxs.t.bTxATx≤c
线性规划问题
min c T x s . t . A x ≥ b x ≥ 0 \begin{matrix} \min & \boldsymbol{c}^{\rm T}\boldsymbol{x} \\ \rm s.t.& \boldsymbol{A}\boldsymbol{x}\ge\boldsymbol{b}\\ & \boldsymbol{x}\ge\bold{0} \end{matrix} mins.t.cTxAx≥bx≥0的对偶问题为
max b T x s . t . A T x ≤ c x ≥ 0 \begin{matrix} \max & \boldsymbol{b}^{\rm T}\boldsymbol{x} \\ \rm s.t.& \boldsymbol{A}^{\rm T}\boldsymbol{x}\le\boldsymbol{c} \\ & \boldsymbol{x}\ge\bold{0} \end{matrix} maxs.t.bTxATx≤cx≥0
一般地, 可以按照以下步骤写出任何一个线性规划问题的对偶问题:
- 把约束中的 ≤ \le ≤通过两边同乘 − 1 -1 −1的方式变为 ≥ \ge ≥
- 优化目标 min ↔ max \min\leftrightarrow\max min↔max
- 系数向量与右端向量 b ↔ c \boldsymbol{b}\leftrightarrow\boldsymbol{c} b↔c
- 系数矩阵 A ↔ A T \boldsymbol{A}\leftrightarrow\boldsymbol{A}^{\rm T} A↔AT
- 若决策变量有非负约束, 则对偶问题中对应的约束为不等式 ≤ \le ≤约束
- 若决策变量无非负约束, 则对偶问题中对应的约束为等式约束
- 若原问题为等式约束, 则对偶问题中对应的决策变量无非负约束
【例4】写出以下线性规划问题的对偶问题
min − x 1 + 4 x 2 s . t . x 1 + 3 x 2 ≤ 2 − x 1 + 2 x 2 ≥ 4 x 2 ≥ 0 \begin{matrix} \min & -x_1+4x_2 \\ \rm s.t.& x_1+3x_2\le2 \\ & -x_1+2x_2\ge4 \\ & x_2\ge0 \end{matrix} mins.t.−x1+4x2x1+3x2≤2−x1+2x2≥4x2≥0
【解】先把原问题等价变换为
min − x 1 + 4 x 2 s . t . − x 1 − 3 x 2 ≥ − 2 − x 1 + 2 x 2 ≥ 4 x 2 ≥ 0 \begin{matrix} \min & -x_1+4x_2 \\ \rm s.t.& -x_1-3x_2\ge-2 \\ & -x_1+2x_2\ge4 \\ & x_2\ge0 \end{matrix} mins.t.−x1+4x2−x1−3x2≥−2−x1+2x2≥4x2≥0于是, 对偶问题为
max − 2 x 1 + 4 x 2 s . t . − x 1 − x 2 = − 1 − 3 x 1 + 2 x 2 ≤ 4 x 1 , x 2 ≥ 0 \begin{matrix} \max & -2x_1+4x_2 \\ \rm s.t.& -x_1-x_2=-1 \\ & -3x_1+2x_2\le4 \\ & x_1,x_2\ge0 \end{matrix} maxs.t.−2x1+4x2−x1−x2=−1−3x1+2x2≤4x1,x2≥0
5.2 对偶定理
弱对偶定理:设互为对偶的两个线性规划的目标分别是 min f ( x ) \min f(\boldsymbol{x}) minf(x)和 max g ( y ) \max g(\boldsymbol{y}) maxg(y), 且 x \boldsymbol{x} x和 y \boldsymbol{y} y分别是它们的可行解, 则有 f ( x ) ≥ g ( y ) f(\boldsymbol{x})\ge g(\boldsymbol{y}) f(x)≥g(y)。
强对偶定理:互为对偶问题的两个线性规划问题, 若其中一个问题存在最优值, 则另一个问题也存在最优值, 且两个问题的最优值相等。
5.3 对偶单纯形方法
对偶单纯形方法与单纯形方法计算步骤类似, 不同之处在于:
- 结束条件变为右端向量全部非负;
- 右端向量最小的基变量为离基变量;
- 检验数与对应系数的相反数的商为正数且最小的变量为进基变量。
【例5】用对偶单纯形方法求解以下线性规划问题
min 20 x 1 + 16 x 2 + 25 x 3 s . t . 20 x 1 + 60 x 2 + 30 x 3 ≥ 1 200 x 1 + 100 x 2 + 175 x 3 ≥ 2 250 x 1 + 250 x 2 + 200 x 3 ≥ 3 x i ≥ 0 , i = 1 , 2 , 3 \begin{matrix} \min & 20x_1+16x_2+25x_3 \\ \rm s.t.& 20x_1+60x_2+30x_3\ge1 \\ & 200x_1+100x_2+175x_3\ge2 \\ & 250x_1+250x_2+200x_3\ge3\\ & x_i\ge0, i=1,2,3 \end{matrix} mins.t.20x1+16x2+25x320x1+60x2+30x3≥1200x1+100x2+175x3≥2250x1+250x2+200x3≥3xi≥0,i=1,2,3
【解】首先把问题转换为标准形式
min 20 x 1 + 16 x 2 + 25 x 3 s . t . 20 x 1 + 60 x 2 + 30 x 3 − x 4 = 1 200 x 1 + 100 x 2 + 175 x 3 − x 5 = 2 250 x 1 + 250 x 2 + 200 x 3 − x 6 = 3 x i ≥ 0 , i = 1 , 2 , ⋯ , 6 \begin{matrix} \min & 20x_1+16x_2+25x_3 \\ \rm s.t.& 20x_1+60x_2+30x_3-x_4=1 \\ & 200x_1+100x_2+175x_3-x_5=2 \\ & 250x_1+250x_2+200x_3-x_6=3\\ & x_i\ge0, i=1,2,\cdots,6 \end{matrix} mins.t.20x1+16x2+25x320x1+60x2+30x3−x4=1200x1+100x2+175x3−x5=2250x1+250x2+200x3−x6=3xi≥0,i=1,2,⋯,6
第 1 1 1次迭代, 单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 | x 6 x_6 x6 | b b b | |
---|---|---|---|---|---|---|---|
检验数 | 20 20 20 | 16 16 16 | 25 25 25 | 0 0 0 | 0 0 0 | 0 0 0 | 0 0 0 |
x 4 x_4 x4 | − 20 -20 −20 | − 60 -60 −60 | − 30 -30 −30 | 1 1 1 | 0 0 0 | 0 0 0 | − 1 -1 −1 |
x 5 x_5 x5 | − 200 -200 −200 | − 100 -100 −100 | − 175 -175 −175 | 0 0 0 | 1 1 1 | 0 0 0 | − 2 -2 −2 |
x 6 x_6 x6 | − 250 -250 −250 | − 250 \color{Red}-250 −250 | − 200 -200 −200 | 0 0 0 | 0 0 0 | 1 1 1 | − 3 -3 −3 |
右端向量中, − 3 -3 −3最小, 所以 x 6 x_6 x6为离基变量。由于 min { 20 ÷ 250 , 16 ÷ 250 , 25 ÷ 200 } = 16 ÷ 250 \min \left\lbrace20\div250,16\div250,25\div200 \right \rbrace=16\div250 min{ 20÷250,16÷250,25÷200}=16÷250, 所以 x 2 x_2 x2为进基变量。
第 2 2 2次迭代, 单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 | x 6 x_6 x6 | b b b | |
---|---|---|---|---|---|---|---|
检验数 | 4 4 4 | 0 0 0 | 61 5 \dfrac{61}{5} 561 | 0 0 0 | 0 0 0 | 8 125 \dfrac{8}{125} 1258 | − 24 125 -\dfrac{24}{125} −12524 |
x 4 x_4 x4 | 40 40 40 | 0 0 0 | 18 18 18 | 1 1 1 | 0 0 0 | − 6 25 -\dfrac{6}{25} −256 | − 7 25 -\dfrac{7}{25} −257 |
x 5 x_5 x5 | − 100 \color{Red}-100 −100 | 0 0 0 | − 95 -95 −95 | 0 0 0 | 1 1 1 | − 2 5 -\dfrac{2}{5} −52 | − 4 5 -\dfrac{4}{5} −54 |
x 2 x_2 x2 | 1 1 1 | 1 1 1 | 4 5 \dfrac{4}{5} 54 | 0 0 0 | 0 0 0 | − 1 250 -\dfrac{1}{250} −2501 | 3 250 \dfrac{3}{250} 2503 |
右端向量中, − 4 5 -\dfrac{4}{5} −54最小, 所以 x 5 x_5 x5为离基变量。由于 min { 4 ÷ 100 , 61 5 ÷ 95 , 8 125 ÷ 2 5 } = 4 ÷ 100 \min \left\lbrace4\div100,\dfrac{61}{5}\div95,\dfrac{8}{125}\div\dfrac{2}{5} \right \rbrace=4\div100 min{ 4÷100,561÷95,1258÷52}=4÷100, 所以 x 1 x_1 x1为进基变量。
第 3 3 3次迭代, 单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 | x 6 x_6 x6 | b b b | |
---|---|---|---|---|---|---|---|
检验数 | 0 0 0 | 0 0 0 | 42 5 \dfrac{42}{5} 542 | 0 0 0 | 1 25 \dfrac{1}{25} 251 | 6 125 \dfrac{6}{125} 1256 | − 28 125 -\dfrac{28}{125} −12528 |
x 4 x_4 x4 | 0 0 0 | 0 0 0 | − 20 -20 −20 | 1 1 1 | 2 5 \dfrac{2}{5} 52 | − 2 5 \color{Red}-\dfrac{2}{5} −52 | − 3 5 -\dfrac{3}{5} −53 |
x 1 x_1 x1 | 1 1 1 | 0 0 0 | 19 20 \dfrac{19}{20}2019 | 0 00 | − 1 100 -\dfrac{1}{100}−1001 | 1 250 \dfrac{1}{250}2501 | 1 125 \dfrac{1}{125}1251 |
×2×_2バツ2 | 0 00 | 1 11 | − 3 20 -\dfrac{3}{20}−203 | 0 00 | 1 100 \dfrac{1}{100}1001 | − 1 125 -\dfrac{1}{125}−1251 | 1 250 \dfrac{1}{250}2501 |
右端のベクトルでは、 − 3 5 -\dfrac{3}{5} −53 最小, 所以 x 4 x_4 バツ4 は基準外変数です。以降 min { 42 5 ÷ 20 , 6 125 ÷ 2 5 } = 6 125 ÷ 2 5 \min \left\lbrace\dfrac{42}{5}\div20,\dfrac{ 6}{125}\div\dfrac{2}{5}\right \rbrace=\dfrac{6}{125}\div\dfrac{2}{5} 分{ 542 ÷20、1256 ÷52 }=1256 ÷52 , 所以 x 6 x_6 バツ6 は基本変数です。
第 4 4 4 反復、シンプレックス テーブルは
×1×_1バツ1 | ×2×_2バツ2 | ×3×_3バツ3 | × 4 ×_4バツ4 | ×5×_5バツ5 | ×6×_6バツ6 | b bb | |
---|---|---|---|---|---|---|---|
検査数 | 0 00 | 0 00 | 6 66 | 3 25 \dfrac{3}{25}253 | 11 125 \dfrac{11}{125}12511 | 0 00 | − 37 125 -\dfrac{37}{125}−12537 |
×6×_6バツ6 | 0 00 | 0 00 | 50 5050 | − 5 2 -\dfrac{5}{2}−25 | − 1 -1−1 | 1 11 | 3 2 \dfrac{3}{2}23 |
×1×_1バツ1 | 1 11 | 0 00 | 3 4 \dfrac{3}{4}43 | 1 100 \dfrac{1}{100}1001 | − 3 500 -\dfrac{3}{500}−5003 | 0 00 | 1 500 \dfrac{1}{500}5001 |
×2×_2バツ2 | 0 00 | 1 11 | 1 4 \dfrac{1}{4}41 | − 1 50 -\dfrac{1}{50}−501 | 1 500 \dfrac{1}{500}5001 | 0 00 | 2 125 \dfrac{2}{125}1252 |
右側のベクトルはすべて非負の数であり、反復は終了します。標準問題の最適解は x = ( 1 500 , 2 125 , 0 , 0 , 0 , 3 2 ) T \boldsymbol{x}=\left(\dfrac{1} { 500},\dfrac{2}{125},0,0,0,\dfrac{3}{2}\right)^{\rm T} バツ=(5001 、1252 、0、0、0、23 )T, 最优值为 37 125 \dfrac{37}{125} 12537 。
したがって、元の問題の最適解は x = ( 1 500 , 2 125 , 0 ) T \boldsymbol{x}=\left(\dfrac { 1}{500},\dfrac{2}{125},0\right)^{\rm T} バツ=(5001 、1252 、0)T, 最优值为 37 125 \dfrac{37}{125} 12537 。