我正在尝试设置变量W{m in M, n in N}
,其中M和N是同一组值。 M和N代表位置。变量W表示m和n之间的转移。因此,变量W中的m不能等于n。例如,当m = 1时,n只能等于2和3(M = N = c(1,2,3))。
这是成本最小的两阶段随机模型。我试图将m <> n
写入和条件,并在约束中写入m <> n
。所有返回的语法错误。
我试图将条件添加到目标函数中
sum {M中的m,N中的n | m <> n} W [m,n];
sum {m中的m,n中的n,m <> n} W [m,n];
sum {m中的m,n中的n,m!= n} W [m,n];
sum {M中的m,N中的n | m!= n} W [m,n];
我还尝试将其添加到变量定义中:
var W {M中的m,N中的n,m <> n};
等等。
我尝试了很多方法,但是都没有用。如果我将m<>n
或m!=n
添加到模型中,则AMPL返回语法错误。删除m!=n
条件后,该模型可以工作,但返回错误的数字。
答案 0 :(得分:1)
sum {M中的m,N中的n:m <> n} W [m,n];
答案 1 :(得分:0)
在AMPL中,您可以使用“:”在sum或forall方法中创建条件。例如:
sum{m in M, n in N : m <> n}W[m,n];
sum{m in M, n in N : m!=n}W[m,n];
sum{m in M, n in N : m != n}W[m,n];
我希望这会有所帮助:)