对于优化参数,我有一个.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()
感谢您的帮助!
答案 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章。