第二章数学规划模型•数学规划论起始20世纪30年代末,50年代与60年代发展成为一个完整的分支并受到数学界和社会各界的重视。七八十年代是数学规划飞速发展时期,无论是从理论上还是算法方面都得到了进一步完善。时至今日数学规划仍然是运筹学领域中热点研究问题。从国内外的数学建模竞赛的试题中看,有近1/2的问题可用数学规划进行求解。数学规划模型的一般表达式:为目标函数,为约束函数,为约束函数,为可控变量,为已知参数,为随机参数。数学规划分为线性规划、非线性规划、动态规划、随机规划、整数规划、分式规划、几何规划、目标规划、平衡规划、参数规划、多目标规划等十几种。当然这么多规划其中亦有交叉。又可经过组产生新的规划,每一种规划有专著问世。minmax,,fx..,,0stgxfgx第一节线性规划模型),,2,1(0.min221122222121112121112211nixbxaxaxabxaxaxabxaxaxatsxcxcxcfimnmnmmnnnnnn(1)目标函数是决策变量的线性函数。(2)约束条件都是决策变量的线性等式或不等式。•MATLAB命令命令输入格式及线性规划模型如下:其中:x0是算法迭代的初始点;nEq表示等式约束的个数。),0,,,,,(nEqxxUBxLBbAclpX2211.'minbxAbxAtsxcfxUBxxLB2121,bbbAAA三、建模举例营养配餐问题•每种蔬菜含有的营养素成份是不同的,从医学上知道,每人每周对每种营养成分的最低需求量。某医院营养室在制定下一周菜单时,需要确定表6-1中所列六种蔬菜的供应量,以便使费用最小而又能满足营养素等其它方面的要求。规定白菜的供应一周内不多于20千克,其它蔬菜的供应在一周内不多于40千克,每周共需供应140千克蔬菜,为了使费用最小又满足营养素等其它方面的要求,问在下一周内应当供应每种蔬菜各多少千克?表2-3每份所含营养素单位数每千克费用序号蔬菜铁磷维生素A维生素C烟酸1青豆0.451041580.3052胡萝卜0.4528906530.3553菜花1.05592550530.6084白菜0.402575270.1525甜菜0.50221550.2566土豆0.507523580.803要求蔬菜提供的营养6.0025175002455.00问题分析与模型建立设分别表示下一周内应当供应的青豆、胡萝卜、菜花、白菜、甜菜及土豆的量,费用目标函数为:约束条件:铁的需求量至少6个单位数:磷的需求量至少25个单位数:(1~6)ixi123456558263fxxxxxx1234560.450.451.050.400.500.506xxxxxx12345610285925227525xxxxxx维生素A的需求量至少17500个单位:维生素C的需求量至少245个单位:烟酸的需求量至少5个单位数:每周需供应140千克蔬菜,即12345641590652550751523517500xxxxxx12345683532758245xxxxxx1234560.300.350.600.150.250.805xxxxxx123456140xxxxxx0≤x1≤400≤x2≤400≤x3≤400≤x4≤200≤x5≤400≤x6≤40123456123456123456123456123456123456min5582631400.450.451.050.400.500.50610285925227525.41590652550751523517500835327582450.3fxxxxxxxxxxxxxxxxxxxxxxxxstxxxxxxxxxxxx12345600.350.600.150.250.805xxxxxx问题是满足营养素要求的条件下,所需费用最小,是一个线性规划模型。利用Matlab软件编程序:%营养配餐ch21%文件名:ch21mc=[5;5;8;2;6;3];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];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)执行后输出青豆需要的份数ans=40胡罗卜需要的份数ans=40.0000菜花需要的份数ans=0白菜需要的份数ans=20.0000甜菜需要的份数an...