Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.

 View Only

Unrelated Parallel Machine Scheduling with Sequence Dependent Setup Times

  • 1.  Unrelated Parallel Machine Scheduling with Sequence Dependent Setup Times

    Posted Sun March 03, 2024 09:19 PM

    Hello,

    I want to create a data read this model with .dat file but model create random data. How can i do it? 

    using CP;

    int nbJobs = 10;
    range Jobs = 0..nbJobs-1;

    int nbMachines = 3;
    range Machines = 0..nbMachines-1;

    // randomly generate processing time for each job
    int minProcessingTime=10;
    int maxProcessingTime=40;
    int processingTimes[j in Jobs]=minProcessingTime+rand(maxProcessingTime-minProcessingTime);

    // randomly generate setup times between jobs
    int minSetUpTime=5;
    int maxSetUpTime=10;
    tuple setup { 
    int j1; 
    int j2; 
    int setuptime; }

    {setup} SetUpMatrix[m in Machines] ={ <j1,j2,minSetUpTime+rand(maxSetUpTime-minSetUpTime)> | j1,j2 in Jobs : j1 != j2};

    // introduce decision variables
    dvar interval itvs[j in Jobs][m in Machines] optional size processingTimes[j];
    dvar sequence machine[m in Machines] in all(j in Jobs) itvs[j][m] types all(j in Jobs) j;

    // minimize makespan
    minimize max(j in Jobs,m in Machines) (endOf(itvs[j][m]));

    subject to { 

    //each job should be assigned to a machine
    forall (j in Jobs) 
          sum(m in Machines) (presenceOf(itvs[j][m])) ==1;
          
    //no overlap
    forall (m in Machines) 
        noOverlap(machine[m],SetUpMatrix[m]);   

    execute {
      for (var j in Jobs) {
        for (var m in Machines) {
          if (itvs[j][m].present) {
            writeln("Job " + j + " on machine " + m + " starts at " +  itvs[j][m].start);
            writeln("Job " + j + " on machine " + m + " ends at " +  itvs[j][m].end);
             } 
        }      
      }
    }



    ------------------------------
    Buğra Davut Daşkın
    ------------------------------