运筹学主要关注如何优化决策和解决实际问题,涉及到线性规划、整数规划、动态规划等技术和方法。它在工业、供应链管理、交通规划等领域具有广泛的应用。学习运筹学可以帮助人们了解如何建立数学模型、使用优化算法以及进行决策分析,以提高效率和效果。
运筹学主要包括三大部分:模型、理论和算法
(1)“P是否等于NP”,也被列为本世纪的7个数学难题之一;(2)单变量多项式整解的个数;(3)可描述价格调整的一般均衡理论的数学模型;(4)实系数线性规划是否多项式时间可解。
(1)凸多面体的d-步猜想;(2)有限多个二次函数最大值的极小化问题;(3)推广的Lax猜想;(4)DFP拟牛顿法的收敛性;(5)最小阻力凸体问题;(6)是否存在求解性线性规划的强多项式时间算法?(7)组合优化反问题的计算复杂性;(8)求解旅行商问题的更好的近似算法;(9)k-服务器猜想;(10)装箱问题是否存在绝对近似算法;(11)随机排队网络的遍历性;(12)PH-分布的最小表示。
互补松弛定理
若
x
=
(
x
1
,
x
2
,
.
.
.
,
x
n
)
x=(x_1,x_2,...,x_n)
x=(x1,x2,...,xn)和
y
=
(
y
1
,
y
2
,
.
.
.
,
y
n
)
y=(y_1,y_2,...,y_n)
y=(y1,y2,...,yn)分别是原始和对偶问题的可行解,则x和y都是相应问题的最优解当且仅当下述条件成立:
原始互补松弛条件:
对每一 1
≤
\leq
≤ j
≤
\leq
≤ n:要么
x
j
=
0
x_j = 0
xj=0 ,要么
∑
a
i
j
\sum a_{ij}
∑aij
一、线性规划
⊙ \odot ⊙ 线性规划模型
食谱问题:
每天进食一定量的两种维生素Vc和Vd,而这些维生素可以从牛奶和鸡蛋中得到
维生素 | 奶中含量 | 蛋中含量 | 每日需求 |
---|---|---|---|
Vc | 2 | 4 | 40 |
Vb | 3 | 2 | 50 |
单价 | 3 | 2.5 |
需要确定每天喝牛奶和吃鸡蛋的数量,目标是以最少的花费购买食物,而满足最低限度的维生素需求量。
令x为奶量,y为蛋量
Min 3x+2.5y 极小化目标函数
2x+4y
≥
\geq
≥ 40
3x+2y
≥
\geq
≥ 50 可行区域(单纯形)
x,y
≥
\geq
≥ 0 可行解
满足线性规划模型约束条件的解,称为可行解;所有可行解构成的集合称为“可行域”。在可行域中,能使得目标函数达到最大的解称为“最优解”
二、单纯形法
先化为标准型
列表
max z=
2
x
1
+
3
x
2
+
0
x
3
+
0
x
4
+
0
x
5
+
0
x
6
2x_1+3x_2+0x_3+0x_4+0x_5+0x_6
2x1+3x2+0x3+0x4+0x5+0x6
s.t.
2
x
1
+
2
x
2
+
x
3
=
12
2x_1+2x_2+x_3 = 12
2x1+2x2+x3=12
x
1
+
2
x
2
+
x
4
=
8
x_1+2x_2+x_4 = 8
x1+2x2+x4=8
4
x
1
+
x
5
=
16
4x_1+x_5 = 16
4x1+x5=16
4
x
2
+
x
6
=
12
4x_2+x_6 = 12
4x2+x6=12
x
1
,
x
2
,
x
3
,
x
4
,
x
5
,
x
6
≥
0
x_1,x_2,x_3,x_4,x_5,x_6\geq 0
x1,x2,x3,x4,x5,x6≥0
c j c_j cj | 2 | 3 | 0 | 0 | 0 | 0 | θ i \theta_i θi | ||
---|---|---|---|---|---|---|---|---|---|
c B c_B cB | x B x_B xB | b | 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 | |
0 | x 3 x_3 x3 | 12 | 2 | 2 | 1 | 0 | 0 | 0 | 12/2 |
0 | x 4 x_4 x4 | 8 | 1 | 2 | 0 | 1 | 0 | 0 | 8/2 |
0 | x 5 x_5 x5 | 16 | 4 | 0 | 0 | 0 | 1 | 0 | - |
0 | x 6 x_6 x6 | 12 | 0 | 4 | 0 | 0 | 0 | 1 | 12/4 |
c j − z j c_j-z_j cj−zj | 0 | 2 | 3 | 0 | 0 | 0 | 0 | ||
首先找最后一行最大的数字所在列,用b/该列的数字作为 θ i \theta_i θi | |||||||||
找 θ i \theta_i θi最小的那一行,就是要替换的 x i x_i xi | |||||||||
每次替换时,将所在格子化为1,所在列的其他数字经过矩阵加减变为0 | |||||||||
经过计算后得到第二张表 | |||||||||
多次计算后使最后一行的数字都要小于0即可 | |||||||||
此时b的那一列就是最终解 |
三、对偶问题
- 方法
- 确定对偶问题,max变min,min变max,且添加变量y1,y2,y3
- 确定对偶问题的目标函数
- 确定对偶问题中约束条件
- 式子右边的常数使原问题目标函数中的系数
- 确定约束条件中的符号,式子的符号又原问题中对应变量的范围决定
![[运筹学对偶问题约束条件符号.png]]- 确定对偶问题中变量的范围,式子中变量的范围由对应行的约束条件决定
与上图相反,max变号,min不变
对偶单纯形法
要求:
- 目标数求极大
- 系数非正
- 有单位矩阵
- 至少一个右端项非正
先选行,后选列
先选右端项最小的,用检验数除以一行的数,取最小的
多次计算令b那一列的数都为正,而对偶问题也有可行解,即最后一行全为负
此时b的最后一行的那个负数的绝对值即为原问题和对偶问题的最终解,记得全取绝对值
影子价格
原问题的对偶问题的最优解就是各资源的影子价格
经济意义:每增加一单位的资源,最终收益增加多少单位
判断资源是否有剩余:
影子价格>0,对应资源无剩余
影子价格=0,对应资源有剩余
灵敏度分析
一、目标函数中变量前面的系数发生变化
根据目标函数变量系数的变化画新的单纯形表
重新计算检验数,若检验数的数字都<=0,则最优解不变,否则最优解改变,用单纯形法继续求最优解
二、约束条件右边的常数发生变化
写出变化后的约束条件
b=B ∗ * ∗b‘
B为最终单纯形表后n列的矩阵,b1为新的约束条件构成的1* n的矩阵
为求最优解,把b的值填入最终单纯形表替换b列的值,求出最优解
若b>=0则最优基不变