28

2024-03

当前位置: 网事范文网 > 作文大全 >

Lingo软件在数学建模竞赛中的应用

| 来源:网友投稿

[摘 要] 针对三道全国大学生数学建模竞赛赛题,利用Lingo软件对模型进行求解,并分析了Lingo软件在求解较大规模数学规划模型所发挥的作用。

[关键词] Lingo软件;数学建模;数学规划;曲线拟合

[中图分类号] O141.4[文献标识码] A[文章编号] 1008-4738(2010)04-0085-04

[收稿日期] 2010-06-20

[基金项目] 福建交通职业技术学院科技发展基金(Ky1001)。

[作者简介] 金晶晶(1983-),男,福建交通职业技术学院基础部助教,理学硕士,研究方向:组合数学与图论。

数学建模(Mathematical Modeling)是对现实世界的一个特定对象,为了一个特定目的,根据特有的内在规律,作出一些必要的简化假设,运用适当的数学工具,得到一个数学结构的过程[1]。

Lingo是Linear Interactive and General Optimizer的缩写。Lingo软件是美国芝加哥大学的Linus Schrage教授于1980年前后开发出来的一套专门用于求解最优化问题的软件包,即“交互式的线性和通用优化求解器”,包括功能强大的建模语言,建立和编辑问题的全功能环境,读取和写入Excel和数据库的功能,以及一系列完全内置的求解程序。使用者甚至不需要指定或启动特定的求解器,因为Lingo会读取方程式并自动选择合适的求解器。目前Lingo产品已经有Lingo8.0版本,新版本的求解规模都在原有基础上得到进一步加强。Lingo软件的最大特色在于其具有的快速建构模型、轻松编辑数据、强大求解工具、交互式模型或建立完成应用、丰富的文件支持。纵观近几年全国大学生数学建模竞赛赛题,参赛者大都需要处理较复杂的数学规划和曲线拟合等问题,模型的建立与求解较为复杂、计算量大,而matlab、mathmatica等软件语法比较复杂不易掌握。Lingo软件程序简洁、计算精度高、结果可靠、易于修改和扩展,其内部建模语言是建立与求解大规模数学规划模型的有力武器。2000年全国大学生数学建模竞赛B题(钢管订购和运输)中的最小费用流问题、2004年全国大学生数学建模竞赛C题(酒后驾车)的曲线拟合问题、2006年全国大学生数学建模竞赛中C题(易拉罐的最优设计)的非线性规划问题都可以充分展示用Lingo建模语言求解的优越性。

1 非线性规划模型

历年全国大学生数学建模竞赛都需解决最优生产计划、最优分配最优设计、最优决策、最佳管理等较为复杂的非线性规划问题,模型由决策变量、目标函数、约束条件三个要素组成,其计算量较大,可用Lingo软件求解。

2006“高教社杯”全国大学生数学建模竞赛C题[3]第二小题,设易拉罐是一个正圆柱体,什么是它的最优设计?经测量得圆柱的上底厚度为a=0.036 cm、下底厚度为c=0.040 cm、圆柱侧壁厚度为b=0.012 cm。考虑易拉罐设计美观性、便于把握以及材料节省等因素,于是建立目标规划模型如下:

目标函数:minW=b×2πRh+(a+c)πR2

约束条件:V=πR2>3552R/h=0.618πr2≤18.56,h≥8.71R>0,h>0,a=0.036,b=0.012

利用Lingo8.0编程如下:

Model:

min=b*2*3.14159*R*h+(a+c)*3.14159*R^2;

!以上是目标函数,以下为约束条件;

3.14159* R^2 * h>355;

2*R/h=0.618;

3.14159*R^2=18.56;

h>=8.71;

R>0;h>0;a=0.036;c=0.040;b=0.012;

End

Lingo以语句Model开始,以语句End结束,这两个语句单独成一行。语句分为集合定义部分、数据初始化部分、目标函数、约束条件部分,这几个部分的先后次序无关紧要。min开头的语句表示求目标函数最小值。“!”开头的语句是注释语句,Lingo不作运行,每条中间语句必须以“;”号作为结尾。注意乘号不能省略,语句不计大小写。

