From adf2c3b2e8339f23961d490489106e79e01164b2 Mon Sep 17 00:00:00 2001 From: dansl <dansl@LAPTOP-SIKRVJU7.ern.nps.edu> Date: Wed, 7 Jun 2023 07:36:26 -0700 Subject: [PATCH] Commit additions for Steady State and Transient Stats --- .../src/mv3302/StoppedPartArrivalProcess.java | 25 +++++++------ .../src/mv3302/run/RunTransientAnalysis.java | 35 +++++++++++-------- 2 files changed, 32 insertions(+), 28 deletions(-) diff --git a/MV3302ClassCode/src/mv3302/StoppedPartArrivalProcess.java b/MV3302ClassCode/src/mv3302/StoppedPartArrivalProcess.java index 61ab12cebc..78767c0917 100644 --- a/MV3302ClassCode/src/mv3302/StoppedPartArrivalProcess.java +++ b/MV3302ClassCode/src/mv3302/StoppedPartArrivalProcess.java @@ -6,14 +6,15 @@ package mv3302; import simkit.random.RandomVariate; + /** * * @author dansl */ public final class StoppedPartArrivalProcess extends PartArrivalProcess { - private RandomVariate interarrivalTimeGenerator; - + //private RandomVariate interarrivalTimeGenerator; +public int stopTime; //int stopTime = 480; /** * Zero-argument constructor @@ -27,13 +28,13 @@ public final class StoppedPartArrivalProcess extends PartArrivalProcess { * * @param interarrivalTimes Given inter arrival times */ - public StoppedPartArrivalProcess(RandomVariate interarrivalTimeGenerator) { - setInterarrivalTimeGenerator(interarrivalTimeGenerator); + public StoppedPartArrivalProcess(int stopTime) { + this.stopTime = stopTime; } @Override public void doRun() { - waitDelay("StopArrivals", interarrivalTimeGenerator); + waitDelay("StopArrivals", getStopTime()); } /** @@ -45,18 +46,16 @@ public final class StoppedPartArrivalProcess extends PartArrivalProcess { } /** - * @return the interarrivalTimeGenerator + * @return the stopTime */ - @Override - public RandomVariate getInterarrivalTimeGenerator() { - return interarrivalTimeGenerator; + public int getStopTime() { + return stopTime; } /** - * @param interarrivalTimeGenerator the interarrivalTimeGenerator to set + * @param stopTime the stopTime to set */ - @Override - public void setInterarrivalTimeGenerator(RandomVariate interarrivalTimeGenerator) { - this.interarrivalTimeGenerator = interarrivalTimeGenerator; + public void setStopTime(int stopTime) { + this.stopTime = stopTime; } } diff --git a/MV3302ClassCode/src/mv3302/run/RunTransientAnalysis.java b/MV3302ClassCode/src/mv3302/run/RunTransientAnalysis.java index 0d7fa00a6b..9c566be25b 100644 --- a/MV3302ClassCode/src/mv3302/run/RunTransientAnalysis.java +++ b/MV3302ClassCode/src/mv3302/run/RunTransientAnalysis.java @@ -1,6 +1,7 @@ package mv3302.run; import static java.lang.Math.sqrt; +import mv3302.PartArrivalProcess; import mv3302.StoppedPartArrivalProcess; import mv3302.TransferLineComponent; import mv3302.TransientStats; @@ -22,7 +23,9 @@ public class RunTransientAnalysis { public static void main(String args[]) { RandomVariate interarrivalTimeGenerator = RandomVariateFactory.getInstance( "Exponential", 2.5); - StoppedPartArrivalProcess arrivalProcess = new StoppedPartArrivalProcess(interarrivalTimeGenerator); + int stopTime = 480; + PartArrivalProcess partArrivalProcess = new PartArrivalProcess(interarrivalTimeGenerator); + StoppedPartArrivalProcess stoppedArrivalProcess = new StoppedPartArrivalProcess(stopTime); RandomVariate[] processingTimeGenerator = {RandomVariateFactory.getInstance("Exponential", 2.4), RandomVariateFactory.getInstance("Gamma", 3.2, 3.3), RandomVariateFactory.getInstance("Uniform", 4.5, 6.7), RandomVariateFactory.getInstance("Exponential", 3.0)}; @@ -35,36 +38,38 @@ public class RunTransientAnalysis { TransferLineComponent transferLineComponent = new TransferLineComponent(processingTimeGenerator, totalNumberWorkstations); - arrivalProcess.addSimEventListener(transferLineComponent); + partArrivalProcess.addSimEventListener(transferLineComponent); + stoppedArrivalProcess.addSimEventListener(transferLineComponent); - TransientStats delayInQueueTransient = new TransientStats("delayInQueue"); +// SimpleStatsTally delayInQueueTransient = new SimpleStatsTally("delayInQueue"); +// + SimpleStatsTally totalTimeInSystemStat = new SimpleStatsTally("totalTimeInSystem"); - SimpleStatsTally delayInQueueStat = new SimpleStatsTally("delayInQueue"); - - transferLineComponent.addPropertyChangeListener(delayInQueueTransient); + transferLineComponent.addPropertyChangeListener(totalTimeInSystemStat); - System.out.println(arrivalProcess); + System.out.println(partArrivalProcess); + System.out.println(stoppedArrivalProcess); System.out.println(transferLineComponent); - SimpleStatsTally outerDelayInQueueStat = new SimpleStatsTally("outerDelayInQueue"); + SimpleStatsTally outerTimeInSystemStat = new SimpleStatsTally("outerTimeInSystem"); - int stopTime = 50; + int numberReplications = 200; double alpha = 0.05; - Schedule.stopOnEvent(stopTime, "Arrival"); + Schedule.stopOnEvent(10000, "Arrival"); System.out.println("Avg Delay In Queue"); for (int replication = 1; replication <= stopTime; ++replication) { Schedule.reset(); - delayInQueueTransient.reset(); + totalTimeInSystemStat.reset(); Schedule.startSimulation(); - outerDelayInQueueStat.newObservation(delayInQueueStat.getMean()); + outerTimeInSystemStat.newObservation(totalTimeInSystemStat.getMean()); System.out.printf("%d %.3f ± %.3f%n", replication, - outerDelayInQueueStat.getMean(), - outerDelayInQueueStat.getStandardDeviation() - * StudentT.getQuantile(1.0 - 0.5 * alpha, outerDelayInQueueStat.getCount() - 1) / sqrt(outerDelayInQueueStat.getCount()) + outerTimeInSystemStat.getMean(), + outerTimeInSystemStat.getStandardDeviation() + * StudentT.getQuantile(1.0 - 0.5 * alpha, outerTimeInSystemStat.getCount() - 1) / sqrt(outerTimeInSystemStat.getCount()) ); } -- GitLab