编写pyomo .DAT文件

时间:2019-01-10 11:40:19

标签: python-3.x pyomo ampl

对于优化参数,我有一个.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()

感谢您的帮助!

1 个答案:

答案 0 :(得分: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章。

相关问题