模糊数学5-模糊线性规划
lb x ub
max f T x x Ax b ~
Aeqx beq ~
lb x ub
两者的区别在于:模糊线性规划的约束条件为模 糊约束,即等式、不等式约束有一个伸缩 率.
在解决实际问题时,要根据实际意义确定伸缩率 比如股票价格可能在某个区间变动,一本招生数 可能有所增加.
模糊线性规划的求解方法: 基本思想:转化为普通线性规划,步骤如下 1. 不考虑伸缩率,求解普通线性规划(1) 2. 考虑伸缩率,求解普通线性规划(2)
原料 B1
B2
B3
B4
B5
A1/mg 85
60
120
80
120
A2/mg 80
150
90
160
60
A3/mg 100
120
150
120
200
单价/元 1.3
1.5
1.6
1.7
1.8
如果要配制该药10000盒,怎样选料最好? 解:设配制1盒该药五种原料分别为x1,x2,x3,x4,x5kg
min s 1.3x1+1.5x2+1.6x3 1.7x4 1.8x5
解:首先求解没有伸缩率的经典线性规划
min s 1.3x1+1.5x2+1.6x3 1.7x4 1.8x5
85x1 60x2 120x3 80x4 120x5=75
s
.t
.10800xx11112500xx2219500xx33
160x4 120x4
MATLAB程序如下
f1=[-1,4,-6]; A1=[1,1,1;-1,6,-1];b1=[8;-6]; Aeq1=[1,-3,-1];beq1=[-4];lb1=[0,0,0]; [x1,z1]=linprog(f1,A1,b1,Aeq1,beq1,lb1);
结果:x1=2,x2=0,x3=6, 最优值为:38
1 相应地改成 ,, 即可
x1 ,x2 , x3 0
转化为求最小值的线性规划模型:
min s x1+4x2 -6x3
x1 x2 x3 8
s
.t
.
-xx11+-36xx22--xx33
6 4
1'
x1 ,x2 , x3 0
例2. 求解规划
解:转化为
max z = 2x1+3x2-5x3 s.t. x1+x2+x3=7
2x1-5x2+x3 10 x1,x2,x3 0
min z = -2x1-3x2+5x3
s.t. x1+x2+x3=7
-2x1+5x2-x3 -10
x1,x2,x3 0
f=[-2,-3,5];A=[-2,5,-1];b=-10;Aeq=[1,1,1];beq=[7]; lb=[0,0,0]; [x,z]=linprog(f,A,b,Aeq,beq,lb)
80x1 150x2 90x3 160x4 60x5 125
s .t . 80x1 150x2 90x3 160x4 60x5 115
100x1 120x2 150x3 120x4 200x5 148
100x1 120x2 150x3 120x4 200x5 128
3'
MATLAB程序如下
f3=[0,0,0,-1]; A3=[-1,4,-6,8.25;1,1,1,2;-1,6,-1,1;1,-3,-1,0.5;-1,3,1,0.5]; b3=[-38;10;-5;-3.5;4.5];Aeq3=[];beq3=[];lb3=[0,0,0]; [x3,z3]=linprog(f3,A3,b3,Aeq3,beq3,lb3); 上述规划所得到的最优解:
[x,fvel]=linprog(f,A,b,Aeq,beq,lb,ub)
用于等式、不等式约束,求目标函数最小值,若 没有等式约束 ,则Aeq,beq要用空矩阵[ ]代替。 例1.求规划问题: 解:f=[-2,-1,1]; Min z = -2x1-x2+x3,A=[1,4,-1;2,-2,1];b=[4;12]; s.t. x1+x2+2x3=6 x1 4x2 x3 4 Aeq=[1,1,2];beq=6; 2x1 2x2 x3 12 lb=[0,0,-inf];ub=[inf,inf,5]; x1 0, x2 0, x3 5 [x,z]=linprog(f,A,b,Aeq,beq,lb,ub)
3. 增加变量 ,求解普通线性规划(3)
为了便于同学们的理解,下面通过具体 例子加以说明上述的三个普通线性规划的 具体形式
例1. 解模糊线性规划
max s x1 4x2 6x3
x1
x2
x3
~
8
s .t
.
x1
6x2
x3
~
6
x1-3x2 -x3
4
~
x1 ,x2 , x3 0
第五讲 模糊线性规划
一. 线性规划的MATLAB实现 二. 模糊线性规划的概念与方法 三. 应用实例分析
一.线性规划的MATLAB实现
求解线性规划的命令:linprog 目标函数最小: min f T x
x
不等式约束: Ax b 等式约束: Aeqx=beq
上下界限制: lb x ub
85x1
60x2
120x3
80x4
120x5
=75
~
s.t .
80x1
150x2
90x3
160x4
60x5
= 120
~
100x1
120x2
150x3
120x4
200x5
= 138
~
x1 ,x2 , x3 , x4 , x5 0
d1=5 d2=5 d3=10
结果如下:x1=2.75,x2=0,x3=7.25,最优值为:46.25
最后添加新的变量 ,求解普通线性规划(3)
max g
s-d0 z1
x1
x2
x3
d1
10
s
.t
.
x1 6x2 x1 -3x2 -x3
x3 d2 5 +d3 -3.5
x1 ,x2 , x3 , x4 , x5 0
(2)
f1=[1.3,1.5,1.6,1.7,1.8];Aeq=[];beq=[]; A1=[85,60,120,80,120; -85,-60,-120,-80,-120;
注意添加伸缩率时的规律如下:
① 加di, 减di;
② 等式约束变成两个不等式约束.
转化为求最小值的线性规划模型:
min s x1+4x2 -6x3
x1 x2 x3 10
s .t
.
-x1+6x2 -x3 x1-3x2 -x3
5 3.5
2'
-x1+3x2+x3 4.5
3
x1
-3x2
-x3
d3
4.5
x1 ,x2 , x3 , 0
其中:d0=z2-z1=46.25-38=8.25 注意:此时增加了一个约束条件为:
原目标函数 –新伸缩率乘新变量 原最优值.
特别注意: 如果原规划是 min z=fTx,则 最后添加新的变量 ,求解普通线性规划(3)
x ,x , x 0 1 2 3 x1,x2 ,x3 0
MATLAB程序如下
注意:此时没有 等式约束,故
Aeq2=[];beq2=[];
f2=[-1,4,-6]; A2=[1,1,1;-1,6,-1;1,-3,-1;-1,3,1];b2=[10;-5;-3.5;4.5]; Aeq2=[];beq2=[];lb2=[0,0,0]; [x2,z2]=linprog(f2,A2,b2,Aeq2,beq2,lb2);
目标函数为:z=2x1+1.6x2
结 果
s.t. 4x1+2x2 2.8
自 己
90x1+300x2 220
计 算
x1+x2=1,x1,x2 0
例4. 某厂生产甲、乙、丙、丁四种产品,使用 A,B,C三类设备,每种产品的使用各类设备的工时 数及可能利润见下表,如何安排获利最大?
加工每件产品工时
60x5=120 200x5=138
(1)
x1 ,x2 , x3 , x4 , x5 0
f=[1.3,1.5,1.6,1.7,1.8];A=[];b=[]; Aeq=[85,60,120,80,120
80,150,90,160,60 100,120,150,120,200]; beq=[75;120;138];lb=[0,0,0,0,0];
s.t.
0 0
.5x1 .7x1
0.6x2 0.7x2
0.6x3 0.8x3
0.8x4 0.8x4
1000 1300
x1 , x2 , x3 , x4 0
二. 模糊线性规划的求解方法
普通线性规划:
模糊线性规划
min f T x x Ax b
Aeqx=beq
其次,解有伸缩率的普通线性规划(2)