大学生数学建模--LINGO
- 格式:pdf
- 大小:3.44 MB
- 文档页数:46
第9卷第3期2007年6月黄山学院学报JOurnal0fHuangshanUniVefsityVo】.9.NO.3Jun.2007数学建模中的优秀软件——LINGO周甄川(黄山学院数学系,安徽黄山245041)摘要:介绍了数学建模的相关概念、数学建模竞赛概况,探讨了LINGo系统的功能与特点,以及它在数学建模中的应用。
关键词:数学模型;数学建模;LlNGo系统中图分类号:TP319:0141.4文献标识码:A文章编号:1672—447x(2007)03—0112—03在对自然科学与社会科学许多课题的研究中,科学工作者常将事物的变化规律用特定的数学表达式的形式加以描述。
将寻求这种确定事物变化规律的过程称为“数学建模”。
而在数学建模以及全国大学生数学建模竞赛中,最常碰到的是一类决策问题,即在一系列限制条件下,寻求使某个或多个指标达到最大或最小,这种决策问题通常称为最优化问题【1】。
最优化理论是近几十年发展和形成的一门新兴的应用性学科。
它主要解决最优生产计划、最优分配、最优设计、最优决策、最佳管理等最优化问题。
主要研究方法是定量化、系统化和模型化方法,特别是运用各种数学模型和技术来解决问题。
它主要由决策变量、目标函数、约束条件三个要素组成。
当遇到的实际问题时即使建立了模型,找到了解的方法,对于较大的计算量也是望而却步,LINGo系列优化软件包就给我们提供了理想的选择。
1什么是数学建模数学建模(MatheImticalModelin曲‘11顾名思义就是建立数学模型以解决实际问题的过程。
它利用数学和计算机对实际问题进行分析研究,抽象出反映事物内在活动规律的数学关系表达式,通过对这些数学关系表达式的求解和反复验证,最终解决实际问题。
数学是所有自然科学的基础,随着计算机软硬件技术的迅速发展,数学建模和与之相伴的计算已逐渐成为工程设计的关键工具,并在人类社会实践活动中的众多领域内发挥着越来越重要的作用。
那么,什么是数学模型?如何建立数学模型?如何用数学模型解决实际问题呢?模型就是对事物的一种抽象。
基础题:1.目标规划问题最近,某节能灯具厂接到了订购16000套A 型和B 型节能灯具的订货合同,合同中没有对这两种灯具的各自数量做要求,但合同要求工厂在一周内完成生产任务并交货。
根据该厂的生产能力,一周内可以利用的生产时间为20000min ,可利用的包装时间为36000min 。
生产完成和包装一套A 型节能灯具各需要2min ;生产完成和包装完成一套B 型节能灯具各需要1min 和3min 。
每套A 型节能灯成本为7元,销售价为15元,即利润为8元;每套B 型节能灯成本为14元,销售价为20元,即利润为6元。
厂长首先要求必须按合同完成订货任务,并且即不要有足量,也不要有超量。
其次要求满意销售额达到或者尽量接近275000元。
最后要求在生产总时间和包装总时间上可以有所增加,但过量尽量地小。
同时注意到增加生产时间要比包装时间困难得多。
试为该节能灯具厂制定生产计划。
解:将题中数据列表如下:根据问题的实际情况,首先分析确定问题的目标级优先级。
第一优先级目标:恰好完成生产和包装完成节能灯具16000套,赋予优先因子p1;第二优先级目标:完成或者尽量接近销售额为275000元,赋予优先因子p2; 第三优先级目标:生产和包装时间的增加量尽量地小,赋予优先因子p3; 然后建立相应的目标约束。
在此,假设决策变量12,x x 分别表示A 型,B 型节能灯具的数量。
(1) 关于生产数量的目标约束。
用1d -和1d +分别表示未达到和超额完成订货指标16000套的偏差量,因此目标约束为1111211min ,..16000z d d s t x x d d -+-+=+++-=要求恰好达到目标值,即正、负偏差变量都要尽可能地小(2) 关于销售额的目标约束。
用2d -和2d +分别表示未达到和超额完成满意销售指标275000元的偏差值。
因此目标约束为221222min ,..1520-275000.z d s t x x d d --+=++=要求超过目标值,即超过量不限,但必须是负偏差变量要尽可能地小,(另外:d +要求不超过目标值,即允许达不到目标值,就是正偏差变量要尽可能地小) (3) 关于生产和包装时间的目标约束。
基础题:1.目标规划问题最近,某节能灯具厂接到了订购16000套A 型和B 型节能灯具的订货合同,合同中没有对这两种灯具的各自数量做要求,但合同要求工厂在一周内完成生产任务并交货。
根据该厂的生产能力,一周内可以利用的生产时间为20000min ,可利用的包装时间为36000min 。
生产完成和包装一套A 型节能灯具各需要2min ;生产完成和包装完成一套B 型节能灯具各需要1min 和3min 。
每套A 型节能灯成本为7元,销售价为15元,即利润为8元;每套B 型节能灯成本为14元,销售价为20元,即利润为6元。
厂长首先要求必须按合同完成订货任务,并且即不要有足量,也不要有超量。
其次要求满意销售额达到或者尽量接近275000元。
最后要求在生产总时间和包装总时间上可以有所增加,但过量尽量地小。
同时注意到增加生产时间要比包装时间困难得多。
试为该节能灯具厂制定生产计划。
解:将题中数据列表如下:根据问题的实际情况,首先分析确定问题的目标级优先级。
第一优先级目标:恰好完成生产和包装完成节能灯具16000套,赋予优先因子p1;第二优先级目标:完成或者尽量接近销售额为275000元,赋予优先因子p2; 第三优先级目标:生产和包装时间的增加量尽量地小,赋予优先因子p3; 然后建立相应的目标约束。
在此,假设决策变量12,x x 分别表示A 型,B 型节能灯具的数量。
(1) 关于生产数量的目标约束。
用1d -和1d +分别表示未达到和超额完成订货指标16000套的偏差量,因此目标约束为1111211min ,..16000z d d s t x x d d -+-+=+++-=要求恰好达到目标值,即正、负偏差变量都要尽可能地小(2) 关于销售额的目标约束。
用2d -和2d +分别表示未达到和超额完成满意销售指标275000元的偏差值。
因此目标约束为221222min ,..1520-275000.z d s t x x d d --+=++=要求超过目标值,即超过量不限,但必须是负偏差变量要尽可能地小,(另外:d +要求不超过目标值,即允许达不到目标值,就是正偏差变量要尽可能地小) (3) 关于生产和包装时间的目标约束。
数学建模-(货机装运lingo)货机装运是指将货物从一个起点运输到一个终点,在这个过程中需要考虑到货物的重量、体积、运输方式等多种因素。
在货机装运过程中,一个关键问题是如何最大化运载效率,即在保证运输安全和合法的前提下,尽可能地提高货机的装载量,从而降低单位运输成本。
在数学建模中,可以使用lingo等工具进行货机装运的优化。
具体来说,可以将该问题抽象为一个数学模型,以最大化货机的装载量为目标函数,同时考虑到运输安全、货物重量、体积等约束条件。
下面以一个具体例子来说明如何使用lingo进行货机装运的优化:假设有一架货机,其载重量为10000公斤,可以装载两种货物A和B,每种货物的重量和体积如下:货物类型重量(公斤)体积(立方米)A 600 1.5B 400 0.8同时,从起点到终点的运输费用如下:货物类型运输费用(元/公斤)A 10B 15要求在保证运输安全和合法的前提下,最大化货机的装载量,即:subject to:A +B <= 10000(装载量不超过10000公斤)其中,A和B表示货机装载的货物A和B的数量,V是货机的装载体积,运输费用是由货物类型和运输距离等因素决定的,这里简化为一个固定值。
使用lingo进行求解的过程如下:1.首先,在lingo中创建一个新的模型文件,并定义目标函数和约束条件:2.对模型进行求解,并设置模型参数:model:solve;parameters:V = 15;end;在上述代码中,V表示货机的装载体积,这里假设为15立方米。
solve表示对模型进行求解,通过设置end来结束参数定义。
3.对求解结果进行分析和优化,例如考虑不同装载体积下的最优解:for V := 15 to 20 dobeginwriteln('Optimal value for V=',V,': ',model.obj);在以上代码中,for循环遍历不同的装载体积值(15到20),分别求解模型并输出优化结果。
数学建模值班lingo例题和答案
例1
某工厂有两条生产线,分别用生产M和P两种型号的产品,利润分别为200元/个和300元/个,生产线的最大生产能力分别为每日100和 120,生产线每生产一个M产品需要1个劳动日(1个工人工作8小时成为1个劳动日)进行调试、检测等工作,而每个P产品需要2个劳动日,该厂工人每天共计能提供160劳动日,假如原材料等其他条件不受限制,问应如何安排生产计划,才能使获得的利润最大?
解:设两种产品的生产量分别为x和x,则
目标函数max z = 200x +300x,
例2
生产计划安排问题(@if函数的应用)。
某企业用A,B两种原油混合加工成甲、乙两种成品油销售。
数据见下表,表中百分比是成品油中原油A的最低含量。
成品油甲和乙的销售价与加工费之差分别为5和5.6(单位:千元/吨),原油A,B的采购价分别是采购量x(单位:吨)的分段函数
f(x)和g(x)(单位:千元/吨),该企业的现有资金限额为7200(千元),生产成品油乙的最大能力为2000吨。
假设成品油全部能销售出去,试在充分利用现有资金和现有库存的条件下,合理安排采购和生产计划,使企业的收益最大。
解:设原油A,B的采购量分别为x, y,原油A用于生产成品油甲、乙的数量分别为x,,原油B用于生产成品油甲、乙的数量分别为x1,x,则采购原油
A,B的费用分别为f(x)和g(x),目标函数是收益最大,约束条件有采购量约束,生产能力约束、原油含量约束、成品油与原油的关系、资金约束。
建立规划模型如下:
max z = 5(X1+x1)+5.6(X2+x2)- f(x)-g(x)。
选项设置• Preprocess:预处理(生成割平面);• Preferred Branch:优先的分枝方式:“Default”(缺省方式)、“Up”(向上取整优先)、“Down”(向下取整优先);• IP Optimality Tol:IP最优值允许的误差上限(一个百分数,如5%即0.05);• IP Objective Hurdle:IP目标函数的篱笆值,即只寻找比这个值更优最优解(如当知道当前模型的某个整数可行解时,就可以设置这个值);• IP Var Fixing Tol:固定一个整数变量取值所依据的一个上限(如果一个整数变量的判别数(REDUCED COST)的值很大,超过该上限,则以后求解中把该整数变量固定下来)。
Nonzero Limit:非零系数的个数上限;Iteration Limit:最大迭代步数;Initial Contraint Tol:约束的初始误差上限;Final Contraint Tol:约束的最后误差上限;Entering Var Tol:进基变量的REDUCEDCOST的误差限;Pivot Size Tol:旋转元的误差限Report/StatisticsROWS= 5 VARS= 4 INTEGER VARS= 2( 0 = 0/1) QCP= 4NONZEROS= 19 CONSTRAINT NONZ= 12( 6 = +-1) DENSITY=0.760 SMALLEST AND LARGEST ELEMENTS IN ABSOLUTE VALUE= 0.300000 277.000 OBJ=MIN, NO. <,=,>: 2 0 2, GUBS <= 1 VUBS >=SINGLE COLS= 0 REDUNDANT COLS= 0第一行:模型有5行(约束4行),4个变量,两个整数变量(没有0-1变量),从第4行开始是二次规划的实际约束。
数学建模必备LINGO 在多目标规划和最大最小化模型中的应用一、多目标规划的常用解法多目标规划的解法通常是根据问题的实际背景和特征,设法将多目标规划转化为单目标规划,从而获得满意解,常用的解法有:1.主要目标法确定一个主要目标,把次要目标作为约束条件并设定适当的界限值。
2.线性加权求和法对每个目标按其重要程度赋适当权重0≥i ω,且1=∑ii ω,然后把)(x f i ii ∑ω作为新的目标函数(其中p i x f i ,,2,1),( =是原来的p 个目标)。
3.指数加权乘积法设p i x f i ,,2,1),( =是原来的p 个目标,令∏==pi a i ix f Z 1)]([其中i a 为指数权重,把Z 作为新的目标函数。
4.理想点法先分别求出p 个单目标规划的最优解*i f ,令∑-=2*))(()(iifx f x h然后把它作为新的目标函数。
5.分层序列法将所有p 个目标按其重要程度排序,先求出第一个最重要的目标的最优解,然后在保证前一个目标最优解的前提条件下依次求下一个目标的最优解,一直求到最后一个目标为止。
这些方法各有其优点和适用的场合,但并非总是有效,有些方法存在一些不足之处。
例如,线性加权求和法确定权重系数时有一定主观性,权重系数取值不同,结果也就不一样。
线性加权求和法、指数加权乘积法和理想点法通常只能用于两个目标的单位(量纲)相同的情况,如果两个目标是不同的物理量,它们的量纲不相同,数量级相差很大,则将它们相加或比较是不合适的。
二、最大最小化模型在一些实际问题中,决策者所期望的目标是使若干目标函数中最大的一个达到最小(或多个目标函数中最小的一个达到最大)。
例如,城市规划中需确定急救中心的位置,希望该中心到服务区域内所有居民点的距离中的最大值达到最小,称为最大最小化模型,这种确定目标函数的准则称为最大最小化原则,在控制论,逼近论和决策论中也有使用。
最大最小化模型的目标函数可写成)}(,),(),(max{min 21X f X f X f p X或)}(,),(),(min{max 21X f X f X f p X式中T n x x x X ),,,(21 是决策变量。
lingo数学模型
"lingo"是一种用于数学建模和优化的软件工具。
它提供了一个
直观的界面,用于建立和求解复杂的数学模型,包括线性规划、整
数规划、非线性规划、多目标规划等。
lingo的使用可以帮助分析
师和决策者在面临复杂的决策问题时进行优化决策。
在数学建模方面,lingo可以用来建立数学模型,包括定义决
策变量、约束条件和目标函数。
用户可以通过lingo的界面直观地
输入模型的各个部分,而无需深入了解数学建模的具体语法和规则。
这使得非专业的用户也能够快速地建立数学模型。
在优化方面,lingo提供了强大的求解算法,可以对各种类型
的数学模型进行求解,以找到最优的决策方案。
lingo支持对模型
进行灵敏度分析,帮助用户了解参数变化对最优解的影响,从而更
好地进行决策。
除了数学建模和优化外,lingo还具有数据可视化功能,可以
直观地展示模型的结果和决策方案。
这有助于用户向决策者传达模
型分析的结果,从而更好地支持决策过程。
总的来说,lingo作为数学建模和优化工具,为用户提供了一
个方便、强大的平台,帮助他们解决复杂的决策问题。
通过lingo,用户可以更好地理解问题、制定决策,并得到最优的解决方案。
P94,例3.4 选址问题目录题目 (1)第一步,旧址基础上只求运量的LP程序 (1)第二步,旧址基础上选择新址的NLP程序 (2)题目6个工地的地址(坐标表示,距离单位KM)及水泥用量(单位:吨)如下表,而在P(5,1)及Q(2,7)处有两个临时料场,日储量各有20t,如何安排运输,可使总的吨公里数最小?新料场应选何处?能节约多少吨公里数?第一步,旧址基础上只求运量的LP程序MODEL:Title Location Problem;sets:demand/1..6/:a,b,d;supply/1..2/:x,y,e;link(demand,supply):c;endsetsdata:!locations for the demand(需求点的位置);a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;!quantities of the demand and supply(供需量);d=3,5,4,7,6,11; e=20,20;x,y=5,1,2,7;enddatainit:!initial locations for the supply(初始点);endinit!Objective function(目标);[OBJ] min=@sum(link(i,j): c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2) );!demand constraints(需求约束);@for(demand(i):[DEMAND_CON] @sum(supply(j):c(i,j)) =d(i););!supply constraints(供应约束);@for(supply(i):[SUPPL Y_CON] @sum(demand(j):c(j,i)) <=e(i); );!@for(supply: @free(x);!@free(Y);!);@for(supply: @bnd(0.5,X,8.75); @bnd(0.75,Y,7.75); );END运行可得到全局最优解Global optimal solution found.Objective value: 136.2275Total solver iterations: 1Model Title: Location ProblemVariable Value Reduced CostX( 1) 5.000000 0.000000X( 2) 2.000000 0.000000Y( 1) 1.000000 0.000000Y( 2) 7.000000 0.000000E( 1) 20.00000 0.000000E( 2) 20.00000 0.000000第二步,旧址基础上选择新址的NLP程序!选新址的NLP程序;MODEL:Title Location Problem;sets:demand/1..6/:a,b,d;supply/1..2/:x,y,e;link(demand,supply):c;endsetsdata:!locations for the demand(需求点的位置);a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;!quantities of the demand and supply(供需量);d=3,5,4,7,6,11; e=20,20;enddatainit:!initial locations for the supply(初始点);!x,y=5,1,2,7;endinit!Objective function(目标);[OBJ] min=@sum(link(i,j): c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2) );!demand constraints(需求约束);@for(demand(i):[DEMAND_CON] @sum(supply(j):c(i,j)) =d(i););!supply constraints(供应约束);@for(supply(i):[SUPPL Y_CON] @sum(demand(j):c(j,i)) <=e(i); );!@for(supply: @free(x);!@free(Y);!);@for(supply: @bnd(0.5,X,8.75); @bnd(0.75,Y,7.75); );END求解结果只得到局部最优解Local optimal solution found.Objective value: 89.88347Total solver iterations: 67Model Title: Location ProblemVariable Value Reduced CostX( 1) 5.695966 0.000000X( 2) 7.250000 -0.3212138E-05Y( 1) 4.928558 0.000000Y( 2) 7.750000 -0.1009767E-05如果不要初始数据,可能计算时间更长,本例的结果更优:Local optimal solution found.Objective value: 85.26604Total solver iterations: 29Model Title: Location ProblemVariable Value Reduced CostX( 1) 3.254883 0.000000X( 2) 7.250000 -0.2958858E-05Y( 1) 5.652332 0.000000Y( 2) 7.750000 -0.1114154E-05如果想求全局最优解,结果将会出现如下错误版本限制,但会得到一个的局部最优解,结果与不要初始数据时算出的结果一样。
LINGO 使用教程LINGO 是用来求解线性和非线性优化问题的简易工具。
LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。
§1 LINGO 快速入门当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。
下面举两个例子。
例1.1 如何在LINGO 中求解如下的LP 问题:,6002100350..32min 212112121≥≤+≥≥++x x x x x x x t s x x在模型窗口中输入如下代码:min =2*x1+3*x2; x1+x2>=350; x1>=100;2*x1+x2<=600;然后点击工具条上的按钮 即可。
例1.2 使用LINGO 软件计算6个发点8个收点的最小费用运输问题。
产销单位运价如model :!6发点8收点运输问题; sets :warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand;links(warehouses,vendors): cost, volume; endsets !目标函数;min =@sum (links: cost*volume); !需求约束;@for (vendors(J):@sum (warehouses(I): volume(I,J))=demand(J)); !产量约束;@for (warehouses(I):@sum (vendors(J): volume(I,J))<=capacity(I));!这里是数据; data :capacity=60 55 51 43 41 52;demand=35 37 22 32 41 32 43 38; cost=6 2 6 7 4 2 9 5 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; enddata end然后点击工具条上的按钮 即可。
数学建模实验报告1.解析:此题属于0-1模型问题。
设队员序号为i ,泳姿为j ,记c ij 为队员i 第j 种泳姿的百米成绩,若选择队员i 参加泳姿j 的比赛,记x ij =1, 否则记xij =0;则有,目标函数为∑∑===4151j i ij ij x c Z Min ,每个人最多选泳姿为1,则有5,1,141=≤∑=i xj ij,每种泳姿有且仅有1人,则有4,1,151==∑=j xi ij。
若丁的蛙泳成绩退步及戊的自由泳成绩进步,则将c43的值和c54的值改变即可。
实验过程及运行结果如下:若丁的蛙泳成绩退步为1'15"2及戊的自由泳成绩进步57"5,计算结果如下:通过计算结果可知,在原数据的情况下,队伍的选择应该是甲参加自由泳,乙参加蝶泳,丙参加仰泳,丁参加蛙泳,戊不参加任何比赛,且最好的时间是253.2秒。
若丁的蛙泳成绩退步为1'15"2及戊的自由泳成绩进步57"5,则组成接力的比赛队伍调整为乙参加蝶泳,丙参加仰泳,丁参加蛙泳,戊参加自由泳,甲不参加任何比赛。
2.解析:此题属于线性规划问题。
已知某工厂用1A 、2A 两台机床加工1B 、2B 、3B 三种不同的零件,设1A 生产1B 、2B 、3B 的个数分别为1x 、2x 、3x ,2A 生产1B 、2B 、3B 的个数分别为4x 、5x 、6x ,则目标函数为min=1*2*1x +2*3*2x +3*5*3x +1*3*4x +1*3*5x +3*6*6x ;1A 加工的工时小于80小时,2A 加工的工时小于100小时,生产1B 、2B 、3B 的总数分别为70个、50个、20个。
实验过程及运行结果如下:通过计算结果可知,当1A 生产1B 、2B 、3B 的个数分别为68个、0个、4个,2A 生产1B 、2B 、3B 的个数分别为2个、50个、16个的时候,才能得到最低的成本640元。