如何使用AMPL中的矩阵进行约束,其中下一个职位必须小于当前位置?我需要一些像习,j<=xi,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```发布于 2021-11-26 21:11:19
约束声明的语法无效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没有任何意义。下次你发问时,一定要说出你的程序的模型实体是什么。更好的是,共享整个代码,或者至少共享其中的相关部分。
我可以看出您是AMPL的新手,所以我推荐您阅读一些基本的AMPL介绍,比如这。另外,由于您使用的是NEOS,您可能想看看PIFOP IDE,在这里您可以直接从浏览器中使用NEOS。
免责声明:我是那个工具的开发者。
https://stackoverflow.com/questions/70129171
复制相似问题