运行SOVLE,得部分结果如下:

Local optimal solution found at iteration:1151

Objective value:5.157389

VariableValueReduced Cost

B0.1200000E-01 0.000000

R 3.268480 0.000000

H 10.57760 0.000000

A0.3600000E-01 0.000000

C0.4000000E-01 0.000000

R2 5.907836 0.000000

即底面半径为3.268480,圆柱体高为10.57760时,用料体积为5.157389,此为最优设计。第三题亦可按此方法迎刃而解。上例充分体现Lingo其简单易学、方便快捷的优越性。

2 曲线拟合模型

曲线拟合在众多领域中得到了广泛的应用,将曲线拟合问题转化为数学规划模型,并使用Lingo软件来求解,该方法简便快捷,是实现曲线拟合的一个有效方法。

2004年全国大学生数学建模竞赛C题(酒后驾车)中给出某人短时间内喝下两瓶啤酒后,间隔一定时间得到数据。以下建立无约束的非线性规划模型[2]。间隔一定时间t测量他的血液中酒精含量y(毫克/百毫升),得到数据如表1:

表1 2004年全国大学生数学建模竞赛C题(酒后驾车)数据

时间(小时)0.250.50.7511.522.533.544.55

酒精含量306875828277686858515041

时间(小时)678910111213141516

酒精含量3835282518151210774

题目要求结合给定数据建立饮酒后血液中酒精浓度的数学模型。通过建立微分方程模型得到短时间内喝酒后血液中酒精浓度与时间的关系为:

y=a1(e-a2t-e-a3t)

求均方误差

Q(a1,a2,a3)=∑ni=1[a1(e-a2t-e-a3t)-yi]2

取极小值的待定系数,即为最小二乘解。下面用Lingo软件求解,具体算法如下:

MODEL:

SETS:

BAC/R1..R23/:T,Y;

ENDSETS

DATA:

T=0.25,0.5,0.75,1,1.5,2,2.5,3,3.5,4,4.5,5,6,7,8,9,10,11,12,13,14,15,16;Y=30,68,75,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4;

ENDDATA

MIN=@SUM(BAC:(A1*( @EXP(-A2*T)-@EXP(-A3*T))-Y)^ 2);

END

以上程序中,SETS和ENDSETS之间的语句是对集合作定义,在此所定义的BAC是包含23个成员的集合,T和Y是BAC的两个属性,分别表示时间t和血液中酒精浓度y,它们都是含有23个成员的一维数组。DATA和ENDDATA之间的语句是对T和Y的进行赋值,其中@SUM和@EXP是Lingo提供的内部函数,@SUM的作用是对某个集合的所有成员求某个表达式的和,该函数需要两个参数,第一个参数为集合名称,指定对该集合的所有成员求和,此处第一个参数是BAC,它有23个成员,则求和运算对这23个成员进行。第二个参数是一个表达式,表示求和运算对该表达式进行,两个参数之间用“:”号隔开。如果有约束条件,可放在目标函数之后,此处没有约束条件,故目标函数之后即以END结束整个程序。点击SOLVE,运行结果如下:

Local optimal solution found at iteration: 98

Objective value: 225.3417

VariableValueReduced Cost

A1114.43230.3477201E-08

A20.18550140.000000

A32.0079440.5661852E-07

即:A1=114.4323,A2=0.1855014,A3=2.007944,目标函数最小值为225.3417。

LINGO求多元函数极小值时内部所采用的算法效率高、速度快、精度高。用于非线性曲线拟合时,对拟合函数的形式无任何限制,无需初始值,能准确地得到回归系数的最小二乘解,计算精度高,程序简洁。

3 最小费用流模型

