为什么Ampl会产生语法错误参数1 <<<< 12000?

问题描述 投票:0回答:1

当我定义矩阵参数时,我有一个永久的放大语法错误。这是我如何定义我的参数:D是7个整数的向量!

#

数据;重启;

param NP:= 7; param NT:= 4;

参数D:= 1 12000 2 32000 3 25000 4 36000 5 25000 6 30000 7 18000;

所以,我得到语法错误:

prod_elec.dat,第8行(偏移53):语法错误上下文:1 >>> 12000 <<<

请帮助我,我不知道如何解决这个问题,我也遵循了以前为我工作的书的定义。

非常感谢你提前!

syntax parameters syntax-error ampl
1个回答
0
投票

看起来你的意思是D是一个索引参数,但你发布的代码并没有将它声明为索引。即使之前的模型语句确实将其声明为索引,也会被reset语句删除。因此AMPL期望单个值,当它看到第二个值(此处为12000)时,它会给出错误。

这样的事情应该有效:

reset;
model;
param NP;
param NT;
param D{1..NP};
data; 
param NP:=7; param NT:=4;
param D:= 1 12000 2 32000 3 25000 4 36000 5 25000 6 30000 7 18000 ;
© www.soinside.com 2019 - 2024. All rights reserved.