Class SolverMultiClosedAMVA
java.lang.Object
solvers.SolverMulti
solvers.SolverMultiIterative
solvers.SolverMultiClosedAMVA
- Direct Known Subclasses:
SolverMultiClosedAQL, SolverMultiClosedBardSchweitzer, SolverMultiClosedChow, SolverMultiClosedLinearizer
This class implements the abstract superclass of approximate MVA algorithms for solving multi-closed models
- Author:
- Abhimanyu Chugh
-
Field Summary
FieldsFields inherited from class SolverMultiIterative
DEFAULT_TOLERANCE, iterations, MAX_ITERATIONS, toleranceFields inherited from class SolverMulti
classes, CLOSED_CLASS, clsNumJobs, clsRespTime, clsThroughput, DELAY, HOL, LD, LI, name, OPEN_CLASS, priorities, PRS, pw, queueLen, residenceTime, scQueueLen, scResidTime, scThroughput, scUtilization, servers, servTime, stations, sysNumJobs, sysResponseTime, sysThroughput, throughput, type, utilization, visits -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract double[][]doubleReturns the number of jobs in the systembooleanA system is said to have sufficient capacity to process a given loadlambdaif no service center is saturated as a result of the combined loads of all the classes.protected doublemaxDiff(double[][] oldQueueLens, double[][] currentQueueLens) returns the max difference between the old queue lengths and the current queue lengths of each station and classprotected doublemaxDiff(double[] scOldQueueLens, double[] scCurrentQueueLens) returns the max difference between the old queue lengths and the current queue lengths of each stationvoidsolve()Must be implemented to create a multi class model solver.voidsolveLI()static DoublevalidateTolerance(String tolerance) check whether the given tolerance is valid or notMethods inherited from class SolverMultiIterative
getIterations, setMaxIterations, setToleranceMethods inherited from class SolverMulti
getAggrQueueLen, getAggrQueueLen, getAggrResTime, getAggrResTime, getAggrThroughput, getAggrThroughput, getAggrUtilization, getAggrUtilization, getClsResTime, getClsResTime, getClsThroughput, getClsThroughput, getQueueLen, getQueueLen, getResTime, getResTime, getThroughput, getThroughput, getTotResTime, getTotThroughput, getUtilization, getUtilization, getVisits, input, input, printIndices, setServTime, toString
-
Field Details
-
clsPopulation
protected int[] clsPopulation
-
-
Constructor Details
-
SolverMultiClosedAMVA
public SolverMultiClosedAMVA(int classes, int stations, int[] classPopulation)
-
-
Method Details
-
validateTolerance
-
getTotNumJobs
public double getTotNumJobs()Returns the number of jobs in the system- Returns:
- the total number of jobs
-
solve
public void solve()Description copied from class:SolverMultiMust be implemented to create a multi class model solver.- Specified by:
solvein classSolverMulti
-
solveLI
public void solveLI() -
getQueueLensWithOneLessCustomer
protected abstract double[][] getQueueLensWithOneLessCustomer() -
maxDiff
protected double maxDiff(double[] scOldQueueLens, double[] scCurrentQueueLens) returns the max difference between the old queue lengths and the current queue lengths of each station- Parameters:
scOldQueueLens- the old queue lengths to compare with current queue lengths (scCurrentQueueLens)scCurrentQueueLens- the current queue lengths used for comparison- Returns:
- the max difference
-
maxDiff
protected double maxDiff(double[][] oldQueueLens, double[][] currentQueueLens) returns the max difference between the old queue lengths and the current queue lengths of each station and class- Parameters:
oldQueueLens- the old queue lengths to compare with current queue lengths (scCurrentQueueLens)currentQueueLens- the current queue lengths used for comparison- Returns:
- the max difference
-
hasSufficientProcessingCapacity
public boolean hasSufficientProcessingCapacity()Description copied from class:SolverMultiA system is said to have sufficient capacity to process a given loadlambdaif no service center is saturated as a result of the combined loads of all the classes.
Must be implemented to create a multi class model solver.
WARNING: This method should be called before solving the system.- Specified by:
hasSufficientProcessingCapacityin classSolverMulti- Returns:
- true if sufficient capacity exists for the given workload, false otherwise
-