320 likes | 515 Views
线性规划. 200 7 年 0 5 月11日. 一.基本知识. 例: 飞机上合理配备武器和设备问题 在多用途飞机上通常应配备有:若干种武器(如机关炮、空对-地导弹、空-空导弹、火箭束、炸弹等);无线电干扰设备;轰炸瞄准具;导弹武器的火控系统等。每种武器和设备都有一定的重量、体积、尺寸等物理特性,因为飞机的载重量和机内容积有限,因此,武器和设备在飞机上的配备受到了一定限制,同时,武器和设备又影响飞机的使用效率。在合理选配武器和设备时,应满足对重量、体积和尺寸等的限制条件下,使飞机的使用效率最大。. 作如下假设. n: 飞机上应配备的武器和设备的种数;
E N D
线性规划 2007年 05月11日
一.基本知识 例: 飞机上合理配备武器和设备问题 在多用途飞机上通常应配备有:若干种武器(如机关炮、空对-地导弹、空-空导弹、火箭束、炸弹等);无线电干扰设备;轰炸瞄准具;导弹武器的火控系统等。每种武器和设备都有一定的重量、体积、尺寸等物理特性,因为飞机的载重量和机内容积有限,因此,武器和设备在飞机上的配备受到了一定限制,同时,武器和设备又影响飞机的使用效率。在合理选配武器和设备时,应满足对重量、体积和尺寸等的限制条件下,使飞机的使用效率最大。
作如下假设 n:飞机上应配备的武器和设备的种数; m: 武器或设备的物理特性种数; :第j种武器或设备的第i种物理特性的值; :对第i种物理特性值的限制界限; :第j种武器或设备的效率系数。
设各种武器和设备的数量分别为 • 飞机的总效率为 但 必须满足下列条件 :
由此可以得到如下数学模型 • max z = S.T
1.线性规划、线性规划的可行解,最优解的概念。1.线性规划、线性规划的可行解,最优解的概念。 线性规划一般可写作 min(or max) f= s.t. i=1,2,
线性规划问题还可以用矩阵表示 min f= s.t Ax ≥b, x≥0 其中f被称作目标函数,目标函数下的等式或不等式被称作约束条件, x= 被称作决策变量, C= 。
A= ,b= • 一组满足约束条件的变量 的值称为一组可行解。 • 可行解的集合称为可行解域,或可行解空间。 • 线性规划问题也就是在可行解域上寻找使目标函数取得极小(或极大)值的可行解,称之为最优解。
2.Mathematica中有关求解线性规划问题的指令介绍2.Mathematica中有关求解线性规划问题的指令介绍 在Mathematica软件中,有三个函数可用于求解线性规划问题: ConstrainedMax[f,{inequalities},{x,y,…}] ConstrainedMin[f,{inequalities},{x,y,…}] LinearProgramming[c,A,b]
前两个函数分别用于求目标函数的最大值和最小值。第一个参数是目标函数;第二个参数是约束条件,可以是不等式,也可以是等式,但不必包含非负条件;第三参数是决策变量。第三个函数用于求解写成矩阵形式的线性规划问题前两个函数分别用于求目标函数的最大值和最小值。第一个参数是目标函数;第二个参数是约束条件,可以是不等式,也可以是等式,但不必包含非负条件;第三参数是决策变量。第三个函数用于求解写成矩阵形式的线性规划问题
3.MATLAB中有关求解线性规划问题的指令介绍 • X=linprog(f,A,b,Aeq,beq) • X=linprog(f,A,b,Aeq,beq,lb,ub) • X=linprog(f,A,b,Aeq,beq,lb,ub,x0) • X=linprog(f,A,b,Aeq,beq,lb,ub,x0,options) • [x,fval,exitflag,output]= linprog(…)
4.利用lindo或lingo软件求解线性规划问题 • 请参考《优化建模与lindo/lingo软件》谢金星 薛毅 编著 清华大学出版社
二.食谱问题 • 1.问题 某公司饲养实验用动物以供出售。已知这些动物的生长对饲料中三中营养成分:蛋白质、矿物质、维生素特别敏感,每个动物每天至少需要蛋白质70 g,矿物质3g,维生素10mg,该公司能买到5种不同的饲料,每种饲料1kg所含营养成分如表1所示,每种饲料1kg的成本如表2所示。求能满足动物生长需要,又使总成本最低的饲料配方。
表1 五种饲料单位重量(1kg)所含营养成分 表2 五种饲料单位重量(1kg)成本
2.问题分析与建立模型 设( j= 1,2, 3,4,5)表示混合饲料中所含的第j种饲料的数量,由于提供的蛋白质总数必须满足每天的最低需求量70g,故应有
同理,考虑矿物质和维生素的需要,应有 混合饲料成本的目标函数f为 决策变量x非负。 由于希望调配出来的混合饲料成本最低,所以该饲料配方问题是一个线性规划模型:
min s.t
3.模型求解 lindo源程序: min0.2x1+0.7x2+0.4x3+0.3x4+0.5x5 subject to 0.3x1+2x2+x3+0.6x4+1.8x5>70 0.1x1+0.05x2+0.02x3+0.2x4+0.05x5>3 0.03x1+0.1x2+0.02x3+0.2x4+0.08x5>10 end
运行结果 • NO LIKELY SOURCES OF ERROR WERE FOUND • OBJECTIVE FUNCTION VALUE • 1) 24.74359 • VARIABLE VALUE REDUCED COST • X1 0.000000 0.103846 • X2 0.000000 0.135897 • X3 0.000000 0.141026 • X4 39.743591 0.000000 • X5 25.641026 0.000000
一般的食谱问题可叙述为 • 设有n种食物,每种食物中含有m种营养成分。用 表示一个单位的第j种食物中含有第i种营养的数量,用 表示每人每天对第i种营养的最低需求量, 表示第j种食物的单价, 表示所用的第j种食物的数量,一方面满足m种营养成分的需要同时使食物的总成本最低。
一般的食物问题的线性规划模型为 min s.t 这类线性规划模型还可以描述很多诸如合理下料、最小成本运输、合理分派任务等问题,具有很强的代表性。
三.分派问题 • 有设n项任务要分给n个人去完成,每人完成一项。由于每人的专长不同,完成不同任务所得的收益也不同,若第i个人完成第j项任务的收益为 ,问题是:如何分配这些工作任务,使总收益为最大?
设 则问题的数学模型为 max z= s.t.
分派问题的求解过程 考虑n=6的情况,即6个人做6项工作的最优指派问题。其收益矩阵如下:
Lindo程序: 约束2 x11+x21+x31+x41+x51+x61=1 x12+x22+x32+x42+x52+x62=1 x13+x23+x33+x43+x53+x63=1 x14+x24+x34+x44+x54+x64=1 x15+x25+x35+x45+x55+x65=1 x16+x26+x36+x46+x56+x66=1 end !Assignment model !Maximize valve of assignments max 20x11+15x12+16x13+5x14+4x15+7x16 +17x21+15x22+33x23+12x24+8x25+6x26 +9x31+12x32+18x33+16x34+30x35+13x36 +12x41+8x42+11x43+27x44+19x45+14x46 -99x51+7x52+10x53+21x54+10x55+32x56 -99x61-99x62-99x63+6x64+11x65+13x66 subject to !约束1 x11+x12+x13+x14+x15+x16=1 x21+x22+x23+x24+x25+x26=1 x31+x32+x33+x34+x35+x36=1 x41+x42+x43+x44+x45+x46=1 x51+x52+x53+x54+x55+x56=1 x61+x62+x63+x64+x65+x66=1
运行结果 • X41 0.000000 1.000000 • X42 0.000000 0.000000 • X43 0.000000 3.000000 • X44 1.000000 0.000000 • X45 0.000000 7.000000 • X46 0.000000 14.000000 • X51 0.000000 116.000000 • X52 0.000000 5.000000 • X53 0.000000 8.000000 • X54 0.000000 10.000000 • X55 0.000000 20.000000 • X56 1.000000 0.000000 • X61 0.000000 97.000000 • X62 0.000000 92.000000 • X63 0.000000 98.000000 • X64 0.000000 6.000000 • X65 1.000000 0.000000 • X66 0.000000 0.000000 • LP OPTIMUM FOUND AT STEP 20 • OBJECTIVE FUNCTION VALUE • 1) 135.0000 • VARIABLE VALUE REDUCED COST • X11 1.000000 0.000000 • X12 0.000000 0.000000 • X13 0.000000 5.000000 • X14 0.000000 29.000000 • X15 0.000000 29.000000 • X16 0.000000 28.000000 • X21 0.000000 15.000000 • X22 0.000000 12.000000 • X23 1.000000 0.000000 • X24 0.000000 34.000000 • X25 0.000000 37.000000 • X26 0.000000 41.000000 • X31 0.000000 8.000000 • X32 1.000000 0.000000 • X33 0.000000 0.000000 • X34 0.000000 15.000000 • X35 0.000000 0.000000 • X36 0.000000 19.000000
MODEL:1]!Assignment Problem Model;2]sets:3]Flight/1..6/;4]Assign(Flight,Flight):c,x;5]endsets6]!here is incom matrix;7]data:8]c=20 15 16 5 4 79]17 15 33 12 8 610]9 12 18 16 30 1311]12 8 11 27 19 1412]-99 7 10 21 10 3213]-99 -99 -99 6 11 13;14]enddata15]16]!Maximize valve assignments; 17]max = @sum(Assign:c*x);18]@for(Flight(i):19]!Each i must be assigned some j;20]@sum(Flight(j):x(i,j))=1;21);22]]@for(Flight(j):23]!Each i must receive an assignment;24]@sum(Flight(i):x(j,i))=1;25]);END
四.钢管订购和运输(2000年网易杯全国大学生数学建模竞赛B题)四.钢管订购和运输(2000年网易杯全国大学生数学建模竞赛B题) 要铺设一条 的输送天然气的主管道,如图所示。经筛选后可以生产这种主管道钢管的钢厂有 图中粗线表示铁路,单细线表示公路,双线表示要铺设的管道(假设沿管道或者原有公路,或者建有施工公路),圆圈(点) 表示火车站 ,每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。 为方便计,1km主管道钢管称为1单位钢管。一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂 在指定期限内能生产该钢管的最大数量为 个单位,钢管出厂销价1单位钢管为 万元,如下表:
里程(km) ≤300 301~350 351~400 401~450 451~500 运价(万元) 20 23 26 29 32 里程(km) 501~600 601~700 701~800 801~900 901~1000 运价(万元) 37 44 50 55 60 一单位钢管的铁路运价如下表: 1000km以上每增加1至100km运价增加5万元。公路运输费用为1单位钢管每公里0·1万元(不足整公里部分按整公里计算)。钢管可由铁路、公路运往铺设地点 。(不只是运到点 而是管道全线) 请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。