问题描述
标准线性规划的容许集是凸多面体,有有限个极点,若有容许解,则必有基本容许解;若有最优解,则必有最优基本解。由此看来,为求最优解,只须关心基本容许解。又因为基本容许解与极点是一一对应的,所以从几何上,容易想出:先求出一个极点,再沿凸多面体的棱求出另一个使目标函数值所有下降的极点。因为极点的总数是有限的,所以在一定条件下,总可以迭代到最优的极点,因为极点的总数是有限的,所以在一定条件下,总可以迭代到最优的极点。
那么你想依次循环迭代每个极点的话,你需要知道已下三点:1. 怎样求第一个基本容许解? 2. 求出来了这个解怎么判断是不是最优解? 3. 怎么从一个基本容许解迭代到下一个?用官方术语来表示就是:
- 怎样求得标准线性规划的一个初始基本容许解?
- 怎样判别一个基本容许解是否为最优解?
- 怎样从一个基本容许解迭代出使目标函数值下降的另一个基本容许解?
求解思路
我们先看后面两个,也就是怎么判别一个基本容许解是否为最优解:
考虑下面的线性规划问题:
min
c
T
x
s.t.
A
x
=
b
x
≥
0
}
\left.\begin{array}{c}{\min c^{T} x} \\ {\text {s.t. } A x=b} \\ {x \geq 0}\end{array}\right\}
mincTxs.t. Ax=bx≥0⎭
⎬
⎫
其中
A
A
A是秩为
m
m
m的
m
×
n
m \times n
m×n矩阵。设
B
B
B是已知的容许基,不妨设
A
=
[
B
,
N
]
A = [B, N]
A=[B,N]相应地,把
x
x
x和
c
c
c分解为:
x
=
[
x
B
x
N
]
,
c
=
[
c
B
c
N
]
x =\begin{bmatrix}x_{B}\\ x_{N}\end{bmatrix} ,c=\begin{bmatrix}c_{B}\\ c_{N}\end{bmatrix}
x=[xBxN],c=[cBcN]
于是可以写成下式:
min c B T x B + c N T x N T s.t. B x B + N x N = b x B ≥ 0 , x N ≥ 0 } \left.\begin{array}{c}{\min c^{T}_{B} x_{B}+c_{N}^{T}x_{N}^{T}} \\ {\text {s.t. } Bx_{B} + Nx_{N}=b} \\ {x_{B} \geq 0,x_{N} \geq 0}\end{array}\right\} mincBTxB+cNTxNTs.t. BxB+NxN=bxB≥0,xN≥0⎭ ⎬ ⎫
令所有非基变量的取值为零,即 x N = 0 x_{N}=0 xN=0,那么由上面的这个等式约束立刻得到基变量向量的取值为 x B = B − 1 b x_{B}=B^{-1}b xB=B−1b。因此关于 B B B的基本容许解是:
其目标函数值是:
z ‾ = c B T B − 1 b \overline{z}=c_{B}^{T}B^{-1}b z=cBTB−1b
现在考虑对于上述的线性规划的任意一个解呢?其容许解可表示为
x
=
[
x
B
T
,
x
N
T
]
T
x=[x_{B}^{T},x_{N}^{T}]^{T}
x=[xBT,xNT]T,其目标函数值是:
z
=
c
B
T
x
B
+
c
N
T
x
N
z=c_{B}^{T}x_{B}+c_{N}^{T}x_{N}
z=cBTxB+cNTxN
由此可以求解出 x B = B − 1 b − B − 1 N x N x_{B}=B^{-1}b-B^{-1}Nx_{N} xB=B−1b−B−1NxN并代入上式,再利用 z ‾ = c B T B − 1 b \overline{z}=c_{B}^{T}B^{-1}b z=cBTB−1b可得:
z = c B T ( B − 1 b − B − 1 N x N ) + c N T x N = z ‾ − ( c B T B − 1 N − c N T ) x N z = c_{B}^{T}(B^{-1}b-B^{-1}Nx_{N})+c_{N}^{T}x_{N} \\ =\overline{z}-(c_{B}^{T}B^{-1}N-c_{N}^{T})x_{N} z=cBT(B−1b−B−1NxN)+cNTxN=z−(cBTB−1N−cNT)xN
如令 σ N T = c B T B − 1 N − c N T \sigma_{N}^{T}=c_{B}^{T}B^{-1}N-c_{N}^{T} σNT=cBTB−1N−cNT则
z = z ‾ − σ N T x N z=\overline{z}-\sigma_{N}^{T}x_{N} z=z−σNTxN
由于 x x x是容许解,故必有 x N ≥ 0 x_{N} \geq 0 xN≥0,因此,只要 σ N ≤ 0 \sigma_{N} \leq 0 σN≤0,由 z = z ‾ − σ N T x N z=\overline{z}-\sigma_{N}^{T}x_{N} z=z−σNTxN立刻得知 z ≥ z ‾ z \geq \overline{z} z≥z,即关于 B B B的基本容许解是最优解。由此得到关于基 B B B的基本容许解是最优解的一个充分条件为:
σ N T = c B T B − 1 N − c N T ≤ 0 T \sigma_{N}^{T}=c_{B}^{T}B^{-1}N-c_{N}^{T} \leq 0^{T} σNT=cBTB−1N−cNT≤0T
将 N = [ a m + 1 , ⋅ ⋅ ⋅ , a n ] N=[a_{m+1},···,a_{n}] N=[am+1,⋅⋅⋅,an]代入 σ N \sigma_{N} σN中,得:
σ j = c B T B − 1 a j − c j , j = m + 1 , ⋅ ⋅ ⋅ , n \sigma_{j}=c_{B}^{T}B^{-1}a_{j}-c_{j},j=m+1,···,n σj=cBTB−1aj−cj,j=m+1,⋅⋅⋅,n
一些定义
因为上面这个公式比较重要,所以我们有必要给其下一个定义:
定义:在标准线性规划中,设 B B B是一个基,则:
σ j = c B T B − 1 a j − c j , j = 1 , 2 , ⋅ ⋅ ⋅ , n \sigma_{j}=c_{B}^{T}B^{-1}a_{j}-c_{j},j=1,2,···,n σj=cBTB−1aj−cj,j=1,2,⋅⋅⋅,n
称为变量 x j x_{j} xj关于基 B B B的判别数。
按此定义,
σ
T
=
c
B
T
B
−
1
A
−
c
T
\sigma^{T}=c_{B}^{T}B^{-1}A-c^{T}
σT=cBTB−1A−cT是所有变量
x
x
x的判别数向量,
σ
N
T
=
c
B
T
B
−
1
N
−
c
N
T
\sigma_{N}^{T}=c_{B}^{T}B^{-1}N-c_{N}^{T}
σNT=cBTB−1N−cNT是所有非基变量
x
N
x_{N}
xN的判别数向量。而所有基本变量
x
B
x_{B}
xB的判别数向量是:
σ
B
T
=
[
σ
1
,
σ
2
,
⋯
,
σ
m
]
=
c
B
T
B
−
1
B
−
c
B
T
=
0
T
\sigma_{B}^{T}=[\sigma_{1},\sigma_{2},\cdots , \sigma_{m}] \\ = c_{B}^{T}B^{-1}B-c_{B}^{T} = 0^{T}
σBT=[σ1,σ2,⋯,σm]=cBTB−1B−cBT=0T
由此可以看到,所有非基变量的判别数都等于零。
定理:在标准线性规划中,设 B B B是容许基,若所有变量关于 B B B的判别数都非正,则关于 B B B的基本容许解是最优解。
之后你就可以刷题了。emmm。
我的微信公众号名称:小小何先生
公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!