Topic
4 replies Latest Post - ‏2013-12-11T20:05:13Z by Cagri
Cagri
Cagri
3 Posts
ACCEPTED ANSWER

Pinned topic Extension of Basic Parallel Machine Scheduling CP Model with multiple period.

‏2013-12-05T14:04:15Z |

Hello,

I am trying to write a CP to deal with standart parallel machine scheduling problem with sequence dependent setup times. And we have a single machine operator following this parallel process (e.g. Incubation Operation). It will be a hybrid methodology combined with MILP dealing with planning issues. I built the code already working properly without d index of day explaining each planning day. To use in this hybrid method, I would like to extend the basic model to make schedules for each day of planning horizon, simultaneously.When I add d index of Day to sequence variable, I get some errors.

Could you please help me to overcome this challenge?

Question Marks

  • I am also not clear whether it is possibe to add d index of Day to sequence dvar in this concept or not?
  • Do I need to call the same CP model for each planning period in a recursive manner using a loop?
  • Which alternative can provide computational efficiency?


Note: Errors!, Scheduling model and data file is attached in this massage. (Errors! & OPL CP Mod, Dat, Ops Files)

Cheers!

Cagri SEL
cagrisel@gmail.com
 

Updated on 2013-12-17T11:18:25Z at 2013-12-17T11:18:25Z by Cagri
  • ol
    ol
    14 Posts
    ACCEPTED ANSWER

    Re: Extension of Basic Parallel Machine Scheduling CP Model with multiple period.

    ‏2013-12-09T11:41:52Z  in response to Cagri

    Hello,

    replace your declaration of sequence by:


    dvar sequence schedule[d in Days, m in Machines] in all(d in Days, j in Jobs) opttask[d][j][m] types all(d in Days, i in Jobs) T[i];

     

    and this will work.

    Regards,

    Olivier

    • Cagri
      Cagri
      3 Posts
      ACCEPTED ANSWER

      Re: Extension of Basic Parallel Machine Scheduling CP Model with multiple period.

      ‏2013-12-09T12:26:23Z  in response to ol

      Thanks lot for your kindly interest. It works.

      But, I could not clearly understand the definition and usage of T variable. What is the fundamental mission of this variable?

      int T[Jobs]=...; 

      types all(d in Days, i in Jobs) T[i];

      • ol
        ol
        14 Posts
        ACCEPTED ANSWER

        Re: Extension of Basic Parallel Machine Scheduling CP Model with multiple period.

        ‏2013-12-11T08:44:40Z  in response to Cagri

        Hello,
        The type is used to specify setup times between two operations executed on the same resource. If an operation 1 of type A is followed by an operation 2 of type B, a matrix (Setup in your model) expresses the setup times between type A and type B.
        In your model this is done by the constraint:
        forall(d in Days, m in Machines)
            noOverlap(schedule[d][m], Setup);
        You can find a complete explanation in the user man of CPO, see "Modeling sequence-dependent setup times".
        Regards,
        Olivier

        • Cagri
          Cagri
          3 Posts
          ACCEPTED ANSWER

          Re: Extension of Basic Parallel Machine Scheduling CP Model with multiple period.

          ‏2013-12-11T08:46:43Z  in response to ol

          Thank you very much. 

        • This reply was deleted by Cagri 2013-12-16T14:12:47Z.