第六讲 线性规划与非线性规划

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[2] x0表示初始解。 (4) 命令: [x,fval,ef,out,lambda]=linprog(c,A1,b1,A2,b2,v1,v2,x0) 输出x为最优解,fval为最优值,ef为程序停止的标志,out 为个结构变量,包括程序运行的有关信息,lambda也是结 构变量,对应于相应的约束的Lagrange乘子。
v1 x v2
(1)首先建立M文件fun.m,用来定义目标函数f(x),形 式为 function f=fun(x) f=f(x); c (2)若有非线性约束条件:1 x 0 或c2 x 0, 则建立M 文件c.m定义函数c1 x , c2 x , 一般形式为 function [c1,c2]=c(x) c1=… c2=… (3)建立主程序。求解非线性规划的函数是fmincon, 调用格式为 x=fmincon(„fun‟,x0,A1,b1); [x,fv,ef,out,lag,grad,hess]=fmincon(„fun‟,x0,A1,b1,A2 ,b2,v1,v2,‟c‟,opt,P1,P2,…)
2、线性规划模型的标准形式 n 或矩阵形式 min z ci xi
i 1
s.t.
a
k 1
n
min z cT x s.t. Ax b x0
ik
xk bi , i 1, 2, n
xi 0, i 1, 2, n
x ( x1 x2 xn )T 是决策变量, aij A 其中 b (b1b2 bm )T, (c1c2 cn )T . c 矩阵,
(3) 模型3:
min z cT x s.t. A1 x b1 A2 x b2


v1 x v2 命令: [1] x=linprog(c,A1,b1,A2,b2,v1,v2) [2] x=linprog(c,A1,b1,A2,b2,v1,v2,x0) A 注:[1] 若没有等式约束: 2 x b2 ,令 A2 [], b2 [].
纯整数规划(PIP)
混合整数规划(MIP)
连续规划
整数规划(IP)
一、线性规划
1、引例

问题一:任务分配问题:某车间有甲、乙两台机床,可用 于加工三种工件.假定这两台车床的可用台时数分别为800 和900,三种工件的数量分别为400、600和500,且已知 用三种不同车床加工单位数量不同工件所需的台时数和加 工费用如下表.问怎样分配车床的加工任务,才能既满足加 工工件的要求,又使加工费用最低?
第六讲
线性规划与 非线性规划
线性规划与非线性规划


最优化是人们在工程技术、科学研究和经济管理等领域常 见的问题。要表述一个最优化问题,一般需要确定三个要 素:一是决策变量,通常是要求解的未知量 x ;二是目标 函数,通常是要优化(最小或最大)的那个目标的数学表达 式,是决策变量的函数f ( x);三是约束条件,对决策变量 的限制条件,即 x 允许取值的范围,称为可行域。 一般地,优化模型可表述为
min z (32 x1 24 x2 ) (8 x1 12 x2 ) 40 x1 36 x2 s.t. 8 25 x1 8 15 x2 1800 8 25 x1 1800 8 15 x2 1800 x1 0, x2 0 5 x1 3x2 45 x1 9 x2 15 x1 0, x2 0

例1:
min f ( x1 , x2 ) 2 x12 3x1 x2 3x2 2 3x1 x2 s.t. x1 2 x2 3 2 x1 x2 3 x1 3x2 4 x1 2, x2 0

改写成标准形式:
1 min z ( x1 2
4 3 x1 3 x1 x2 ) x x 3 6 2 1 2 2 1 x1 3 s.t. x 1 3 2 4 x1 1 2 3 x2 2 x1 x 2 0


问题二:某厂每日8小时的产量不低于1800件.为了进行质 量控制,计划聘请两种不同水平的检验员.一级检验员的标 准为:速度25件/小时,正确率98%,计时工资4元/小时; 二级检验员的标准为:速度15件/小时,正确率95%,计时 工资3元/小时.检验员每错检一次,工厂要损失2元.为使总 检验费用最省,该工厂应聘一级、二级检验员各几名? 模型 设需要一级、二级检验员的人数分别为 x1 , x2人, 应付检验员工资为 8 4 x1 8 3x2 32 x1 24 x2 , 因检验员错检而造成的损失为 (8 25 2% x1 8 15 5% x2 ) 2 8 x1 12 x2
见MATLAB程序 (xianxingguihua3)

结果:
即在甲机床上加工600个工件2,在乙机床上加工400 个工件1、500个工件3,可在满足条件的情况下使 总加工费最小为13800.

