Hello优化人员
我打算添加一个限制,禁止两个特定城市之间的流量过高。
我打算在.mod文件中使用以下内容:
set N:= Kiruna Stockholm Boliden;
var x{N,N} binary;
minimize sum{i in N, j in N} x[i,j];
subject to Constraint1:
sum{i in N, j in N} x[Kiruna, Stockholm] <= 4;
然而,这给了我错误。如何正确进行此摘要?
提前致谢!
答案 0 :(得分:1)
代码中有几个错误:
您使用数据语法初始化模型中的集合N
。您应该将set N
的声明分开并为其设置数据,或者使用模型语法对其进行初始化:
set N:= {'Kiruna', 'Stockholm', 'Boliden'};
minimize
后面应该是目标名称和冒号:
minimize obj: sum{i in N, j in N} x[i,j];
应引用字符串Kiruna
和Stockholm
:
x['Kiruna', 'Stockholm'] <= 4;
如果x[i, j]
表示城市i
和j
之间的流量,并且您希望它不超过4,那么您需要一组约束而不是求和:
subject to Constraint1{i in N, j in N}: x[i, j] <= 4;