运筹学的交通运输问题中,往往要求在完成运输任务的前提下,寻求一个使总运输费用最省的运输方案,这就是最小费用流问题。如果只考虑单位货物的运输费用,那么这个问题就变成最短路问题。模型的传统求解迭代次数太多,比较复杂,而matlab、mathmatica等软件语法复杂不易编程,Lingo8.0其内部语言为解决该类问题的强有力武器。

2000年全国大学生数学建模竞赛B题“钢管的订购和运输”是一道离散优化问题。如图1,有7家钢管生产厂Si(i=1,2,…7),提供钢管到一条拟铺设钢管的天然气输送主管道上的15个站点Aj(j=1,2,…15)。钢管可通过公路和铁路运至铺设地点,图中粗线表示铁路,单细线表示公路,双细线表示要铺设的管道(假设沿管道或者原有公路,或者建有施工公路),空心圆点表示火车站。钢管运到站点后由各站点沿管道向两边铺设直至合拢。该题要求制定钢管订购和运输的优化计划,使总费用最小。

图1 天然气输送主管道图

欲解决该问题首先需确定从Si至Aj的最优路径,从而确定出钢管从i地运往j地的最小运费,即求解最小费用流问题。根据该题的需要,不妨设从Si至Aj的钢管经过铁路后,一旦走公路,则不会再通过铁路运输。下以S2为例,计算S2至Aj的最优路径。图1中Bk/Lk(k=16,2,…,32)中表示S2至沿铁路至火车站Bk的费用为Lk。问题转化为求以Si为起点、Aj为终点的赋权图的最短路径问题。由Dijkstra算法,运用Lingo8.0编程如下:

MODEL:

SETS:

CITIES/1..33/:F;

ROADS(CITIES,CITIES)/

1,2 2,3 2,16 3,4 3,17 4,5 4,18 5,6 5,19 6,7 6,20 7,8 7,21 7,22 8,9 8,23 9,10 9,24 10,11 10,25 11,12 11,26 12,13 12,27 13,14 13,28 14,15 14,29 14,30 15,31 15,32 16,33 17,33 18,33 19,33 20,33 21,33 22,33 23,33 24,33 25,33 26,33 27,33 28,33 29,33 30,33 31,33 32,33/:D

ENDSETS

DATA:

D=10.4 30.1 0.3 75.0 0.2 60.6 60 19.4 1 20.5 0.5 20.1 1.0 3.1 68.0 1.2 48.0 4.2 30.0 7.0 22.0 1.0 21.0 1.0 42.0 6.2 50.0 11.0 3.0 2.0 2.0 205.0 190.0 125.0 110.0 95.0 85.0 85.0 70.0 110.0 135.0 145.0 155.0 165.0 180.0 175.0 190.0 190.0;

ENDDATA

F( @SIZE( CITIES)) = 0;

@FOR( CITIES(i)|i#LT# @SIZE(CITIES):

F(i) =@MIN( ROADS(i, j): D(i, j) + F(j)));

END

