Class AMVA
java.lang.Object
solvers.queueingnet.amva.SolverMulti
solvers.queueingnet.amva.AMVA
- Direct Known Subclasses:
AQL, BardSchweitzer, Chow, Linearizer
This class implements the abstract superclass for approximate MVA algorithms
for solving multi-closed models
- Author:
- Abhimanyu Chugh
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected int[]static final doubleprotected intprotected intprotected doubleFields inherited from class SolverMulti
classes, CLOSED_CLASS, clsNumJobs, clsRespTime, clsThroughput, DELAY, LD, LI, name, OPEN_CLASS, pw, queueLen, residenceTime, scQueueLen, scResidTime, scThroughput, scUtilization, servers, servTime, stations, sysNumJobs, sysResponseTime, sysThroughput, throughput, type, utilization, visits -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintprotected 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 stationvoidsetMaxIterations(int maxIterations) voidsetTolerance(double tolerance) voidsolve()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 SolverMulti
getAggrQueueLen, getAggrQueueLen, getAggrResTime, getAggrResTime, getAggrThroughput, getAggrThroughput, getAggrUtilization, getAggrUtilization, getClsResTime, getClsResTime, getClsThroughput, getClsThroughput, getQueueLen, getQueueLen, getResTime, getResTime, getThroughput, getThroughput, getTotResTime, getTotThroughput, getUtilization, getUtilization, input, printIndices
-
Field Details
-
DEFAULT_TOLERANCE
public static final double DEFAULT_TOLERANCE -
tolerance
protected double tolerance -
MAX_ITERATIONS
protected int MAX_ITERATIONS -
clsPopulation
protected int[] clsPopulation -
iterations
protected int iterations
-
-
Constructor Details
-
AMVA
public AMVA(int classes, int stations, int[] classPopulation)
-
-
Method Details
-
validateTolerance
-
setTolerance
public void setTolerance(double tolerance) -
setMaxIterations
public void setMaxIterations(int maxIterations) -
getIterations
public int getIterations() -
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
-