线性规划
1 线性规划问题 以及可行域与基本可行解
(1)一般形式 :
m
i
n
Z
minZ
minZ =
C
1
C_1
C1
X
1
X_1
X1+
C
2
C_2
C2
X
2
X_2
X2+
C
3
C_3
C3
X
3
X_3
X3+…+
C
n
C_n
Cn
X
n
X_n
Xn
a
11
a_{11}
a11
x
1
x_1
x1+
a
12
a_{12}
a12
x
2
x_2
x2+
a
13
a_{13}
a13
x
3
x_3
x3+…+
a
1
n
a_{1n}
a1n
x
n
x_n
xn=
b
1
b1
b1
…
a
m
1
a_{m1}
am1
x
1
x_1
x1+
a
m
2
a_{m2}
am2
x
2
x_2
x2+…+
a
m
n
a_{mn}
amn
x
n
x_n
xn>=
b
m
bm
bm
x
j
x_{j}
xj>=0 ,
j
j
j=1,2,3…
q
q
q,
x
j
x_{j}
xj无限制 ,
j
j
j=
q
q
q…n
(2)标准型是约束方程为等号,所有的变量取非负数。对于非负的约束可以通 过引入剩余变量或者松弛变量变为等式,对于无限制的变量可以转化为两个正的变量相减的形式。将目标函数转化为 m i n min min 的形式。
(3) 可行解:满足所有的约束条件的向量(
x
1
x
2
.
.
.
x
n
x_{1} x_{2}...x_{n}
x1x2...xn)
T
^T
T
可行域 :可行解的集合
最优解 可行域中目标函数最优的可行解
(4)基本可行解与基本定理
分块 ,分为满秩矩阵B ,以及矩阵N ,由AX =b 得到B
x
B
x_{B}
xB+N
x
N
x_{N}
xN=b
x
B
x_{B}
xB=
B
−
1
b
−
B^{-1}b-
B−1b−
B
−
1
N
x
N
B^{-1}Nx_{N}
B−1NxN
令
x
N
=
0
x_{N}=0
xN=0 ,得到了一组解。
基与基向量:设B是秩为m的约束矩阵的A的一个m阶满秩子方阵,B中的列向量称为基向量
基变量 基向量对应的变量称为基变量,同理称为非基变量
基本可行解 当
x
B
x_{B}
xB>=0 时为基本可行解
(最优解一定是可行解,但不一定是基本可行解,也不一定是基本解)
总结
如果基本可行解的个数有限,可以在基本可行解中寻找最优解
2单纯形表法
主要的思路: 先寻找一个基本可行解,判断是不是最优解,如果不是就寻找一个更好的可行解,如此迭代直到找到最优解或者是问题无界。
首先寻找一个基本可行解:
x
B
x_{B}
xB+
B
−
1
N
x
N
=
B
−
1
b
B^{-1}Nx_{N}=B^{-1}b
B−1NxN=B−1b
c
T
x
=
c
B
T
x
B
+
c
N
T
x
N
c^{T}x=c^{T}_{B}x_{B}+c^{T}_{N}x_{N}
cTx=cBTxB+cNTxN (1)
令B对应的检验数为0,对应的目标函数可以写为
c
B
T
B
−
1
b
−
γ
T
c_{B}^{T}B^{-1}b-\gamma^{T}
cBTB−1b−γT
其中
γ
T
=
(
γ
B
T
,
γ
N
T
)
\gamma^{T}=(\gamma^{T}_{B},\gamma_{N}^{T})
γT=(γBT,γNT)
从以上的式子中看出当
γ
N
T
\gamma^{T}_{N}
γNT中的系数是小于0 是最优的。
所以根据第一个知识点的回顾,首先将问题转化为标准型的问题,将目标函数中基变量的系数变为0,找到一个基本可行解之后判断是不是最优的,方法很简单看目标函数中的非基变量的系数是不是负的,如果不是那么进行迭代。最终得到最优解,或者是无界。
上述的证明中其实就包含了主要的思路。
3两阶段法
当转化为典式后,基变量不好确定时候可以使用添加人工变量的方式找到这个秩。
引入辅助问题
m
i
n
min
min
g
=
∑
i
=
n
+
1
n
+
m
x
i
g=\sum_{i=n+1}^{n+m}x_{i}
g=∑i=n+1n+mxi
s
.
t
.
{
A
x
+
x
a
=
b
x
≥
0
x
a
≥
0
(1)
s.t.\begin{cases} Ax+x_{a}=b \\ x \geq 0 \quad x_{a}\geq0 \end{cases}\tag{1}
s.t.{Ax+xa=bx≥0xa≥0(1)
对于辅助问题也是有要求最优值的,先给出辅助问题与原问题之间的关系
给出
如果原问题是最优解的话,辅助问题是的最优值是0,反之也是成立的。
求解辅助问题
l
p
lp
lp会得到以下的情况:
(1)问题
g
g
g的最优解是0,并且人工变量是 非基变量,那么对应到原问题就是有最优解的。
(2)辅助问题的最优解>0 原问题是没有基本可行解的,
(3)辅助问题Lp的最优解等于0,但是存在人工变量是基变量,这种需要进一步的判断。
此时假设人工变量
x
r
x_{r}
xr是基变量(
n
+
1
<
r
<
n
+
m
n+1<r<n+m
n+1<r<n+m),只需要考察前n个元素即可。对应的这一行中的元素要么是都是0,要么不全是0, 如果全部是0,那么前n 元素对应的秩不再是m,是m-1,此时可以直接去掉这一行的约束,(系数都是0,这个方程是没有原问题的约束的),如果是不全为0 ,只能是在n 个元素中找个变量成为基变量,此时在对应的行找到一个元素,记为
a
r
s
a_{rs}
ars ,这个元素是可以小于0的,是因为对应的
b
r
b_{r}
br是必然的为0,现在
a
r
s
a_{rs}
ars作为基变量出现也会是0,综上使用这两种方法终于会找到基本可行解。但是对于原问题不一定是最优解,可能需要使用单纯形表法进一步求解。
4对偶性以及对偶单纯形法
个人还是比较喜欢对偶性法的,根据线性代数的知识对于一个n*m阶的矩阵是可以找到满秩方阵的,但是由于
b
b
b是具有限制的,引入了两阶段法,在这个部分中又引入了对偶形法。
首先引入对偶问题的形式,
m
i
n
c
T
x
minc^{T}x
mincTx
s . t . { A x = b x ≥ 0 (1) s.t.\begin{cases} Ax=b \\ x \geq 0 \quad \end{cases}\tag{1} s.t.{Ax=bx≥0(1)
m
a
x
w
T
b
max\quad w^{T}b
maxwTb
s
.
t
.
{
w
T
b
≤
c
T
w
无
限
制
(2)
s.t.\begin{cases} w^{T}b\leq c^{T} \\ w 无限制 \end{cases}\tag{2}
s.t.{wTb≤cTw无限制(2)
直接给出结论:通过一个问题的最优解可以得到另一个问题的最优解。
给定一个原问题,可以得到对偶问题。
(1)由约束看变量,约束的符号是
≥
\geq
≥ 对偶问题的符号是
≤
\leq
≤ ,约束的符号是
≤
\leq
≤ ,对偶问题 的符号是
≥
\geq
≥,是等于的话是严格的无限制。
(2)由变量看约束,符号相反
(3)
b
b
b变
c
c
c ,
c
c
c变
b
b
b
原问题与对偶问题的互补松紧性:
(1)如果一个问题的非负变量是正的,那么另外一个的约束 是
=
=
=
(2) 一个问题的约束是严格的不等式,那么是另一个的变量是等于0
类比单纯形表的方法,得到对偶形法。
对偶单纯形表法是保证检验数为负,
b
b
b由负到正的过程迭代,在选择出基的向量时候,如果
b
r
b_{r}
br对应的
a
r
j
a_{rj}
arj都是
≥
0
\geq0
≥0 ,那么没有可行解。
5灵敏度分析
这里这是考虑改变
c
,
b
c,b
c,b 。
改变c 需要考虑是不是基变量
对于非基的情况较为简单,因为不会涉及到最优解,检验数是变为原来的-新的,之后继续求解。
当是基变量时候: 将单纯形表中对应的第
l
l
l个约束乘以
c
,
c^,
c,-
c
c
c 加到目标函数中,再令对应的元素为0,就可以得到新的单纯形表,再进一步求解。
改变右端向量
b
b
b的时候,那么最优解要变了。需要先求解以下
B
B
B 的逆矩阵,由上面的内容可以看出是和检验数没有关系的。计算
B
−
1
b
′
B^{-1}b^{'}
B−1b′,
c
B
T
B
−
1
b
′
c_{B}^{T}B^{-1}b^{'}
cBTB−1b′ ,此时可以使用对偶形法求解问题。
整数规划
引言:
整数规划是对线性规划的特殊的情况,顾名思义,是要求基本可行解都为正整数。有两种方法是合适的。
(1)Gomory 割平面法(以下简称割平面法)
可以这样说整数规划的最优值是小于等于线性规划最优值的,如果线性规划是有最优值的。同理如果线性规划是没有可行解的,那么整数规划是没有可行解的。因此完全可以先求对应的线性规划。
假设
b
j
b_{j}
bj不是整数 对应的约束是
X
B
(
l
)
+
∑
a
i
j
x
j
=
b
j
X_{B(l)}+\sum a_{ij}x_{j}=b_{j}
XB(l)+∑aijxj=bj
通过分离整数部分与小数部分得到新的约束,使用对偶单纯形法求解。
(2)分枝定界法
这种方法在求解混整数规划尤为好用。先找最优解,根据是整数将可行域进行划分。假设是p1,p2 求解p1,p2的最优解,重复上面的操作。
小结:
最简单还是图解法,如果直接的图解法困难,尝试对偶的,如果还不行就老老实实计算就可以了。