Skip to main content

Generating different sequences of uniformly distributed random numbers using OPL script for every run


Technote (FAQ)


Question

How can I generate different sequences of uniformly distributed random numbers by using a different random seed for every run?

Answer

OPL script provides the user with a couple of functions to manage the generation of uniformly distributed random numbers:

1) srand(n)- Used to initialize the generator (seed) for the pseudo random numbers.

2) rand(m)- Returns a pseudo random integer modulo m (thus the number will be between 0 and m-1, both inclusive).

If you would like to generate different random numbers every time you ran your OPL model, then you will need to use the srand function to provide a different random seed for each run. Time could serve as one such seed and hence the subsequent rand function calls would generate different random numbers in every run. One such implementation using OPL scripts could look like the following:


execute{
  var now = new Date();
    Opl.srand(now.getTime()%Math.pow(2,31));
}
int myRange = 60;
int randomArray[i in 1..20] = 1 + rand(myRange);
execute{
writeln("randomArray="+randomArray);
}
 

Cross reference information
Segment Product Component Platform Version Edition
Business Integration IBM ILOG CPLEX Optimization Studio Area:ILOG Script for OPL/OPL Script AIX, Linux, Windows 12.4, 12.3, 12.2.0.1, 12.2 All Editions

Rate this page:

(0 users)Average rating

Copyright and trademark information

IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.

Rate this page:


(0 users)Average rating

Add comments

Document information

IBM ILOG OPL-CPLEX Development Bundles

Area:ILOG Script for OPL/OPL Script


Software version:
6.0, 6.0.1, 6.1, 6.1.1, 6.2, 6.3, 12.2, 12.3, 12.4


Operating system(s):
AIX, Linux, Windows


Software edition:
All Editions


Reference #:
1595936


Modified date:
2012-05-21

Translate my page

Content navigation