以上SETS开始至ENDSETS结束的内容是定义所有的边。“CITIES/1..33/:F;”是用集合CITIES定义一维变量F,其格式为:“setname/memberlist(or1..n)/:attribute,...”,一个集合只需要给出维数(memberlist,用1..n表示或其他文字符号表示或用集合表示),后接具有该维数的变量(attribute)。以上DATA开始至ENDDATA 结束的内容是赋以上各边以相应的权。Dijkstra算法的循环语句为:“@FOR( CITIES( i)| i #LT# @SIZE( CITIES): F( i) = @MIN( ROADS( i, j): D( i, j) + F( j)) );”,其中逻辑运算符“#LT#”表示小于。

运行此程序,得部分结果如下:

Feasible solution found at iteration:0

VariableValue

F( 1)215.7000

F( 2)205.3000

即可求得单位钢管从S2到Aj的最小运费F(j)(j=1,…,15)如下:

表2 单位钢管从S2到Aj的最小运费

F(j)单位钢管的运输费F(j)单位钢管的运输费

F(1)215.7000F(2)205.3000

F(3)190.2000F(4)171.6000

F(5)111.0000F(6)95.50000

F(7)86.00000F(8)71.20000

F(9)114.2000F(10)142.0000

F(11)146.0000F(12)156.0000

F(13)171.2000F(14)178.0000

F(15)192.0000

同理可求得S1,S3,S4,S5,S7,S7各点到目的点的最优单位运费。

经定量分析可得较合理的方案为:S1,S2,S3负责往铺设点A1至A9供应钢管,S4、S5、S6、S7负责往A8至A15供应钢管。

Lingo软件内置建模语言以较少的语句、直观的方式描述较大规模的数学规划模型。其中,@SUM 、@For和@IF等语句的应用,极大地方便了数学模型的建立。此外,由曲线拟合模型可得,可以将原先不属于优化问题的模型,利用Lingo软件内部建模语言进行求解,较之传统的求解方法更简单。

在实际应用领域,Lingo其线性、非线性和整数规划求解程序已经被全世界数千万的公司用来做最大化利润和最小化成本的分析。Lingo能在产品分销、成分混合、生产与个人事务安排、存货管理、生产线性规划、运输、财务金融、投资分配、资本预算、混合排程、库存管理、资源配置等问题的数学建模中发挥巨大作用。

[参考文献]

[1] 姜启源,谢金星,叶 俊.数学模型:第三版[M].北京:高等教育出版社,2003:3-4.

[2] 袁新生,廖大庆.用Lingo6.0求解大型数学规划[J].工科数学,2001(5):73-77.

Application of Lingo Software to Mathematical Contest in Modeling

JIN Jing-jing

(Basic Courses Dept., Fujian Communication Technology College, Fuzhou 350007, China)

Abstract:On the analysis of three questions in National Mathematical Contest in Modeling for College students, this paper puts forward the way in solving the model by using Lingo software accordingly, and analyzes the role the Lingo software plays in solving large-scale mathematical optimization model.

Key words: Lingo software; mathematical modeling; mathematical optimization; curve fitting

推荐访问:建模 竞赛 数学 软件 Lingo

最新推荐New Ranking

12023年高尔基童年读书心得_高尔基童年读书心得体会(范文推荐)

《童年》该作讲述了阿廖沙(高尔基的乳名)三岁到十岁这一时期的童年生活,生动地再现了19世纪七八十年...

2共青团高一入团申请书800字【五篇】【优秀范文】

共青团有着非常悠久和光荣的历史,是我们青年人值得加入的优秀组织,下面给大家带来一些关于高一入团...

3入团申请书高一800字【五篇】(范文推荐)

我是一名高一的学生,从懂事的时候开始我就对共青团充满着向往,现在我已经高一了,在此,我向组织递...

42023年度教师个人入党申请书万能版大全(精选文档)

为一名教师,对自己还是应该要有正确的认识,在工作和思想方面,都应该要保持优良。那么关于2021年教...

52023年度《狼王梦》读书心得与感悟范本

《狼王梦》以日曲卡雪山山麓为背景,描写了母狼紫岚、幼狼和诸多动物之间酸甜苦辣五味俱全的经历。大...

62023年度教师学习师德师风心得与感悟范本

国家的兴衰,取决于教育;教育的兴衰,取决于教师。教师是立校之本,而师德师风则是教育之魂。不知学习...

72023年度不做教书匠读书心得【五篇】(精选文档)

大脑是一个很奇妙的器官,当你读书的时候,它能记住你读进去的每一个细节。令人惊讶的是,你创造的每...

82023年城南旧事读后心得【五篇】【完整版】

读书是人生难以忘怀的体验和过程,读书,让我们走进了缤纷多彩的世界,读书使我们的精神家园丰富而高...

92023年新思想引领新征程红色足迹个人心得五篇

红色精神,民族之魂。各个历史时期都有许许多多的人谱写出动人的红色故事。不知参阅了今年的红色足迹...

10小学生读《水浒传》有感400字七篇(精选文档)

《水浒传》一百零八位好汉的故事虽属虚构。但是,他们有血有肉也有心,都是汉子。《水浒传》书中那一...