当前位置:文档之家› 灵敏度分析,计算软件

灵敏度分析,计算软件


2011年9月
山东大学 软件学院
14
计算软件
CPLEX Lindo / Lingo Matlab
2011年9月
山东大学 软件学院
15
启动CPLEX
1. 在命令行输入cplex,出现CPLEX提示符“CPLEX>”,进 入CPLEX状态。
2011年9月
山东大学 软件学院
16
输入问题实例
2. 输入enter命令,输入要优化的问题实例。
1 bs B( b B1b B1b B1 b b b bs s ) 。
2011年9月
山东大学 软件学院
10
改变右端向量b
如果 b 0 ,则原最优解还是可行解;并且,检验数向 量没有发生变化,仍然 0,因此原最优解仍是最优解。 否则当前解是新问题的一个基本解(但不可行) ,且单 纯形表上蕴含着对偶问题的一个可行解(因为检验数向量 0) 。因此可利用对偶单纯形算法继续求解新问题。
2011年9月 山东大学 软件学院 13
例2.6.2
得到新问题的单纯形表为:
x1 z x3 x1 0 0 1 x2 1/2 1/2 2 x3 0 1 0 x4 11/4 1/4 1/2 x5 9/4 1/4 3/2 13/4 3/4 5/2
由于右端向量不 0,因此下面可用对偶单纯形算法继 续求得新问题的最优解。
由于检验数向量 0, 当前解 xT = (1/2, 0, 1/4, 0, 0)仍是新问 题的最优解。
2011年9月
山东大学 软件学院
8
例2.6.1(2)
(2)变量 x3 的系数由 21 变为 5。 解:由于 x3 为基变量,将最优单纯形表 x3 对应的第 1 行乘
为 0。得到新的单纯形表如下: 以 5 21,加到第 0 行上,再令 3
1/ 4 1/ 4 B 1/ 2 3 / 2 。所以

1 1 3 2 4 4 b B 1b 4 1 3 5 1 , 2 2 2 3 13 T 1 4 cB B b 21 5 z0 5 4。 2
2011年9月
山东大学 软件学院
22
例子
依次输入如下命令: f = [1 1 1 1 1 1 1]' A = [-1 -1 0 0 0 0 0; -1 0 -1 0 0 0 0; -1 0 0 -1 0 0 0; 0 -1 0 0 -1 0 0; 0 0 -1 0 0 -1 0; 0 0 0 -1 0 0 -1] B = [-1; -1; -1; -1; -1; -1] xm = [0 0 0 0 0 0 0] [x, f_opt, exit_flag, output] = linprog(f, A, B, [], [], xm)
xB z xB 0 I xN cBTB1N cNT B1N RHS cBTB1b B1b
设右端向量由 b 变为 b’。由最优单纯形表知,只需要
1 z c b B b 修改表格的最右端一列: , 0 Bb 。
若只改变一个右端项 bs 为 bs ,则 b 的计算可化简为:
~ 1 c x c 目标函数值 B B b。
如果检验数向量 0,则原最优解 x 依然是最优解。 否则 x 是基可行解,以此为基础继续进行迭代就可以求出 新问题的最优解。
2011年9月 山东大学 软件学院 2
仅改变一个价值系数ck到c’k
分两种情况讨论: xk是基变量; xk是非基变量。




1 1 1 z c B b c B b c c B bl。 新的目标函数值为: 0 B B k k


