版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数学规划与lingo软件
第1页数学规划
表示式:x~决议变量f(x)~目标函数gi(x)0~约束条件决议变量个数n和约束条件个数m较大数学规划线性规划非线性规划第2页一个简单例子(感受lingo):第3页怎么求解呢?方法一:作图;方法二:单纯形法;方法三:lingo软件;其它方法:matlab软件等等;第4页Lingo程序代码:max=7*x1+5*x2;3*x1+2*x2<=95;4*x1+6*x2<=201;7*x2<=210;第5页Lingo求解结果:Globaloptimalsolutionfound.Objectivevalue:229.1000
Infeasibilities:0.000000Totalsolveriterations:2VariableValueReducedCostX116.800000.000000X222.300000.000000RowSlackorSurplusDualPrice1229.10001.00000020.0000002.0030.0000000.1000000453.900000.000000第6页Matlab程序代码:f=[-7;-5];A=[32;46;07];b=[90;200;210];lb=zeros(2,1);[x,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],lb)第7页附加整数约束(怎么处理呢?)第8页Lingo程序代码:max=7*x1+5*x2;3*x1+2*x2<=95;4*x1+6*x2<=201;7*x2<=210;@gin(x1);@gin(x2);第9页例1加工奶制品生产计划1桶牛奶3千克A1
12小时8小时4千克A2
或赢利24元/千克赢利16元/千克50桶牛奶时间480小时至多加工100千克A1
制订生产计划,使天天赢利最大35元可买到1桶牛奶,买吗?若买,天天最多买多少?可聘用暂时工人,付出工资最多是每小时几元?A1赢利增加到30元/千克,应否改变生产计划?天天:第10页1桶牛奶3千克A1
12小时8小时4千克A2
或赢利24元/千克赢利16元/千克x1桶牛奶生产A1
x2桶牛奶生产A2
赢利24×3x1
赢利16×4x2
原料供给
劳动时间
加工能力
决议变量
目标函数
天天赢利约束条件非负约束
线性规划模型(LP)时间480小时至多加工100千克A1
50桶牛奶天天第11页模型求解
图解法
x1x20ABCDl1l2l3l4l5约束条件目标函数
Z=0Z=2400Z=3360z=c(常数)~等值线c在B(20,30)点得到最优解目标函数和约束条件是线性函数可行域为直线段围成凸多边形目标函数等值线为直线最优解一定在凸多边形某个顶点取得。第12页模型求解
软件实现
LINDG11.0max=72*x1+64*x2;x1+x2<=50;12*x1+8*x2<=480;3*x1<=100;
OBJECTIVEFUNCTIONVALUE
1)3360.000
VARIABLEVALUEREDUCEDCOST
X120.0000000.000000
X230.0000000.000000ROWSLACKORSURPLUSDUALPRICES2)0.00000048.0000003)0.0000002.0000004)40.0000000.000000NO.ITERATIONS=2DORANGE(SENSITIVITY)ANALYSIS?No20桶牛奶生产A1,30桶生产A2,利润3360元。第13页结果解释
OBJECTIVEFUNCTIONVALUE1)3360.000VARIABLEVALUEREDUCEDCOSTX120.0000000.000000X230.0000000.000000
ROW
SLACKORSURPLUSDUALPRICES
2)0.00000048.000000
3)0.0000002.0000004)40.0000000.000000NO.ITERATIONS=2原料无剩下时间无剩下加工能力剩下40三种资源“资源”剩下为零约束为紧约束(有效约束)max=72*x1+64*x2;x1+x2<=50;12*x1+8*x2<=480;3*x1<=100;第14页结果解释
OBJECTIVEFUNCTIONVALUE1)3360.000VARIABLEVALUEREDUCEDCOSTX120.0000000.000000X230.0000000.000000ROWSLACKORSURPLUSDUALPRICES
2)0.00000048.000000
3)0.0000002.000000
4)40.0000000.000000NO.ITERATIONS=2最优解下“资源”增加1单位时“效益”增量原料增加1单位,利润增加48时间增加1单位,利润增加2加工能力增加不影响利润影子价格35元可买到1桶牛奶,要买吗?35<48,应该买!聘用暂时工人付出工资最多每小时几元?2元!第15页RANGESINWHICHTHEBASISISUNCHANGED:
OBJCOEFFICIENTRANGES
VARIABLECURRENTALLOWABLEALLOWABLECOEFINCREASEDECREASE
X172.00000024.0000008.000000X264.0000008.00000016.000000RIGHTHANDSIDERANGESROWCURRENTALLOWABLEALLOWABLERHSINCREASEDECREASE250.00000010.0000006.6666673480.00000053.33333280.0000004100.000000INFINITY40.000000最优解不变时目标函数系数允许改变范围DORANGE(SENSITIVITY)ANALYSIS?
Yesx1系数范围(64,96)
x2系数范围(48,72)
A1赢利增加到30元/千克,应否改变生产计划x1系数由243=72增加为303=90,在允许范围内不变!(约束条件不变)第16页RANGESINWHICHTHEBASISISUNCHANGED:OBJCOEFFICIENTRANGESVARIABLECURRENTALLOWABLEALLOWABLECOEFINCREASEDECREASEX172.00000024.0000008.000000X264.0000008.00000016.000000
RIGHTHANDSIDERANGESROWCURRENTALLOWABLEALLOWABLERHSINCREASEDECREASE250.00000010.0000006.6666673480.00000053.33333280.0000004100.000000INFINITY40.000000影子价格有意义时约束右端允许改变范围原料最多增加10时间最多增加5335元可买到1桶牛奶,天天最多买多少?最多买10桶!(目标函数不变)结果解释第17页例2:复杂一点例子:假设某企业有6个货栈向8个销售商供给小装饰品,每一个货栈供给量都是有限,每一个销售商需求量必须得到满足。该企业要决定怎样调运货栈装饰品满足销售商以使总运输成本最少。第18页数据:货栈:123456可供量:605551434152销售商12345678需求量3537223241324338运输成本:
12345678162674259249538582352197433
476739271
523957265655228143;第19页模型第20页利用lingo编程求解?:在lingo中怎么输入?!假如按初等输入方法,怎么样?烦!!!!!!!!!!!有必要引进新方法:Lingo特点:集语言!第21页在lingo中引进集概念及定义主要目标是为了实现程序循环功效。
集:由一些对象组成全体。
集组员属性:集组员可能有一个或多个与之相关联特征,我们把这些特征称为属性。比如雇员集中每位雇员能够有一个薪水属性,也能够有一个生日属性等等。Lingo中集第22页Lingo中集定义语法:setname/member_list/:attribute_list;
说明:setname为集名称;
/member_list/为组员列表;
attribute_list为属性列表。Lingo中集第23页集定义例子:sets:students/JohnJill,RoseMike/:sex,age;endsets
注意:集部分以关键字“sets:”开始,以“endsets”结束。一个集及其属性在模型约束中被引用之前必须定义了它们。Lingo中集第24页把上面代码在lingo中运行,可得到下面结果:
VariableValueSEX(JOHN)1.234568SEX(JILL)1.234568SEX(ROSE)1.234568SEX(MIKE)1.234568AGE(JOHN)1.234568AGE(JILL)1.234568AGE(ROSE)1.234568AGE(MIKE)1.234568第25页sets:w/1..6/:capacity;endsets
也定义了一个集。注意该集合组员列表时所使用方法。Lingo中集第26页把上面代码在lingo中运行,可得到下面结果:
VariableValueCAPACITY(1)1.234568CAPACITY(2)1.234568CAPACITY(3)1.234568CAPACITY(4)1.234568CAPACITY(5)1.234568CAPACITY(6)1.234568第27页派生集(高维数组)定义方法:setname(parent_set_list)/member_list/:attribute_list;
比如:sets:product/AB/;machine/MN/;week/1..2/;allowed(product,machine,week):x;endsets
Lingo中集第28页把上面代码在lingo中运行,可得到下面结果:
VariableValueX(A,M,1)1.234568X(A,M,2)1.234568X(A,N,1)1.234568X(A,N,2)1.234568X(B,M,1)1.234568X(B,M,2)1.234568X(B,N,1)1.234568X(B,N,2)1.234568第29页集合中对象每一个属性都是一个变量,lingo程序运行完成后全部变量都会有一个值,变量取值确实定有两种方法:第一,对变量进行赋值(数据部分就是处理这个问题)。第二,没有赋值变量,就是决议变量。数据部分第30页数据部分以关键字“data:”开始,以关键字“enddata”结束。在这里,能够指定集组员、集属性。其语法以下:
object_list=value_list;
数据部分定义方法第31页sets:set1/A,B,C/:X,Y;endsetsdata:X=1,2,3;Y=4,5,6;enddata
第32页也能够写成下面形式:sets:set1/A,B,C/:X,Y;endsetsdata:X,Y=142536;enddata
注意:LINGO在为对象指定值时,首先在n个对象第1个索引处依次分配数值列中前n个对象,然后在n个对象第2个索引处依次分配数值列中紧接着n个对象,……,以这类推。第33页把上面代码在lingo中运行,可得到下面结果:
VariableValueX(A)1.000000X(B)2.000000X(C)3.000000Y(A)4.000000Y(B)5.000000Y(C)6.000000第34页在初始部分中,能够输入初始申明(initializationstatement),和数据部分中数据申明相同。对实际问题建模时,初始部分并不起到描述模型作用,在初始部分输入值仅被LINGO求解器看成初始点来用,而且仅仅对非线性模型有用。和数据部分指定变量值不一样,LINGO求解器能够自由改变初始部分初始化变量值。初始部分第35页初始部分定义方法:一个初始部分以“init:”开始,以“endinit”结束。初始部分初始申明规则和数据部分数据申明规则相同。比如(在lingo中全部变量是不分大小写):init:X,Y=2,0.1;endinitmax=x+y;Y=@log(X);X^2+Y^2<=1;第36页函数:函数运算前必须加@号@abs(x)@sin(x)@cos(x)@tan(x)@exp(x)绝对值正弦余弦正切e为底指数@log(x)@sign(x)@smax@smin@floop(x)e为底对数符号函数最大数最小数取整循环:@FOR(集名[(循环字母)[|循环条件]]:表示式列表)最大:@MAX(集名[(循环字母)[|循环条件]]:表示式)最小:@MIN(集名[(循环字母)[|循环条件]]:表示式)取和:@SUM(集名[(循环字母)[|循环条件]]:表示式)第37页运输问题lingo程序sets:w/1..6/:capacity;v/1..8/:demand;links(w,v):c,x;endsetsdata:capacity=605551434152;demand=3537223241324338;c=626742594953858252197433767392712395726555228143;enddatamin=@sum(links(i,j):c(i,j)*x(i,j));@for(w(i):@sum(v(j):x(i,j))<=capacity(i));@for(v(j):@sum(w(i):x(i,j))=demand(j));第38页Matlab求解此线性规划(代码):f=[6;2;6;7;4;2;5;9;4;9;5;3;8;5;8;2;5;2;1;9;7;4;3;3;...7;6;7;3;9;2;7;1;2;3;9;5;7;2;6;5;5;5;2;2;8;1;4;3];A=[1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江国企招聘2025舟山市普陀山庄有限公司招聘2人笔试历年参考题库附带答案详解
- 2026昊华公司校园招聘笔试历年参考题库附带答案详解
- 2026中化信息校园招聘笔试历年参考题库附带答案详解
- 2025贵州黄果树产业发展集团有限公司招聘笔试排名笔试历年参考题库附带答案详解
- 2025福建省国银保安服务有限公司招聘教官2人笔试历年参考题库附带答案详解
- 2025浙江浦江县交通集团选聘市场化人员拟聘用人员笔试历年参考题库附带答案详解
- 2025洛阳石化工程建设集团招聘15人笔试历年参考题库附带答案详解
- 2025江苏兴化交投人力资源有限公司招聘3人笔试历年参考题库附带答案详解
- 2025年江西倬云数字科技有限公司第一批次公开招聘笔试及笔试历年参考题库附带答案详解
- 2025年中国人民健康保险股份有限公司赣州中心支公司劳务派遣制工作人员招聘1人笔试历年参考题库附带答案详解
- AQ 1096-2014 煤矿建设项目安全验收评价实施细则(正式版)
- 四川省广安市武胜县+2023-2024学年九年级上学期期末考试道德与法治试题
- 电大 工程数学试卷及答案汇总(完整版)
- GB/T 43383-2023船舶和海上技术船用人孔盖
- 钢筋焊接施工安全技术交底
- 智能化燃机电厂建设方案
- 外科急腹症的诊断与临床思维
- 销售授权书模板
- 2021年10月全国自学考试00265西方法律思想史试题答案
- 2023年关于宁波市鄞州粮食收储有限公司公开招聘工作人员笔试的通知笔试备考题库及答案解析
- JJF(纺织)080-2018纺织检针机校准规范
评论
0/150
提交评论