双原油问题

双原油问题

清华大学肖秀波梁湧老师翻译的Rardin教授的《运筹学》[1]已于今年年中出版,感谢机械工业出版社张有利老师的推荐和赠书,让我能看到如此完美的千页级宏篇译著。该书的翻译质量非常高,书中内容深入浅出,附有大量的应用案例(Application)和练习题库。尤其让人欣喜的是该著作能与计算实践密切结合,凡有计算机图案标记的练习都是与计算和软件应用相关的,彰显了运筹学的应用数学本质。有鉴于此,笔者计划对该书中的问题进行大量实践,争取达到双位数的规模,编号先从001开始。

双原油问题

双原油问题是该书中的一个案例(Application),见原书第二章,案例2-1(Page 19, Page 22)。我们对此模型进行了+Leapms建模和求解。

+Leapms生成的模型摘录

对任何问题,+Leapms都建议直接用+Leapms建模语言直接写出模型,并进行模型调试。

我们的经验是,模型调试能够发现模型的不足、促进建模的完美性,甚至可以促进对问题的更加深入的了解。

当模型调试完毕,对模型的正确性有充分的信心后,+Leapms系统可生成模型摘录,包括数学概念模型(即使用标引符号表示的数学模型)和+Leapms源码供思路交流使用。

以下是双原油问题的+Leapms模型摘录(pdf屏幕截图):

+Leapms模型求解结果

change home path done.
+Leapms>load
 Current directory is "ROOT".
 .........
        RLX2-1.leap
 .........
please input the filename:RLX2-1
================================================================
1:  //Rardin R. L 著,肖勇波、梁湧译. 运筹学. 北京:机械工业出版社,2018
2:  //Rardin-Liang&Xiao:案例2-1(Page 19, Page 22)
3:
4:  min 100x1 +75 x2
5:  s.t.
6:      0.3 x1+0.4x2>=2.0//汽油需求
7:      0.4x1+0.2x2>=1.5//气体燃料需求
8:      0.2x1+0.3x2>=0.5//润滑油需求
9:      x1<=ub[1] //沙特原油供应量
10:     x2<=ub[2] //委内瑞拉原油供应量
11:  where
12:     ub is a set of numbers
13:     x1,x2 are variables of nonnegative numbers
14:  data
15:     ub={9 6}
16:
================================================================
>>end of the file.
Parsing model:
1D
2R
3V
4O
5C
6S
7End.
..................................
number of variables=2
number of constraints=5
..................................
+Leapms>solve
The LP is solved to optimal.
找到线性规划最优解.非零变量值和最优目标值如下:
    .........
    x1*=2
    x2*=3.5
    .........
    Objective*=462.5
    .........
+Leapms>

讨论

在原书中,双原油问题并未被当成标引模型(即对大规模模型中的变量和常量符号等实用脚标标引形式给出)举例,但因为+Leapms是一种以标引模型为主要表达方式的语言,因此此处的+Leapms还是采用的标引模型的形式。当然,+Leapms也支持非标引形式模型。

参考文献

[1] Rardin R. L 著,肖勇波、梁湧译. 运筹学. 北京:机械工业出版社,2018

原文地址:https://www.cnblogs.com/leapms/p/10201480.html