Skip to main content

How to use gurobi to implement interval variable in cplex.cp

Answered

Comments

4 comments

  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Could you please describe in more detail or in best case point to the CPLEX docs or an article describing the object you are using?

    0
  • Danellion
    First Comment
    First Question

    Thanks for your reply!

    Here is my usage case: Previously I was using cplex to model a factory flexible job-shop problem. Each product has several processes, and each process is processed on a corresponding type of machine. But there are many machines of each type, whose working times and rest times are different, they don’t necessarily have to be used.

    In cplex, I can easily use docplex.cp.expression.interval_var to model machine resources variable, and use its parameter "optional" as the machine variable presence indicator, use the function docplex.cp.modeler.start_of to return the start of a process interval variable I need.

    So the problem is:Is there a certain interface to meet the above requirements? If not, could you please provide some modeling references or some use cases to handle Resource Constraint Programming problem of this kind.

    Thank you for all your assistance!

    0
  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    In cplex, I can easily use docplex.cp.expression.interval_var to model machine resources variable, and use its parameter "optional" as the machine variable presence indicator, use the function docplex.cp.modeler.start_of to return the start of a process interval variable I need.

    So the problem is:Is there a certain interface to meet the above requirements? If not, could you please provide some modeling references or some use cases to handle Resource Constraint Programming problem of this kind.

    The interval variable expression is part of the Constraint Programming Optimizer. Constraint Programming uses specialized modelling objects and is in this regard inherently different from Mixed-Integer Programming , see What are the differences between Constraint Programming and MIP? for more differences.

    There is no simple way to implement an equivalent version of the interval variable with an optional status in MIPs. The papers by Bowman 1959, Kondili et al. 1988, Wagner 1959, Manne 1960, and Laurent et al. 2017 discuss MIP formulation for machine scheduling problems. Maybe there is something, you can use. However, please be aware that in the end it might just be that using a Constraint Programming solver is the best way to proceed.

    Best regards, 
    Jaromił

    0
  • Danellion
    First Comment
    First Question

    Thanks a lot!  I got your point. 

    0

Please sign in to leave a comment.