摘 要:运输问题是运筹学中常见问题。针对这种问题我们也曾学习过传统的方法,运输问题可以利用表上作业法来解决。当数据不多且复杂性地时,表上作业法比较好操作,但是现实中我们面对的问题往往数据更多且更为复杂。而lingo是针对运筹学问题的一个很好的软件应用。在此,简要的介绍lingo软件在运输问题上的运用,并给出相关例子供读者参考,以便能在遇到类似问题时更准确的解答。
关键词:lingo软件 应用 运输问题 一、lingo软件简介
lingo是linear interactive and general optimizer的缩写,即”交互式的线性和通用优化求解器”,由美国lindo系统公司(lindo system inc.)推出的,可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等,功能十分强大,是求解优化模型的最佳选择。其特色在于内置建模语言,提供十几个内部函数,可以允许决策变量是整数(即整数规划,包括 0-1 整数规划),方便灵活,而且执行速度非常快。能方便与excel,数据库等其他软件交换数据。
lingo 是使建立和求解线性、非线性和整数最佳化模型更快更简单更有效率的综合工具。lingo 提供强大的语言和快速的求解引擎来阐述和求解最佳化模型。 1. 简单的模型表示
lingo 可以将线性、非线性和整数问题迅速得予以公式表示,并且容易阅读、了解和修改。lingo的建模语言允许用户使用汇总和下标变量以一种易懂的直观的方式来表达模型,非常类似用户在使用纸和笔。模型更加容易构建,更容易理解,因此也更容易维护。 2. 方便的数据输入和输出选择
lingo 建立的模型可以直接从数据库或工作表获取资料。同样地,lingo 可以将求解结果直接输出到数据库或工作表。使得用户能够在用户选择的应用程序中生成报告. 3. 强大的求解器
lingo拥有一整套快速的,内建的求解器用来求解线性的,非线性的(球面&;非球面的),二次的,二次约束的,和整数优化问题。用户甚至不需要指定或启动特定的求解器,因为lingo会读取用户的方程式并自动选择合适的求解器。 4. 交互式模型或创建turn-key应用程序
能够在lingo内创建和求解模型,或用户能够从自己编写的应用程序中直接调用lingo。对于开发交互式模型,lingo提供了一整套建模环境来构建,求解和分析模型.对于构建turn-key解决方案,lingo提供的可调用的dll和ole界面能够从用户自己写的程序中被调用。lingo也能够从excel宏或数据库应用程序中被直接调用. 二、在运输问题上的运用 1. 运输问题
以下表为例。设有11个产地分别为a-k,8个销地分别为1-8。
下表中数据为哥产地与各销地之间的运费。 表1-运费表
这是一个供需平衡问题,数据多且复杂。我们可以用传统方法--表上作业法来解决,通过数次迭代,最后由闭回路法或者位势法判别最优解而求出最终解。如此则耗时耗力,复杂切准确度不能保证,下面我们用lingo以此题为例给出解决运输问题的方法。 2.lingo求解方法
输入计算命令完毕后,点击工具栏上的执行键,得到以下计算结果(节选):
variable value variable v alue
volume( wh1,v6) 1400.000 volume( wh2,v3) 2640.000 volume( wh3,v1) 760.0000 volume( wh3,v4) 720.0000 volume( wh4,v1) 1200.000 volume( wh5,v1) 1440.000 volume( wh6,v1) 2600.000 volume( wh6,v5) 720.0000 volume( wh6,v6) 40.00000 volume( wh7,v3) 720.0000 volume( wh8,v2) 1440.000 volume( wh9,v7) 1440.000 volume( wh9,v8) 3600.000 volume( wh10,v8) 4320.000 volume( wh11,v8) 720.0000
即a6=1400,b2=2640,c1=760,c4=720,d1=1200,e1=1440,f1=2600,
f5=720,f6=40,g3=720,h2=1440,i7=1440,i8=3600,j8=4320,k8=720
【总结】
解决此类复杂数据的问题,如果用表上作业法,则方案调整的工作量大且容易出错。比如一个五个供应点,四个需求点的模型则第一阶段就需要八轮求解。解出来的还只是初始方案,第二阶段检验的时候仍需要四轮调整。更不用说数据更多的多产地多销地的模型了。
而使用lingo 软件只需要输入集合定义、目标函数、约束条件和初始数据,就可以一步到位计算出最优解,省却了中间计算、检验环节,所有计算工作交给计算机实现。再者表上作业法只适合变量数量较少情况下的求解,若模型中变量数量较大时,表上作业法求解只具有理论上的可行性,无法实际操作。利用软件求解线性规划问题非常简单,而且速度很快,不会随着模型中变量数量的增加,给求解带来巨大的问题。还有一般线性规划中决策变量可以整数或者分数,但是在实际中,有一些问题要求决策变量必须是整数,如机器的台数,网络节点中节点的个数等问题,只有当决策变量是整数才有意义。lingo的最大特色就在于可以允许决策变量是整数(即整数规划,包括0-1整数规划),对这类问题求解方便灵活,而且执行速度非常快。 参考文献:
[1]桑杨阳;朱万红;但兵兵.非线性规划建模与lingo软件的编程应用.电脑知识与技术.2012(4)
[2]丁小东;姚志刚;程高.物流工程与管理.2009(10)
[3]王林; 叶小侠基于.lingo语言求解物流配送中心选址模型物流技术.2008(10)
[4]周欣.物流配送中运输问题的计算机求解信息与电脑.2012(09)
[5]叶桂林.lingo软件在运输优化问题中的应用现代商业.2011(08)
[6]张银灵.lingo软件在运输问题中的应用研究中国商界.2010(10)
因篇幅问题不能全部显示,请点此查看更多更全内容