如何在 AMPL 中写 "not equal to" 或设置变量参数的条件?
How to write "not equal to" in AMPL or set such as a condition for a variable's parameter?
我正在尝试设置一个变量 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))。
这是一个成本最小化的 2 阶段随机模型。我试图将 m <> n
写入求和条件以及在约束条件中写入 m <> n
。全部返回语法错误。
我尝试将条件添加到 objective 函数中:
sum{M 中的 m,N 中的 n | m <> n}W[m,n];
求和{M中的m,N中的n,m <> n}W[m,n];
求和{M中的m,N中的n,m!=n}W[m,n];
sum{M 中的 m,N 中的 n | m != n}W[m,n];
我也试过把它加入到变量定义中:
var W{m in M, n in N, m <> n};
等..
我尝试了很多方法,但 none 有效。如果我将 m<>n
或 m!=n
添加到模型中,AMPL 会返回语法错误。在我删除 m!=n
条件后,模型可以工作但返回错误的数字。
求和{M中的m,N中的n:m <> n} W[m,n];
在 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];
希望对您有所帮助:)
我正在尝试设置一个变量 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))。
这是一个成本最小化的 2 阶段随机模型。我试图将 m <> n
写入求和条件以及在约束条件中写入 m <> n
。全部返回语法错误。
我尝试将条件添加到 objective 函数中:
sum{M 中的 m,N 中的 n | m <> n}W[m,n];
求和{M中的m,N中的n,m <> n}W[m,n];
求和{M中的m,N中的n,m!=n}W[m,n];
sum{M 中的 m,N 中的 n | m != n}W[m,n];
我也试过把它加入到变量定义中:
var W{m in M, n in N, m <> n};
等..
我尝试了很多方法,但 none 有效。如果我将 m<>n
或 m!=n
添加到模型中,AMPL 会返回语法错误。在我删除 m!=n
条件后,模型可以工作但返回错误的数字。
求和{M中的m,N中的n:m <> n} W[m,n];
在 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];
希望对您有所帮助:)