From 510890e43812d2cc59f96f0ca718a3721ed6b8fd Mon Sep 17 00:00:00 2001 From: brutzman <brutzman@nps.edu> Date: Sun, 14 May 2023 21:03:57 -0700 Subject: [PATCH] rename --- .../run/RunTwoCraneBerths.java | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 examples/src/SimkitOpenDis7Examples/run/RunTwoCraneBerths.java diff --git a/examples/src/SimkitOpenDis7Examples/run/RunTwoCraneBerths.java b/examples/src/SimkitOpenDis7Examples/run/RunTwoCraneBerths.java new file mode 100644 index 0000000000..4334f2207b --- /dev/null +++ b/examples/src/SimkitOpenDis7Examples/run/RunTwoCraneBerths.java @@ -0,0 +1,92 @@ +package SimkitOpenDis7Examples.run; + +import SimkitOpenDis7Examples.ShipArrivalProcess; +import SimkitOpenDis7Examples.TwoCraneBerths; +import simkit.Schedule; +import simkit.random.RandomVariate; +import simkit.random.RandomVariateFactory; +import simkit.stat.CollectionSizeTimeVaryingStats; +import simkit.stat.SimpleStatsTally; + +/** + * Run simple two-berth model for 10 years (3650 days). + * <h2>Output:</h2><pre> +ShipArrivalProcess.1 + unloadTimeGenerator = Uniform (0.500, 1.500) + interarrivalTimeGenerator = Exponential (0.700) +TwoCraneBerths.2 + +Simulation ended at time 3,650.0 + +Number of ships arriving: 5,135 +Number of ships unloaded: 5,129 +Maximum # in queue: 11 +Average # in queue: 0.6834 +Average # busy berths: 1.1737 +Average time in system: 1.3207 +Average delay in queue: 0.4857 +</pre> +* + * @author abuss@nps.edu + */ +public class RunTwoCraneBerths +{ + /** Default constructor */ + public RunTwoCraneBerths() + { + // default constructor + } + /** + * Run a simple program and compute statistical measurement of results. + * @param args the command line arguments + */ + public static void main(String[] args) { + RandomVariate interarrivalTimeGenerator = + RandomVariateFactory.getInstance("Exponential", 0.7); + RandomVariate unloadingTimeGenerator = + RandomVariateFactory.getInstance("Uniform", 0.5, 1.5); + ShipArrivalProcess shipArrivalProcess = + new ShipArrivalProcess(interarrivalTimeGenerator, + unloadingTimeGenerator); + + TwoCraneBerths twoCraneBerths = new TwoCraneBerths(); + shipArrivalProcess.addSimEventListener(twoCraneBerths); + + SimpleStatsTally delayInQueueStat = new SimpleStatsTally("delayInQueue"); + SimpleStatsTally timeInSystemStat = new SimpleStatsTally("timeInSystem"); + CollectionSizeTimeVaryingStats numberInQueueStat = + new CollectionSizeTimeVaryingStats("queue"); + CollectionSizeTimeVaryingStats numberInBerthStat = + new CollectionSizeTimeVaryingStats("berth"); +// SimplePropertyDumper simplePropertyDumper = new SimplePropertyDumper(); +// twoCraneBerths.addPropertyChangeListener(simplePropertyDumper); + + twoCraneBerths.addPropertyChangeListener(delayInQueueStat); + twoCraneBerths.addPropertyChangeListener(timeInSystemStat); + twoCraneBerths.addPropertyChangeListener(numberInQueueStat); + twoCraneBerths.addPropertyChangeListener(numberInBerthStat); + + System.out.println(shipArrivalProcess); + System.out.println(twoCraneBerths); + + double stopTime = 10 * 365; + Schedule.stopAtTime(stopTime); + Schedule.setVerbose(false); + + Schedule.reset(); + Schedule.startSimulation(); + + System.out.printf("%nSimulation ended at time %,.1f%n%n", + Schedule.getSimTime()); + + System.out.printf("Number of ships arriving:\t%,d%n", shipArrivalProcess.getNumberArrivals()); + System.out.printf("Number of ships unloaded:\t%,d%n", timeInSystemStat.getCount()); + System.out.printf("Maximum # in queue:\t\t%.0f%n", numberInQueueStat.getMaxObs()); + System.out.printf("Average # in queue:\t\t%.4f%n", numberInQueueStat.getMean()); + System.out.printf("Average # busy berths:\t\t%.4f%n", numberInBerthStat.getMean()); + System.out.printf("Average time in system:\t\t%.4f%n", + timeInSystemStat.getMean()); + System.out.printf("Average delay in queue:\t\t%.4f%n", + delayInQueueStat.getMean()); } + +} -- GitLab