I have following decision variables and constrains in my ILP model. Resolution time of CPLEX solver grows exponentially with respect to problem space getting larger. Is that solely because 4D matrix of decision variables and are there any recommended performance tuning approaches to overcome this?
{string} V = {"A","B"};
{string} K = {"Y","Z"};
dvar boolean X[V][K];
dvar boolean Y[V][V][K][K];
subject to
{
forall(i,j in V,u,v in K) Y[i][j][u][v]<=X[i][u] ;
forall(i,j in V,u,v in K) Y[i][j][u][v]<=X[j][v];
forall(i,j in V,u,v in K) Y[i][j][u][v]>=X[i][u]+X[j][v]-1;
}
assert forall(i,j in V,u,v in K) Y[i][j][u][v]==X[i][u]*X[j][v];
You can delete the last set of constraints (forall(i,j in V,u,v in K) Y[i][j][u][v]==X[i][u]*X[j][v];) because it is already expressed by the first three sets of constraints due to the X and Y variables being binary.