APP下载

Lingo软件在整数规划教学过程中的应用

2022-02-17宾茂君,施翠云

电脑知识与技术 2022年35期
关键词:最优化运筹学

宾茂君,施翠云

摘要:運筹学是一门研究生产经营过程中目标达到最优的课程,该文通过借助Lingo优化软件,把运筹学中整数规划问题进行研究,揭示整数规划问题的本质,从而让学生更容易理解运筹学的本质和内涵,使得学生对运筹学这门课程产生浓厚的兴趣。

关键词:Lingo软件;最优化;运筹学

中图分类号:G642        文献标识码:A

文章编号:1009-3044(2022)35-0106-03

1 引言

运筹学[1-4]是研究目标过程最优的数学基础学科,它的背景问题来源于我们的实际生活,包括生产经营、经济管理、金融决策等内容。它是经济学、管理学和自然科学学科的学生一门专业必须课程,因此研究如何用通俗易懂的语言来教授运筹学就显得十分必要。另外,Lingo优化软件[5]是由美国LINDO系统公司(Lindo System Inc.)推出的,可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等[6-7],功能十分强大,是求解优化模型[8]的最佳选择。相对于其他优化软件来说,Lingo优化软件的编译语言比较简单通俗易懂,学生更容易掌握。因此,运用Lingo优化软件来讲授运筹学知识,就具有重要的研究意义。

由于运筹学的知识点比较多,涉及的面比较广,本文通过最具代表性的整数规划问题来介绍Lingo软件在运筹学教学过程中的应用。

2 整数规划问题的Lingo软件教学

整数规划是指规划中的变化量(部分或全部)是整数。在规划问题中,有的决策变量是小数或者是分数的形式,但是涉及机器的台数,工作的人数或者装卸物资的车辆数,都涉及整数的概念。人们为了满足这些整数的要求,通常通过将所得到的数值进行四舍五入方法取得整数,但是这样的方法未必是可行解或最优解。现在研究者们通常通过分支定界法或割平面法来求最优解,这两种方法主要针对决策变量是少数几个的情形,对于决策变量是多个的情形就很难求解最优解。

例1 某铁器加工厂要制作100套钢架,每套要用长为2.9米,2.1米和1.5米的圆钢各一根。已知原料长为7.4米,问应如何下料,可使材料最省?

分析:在长度确定的原料上截取三种不同规格的圆钢,可以归纳出8种不同的下料方案:

[圆钢(米) Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅶ 2.9 1 2 0 1 0 1 0 0 2.1 0 0 2 2 1 1 3 0 1.5 3 1 2 0 3 1 0 4 料头(米) 0 0.1 0.2 0.3 0.8 0.9 1.1 1.4 ]

该问题归纳为如何混合使用这8种不同的下料方案,来制造100套钢架,且要使剩余的料头总长为最短。不妨设[xi]表示用第[i]种下料方案下料的原料根数,[i=1,2,…,8],有目标函数:使圆钢料头总长度达到最小值

[min z=0.1x2+0.2x3+0.3x4+0.8x5+0.9x6+1.1x7+1.4x8]

约束条件:三种规格圆钢根数都是100根,则

[x1+2x2+x4+x6=1002x3+2x4+x5+x6+3x7=1003x1+x2+2x3+3x5+x6+4x8=100]

由于圆钢是整数,不能取小数,因此有非负取整条件约束[xi≥0(i=1,2,…,8)]且取整数。

对于这个问题,如果运用分支定界法或割平面法来求解,就显得比较困难。而运用Lingo软件来求解就比较方便快捷。该问题的Lingo程序如下:

min Z=0.1*x2+0.2*x3+0.3*x4+0.8*x5+0.9*x6+1.1*x7+1.4*x8

s.t.

x1+2*x2+ x4+ x6 =100;

2*x3+2*x4+x5+ x6+3*x7=100;

3*x1+x2+2*x3+3*x5+x6+4*x8=100;

@gin(x1); @gin(x2); @gin(x3); @gin(x4); @gin(x5); @gin(x6); @gin(x7); @gin(x8);

通过对程序进行求解可以得到当第Ⅰ、Ⅱ、Ⅳ种方案分别取30、10、50根时,所剩余的圆钢是16米。同时,计算结果也给出了每个变化量之间变化范围,这极大方便了生产者在生产经营过程中根据市场经济情况对生产进行及时调整。

另外,在整数规划中还有一类比较常见的模型——0-1整数规划问题,它在我们的生活当中经常见到。例如下面的例子:

