为什么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也会产生错误的结果