Define parameter in Cplex - scheduling

42 views Asked by At

How can I define this parameter and input the data for this parameter based on below following?

Thanks.

Average inter-arrival time of trucks: (delta arrivalTime)=ED[0.083]

Arrival time: arrivalTime(t+1) = arrivalTime(t) + (delta arrivalTime) \forall t in Trucks

1

There are 1 answers

1
Alex Fleischer On

You can start with

range trucks=1..10;

float delta=0.5;

dvar float arrivalTime[trucks];

subject to
{
  forall(t in trucks:(t+1) in trucks) arrivalTime[t+1] == 
  arrivalTime[t] + delta;
}

and to use a given distribution you can call java from OPL:

range trucks=1..10;
float delta[trucks];


execute{ 
var lamda = 0.083;
var rnd = IloOplCallJava("java.util.Random", "<init>", "()");
rnd.setSeed(1); 
for(var i in trucks)
{                             
 var t = Math.log(1-rnd.nextDouble())/(-lamda);
 writeln(t);
 delta[i]=t;
}

}

dvar float arrivalTime[trucks];

subject to
{
  forall(t in trucks:(t+1) in trucks) arrivalTime[t+1] == 
  arrivalTime[t] + delta[t];
}