Professional Documents
Culture Documents
cn
第 10 卷第
Computer 4 期 (2014
Knowledge 年 2 月) 电脑知识与技术
and Technology Computerhttp://www.dnzs.net.cn
Knowledge and Technology 电脑知识与技术
Vol.10, No.4, February 2014 Tel:+86-551-65690963 65690964
基于 LINGO 的优化问题动态规划法求解
度巍,曾飞
(南通大学 交通学院,江苏 南通 226019)
在交通专业课程如《交通运筹学》、 《交通系统分析方法》等的教学过程中,大量涉及到可划分为多阶段的优化问题求解,这些
问题的求解一般使用动态规划(dynamic programming)方法。动态规划将决策问题的全过程划分为若干个相互联系的子过程(每个
子过程为一个阶段),然后按照一定的次序来求解。当划分的阶段个数较多时,手工求解动态规划问题相当麻烦。由于在实际的
交通工程规划实践中,涉及到的动态规划优化问题规模往往较大,指导学生掌握相应的优化软件求解动态规划问题一方面能增进
学生对动态规划法的理解掌握,另一方面能锻炼学生的编程能力, 是一项十分有意义的教学工作。
美国 LINDO 系统公司开发的 LINGO 由其求解问题的高效性和稳定性,成为目前广泛使用的优化软件。LINGO 是一套专门用
于求解最优化问题的软件包,其内置了一种建立最优化模型的的语言,可以简便表达出问题,同时利用 LINGO 高效的求解器可快
速求解并分析结果。LINGO 在处理含有大量变量和约束条件的优化问题时,一般使用数组和矩阵的输入方法:LINGO 程序首先定
义集合段,确定需要的集合及其属性,然后定义数据段,用于输入已知原始数据,最后使用函数对集合进行操作。在通常介绍 LIN⁃
GO 使用的文献中[1][2],一般着重于叙述其如何求解线性规划和非线性规划等具有明确目标函数的优化问题,很少关注如何用
LINGO 求解复杂的动态规划问题,该文通过分析交通运输中常见的最短路问题和生产批量计划问题,给出用动态规划方法求解的
LINGO 代码,指出 LINGO 可以在不需要目标函数的情况同样很好地求解多阶段优化问题。
1 动态规划法求解实例
实例 1 最短路问题
在纵横交错的公路网中(图 1 所示),货车司机希望找到一条从一个城市到另一个城市的最短路。图中节点 1—8 代表货车可
以停靠的城市,弧旁的数字表示两个城市之间的距离(百公里)。若货车要从城市 1 出发到达城市 8,问如何选择行驶路线使所经过
的路程最短。
问题分析:该最短路问题满足动态规划的最优性原理,即“从节点 1 到节点 8 的最短路的子路径仍然是相应节点间的最短路”,
用 D(i,j) 表示从节点 i 和 j 有弧相连时相应的距离,L(i) 表示从节点 1 到节点 i 的最短路程数。则不难得到以下的动态规划由前向
后递推方程:
ìL( j) = min {L(i) + D(i,j)},j = 2,⋯,8
í i (1)
îL(1) = 0
收稿日期:2013-12-23
基金项目:南通大学校级教学改革课题(2013B119、2013B037);中国交通教育研究会教育科学研究课题(交教研 1202-171);江苏省
现代教育技术研究课题(2013-R-25411、2011-R-19039)
作者简介:度巍(1982-),男,南通大学交通学院讲师,博士,从事交通系统工程方面的研究。
4
2 5
7
3 2 2 6
6 5 11
1 3 6 8
4 3 7
1
8
6
4 7
图1
t=1 t=1
图2
性质 2. 性质 2.最优解一定满足 I t - 1 x t = 0(1 ≤ t ≤ T) .
由于以上两个性质,只有当上一时段库存 I t - 1 = 0 时,本时段才考虑进行生产,且一旦生产,其生产量一定为某些后续时段需求
量的总和,即 x t ∈{d t ,d t + d t + 1,⋯,d t + d t + 1 + ⋯ + dT} 。这样如用 f t 表示当 t 时段初始库存为 0 时,从 t 时段到 T 时段的子问题的最优
费用值,可以建立如下的递推关系:
≤τ≤T+1 t ∑ i
[s δ( d ) + c t∑d i + ∑ (d i∑h j ) + f τ],1 ≤ t ≤ T
τ-1 τ-1 τ-1 i-1
f t = t + 1 min (2)
i=t i=t i=t+1 j=t
+@sum(PERIODS(i)|i#le#r-1#and#i#ge#t+1:D*(@sum(PERIODS(j)|j#le#i-1#and#j#ge#t:H)))
+F(r))); !动态规划递推公式(2);
END
运行 LINGO 得到如下最优解报告:
图3
从报告可以看到,F(1) = 561 ,即从第 1 周到第 4 周末的最优费用为 561(千元),分析其它 F 值得到,最优的生产批量计划为第 1
周生产 2(千件),第 2 周生产 5(千件),第 3 周不生产,第 4 周生产 4(千件)。
2 结束语
本文针对用动态规划方法手工求解多阶段优化决策问题十分繁琐的特点,利用 LINGO 软件将各个动态规划递推方程简洁明
确地编程实现,帮助学生更好的理解了各阶段决策变量之间相互递进的关系,同时更重要的是交通专业学生熟练地掌握了软件的
使用,才能解决实际工程规划中的大规模复杂优化问题,LINGO 软件的教学实践促进了《交通运筹学》、
《交通系统分析方法》与《交
通规划》等课程的融合。
参考文献:
[1] 李晓川,朱晓敏,赵乃东. 基于 Lingo 的运输优化系统设计与开发[J]. 物流技术,2010(Z1).
[2] 洪文,朱云鹃. 利用 LINGO 建立最优化模型[C].第六届(2011)中国管理学年会——管理科学与工程分会场,2011.
[3] 姜启源,谢金星,邢文训,等.大学数学实验[M].北京:清华大学出版社,2005.