2011年9月
山东大学 软件学院
5
xk是基变量
以上两个运算可通过如下操作完成:将单纯形表的第 l ck ,加到第 0 行上, 行乘以 ck (由于 xk 在基中,这个操作会
2011年9月
山东大学 软件学院
17
开始进行优化
3. 输入optimize命令,开始求解问题。
2011年9月
山东大学 软件学院
18
显示解
4. 输入display命令,显示求到的解。
5. 输入quit,退出CPLEX。
2011年9月
山东大学 软件学院
19
使用MATLAB求解线性规划
MATLAB 求解如下形式的线性规划:
ck ck ,而 k 应为 0。故应)再令 k 为 0。 使得 k
2011年9月
山东大学 软件学院
6
例2.6.1(1)
min 5 x1 21x3 s.t. x1 x2 6 x3 x4 x1 x2 2 x3 x5 xi 2 1 (例 2.4.1 的 LP) 0 i
min f T x s.t. Ax B Aeq x Beq xm x x M
使用的函数为: [x, f_opt] = linprog(f, A, B, Aeq, Beq, xm, xM, x0) [x, f_opt, exit_flag, output] = linprog(f, A, B, Aeq, Beq, xm, xM, x0)
由于 x2 是非基变量,故只需要计算 1 3 2 2 c2 c2 0 1 。新的单纯形表为: 2 2
x1 z x3 x1 0 0 1 x2 3/2 1/2 2 x3 0 1 0 x4 11/4 1/4 1/2 x5 9/4 1/4 3/2 31/4 1/4 1/2
2011年9月
山东大学 软件学院
21
例子
使用 MATLAB 求解如下线性规划:
min x1 x2 x3 x4 x5 x6 x7 s.t. x1 x2 x1 x3 x1 x4 x2 x5 x3 x6 x4 x7 xi 1 1 1 1 1 1 0 i
2011年9月
山东大学 软件学院
3
xk是非基变量
。因为 ck 是 cN 中的 非基变量 xk 的价值系数由 ck 变为 ck
一 个 分 量 , 此 时 只 有 k 发 生 变 化 。 新 的 检 验 数
cB B1N (k ) ck cB B1N (k ) ck ck ck k ck ck 。 k
第2章 线性规划
灵敏度分析,计算软件
2011年9月
改变价值向量c
设已得到标准型 LP 的最优单纯形表:
xB z xB 0 I xN cBTB1N cNT B1N RHS cBTB1b B1b
当价值向量 c 改变为 c’时,在单纯形表里影响的只是 检验数和目标函数值,其它没有改变。
1 c B N c 因而只需要计算新的检验数向量 N B N 和
2011年9月
山东大学 软件学院
20
使用MATLAB求解线性规划
输入参数说明:
若某个输入矩阵空缺,应使用空矩阵[]代替。 若某个输入参数开始及之后的所有参数空缺,则这些参数可 省略不写。
输出参数说明:
x – 找到的解; f_opt – 计算得到的解值; exit_flag – 返回标志; output – 计算信息。
2011年9月
山东大学 软件学院
11
例2.6.2
min 5 x1 21x3 s.t. x1 x2 6 x3 x4 x1 x2 2 x3 x5 xi 2 1 (例 2.4.1 的 LP) 0 i
2 2 b b 。 右端向量由 变成 1 1 解:该 LP 的最优单纯形表如下:
x1 z x3 x1
2011年9月
x2 1/2 1/2 2
x3 0 1 0
x4 11/4 1/4 1/2
x5 9/4 1/4 3/2 31/4 1/4 1/2
12
0 0 1
山东大学 软件学院
例2.6.2
由于 x3 和 x1 为基变量, 所以基阵为
B A3
1 1 A1 1 1 。
x1 z x3 x1 0 0 1 x2 15/2 1/2 2 x3 0 1 0 x4 5/4 1/4 1/2 x5 25/4 1/4 3/2 15/4 1/4 1/2
由于检验数 15/2 > 0,需要继续进行迭代以求得新问题的最 优解。
2011年9月
山东大学 软件学院
9
改变右端向量b
设标准型 LP 的最优单纯形表为:
2011年9月
山东大学 软件学院
23
计算结果
2011年9月
山东大学 软件学院
24
2011年9月
山东大学 软件学院
25
(1)变量 x2 的系数由 0 变为 1。 解:该 LP 的最优单纯形表如下:
x1 z x3 x1 0 0 1 x2 1/2 1/2 2 x3 0 1 0 x4 11/4 1/4 1/2 x5 9/4 1/4 3/2 31/4 1/4 1/2
2011年9月
山东大学 软件学院
7
例2.6.1(1)
2011年9月
山东大学 软件学院
4
xk是基变量
。假设基变量 xk 对应 非基变量 xk 的价值系数由 ck 变为 ck
表中第 l 行(即,LP 中第 l 个约束) 。由于 ck 是 cBT 中的分量,
T T 此时 N 和目标函数值 z0 发生变化。新的 N 为:
T N
1 c B N c B N 1 1 cB B N c c B N c B B N 1 ck ,0, ,0B 1 N cB B N cN 0,,0, ck 。 T 1 ck B N ( l ) N ck
相关主题