例2 某游泳队拟选用甲、乙、 丙、丁 四名游泳运动员组成一个 4×100 m 混合泳接力队, 参加今年的锦标赛。他们的 100 m 自由泳、蛙泳、蝶泳、仰泳的成绩如表所示:

甲、 乙、丙、丁 四名队员各自游什么姿势 , 才最有可能取得好成绩?

由于游泳运动员每人只能参加四种泳姿的其中一种,这表明该问题是典型的0-1整数规划问题。为此,不妨设这四名运动员参加4种泳姿的变量为[xij(i,j=1,...,4)],由目标是要求总花费时间最短,则目标函数为:

[min  f=56x11+74x12+61x13+63x14+63x21+69x22+65x23+71x24 +57x31+77x32+63x33+67x34+55x41+76x42+62x43+62x44]

又由于每个运动员只参加1种泳姿并且每种泳姿只由其中1名运动员参加,因此,可知[xij(i,j=1,...,4)]只能取0或1。于是,问题的约束条件为

[x11+x12+x13+x14=1; x21+x22+x23+x24=1;x31+x32+x33+x34=1; x41+x42+x43+x44=1;x11+x21+x31+x41=1; x12+x22+x32+x42=1;x13+x23+x33+x43=1; x14+x24+x34+x44=1;xij=0或1,  i,j=1,2,3,4.]

对于这问题,如果用枚举法是比较困难的,又由于涉及多个变量,用分支定界法或割平面法来求解也是不可行的,但是Lingo优化软件就比较便捷,它的Lingo程序如下:

sets:

ren/A,B,C,D /:rent;

job/1..4/:jobt;

link(ren,job):time,x;

endsets

data:

time=

56,74,61,63

63,69,65,71

57,77,63,67

55,76,62,62;

enddata

min=@sum(link:time*x);

@for(ren(i):@sum(job(j):x(i,j))=1);

@for(job(j):@sum(ren(i):x(i,j))=1);

@for(link:@bin(x));

end

通过运行程序可得:

甲游蝶泳,乙游蛙泳,丙游自由泳,丁游仰泳的方式下,比赛的时间达到最短249秒。

体育竞技比赛是为了获取更好的成绩,如果不是利用Lingo优化软件计算,而是人工用笔计算或让比赛选手去实践计算结果,这将会耗费大量的人力物力和财力。

从例1和例2可以看出,生产问题和体育竞技比赛都离不开整数规划。在整数规划教学过程中引入Lingo优化软件进行教学,可以将较为复杂的整数规划问题快速解决计算,并将有助于拓宽学生的学习视野,提高学生们的求知欲望,提高学生们的实践动手能力,让学生懂得将所学习的知识应用到生活实际当中去。

3 结语

在智能信息时代的今天,运筹学是实用性较强的新兴学科,社会对运筹优化问题要求也越来越高,这迫使相关专业的学生学习好运筹学也带来了一定的挑战。而运筹学的优化理论、优化方法越来越精细,但书本的知识有点陈旧、枯燥乏味,如果只用传统的黑白与课本教学,将无法满足智能信息时代对学生越来越高的要求。为此,利用Lingo优化软件来帮助运筹学的教学,并加入生活生产元素也许会给学生学习运筹学带来一条宽广的道路。通过运用Lingo优化软件的引入,可以将复杂问题简单化,拓宽学生的知识面,拓展学生的动手能力,提高课堂学生的学习效率,激发新一代大学生的学习潜能,也为未来的学习工作提供能力担当感和责任感。

参考文献:

[1] 黄健,刘国栋.运筹学[M].长沙:湖南师范大学出版社,2015.

[2] 胡运权.运筹学习题集[M].3版.北京:清华大学出版社,2002.

[3] 吳祈宗.运筹学与最优化方法[M].北京:机械工业出版社,2003.

[4] Wayne L.Winston.运筹学应用范例与解法[M]. 杨振凯,等译.北京:清华大学出版社,2006.

[5] 谢金星,薛毅.优化建模与LINDO/LINGO软件[M].北京:清华大学出版社,2005.

[6] 李林曙.线性代数与线性规划[M].北京:中国人民大学出版社,2010.

[7] 许绍吉.线性规划[M]. 北京:科学技术出版社,1997.

[8] 黄平, 孟永钢.最优化理论与方法[M].北京:清华大学出版社,2009.

【通联编辑:王力】

猜你喜欢

最优化运筹学
物流管理专业运筹学混合式课堂教学模式改革研究
运筹学课程教学改革问题研究
基于优化软件LINGO的运筹学案例实践教学研究
浅谈对运筹学专业教育的一些看法
占卜·庙算·军事运筹——谈军事运筹学的历史发展
谈企管干部学习运筹学