例4:问题二的解答 x1 改写为 min z (40 36) x
2 x1 s.t. 5 3 45 x2 1 0 x1 9 x1 x , x 0 0 1 2 15 2
s.t. 0.01x1 0.01x2 0.01x3 0.03x4 0.03x5 0.03x6 850
见MATLAB程序 (xianxingguihua1)
x1 min z 6 x1 3 x2 4 x3 min z (6 3 4) x2 例2: x 3 x1 1 1 1 120 s.t. s.t. x1 x2 x3 120 x2 0 1 0 50 x1 30 x3 0 x2 50 30 x1 x3 20 0 x2 20 x 3
见MATLAB程序 (xianxingguihua4)

结果:

即只需聘用9个一级检验员。 注:本问题应还有一个约束条件:x1、x2取整数, 故它属于一个整数线性规划问题,这里当成一个线 性规划求解,求得最优解刚好是整数x1=9,x2=0, 故它就是该整数规划的最优解.若用线性规划解法求 得的最优解不是整数,将其取整后不一定是相应整 数规划的最优解,这样的整数规划应用专门的方法 求解.

注意: (1) fmincon函数提供了大型优化算法和中型优化算 法。当options参数的GradObj设置为’on‟时必须 给出fun函数的梯度,并且只有上下界约束或只有 等式约束,fmincon函数将选择大型算法。当既有 等式约束又有梯度约束时,使用中型算法。
(2) fmincon函数的中型算法使用的是序列二次规划 法(SQP方法)。在每一步迭代中求解二次规划子问 题,并用BFGS法更新拉格朗日Hesse矩阵。 (3)fmincon函数可能会给出局部最优解,这与初值 x0的选取有关。

例1: max z 0.4 x1 0.28x2 0.32 x3 0.72 x4 0.64 x5 0.6 x6
0.02 x1 0.05 x4 700 0.02 x2 0.05 x5 100 0.03x3 0.08 x6 900 x j 0, j 1, 2, 6
min z 13 x1 9 x2 10 x3 11x4 12 x5 8 x6 s.t. x1 x4 400 x2 x5 600 x3 x6 500 0.4 x1 1.1x2 x3 800 0.5 x4 1.2 x5 1.3 x6 900 xi 0, i 1, 2, 6
4、用MATLAB优化工具箱解线性规划 (1) 模型1: min z cT x
s.t. Ax b

命令:x=linprog(c,A,b) (2) 模型2: min z cT x
s.t. A1 x b1 A2 x b2

命令: x=linprog(c,A1,b1,A2,b2) 注:[1]若没有不等式 A1 x b1存在,则令A1 [], b1 []. [2] 输出的x为最优解。
二、非线性规划
1、二次规划 1 T 标准形式:min z x Hx cT x
s.t. 2 A 1 x b1 A2 x b2 v1 x v2

MATLAB调用格式: (1) x=quadprog(H,C,A1,b1); (2)x=quadprog(H,C,A1,b1,A2,b2,v1,v2); (3)[x,fval,exitflag,output]= quadprog(H,C,A1,b1, A2,b2 ,v1,v2,x0,options);
T

编程(见MATLAB程序(erciguihua1))

结果:
2、一般非线性规划 标准形式: min z
s.t.
f ( x)
c2 x 0 A1 x b1 A2 x b2

c1 x 0

c1 其中 x 为n维变元向量, ( x), c2 x 均为非线性函数组 成的向量,其他变量的含义与线性规划、二次规划 中相同. 用MATLAB求解上述问题,基本步骤分三步。
m n 是约束
mn
3、线性规划模型的实用形式 (1) min z cT x (2) min z cT x
s.t. A1 x b1 A2 x b2 v1 x v2
s.t.
A1 x b1 b2 A2 x b3 v1 x v2
注;当前 MATLAB只 支持第一种 形式。
见MATLAB程序 (xianxingguihua2)

例3:问题一的解答 改写为 min z (13 9 10
11 12 8) x
0 0 0.4 1.1 1 0 800 s.t. x 0 0 0 0.5 1.2 1.3 900 x1 x2 1 0 0 1 0 0 400 x3 0 1 0 0 1 0 x 600 , x x 0 4 0 0 1 0 0 1 500 x5 x 6
min z f ( x)
x
(1)
*
s.t. g i ( x) 0, i 1, 2, m (2)

只满足(2)的解 x 称为可行解,同满足(1)(2)的解 x x 称最
优解。

优化模型的分类 数Βιβλιοθήκη Baidu规划
线性规划(LP) 二次规划(QP) 非线性规划(NLP) 0-1整数规划 一般整数规划
车床 类 型 甲 乙 单位工件所需加工台时数 工件 1 0.4 0.5 工件 2 1.1 1.2 工件 3 1.0 1.3 单位工件的加工费用 工件 1 13 11 工件 2 9 12 工件 3 10 8 可用台 时数 800 900

模型 设在甲车床上加工工件1、2、3的数量分别为 x1 , x2 , x3 , 在乙车床上加工工件1、2、3的数量分别为 x4 , x5 , x6 .
相关文档
最新文档