【发布时间】:2019-02-07 09:46:58
【问题描述】:
我是 GLPK 的新手,所以如果我遗漏了一些简单的东西,我提前道歉!
我有一个大型 LP,我通过 GLPK 为能源市场建模。我正在向 GLPK 运行以下命令行来处理它:
winglpk-4.65\glpk-4.65\w64\glpsol --lp problem.lp --data ExampleDataFile.dat --output results2.txt
当我打开生成的文本文件时,我可以看到输出,这一切看起来都很合理。我有一个大问题:每条记录都分成两行,因此很难清理文件。请参阅下面的摘录:
No. Row name St Activity Lower bound Upper bound Marginal
------ ------------ -- ------------- ------------- ------------- -------------
1 c_e_SpecifiedDemand(UTOPIA_CSV_ID_1990)_
NS 0 0 = < eps
2 c_e_SpecifiedDemand(UTOPIA_CSV_ID_1991)_
NS 0 0 = < eps
3 c_e_SpecifiedDemand(UTOPIA_CSV_ID_1992)_
NS 0 0 = < eps
4 c_e_SpecifiedDemand(UTOPIA_CSV_ID_1993)_
NS 0 0 = < eps
5 c_e_SpecifiedDemand(UTOPIA_CSV_ID_1994)_
NS 0 0 = < eps
6 c_e_SpecifiedDemand(UTOPIA_CSV_ID_1995)_
NS 0 0 = < eps
7 c_e_SpecifiedDemand(UTOPIA_CSV_ID_1996)_
NS 0 0 = < eps
8 c_e_SpecifiedDemand(UTOPIA_CSV_ID_1997)_
NS 0 0 = < eps
9 c_e_SpecifiedDemand(UTOPIA_CSV_ID_1998)_
NS 0 0 = < eps
10 c_e_SpecifiedDemand(UTOPIA_CSV_ID_1999)_
NS 0 0 = < eps
11 c_e_SpecifiedDemand(UTOPIA_CSV_ID_2000)_
NS 0 0 = < eps
12 c_e_SpecifiedDemand(UTOPIA_CSV_ID_2001)_
NS 0 0 = < eps
13 c_e_SpecifiedDemand(UTOPIA_CSV_ID_2002)_
NS 0 0 = < eps
14 c_e_SpecifiedDemand(UTOPIA_CSV_ID_2003)_
NS 0 0 = < eps
15 c_e_SpecifiedDemand(UTOPIA_CSV_ID_2004)_
NS 0 0 = < eps
如果有任何建议,我将不胜感激:
- 如何将输出文本文件中的每条记录放在一行中,或者
- 关于如何清理/后处理现有文本文件输出的想法。
我确定我在这里遗漏了一些简单的东西,但目前输出的格式非常无用!
谢谢!
【问题讨论】:
-
您愿意进入不同的建模环境吗?例如,Python 有许多包允许您在后端运行 GLPK,但它们提供了一种指定输入和解析输出的编程方式。
-
理查德 - 感谢您的建议。如果您认为这是最好的解决方案,绝对愿意这样做。我做过一些 Python,但肯定不是专家。如果您能指出我正确的方向/告诉我需要阅读的内容,将不胜感激!
-
您有可以发布或链接到的简单线性程序吗?我可以转换它,并且大概,您可以从中找出其余部分的方法。
-
我创建的 LP 恐怕相当庞大 - 70 MB。链接是kuungana-my.sharepoint.com/:u:/g/personal/…(这将在 2 月 12 日结束)。这实际上是使用 Pyomo 生成的。请随时向我指出一个更简单的示例,然后我可以将其应用于我的庞大文件!谢谢。
-
我希望您有一个数学公式,其中包含您要解决的问题的一些特征。