Syntax AMPL语法错误:“uuuuu”“不是一套”&&“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu”不是参数<;或约束或var>&引用;

Syntax AMPL语法错误:“uuuuu”“不是一套”&&“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu”不是参数<;或约束或var>&引用;,syntax,ampl,Syntax,Ampl,我是AMPL编程的新手,尽管我对其他编程语言很有经验。 我将此作为.dat文件的第一个.run文件列出: data; #set declarations set TIME = {0..1680} ordered; #time # set GENHRS := {150..1660} ; #generation hours #Scalars param StorageMin :=1;# Minimum reservoir storage level par

我是AMPL编程的新手,尽管我对其他编程语言很有经验。 我将此作为.dat文件的第一个.run文件列出:

data;

#set declarations
    set TIME = {0..1680} ordered; #time
#   set GENHRS := {150..1660} ; #generation hours

#Scalars
    param StorageMin :=1;#       Minimum reservoir storage level
    param StorageMax :=50;#       Maximum reservoir storage level
    param Qmin       :=1;#       Minimum total outflow 
    param QturbMax   :=20;#       Maximum level of outflow through turbine
    #param Qin {t in TIME};#        need to read in from file.
正如在标题中一样,我运行它(通过cmd)时出错 “时间不是一个集合”以及上面列出的所有其他参数:“\uuuuuuuuu”不是一个参数”

我很困惑。据我所知,它们都是用正确的语法定义的,尽管我无法找出“:=”和“=”之间的区别,但我已经尝试了这两种方法,两种方法都不起作用


我不知道它是否相关,但约束、变量和目标在我的.mod文件中指定。

AMPL语言由两部分或两种模式组成,一种用于指定优化模型的建模语言,另一种用于提供集合和参数数据。
data
语句将AMPL切换到数据模式,在该模式下,它将输入解释为用数据规范语言编写的

AMPL码

set TIME = {0..1680} ordered;

给出set
时间的声明,因此它应该在模型中使用,而不是在数据中使用。

AMPL语言由两部分或两种模式组成,一种用于指定优化模型的建模语言,另一种用于提供集合和参数数据。
data
语句将AMPL切换到数据模式,在该模式下,它将输入解释为用数据规范语言编写的

AMPL码

set TIME = {0..1680} ordered;
给出set
TIME
的声明,因此应该在模型中使用,而不是在数据中使用