【问题标题】:Write pyomo .DAT File编写 pyomo .DAT 文件
【发布时间】:2019-01-10 11:40:18
【问题描述】:

我有一个用于优化参数的 .dat 文件:

 param: A:= 100;

 param: B:=
 1 0.5
 2 0.2
 3 0.3;

我正在尝试重现 .dat 文件,但 A 和 B 的值不同,我需要将它集成到代码中,所以我编写了一个脚本,将字符串写入 .dat 文件,但是当我在我的模型中运行它时产生错误。我认为这与格式有关,根据 Pyomo 的说法,.dat 文件应该是 AMPL 格式,但是关于如何构建这样的文件几乎没有解释。

目前正在这样做:

A = 100, B1 = '1 0.5', B2 = '2 0.2', B3 = '3 0.3'
file = open('ata.dat','w')
file.write('param: A:= '+str(A)+';\n')
file.write('param: B:=\n')
file.write(B1+'\n')
file.write(B2+'\n')
file.write(B3+';')
file.close()

感谢任何帮助!

【问题讨论】:

  • 让您的脚本使用正确的参数构建ConcreteModel 比构建dat 文件更容易吗?

标签: python-3.x pyomo ampl


【解决方案1】:

示例文件为 B 的每个元素提供了一个索引:

1 0.5

2 0.2

3 0.3

但看起来您的代码只是在创建值,而不是索引:

0.5

0.2

0.3

AMPL .dat

正如this recent question 中所讨论的,当您在 AMPL 中指定索引参数时,通常需要明确说明索引;有几种不同的方法可以做到这一点,但你不能让它们被位置暗示。有关 AMPL 数据格式的更多信息,请参阅The AMPL Book 的第 9 章。

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多