当前位置:文档之家› 数学建模数学规划模型

数学建模数学规划模型

数学规划模型的一般表达式:
min ?max ?f ?x,? ,? ?
s.t. g ?x,? , ? ?? 0
x f 为目标函数 ,为约束函数,g为约束函数, 为可控 ? 变量, 为已知参数,? 为随机参数。
数学规划分为线性规划、非线性规划、动态规划、 随机规划、整数规划、分式规划、几何规划、目标 规划、平衡规划、参数规划、多目标规划等十几 种。当然这么多规划其中亦有交叉。又可经过组 产生新的规划,每一种规划有专著问世。
? 0.30x1 ? 0.35x2 ? 0.60x3 ? 0.15x4 ? 0.25x5 ? 0.80x6 ? 5
0≤x1≤40 0≤x2≤40 0≤x3≤40 0≤x4≤20 0≤ x5≤40 0≤x6≤40
问题是满足营养素要求的条件下,所需费用最 小,是一个线性规划模型。
利用Matlab软件编程序: % 营养配餐ch21 % 文件名: ch21 m c=[5;5;8;2;6;3];
执行后输出 青豆需要的份数
ans = 40
胡罗卜需要的份数
ans = 40.0000
菜花需要的份数
ans = 0
白菜需要的份数
ans = 20.0000
甜菜需要的份数
ans = 0
土豆需要的份数
5
0.25
6 土 豆 0.50 75 235
8
0.80
要求蔬菜提 供的营养 6.00 25 17500 245 5.00
每千克 费用
5 5 8 2 6 3
问题分析与模型建立
设xi (i ? 1~ 6) 分别表示下一周内应当供应的青
豆、胡萝卜、菜花、白菜、甜菜及土豆的量,费用 目标函数为:
f ? 5x1 ? 5x2 ? 8x3 ? 2x4 ? 6x5 ? 3x6
表2-3
序 号
蔬菜
每 份 所含 营养 素单 位数 铁 磷 维生素A 维生素C 烟酸
1 青 豆 0.45 10 415
8
0.30
2 胡萝卜 0.45 28 9065 3
0.35
3 菜 花 1.05 59 2550 53 0.60
4 白 菜 0.40 25 75
27 0.15
5 甜 菜 0.50 22 15
约束条件: 铁的需求量至少 6个单位数:
0.45x1 ? 0.45x2 ? 1.05x3 ? 0.40x4 ? 0.50x5 ? 0.50x6 ? 6
磷的需求量至少 25个单位数:
10x1 ? 28x2 ? 59x3 ? 25x4 ? 22x5 ? 75x6 ? 25
维生素A的需求量至少 17500个单位:
415x1 ? 9065x2 ? 2550x3 ? 75x4 ?15x5 ? 235x6 ? 17500
维生素C的需求量至少 245个单位:
8x1 ? 3x2 ? 53x3 ? 27 x4 ? 5x5 ? 8x6 ? 245
烟酸的需求量至少 5个单位数:
0.30x1 ? 0.35x2 ? 0.60x3 ? 0.15x4 ? 0.25x5 ? 0.80x6 ? 5
?
bm
(1)目标函数是决策变量的线性函数。 (2)约束条件都是决策变量的线性等式或
不等式。
? MATLAB 命令 命令输入格式及线性规划模型如下:
X ? lp(c, A, b, xLB, xUB, x0, nEq)
min f ? c' x
s.t A1 x ? b1 A2 x ? b2
xLB ? x ? xUB
第一节 线性规划模型
min f ? c1x1 ? c2 x2 ? ? ? cn xn
?a11x1 ? a12 x2 ? ? ? a1n xn ? b1 s.t ?????a21x1 ? a22 x2 ? ? ? a2n x0
am2 x2 ? ? ? amn xn (i ? 1,2,? ,n)
其中:x0是算法迭代的初始点; nEq表示等式约束的个
数。
A
?
????
A1 A2
????
,
b
?
????bb12
????
三、建模举例
营养配餐问题
? 每种蔬菜含有的营养素成份是不同的,从医学上 知道,每人每周对每种营养成分的最低需求量。 某医院营养室在制定下一周菜单时,需要确定表 6-1中所列六种蔬菜的供应量,以便使费用最小而 又能满足营养素等其它方面的要求。规定白菜的 供应一周内不多于 20千克,其它蔬菜的供应在一 周内不多于 40千克,每周共需供应 140千克蔬菜, 为了使费用最小又满足营养素等其它方面的要求, 问在下一周内应当供应每种蔬菜各多少千克?
每周需供应 140千克蔬菜,即
x1 ? x2 ? x3 ? x4 ? x5 ? x6 ? 140
min f ? 5x1 ? 5x2 ? 8x3 ? 2x4 ? 6x5 ? 3x6
?x1 ? x2 ? x3 ? x4 ? x5 ? x6 ? 140
? ?
0.45x1 ? 0.45x2 ? 1.05x3 ? 0.40x4 ? 0.50x5 ? 0.50x6 ? 6
A=(-1)*[1,1,1,1,1,1;
0.45,0.45,1.05,0.40,0.50,0.50; 10,28,59,25,22,75; 415,9065,2550,75,15,235;
8,3,53,27,5,8; 0.30,0.35,0.60,0.15,0.25,0.80];
b=(-1)*[140;6;25;17500;245;5];
s.t
?? ?
?
10x1 ? 28x2 ? 59x3 ? 25x4 ? 22x5 ? 75x6 ? 25 415x1 ? 9065x2 ? 2550x3 ? 75x4 ? 15x5 ? 235x6 ? 17500
? ?
8x1 ? 3x2 ? 53x3 ? 27x4 ? 5x5 ? 8x6 ? 245
xLB=zeros(6,1);
xUB=[40;40;40;20;40;40];
nEq=1; x0=0*ones(6,1); x=lp(c,A,b,xLB,xUB,x0,nEq); disp('青豆需要的份数') x(1)
disp('胡罗卜需要的份数 ') x(2) disp('菜花需要的份数 ') x(3) disp('白菜需要的份数 ') x(4) disp('甜菜需要的份数 ') x(5) disp('土豆需要的份数 ') x(6)
相关主题