首页 > 解决方案 > 问:CPLEX:如何将 2 个方程写为 1 个常数

问题描述

我正在使用 CPLEX 来解决 MILP。现在我想用相同的变量写这两个方程

查看方程式

我试着把它写到

(第一个方程为)

ct20 : forall(r1 in request,r2 in request, m1 in deliveries, m2 in deliveries : m1!=m2, k1 in truck, k2 in truck:k1!=k2, j1 in truck, j2 in truck:j1!=j2)
  sum(p in plant, k1 in truck:k1!=k2, j1 in jobs:j1!=j2)(x[p][r1][m1][k1][j1]*start_load[k1][j1]) <= sum(p in plant, k2 in truck:k1!=k2, j2 in jobs:j1!=j2)(x[p][r1][m1][k1][j1]*start_load[k2][j2])

(第二个等式)

&& sum(p in plant, k1 in truck:k1!=k2, j1 in jobs:j1!=j2)(x[p][r1][m1][k1][j1]*start_load[k1][j1]+load_time[p][k1]) 
    <= sum(p in plant, k2 in truck:k1!=k2, j2 in jobs:j1!=j2)(x[p][r1][m1][k1][j1]*start_load[k2][j2])

如何将它们合并为一个,谢谢。

标签: mathematical-optimizationlinear-programmingcplex

解决方案


你知道你可以用{and对约束进行分组}吗?

range r=1..10;

dvar int x[r] in 0..10;

subject to
{
forall(i in r) 
{
4<=x[i];

x[i]<=6;
}


}

推荐阅读