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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么Ampl会产生语法错误参数1 <<<< 12000?相关的知识,希望对你有一定的参考价值。

当我定义矩阵参数时,我有一个永久的放大语法错误。这是我如何定义我的参数: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 <<<

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

非常感谢你提前!

答案

看起来你的意思是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 ;

以上是关于为什么Ampl会产生语法错误参数1 <<<< 12000?的主要内容,如果未能解决你的问题,请参考以下文章

为啥命令行参数在访问时会产生分段错误?

即使在初始化结果参数之后,CUDA atomicAdd也会产生错误的结果

为什么在函数内初始化extern变量会产生错误?

Postgres 窗口函数语法

当我运行“npm run start”时,为啥 npm react-scripts 会产生语法错误? [复制]

为啥#region 会产生编译错误?