AMPL 中的矩阵约束
Constraint in AMPL with matrix
如何在 AMPL 中对矩阵进行约束,使下一个位置必须小于当前位置?我需要类似 x[i,j]<=x[i,j+1] 的东西,但我不知道如何将它放入 AMPL 程序中。我已经尝试过这个:subject to prioridade{i in SEM}: {j in PROD-1} d[i,j]<=d[i,j+1]
,求解器返回给我这个:
syntax error
context: {j in >>> PROD- <<< 1} d[i,j]<=d[i,j+1]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Checking ampl.mod for gurobi_options...
Checking ampl.com for gurobi_options...
Executing AMPL.
processing data.
processing commands.
Executing on prod-exec-1.neos-server.org
Error (2) in /opt/ampl/ampl -R amplin```
您的约束声明语法是无效的 AMPL。更具体地说,{j in PROD-1}
部分不合适,因此处理器不知道它是什么。
假设 PROD
是一个参数,我猜你想要这样的东西:
subject to prioridade{i in SEM, j in 1..PROD-1}: d[i,j] <= d[i,j+1];
如果PROD
是一个集合,那将不起作用,因为PROD-1
没有意义。下次你 post 提问时,确保你说出你的程序的模型实体是什么。更好的是,分享整个代码,或者至少分享它的相关部分。
我看得出你是 AMPL 的新手,所以我建议阅读一些基本的 AMPL 介绍,例如 this. Also, since you are using NEOS, you may want to take a look at the PIFOP IDE,你可以在其中直接从浏览器使用 NEOS。
免责声明:我是该工具的开发者。
如何在 AMPL 中对矩阵进行约束,使下一个位置必须小于当前位置?我需要类似 x[i,j]<=x[i,j+1] 的东西,但我不知道如何将它放入 AMPL 程序中。我已经尝试过这个:subject to prioridade{i in SEM}: {j in PROD-1} d[i,j]<=d[i,j+1]
,求解器返回给我这个:
syntax error
context: {j in >>> PROD- <<< 1} d[i,j]<=d[i,j+1]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Checking ampl.mod for gurobi_options...
Checking ampl.com for gurobi_options...
Executing AMPL.
processing data.
processing commands.
Executing on prod-exec-1.neos-server.org
Error (2) in /opt/ampl/ampl -R amplin```
您的约束声明语法是无效的 AMPL。更具体地说,{j in PROD-1}
部分不合适,因此处理器不知道它是什么。
假设 PROD
是一个参数,我猜你想要这样的东西:
subject to prioridade{i in SEM, j in 1..PROD-1}: d[i,j] <= d[i,j+1];
如果PROD
是一个集合,那将不起作用,因为PROD-1
没有意义。下次你 post 提问时,确保你说出你的程序的模型实体是什么。更好的是,分享整个代码,或者至少分享它的相关部分。
我看得出你是 AMPL 的新手,所以我建议阅读一些基本的 AMPL 介绍,例如 this. Also, since you are using NEOS, you may want to take a look at the PIFOP IDE,你可以在其中直接从浏览器使用 NEOS。
免责声明:我是该工具的开发者。