[理学]大学数学实验11-线性规划
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
车床 类 型 甲 乙 单位工件所需加工台时数 工件 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
解
Fra Baidu bibliotek
设在甲车床上加工工件1、2、3的数量分别为x1、x2、x3, 在乙车床上加工工件1、2、3的数量分别为x4、x5、x6,可建立以 下线性规划模型:
gi(x)0是约束条件
优化模型的分类
优化问题可以从不同的角度进行分类,由 (1) (2) 组成的模型称为约束优化,若只有(1)就是无约束优 化。 当模型中决策变量的所有分量均为实数,且f,gi
都是线性函数时,称为线性规划。若它们中至少有
一个是非线性函数,则称非线性规划。若决策变量
中至少有一个分量取整数,则称整数规划,线性规
0 0 0.4 1.1 1 0 800 X 0 0 0 0 . 5 1 . 2 1 . 3 900
x1 x2 x 3 ,X 0 x4 x 5 x 6
1 0 0 1 0 0 400 0 1 0 0 1 0 X 600 0 0 1 0 0 1 500
Aeq=[]; beq=[];
vlb=[0;0;0;0;0;0]; vub=[];
To MATLAB (xxgh1)
[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)
例2
min z 6x1 3x2 4x3 s.t. x1 x2 x3 120 x1 30 0 x2 50 x3 20
划和非线性规划是连续规划,而整数规划是离散优 化(组合优化),它们统称数学规划。
数学规划 线性规划(LP) 0-1整数规划 二次规划(QP) 一般整数规划 非线性规划(NLP) 连续规划 纯整数规划(PIP) 混合整数规划(MIP)
整数规划(IP)
用MATLAB优化工具箱解线性规划
1. 模型:
min z=cX
[2] x=linprog(c,A,b,Aeq,beq, VLB,VUB, X0) 注意:[1] 若没有等式约束: Aeq X beq , 则令Aeq=[ ], beq=[ ]. [2]其中X0表示初始点 4. 命令:[x,fval]=linprog(…) 返回最优解x及x处的目标函数值fval.
s.t. AX b
命令:x=linprog(c, A, b)
2. 模型:min z=cX s.t. AX b Aeq X beq 命令:x=linprog(c,A,b,Aeq,beq)
AX b 存在,则令A=[ ],b=[ ]. 注意:若没有不等式:
3. 模型:min z=cX s.t. AX b Aeq X beq VLB≤X≤VUB 命令:[1] x=linprog(c,A,b,Aeq,beq, VLB,VUB)
结果为: x = 9.0000 0.0000 fval =360 即只需聘用9个一级检验员.
注:本问题应还有一个约束条件:x1、x2取整数.故它是
一个整数线性规划问题.这里把它当成一个线性规划来解, 求得其最优解刚好是整数:x1=9,x2=0,故它就是该整数 规划的最优解.若用线性规划解法求得的最优解不是整数, 将其取整后不一定是相应整数规划的最优解,这样的整数 规划应用专门的方法求解.
8 4 x1 8 3 x2 32 x1 24 x2
因检验员错检而造成的损失为:
(8 25 2% x1 8 15 5% x2 ) 2 8x1 12 x2
故目标函数为:
min z (32 x1 24 x2 ) (8x1 12 x2 ) 40 x1 36 x2
解 编写M文件xxgh1.m如下: c=[-0.4 -0.28 -0.32 -0.72 -0.64 -0.6]; A=[0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08]; b=[850;700;100;900];
建立模型 决策变量
目标函数
x1桶牛奶生产A1
x2桶牛奶生产A2
获利 24×3x1 获利 16×4 x2 每天获利 max z 72 x1 64 x2
原料供应
x1 x2 50
12x1 8x2 480
约束条件
劳动时间 加工能力 非负约束
3x1 100 x1 , x2 0
X2
30.000000
0.000000
ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000
3)
4)
min z (6
3
x1 4) x2 x 3
s.t.
1 0
解: 编写M文件xxgh2.m如下: c=[6 3 4]; A=[0 1 0]; b=[50]; Aeq=[1 1 1]; beq=[120]; To MATLAB (xxgh2) vlb=[30,0,20]; vub=[]; [x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)
min z 13x1 9x2 10x3 11x4 12x5 8x6
x1 x4 400 x x 600 2 5 x3 x6 500 s.t. 0.4 x1 1.1x2 x3 800 0.5 x4 1.2 x5 1.3 x6 900 xi 0, i 1, 2, , 6
返 回
用LINDO、LINGO优化工具箱解线性规划
一、LINDO软件包
下面我们通过一个例题来说明LINDO 软件包的使用方法.
LINDO和LINGO软件能求解的优化模型
优化模型
连续优化
整数规划(IP)
线性规划 (LP)
二次规划 (QP)
非线性规划 (NLP) LINGO
LINDO
例1
加工奶制品的生产计划
解答
问题二: 某厂每日8小时的产量不低于1800件.为了进行质量
控制,计划聘请两种不同水平的检验员.一级检验员的标准为: 速度25件/小时,正确率98%,计时工资4元/小时;二级检验员 的标准为:速度15件/小时,正确率95%,计时工资3元/小时.检 验员每错检一次,工厂要损失2元.为使总检验费用最省,该工 厂应聘一级、二级检验员各几名? 解 设需要一级和二级检验员的人数分别为x1、x2人, 则应付检验员的工资为:
线性规划
优化问题,一般是指“最好”的方式,使用 或分配有限的资源,比如:劳动力、原材料、机 器、资源等,使得费用最小或者利润最大等。
两个引例 问题一 : 任务分配问题:某车间有甲、乙两台机床,可用
于加工三种工件.假定这两台车床的可用台时数分别为800和 900,三种工件的数量分别为400、600和500,且已知用三种 不同车床加工单位数量不同工件所需的台时数和加工费用如 下表.问怎样分配车床的加工任务,才能既满足加工工件的要 求,又使加工费用最低?
线性 规划 模型 (LP)
模型求解
max 72x1+64x2
OBJECTIVE FUNCTION VALUE
st
2)x1+x2<50 3)12x1+8x2<480
1)
VARIABLE X1
3360.000
VALUE 20.000000 REDUCED COST 0.000000
4)3x1<100
end DO RANGE (SENSITIVITY) ANALYSIS? No
结果:
x =
0.0000 600.0000 0.0000 400.0000 0.0000 500.0000 fval =1.3800e+004
即在甲机床上加工600个工件2,在乙机床上加工400个工件1、 500个工件3,可在满足条件的情况下使总加工费最小为13800.
例2 问题二的解答
改写为:
约束条件为:
8 25 x1 8 15 x2 1800 8 25 x 1800 1 8 15 x2 1800 x1 0, x2 0
线性规划模型:
min z 40 x1 36 x2
5 x1 3 x2 45 x 9 1 s.t. x2 15 x1 0, x2 0
x1 1 x2 1 0 x 3 x1 3 0 0 x 2 2 0 x3 1
120 50
例3 问题一的解答
改写为: s.t.
问题
min z 13 9 10 11 12 8X
12小时 8小时 3千克A1 获利24元/千克
1桶 牛奶 或
4千克A2
获利16元/千克
每天: 50桶牛奶 时间: 480小时 至多加工100千克A1 制订生产计划,使每天获利最大 • 35元可买到1桶牛奶,买吗?若买,每天最多买多少? • 可聘用临时工人,付出的工资最多是每小时几元? • A1的获利增加到 30元/千克,是否应改变生产计划?
返 回
解答
优化模型的一般形式
min(或 max) z f ( x), x ( x1 , s.t. gi ( x) 0, i 1, 2, , x n) ,m
T
(1) (2)
Min(max)有时也写作optimize,是最优化的意思; s.t.(subject to)是受约束于的意思;满足(2)式的解
编写M文件xxgh3.m如下: f = [13 9 10 11 12 8]; A = [0.4 1.1 1 0 0 0 0 0 0 0.5 1.2 1.3]; b = [800; 900]; Aeq=[1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1]; To MATLAB (xxgh3) beq=[400 600 500]; vlb = zeros(6,1); vub=[]; [x,fval] = linprog(f,A,b,Aeq,beq,vlb,vub)
问题
x1 min z 40 36 x 2 x1 s.t. 5 3 x (45) 2
0 x1 9 0 15 x 1
编写M文件xxgh4.m如下:
称为可行解,满足(1) (2)的解称为最优解。
三要素:决策变量、目标函数、约束条件。
三要素:决策变量、目标函数、约束条件。
决策变量通常是指该问题要求解的那些未知量; 目标函数通常是该问题要优化的那个目标的数学 表达式,它是决策变量的函数; 约束条件由该问题对决策变量的限制条件给出, 即决策变量允许取值的范围,称可行域。 x是决策变量 f(x)是目标函数
例1
max
s.t.
z 0.4x1 0.28x2 0.32x3 0.72x4 0.64x5 0.6x6 0.01x1 0.01x2 0.01x3 0.03x4 0.03x5 0.03x6 850 0.02x1 0.05x4 700 0.02x2 0.05x5 100 0.03x3 0.08x6 900 xj 0 j 1,2, ,6
c = [40;36]; A=[-5 -3]; b=[-45]; Aeq=[]; To MATLAB (xxgh4) beq=[]; vlb = zeros(2,1); vub=[9;15]; %调用linprog函数: [x,fval] = linprog(c,A,b,Aeq,beq,vlb,vub)
解
Fra Baidu bibliotek
设在甲车床上加工工件1、2、3的数量分别为x1、x2、x3, 在乙车床上加工工件1、2、3的数量分别为x4、x5、x6,可建立以 下线性规划模型:
gi(x)0是约束条件
优化模型的分类
优化问题可以从不同的角度进行分类,由 (1) (2) 组成的模型称为约束优化,若只有(1)就是无约束优 化。 当模型中决策变量的所有分量均为实数,且f,gi
都是线性函数时,称为线性规划。若它们中至少有
一个是非线性函数,则称非线性规划。若决策变量
中至少有一个分量取整数,则称整数规划,线性规
0 0 0.4 1.1 1 0 800 X 0 0 0 0 . 5 1 . 2 1 . 3 900
x1 x2 x 3 ,X 0 x4 x 5 x 6
1 0 0 1 0 0 400 0 1 0 0 1 0 X 600 0 0 1 0 0 1 500
Aeq=[]; beq=[];
vlb=[0;0;0;0;0;0]; vub=[];
To MATLAB (xxgh1)
[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)
例2
min z 6x1 3x2 4x3 s.t. x1 x2 x3 120 x1 30 0 x2 50 x3 20
划和非线性规划是连续规划,而整数规划是离散优 化(组合优化),它们统称数学规划。
数学规划 线性规划(LP) 0-1整数规划 二次规划(QP) 一般整数规划 非线性规划(NLP) 连续规划 纯整数规划(PIP) 混合整数规划(MIP)
整数规划(IP)
用MATLAB优化工具箱解线性规划
1. 模型:
min z=cX
[2] x=linprog(c,A,b,Aeq,beq, VLB,VUB, X0) 注意:[1] 若没有等式约束: Aeq X beq , 则令Aeq=[ ], beq=[ ]. [2]其中X0表示初始点 4. 命令:[x,fval]=linprog(…) 返回最优解x及x处的目标函数值fval.
s.t. AX b
命令:x=linprog(c, A, b)
2. 模型:min z=cX s.t. AX b Aeq X beq 命令:x=linprog(c,A,b,Aeq,beq)
AX b 存在,则令A=[ ],b=[ ]. 注意:若没有不等式:
3. 模型:min z=cX s.t. AX b Aeq X beq VLB≤X≤VUB 命令:[1] x=linprog(c,A,b,Aeq,beq, VLB,VUB)
结果为: x = 9.0000 0.0000 fval =360 即只需聘用9个一级检验员.
注:本问题应还有一个约束条件:x1、x2取整数.故它是
一个整数线性规划问题.这里把它当成一个线性规划来解, 求得其最优解刚好是整数:x1=9,x2=0,故它就是该整数 规划的最优解.若用线性规划解法求得的最优解不是整数, 将其取整后不一定是相应整数规划的最优解,这样的整数 规划应用专门的方法求解.
8 4 x1 8 3 x2 32 x1 24 x2
因检验员错检而造成的损失为:
(8 25 2% x1 8 15 5% x2 ) 2 8x1 12 x2
故目标函数为:
min z (32 x1 24 x2 ) (8x1 12 x2 ) 40 x1 36 x2
解 编写M文件xxgh1.m如下: c=[-0.4 -0.28 -0.32 -0.72 -0.64 -0.6]; A=[0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08]; b=[850;700;100;900];
建立模型 决策变量
目标函数
x1桶牛奶生产A1
x2桶牛奶生产A2
获利 24×3x1 获利 16×4 x2 每天获利 max z 72 x1 64 x2
原料供应
x1 x2 50
12x1 8x2 480
约束条件
劳动时间 加工能力 非负约束
3x1 100 x1 , x2 0
X2
30.000000
0.000000
ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000
3)
4)
min z (6
3
x1 4) x2 x 3
s.t.
1 0
解: 编写M文件xxgh2.m如下: c=[6 3 4]; A=[0 1 0]; b=[50]; Aeq=[1 1 1]; beq=[120]; To MATLAB (xxgh2) vlb=[30,0,20]; vub=[]; [x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)
min z 13x1 9x2 10x3 11x4 12x5 8x6
x1 x4 400 x x 600 2 5 x3 x6 500 s.t. 0.4 x1 1.1x2 x3 800 0.5 x4 1.2 x5 1.3 x6 900 xi 0, i 1, 2, , 6
返 回
用LINDO、LINGO优化工具箱解线性规划
一、LINDO软件包
下面我们通过一个例题来说明LINDO 软件包的使用方法.
LINDO和LINGO软件能求解的优化模型
优化模型
连续优化
整数规划(IP)
线性规划 (LP)
二次规划 (QP)
非线性规划 (NLP) LINGO
LINDO
例1
加工奶制品的生产计划
解答
问题二: 某厂每日8小时的产量不低于1800件.为了进行质量
控制,计划聘请两种不同水平的检验员.一级检验员的标准为: 速度25件/小时,正确率98%,计时工资4元/小时;二级检验员 的标准为:速度15件/小时,正确率95%,计时工资3元/小时.检 验员每错检一次,工厂要损失2元.为使总检验费用最省,该工 厂应聘一级、二级检验员各几名? 解 设需要一级和二级检验员的人数分别为x1、x2人, 则应付检验员的工资为:
线性规划
优化问题,一般是指“最好”的方式,使用 或分配有限的资源,比如:劳动力、原材料、机 器、资源等,使得费用最小或者利润最大等。
两个引例 问题一 : 任务分配问题:某车间有甲、乙两台机床,可用
于加工三种工件.假定这两台车床的可用台时数分别为800和 900,三种工件的数量分别为400、600和500,且已知用三种 不同车床加工单位数量不同工件所需的台时数和加工费用如 下表.问怎样分配车床的加工任务,才能既满足加工工件的要 求,又使加工费用最低?
线性 规划 模型 (LP)
模型求解
max 72x1+64x2
OBJECTIVE FUNCTION VALUE
st
2)x1+x2<50 3)12x1+8x2<480
1)
VARIABLE X1
3360.000
VALUE 20.000000 REDUCED COST 0.000000
4)3x1<100
end DO RANGE (SENSITIVITY) ANALYSIS? No
结果:
x =
0.0000 600.0000 0.0000 400.0000 0.0000 500.0000 fval =1.3800e+004
即在甲机床上加工600个工件2,在乙机床上加工400个工件1、 500个工件3,可在满足条件的情况下使总加工费最小为13800.
例2 问题二的解答
改写为:
约束条件为:
8 25 x1 8 15 x2 1800 8 25 x 1800 1 8 15 x2 1800 x1 0, x2 0
线性规划模型:
min z 40 x1 36 x2
5 x1 3 x2 45 x 9 1 s.t. x2 15 x1 0, x2 0
x1 1 x2 1 0 x 3 x1 3 0 0 x 2 2 0 x3 1
120 50
例3 问题一的解答
改写为: s.t.
问题
min z 13 9 10 11 12 8X
12小时 8小时 3千克A1 获利24元/千克
1桶 牛奶 或
4千克A2
获利16元/千克
每天: 50桶牛奶 时间: 480小时 至多加工100千克A1 制订生产计划,使每天获利最大 • 35元可买到1桶牛奶,买吗?若买,每天最多买多少? • 可聘用临时工人,付出的工资最多是每小时几元? • A1的获利增加到 30元/千克,是否应改变生产计划?
返 回
解答
优化模型的一般形式
min(或 max) z f ( x), x ( x1 , s.t. gi ( x) 0, i 1, 2, , x n) ,m
T
(1) (2)
Min(max)有时也写作optimize,是最优化的意思; s.t.(subject to)是受约束于的意思;满足(2)式的解
编写M文件xxgh3.m如下: f = [13 9 10 11 12 8]; A = [0.4 1.1 1 0 0 0 0 0 0 0.5 1.2 1.3]; b = [800; 900]; Aeq=[1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1]; To MATLAB (xxgh3) beq=[400 600 500]; vlb = zeros(6,1); vub=[]; [x,fval] = linprog(f,A,b,Aeq,beq,vlb,vub)
问题
x1 min z 40 36 x 2 x1 s.t. 5 3 x (45) 2
0 x1 9 0 15 x 1
编写M文件xxgh4.m如下:
称为可行解,满足(1) (2)的解称为最优解。
三要素:决策变量、目标函数、约束条件。
三要素:决策变量、目标函数、约束条件。
决策变量通常是指该问题要求解的那些未知量; 目标函数通常是该问题要优化的那个目标的数学 表达式,它是决策变量的函数; 约束条件由该问题对决策变量的限制条件给出, 即决策变量允许取值的范围,称可行域。 x是决策变量 f(x)是目标函数
例1
max
s.t.
z 0.4x1 0.28x2 0.32x3 0.72x4 0.64x5 0.6x6 0.01x1 0.01x2 0.01x3 0.03x4 0.03x5 0.03x6 850 0.02x1 0.05x4 700 0.02x2 0.05x5 100 0.03x3 0.08x6 900 xj 0 j 1,2, ,6
c = [40;36]; A=[-5 -3]; b=[-45]; Aeq=[]; To MATLAB (xxgh4) beq=[]; vlb = zeros(2,1); vub=[9;15]; %调用linprog函数: [x,fval] = linprog(c,A,b,Aeq,beq,vlb,vub)