I'm currently working on a mixed-integer programming (MIP) problem and I'm trying to implement a set of conditional constraints in CPlex. These constraints involve decision variables that are indexed by the value of other variables. Specifically, I have the following types of constraints:
\begin{align} x_{ct} = X_{ci} \ \ \ \ \ \forall c \in Crane, \ \ i \in Job, t \in [S_{ci}, ..., S_{ci}+p_{ci}[ \end{align}
This constraint holds when Crane $c$ starts job $i$ during time $S_{ci},...,S_{ci}+p_{ci}$. I understand that this constraint involves conditional indexing and need to be linearized for Cplex. Could you please provide guidance on how I can linearize these constraints in CPlex?
Additionally, if you're looking for relevant literature on this topic, I found the paper by Dorndorf and Schneider (2010) titled "Scheduling automated triple cross-over stacking cranes in a container yard" to be insightful.
when Crane c starts job i during time ...
, you will need to define a binary variable $z_{c,i,t}$ and an implication constraint as if ($z_{c,i,t} = 1) \implies (x_{c,t} = X_{c,i})$. Then it can be written in the OPL as: (z[c,i,t]==1) => (x[c,t]==X[c,i]); Is it what you are looking for? $\endgroup$