NEOS 服务器模型数据和脚本文件中的 setof
setof in model data and script files for NEOS server
在将我的 AMPL 公式提交给 NEOS 服务器时,为什么下面使用 `setof' 运算符的代码行在 model 文件中工作正常,但在数据文件中却不行?
set X := setof {indices in Y} subsetofindices
NEOS服务器要求将代码分离成.mod、.dat和脚本文件。我在脚本文件中看到了使用 let
X := ...
的引用。这些文件有什么区别,放在哪里?
例子
使用 AMPL 的 steelT.x 文件,第一个包含 2 个文件的块有效
# steelT.mod
set DUMMYPROD;
set PROD := setof {i in DUMMYPROD} i; # products
# steelT.dat
data;
set DUMMYPROD := bands coils;
而以下不起作用:
# steelT.mod
set DUMMYPROD;
set PROD; # products
# steelT.dat
data;
set DUMMYPROD := bands coils;
set PROD := setof {i in DUMMYPROD} i;
它returns错误
expected ; ( : or symbol
context: set PROD := setof >>> { <<< i in DUMMYPROD} i;
更广泛的问题
一般来说,model文件,数据文件和脚本文件属于什么? (也适用于 param
和其他定义)这些处理的顺序是什么?当我阅读 AMPL 指南时,我可能会遗漏一些基础知识,但我没有找到它(我从未参加过优化课程)。
关于 NEOS 服务器的额外问题
"New" Contraint programming logic in AMPL 包括用于整个约束的条件和逻辑运算符。我不认为这些在 NEOS 中可用。还是他们(因为他们不适合我)?有简单的解决方法吗?
谢谢!
AMPL 数据格式不支持表达式,所以您应该在声明中使用 setof {i in DUMMYPROD} i
(如您的第一个示例)或在 AMPL 脚本中使用:
let PROD := setof {i in DUMMYPROD} i;
有关 AMPL 数据格式的更多详细信息,另请参阅 AMPL 书籍的 Chapter 9. Specifying Data。
至于约束规划 (CP) 功能,我认为 NEOS 上没有任何 CP 求解器。您可以尝试就此联系 NEOS Support。
在将我的 AMPL 公式提交给 NEOS 服务器时,为什么下面使用 `setof' 运算符的代码行在 model 文件中工作正常,但在数据文件中却不行?
set X := setof {indices in Y} subsetofindices
NEOS服务器要求将代码分离成.mod、.dat和脚本文件。我在脚本文件中看到了使用 let
X := ...
的引用。这些文件有什么区别,放在哪里?
例子 使用 AMPL 的 steelT.x 文件,第一个包含 2 个文件的块有效
# steelT.mod
set DUMMYPROD;
set PROD := setof {i in DUMMYPROD} i; # products
# steelT.dat
data;
set DUMMYPROD := bands coils;
而以下不起作用:
# steelT.mod
set DUMMYPROD;
set PROD; # products
# steelT.dat
data;
set DUMMYPROD := bands coils;
set PROD := setof {i in DUMMYPROD} i;
它returns错误
expected ; ( : or symbol context: set PROD := setof >>> { <<< i in DUMMYPROD} i;
更广泛的问题
一般来说,model文件,数据文件和脚本文件属于什么? (也适用于 param
和其他定义)这些处理的顺序是什么?当我阅读 AMPL 指南时,我可能会遗漏一些基础知识,但我没有找到它(我从未参加过优化课程)。
关于 NEOS 服务器的额外问题 "New" Contraint programming logic in AMPL 包括用于整个约束的条件和逻辑运算符。我不认为这些在 NEOS 中可用。还是他们(因为他们不适合我)?有简单的解决方法吗?
谢谢!
AMPL 数据格式不支持表达式,所以您应该在声明中使用 setof {i in DUMMYPROD} i
(如您的第一个示例)或在 AMPL 脚本中使用:
let PROD := setof {i in DUMMYPROD} i;
有关 AMPL 数据格式的更多详细信息,另请参阅 AMPL 书籍的 Chapter 9. Specifying Data。
至于约束规划 (CP) 功能,我认为 NEOS 上没有任何 CP 求解器。您可以尝试就此联系 NEOS Support。