package nl.tudelft.simulation.examples.dsol.terminal; import java.rmi.RemoteException; import javax.naming.NamingException; import nl.tudelft.simulation.dsol.SimRuntimeException; import nl.tudelft.simulation.dsol.experiment.Replication; import nl.tudelft.simulation.dsol.experiment.ReplicationMode; import nl.tudelft.simulation.dsol.simtime.SimTimeDouble; import nl.tudelft.simulation.dsol.simulators.DEVSSimulator; import nl.tudelft.simulation.event.EventInterface; import nl.tudelft.simulation.event.EventListenerInterface; import nl.tudelft.simulation.jstats.streams.MersenneTwister; /** *
* copyright (c) 2002-2018 Delft University of Technology.
* BSD-style license. See DSOL License.
* @author Peter Jacobs
* @author Alexander Verbraeck
* @version Jul 26, 2018
*/
public final class ExperimentRunnerTerminal implements EventListenerInterface
{
/** number of running simulations. */
private int numruns = 0;
/** number of completed simulations. */
private int completed = 0;
/** number of runs. */
private static final int REPS = 100;
/** number of runs. */
private static final int RUNS = 3 * 4 * REPS;
/**
* Construct the terminal experiment.
* @throws SimRuntimeException on error
* @throws RemoteException on error
* @throws NamingException on error
*/
private ExperimentRunnerTerminal() throws SimRuntimeException, RemoteException, NamingException
{
long seed = 1;
int maxConcurrent = 8;
for (int numQC = 4; numQC <= 6; numQC++)
{
for (int numAGV = 25; numAGV <= 28; numAGV++)
{
for (int rep = 1; rep <= REPS; rep++)
{
while (this.numruns > maxConcurrent)
{
try
{
Thread.sleep(1);
}
catch (InterruptedException exception)
{
//
}
}
Terminal model = new Terminal(rep);
double runtime = 40 * 60;
DEVSSimulator.TimeDouble simulator = new DEVSSimulator.TimeDouble();
Replication