我为聚类问题编写了以下代码:
range N=1..10;
range M=1..2;
float distance[N,N]=...;
dvar boolean x[M,N];
dvar float+ Z;
minimize Z;
subject to {
forall(i in N, j in N, k in M)
distance[i,j]*x[i,k]+distance[i,j]*x[j,k]-Z<= distance[i,j];
forall(j in N)
sum(i in M)x[i,j]==1; }
我不断收到“CPLEX 无法提取表达式”和“OPL 无法提取表达式”错误。我第一个约束写错了吗?
range N=1..10;
range M=1..2;
float distance[n1 in N,n2 in N]=abs(n2-n1);
dvar boolean x[N,M];
dvar float+ Z;
minimize Z;
subject to {
forall(i in N, j in N, k in M)
distance[i,j]*x[i,k]+distance[i,j]*x[j,k]-Z<= distance[i,j];
forall(j in N)
sum(i in M)x[j,i]==1; }
工作正常