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.

  • 1
    $\begingroup$ Welcome to OR.SE. I am unsure to understand what you are looking for, but if you mean by 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$
    – A.Omidi
    Commented Aug 20, 2023 at 6:18
  • $\begingroup$ Thank you for your response. I'm sorry if my question was a bit complicated and difficult to understand. I might provide some additional explanation about the variable $S_{ci}$. $S_{ci}$ is start time of job $i$ performed by crane $c$. And $p_{ci}$ is a parameter that is process time of job $i$. So those constraints involve decision variables in an index $t$, so when condition $t = S_{ci}~S_{ci}+p_{ci}$, those constraints holds. I had asked because I want to implement constraints from the paper in Cplex. It seems like using $z_{cit}$ could be a good approach. I will try it. Thank you! $\endgroup$
    – B.Kim
    Commented Aug 20, 2023 at 7:18
  • $\begingroup$ Your welcome. If the decision variable is in the index this and this links also might be helpful. $\endgroup$
    – A.Omidi
    Commented Aug 20, 2023 at 7:27


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.