0

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

LilyBre
  • 11
  • 2

1 Answers1

0

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];
}
Alex Fleischer
  • 9,276
  • 2
  • 12
  • 15
  • delta follows an exponential distribution with lamda = 0.083. Can Cplex support to illustrate this distribution? – LilyBre Mar 21 '23 at 13:49