Uses of Class
solvers.dataStructures.PopulationVector
Packages that use PopulationVector
Package
Description
Data structures shared by the JMVA solvers (tuples, positions, lists and matrices).
Linear system formulation shared by the MoM and CoMoM exact algorithms of JMVA.
Block Triangular Form (BTF) of the linear systems arising in the MoM and CoMoM algorithms, as described in the method of moments literature.
Simple linear system solvers used by JMVA.
Queueing network model of JMVA: stations, classes, service demands and visits used by the exact and approximate solution algorithms.
Tree based exact algorithms of JMVA: TreeMVA and TreeConvolution, which reduce the complexity of the exact solution of large closed models.
TreeMVA algorithm of JMVA, the tree based version of the exact Mean Value Analysis.
TreeConvolution algorithm of JMVA, the tree based version of the convolution algorithm.
-
Uses of PopulationVector in solvers.dataStructures
Fields in solvers.dataStructures declared as PopulationVectorMethods in solvers.dataStructures that return PopulationVectorModifier and TypeMethodDescriptionPopulationVector.addVec(EnhancedVector b) PopulationVector.changePopulation(PopulationChangeVector n) Changes the population by subtracting the supplied Population Change VectorPopulationVector.copy()This method returns a copy of the current PopulationVector object.QNModel.getPopulationVector()This method returns a copy of the current PopulationVector with the values contained in this QNModel object (quening network model).PopulationVector.subVec(EnhancedVector b) Methods in solvers.dataStructures with parameters of type PopulationVector -
Uses of PopulationVector in solvers.linearSystem
Methods in solvers.linearSystem with parameters of type PopulationVectorModifier and TypeMethodDescriptionfinal voidLinearSystem.initialiseForClass(PopulationVector current_N, int current_class) Initialises the linear system ready for iteration on current_class at the specified populationprotected abstract voidLinearSystem.initialiseMatricesForClass(PopulationVector current_N, int current_class) Initialises the matrices of the linear system ready for iteration on current_class at the specified population -
Uses of PopulationVector in solvers.linearSystem.btf
Methods in solvers.linearSystem.btf with parameters of type PopulationVectorModifier and TypeMethodDescriptionvoidBTFLinearSystem.initialiseMatricesForClass(PopulationVector current_N, int current_class) -
Uses of PopulationVector in solvers.linearSystem.simple
Methods in solvers.linearSystem.simple with parameters of type PopulationVectorModifier and TypeMethodDescriptionvoidSimpleLinearSystem.initialiseMatricesForClass(PopulationVector current_N, int current_class) -
Uses of PopulationVector in solvers.queueingnet
Fields in solvers.queueingnet with type parameters of type PopulationVectorModifier and TypeFieldDescriptionprotected Map<PopulationVector, Map<MultiplicitiesVector, BigRational>> RecursiveSolver.GmapHere is stored every normalising constant computed.Methods in solvers.queueingnet with parameters of type PopulationVectorModifier and TypeMethodDescriptionConvolutionSolver.compute(MultiplicitiesVector m, PopulationVector p) Computes any normalising constant using a simple recursion and taking advantage of any already computed and stored value.protected BigRationalRECALNonRecursiveSolver.compute(MultiplicitiesVector finalm, PopulationVector finalp) Computes any normalising constant non-recursively and by taking advantage of any already computed and stored value.protected BigRationalRECALSolver.compute(MultiplicitiesVector m, PopulationVector p) Computes any normalising constant using a simple recursion and taking advantage of any already computed and stored value.protected BigRationalRecursiveSolver.compute(MultiplicitiesVector m, PopulationVector p) Computes any normalising constant using a simple recursion and taking advantage of any already computed and stored value.protected BigRationalRGFSolver.compute(MultiplicitiesVector m, PopulationVector p, int q, BigRational[][] load) protected BigRationalRecursiveSolver.findG(MultiplicitiesVector m, PopulationVector p) Searches for a normalising constant in the memory.protected BigRationalRecursiveSolver.initialConditionFor(PopulationVector n) Returns the initial condition corresponding to a particular PopulationVector object.protected BigRationalRecursiveSolver.recallG(MultiplicitiesVector m, PopulationVector p) Searches for a normalising constant in the memory.protected voidRecursiveSolver.storeG(MultiplicitiesVector m, PopulationVector p, BigRational Gval) Stores a computed normalising constant value for future re-use.protected voidRecursiveSolver.storeG(MultiplicitiesVector m, PopulationVector p, BigRational Gval, Map<PopulationVector, Map<MultiplicitiesVector, BigRational>> map) Stores at a particular Map<PopulationVector, Map<MultiplicitiesVector, BigRational>> data structure a computed normalising constant value for future re-use.Method parameters in solvers.queueingnet with type arguments of type PopulationVectorModifier and TypeMethodDescriptionprotected voidRecursiveSolver.storeG(MultiplicitiesVector m, PopulationVector p, BigRational Gval, Map<PopulationVector, Map<MultiplicitiesVector, BigRational>> map) Stores at a particular Map<PopulationVector, Map<MultiplicitiesVector, BigRational>> data structure a computed normalising constant value for future re-use. -
Uses of PopulationVector in solvers.queueingnet.treeAlgorithms
Fields in solvers.queueingnet.treeAlgorithms with type parameters of type PopulationVectorModifier and TypeFieldDescriptionNode.backupGmapsIn certain cases when we store multiple Gmaps at a node, backupGmaps can be used to store these extra Gmaps, else this remains unused.Node.backupGmapsIn certain cases when we store multiple Gmaps at a node, backupGmaps can be used to store these extra Gmaps, else this remains unused.Node.GmapThe partially covered g-array for this node.Node.mvaResTree MVA relatedMethods in solvers.queueingnet.treeAlgorithms that return PopulationVectorModifier and TypeMethodDescriptionClassCoverageUtils.contract(PopulationVector largePopVec, TreeSet<Integer> largePcs, TreeSet<Integer> smallPcs) Contracts a population vector to the necessary size depending on partially covered classes in smallPcs.ClassCoverageUtils.expand(PopulationVector oldPopVec, TreeSet<Integer> oldPcs, PopulationVector newPopVec, TreeSet<Integer> newPcs) Expands a population vector to the necessary size depending on partially covered classes in newPcs.ClassCoverageUtils.nextPermutation(PopulationVector pv, PopulationVector orig) Returns the next permutation of a population vector to be used in the convolution computation, given the current vector and the original start vector.ClassCoverageUtils.nextPermutationUpwards(PopulationVector pv, PopulationVector orig) Returns the next permutation of a population vector to be used in the convolution computation, given the current vector and the original start vector.Methods in solvers.queueingnet.treeAlgorithms with parameters of type PopulationVectorModifier and TypeMethodDescriptionbooleanNode.backupContains(PopulationVector p) Checks whether the backup g-array store contains the population vector.booleanNode.childrenOverlappedPcsHaveLargePopulation(PopulationVector popVec) Checks whether this node's children have a large population overlap in their partially covered classes.abstract voidTreeTraverser.computeSubnetNode(Node node, PopulationVector pv) Abstract method which an extending class will override to define subnetwork node computations.ClassCoverageUtils.contract(PopulationVector largePopVec, TreeSet<Integer> largePcs, TreeSet<Integer> smallPcs) Contracts a population vector to the necessary size depending on partially covered classes in smallPcs.ClassCoverageUtils.expand(PopulationVector oldPopVec, TreeSet<Integer> oldPcs, PopulationVector newPopVec, TreeSet<Integer> newPcs) Expands a population vector to the necessary size depending on partially covered classes in newPcs.Node.getBackupG(PopulationVector p) Returns the first value in the backup g-array for specified population vector (at the root this will be the normalisation constant).Node.getBackupGarr(PopulationVector p1, PopulationVector p2) Gets a g-array values from the backup g-array store using the specified backup and key population vectors.abstract ThreadTreeTraverserMulti.getComputeLeafNodeThread(Node node, PopulationVector pv) Abstract method which an extending class will override to define leaf node computations.Node.getGarr(PopulationVector p) Gets a g-array values from the single g-array store at the specified population vector.protected abstract ComplexityEvaluator.ComplexityBundleComplexityEvaluator.getLeafNodeComplexity(Node node, PopulationVector pv) Gets the complexity of a leaf node computation in the tree algorithm.Node.getMVARes(PopulationVector N) Retrieves the stored MVA results for a specified population vector.protected abstract ComplexityEvaluator.ComplexityBundleComplexityEvaluator.getStandardAlgorithmComplexity(PopulationVector pv) Gets the complexity of running standard/sequential algorithm over a network with the specified population vector.protected abstract ComplexityEvaluator.ComplexityBundleComplexityEvaluator.getSubnetNodeComplexity(Node node, PopulationVector pv) Gets the complexity of a subnetwork node computation in the tree algorithm.abstract ThreadTreeTraverserMulti.getSubnetNodeThread(Node node, PopulationVector pv) Abstract method which an extending class will override to define subnetwork node computations.protected ComplexityEvaluator.ComplexityBundleComplexityEvaluator.getTreeComplexity(Node node, PopulationVector pv) Gets the complexity of running the tree algorithm over the specified tree.intComplexityEvaluator.getTreeWithBestComplexity(Node[] roots, PopulationVector pv) Determines which tree from a list has the best complexity characteristics.abstract voidTreeTraverser.initLeafNode(Node node, PopulationVector pv) Abstract method which an extending class will override to define leaf node computations.voidTreeTraverser.iterativeTraverse(Node root, PopulationVector pv) Iteratively traverses a tree from the specified node in a post-order fashion, performing computations at each node.ClassCoverageUtils.nextPermutation(PopulationVector pv, PopulationVector orig) Returns the next permutation of a population vector to be used in the convolution computation, given the current vector and the original start vector.ClassCoverageUtils.nextPermutationUpwards(PopulationVector pv, PopulationVector orig) Returns the next permutation of a population vector to be used in the convolution computation, given the current vector and the original start vector.voidTreeTraverser.recursiveTraverse(Node node, PopulationVector pv) Recursively traverses a tree from the specified node in a post-order fashion, performing computations at each node.voidNode.store(PopulationVector backupVector, PopulationVector key, BigDecimal value, boolean backup) Stores a nromalisation constant locally.voidTreeTraverserMulti.traverse(Node node, PopulationVector pv) Runs a recursive multi-threaded traversal and waits for the result.abstract booleanComplexityEvaluator.treeHasAcceptableComplexity(Node root, PopulationVector pv) Determines if the tree algorithm for the specified tree has better complexity characteristics than the standard/sequential algorithm for the same network. -
Uses of PopulationVector in solvers.queueingnet.treeAlgorithms.tmva
Methods in solvers.queueingnet.treeAlgorithms.tmva with parameters of type PopulationVectorModifier and TypeMethodDescriptionvoidSingleThreadTMVASolver.computeSubnetNode(Node node, PopulationVector pv) Method to run at the parent's of leaf nodes in the TMVA tree.MultiThreadTMVASolver.getComputeLeafNodeThread(Node node, PopulationVector pv) Computes results at a leaf node by creating a suitable thread to run the computation.protected ComplexityEvaluator.ComplexityBundleTMVAComplexityEvaluator.getLeafNodeComplexity(Node node, PopulationVector pv) Gets the complexity of a leaf node computation in the TMVA algorithm.protected ComplexityEvaluator.ComplexityBundleTMVAComplexityEvaluator.getStandardAlgorithmComplexity(PopulationVector pv) Gets the complexity of running standard/sequential MVA algorithm over a network with the specified population vector.protected ComplexityEvaluator.ComplexityBundleTMVAComplexityEvaluator.getSubnetNodeComplexity(Node node, PopulationVector pv) Gets the complexity of a subnetwork node computation in the TMVA algorithm.MultiThreadTMVASolver.getSubnetNodeThread(Node node, PopulationVector pv) Computes results at a subnetwork node by creating a suitable thread to run the computation.voidSingleThreadTMVASolver.initLeafNode(Node node, PopulationVector pv) Method to run at leaf nodes in the TMVA tree.StandardMVASolver.sequentialMVA(Node node, PopulationVector N) IThreadedTMVASolver.solve(Node node, PopulationVector N) Solves the network rooted at the specified node.MultiThreadTMVASolver.solve(Node node, PopulationVector N) Solves the network rooted at the specified node using TMVA.SingleThreadTMVASolver.solve(Node node, PopulationVector N) Solves the network rooted at the specified node.StandardMVASolver.solve(Node node, PopulationVector N) Solves the network rooted at the specified node.booleanTMVAComplexityEvaluator.treeHasAcceptableComplexity(Node root, PopulationVector pv) Determines if the TMVA for the specified tree has better complexity characteristics than the standard/sequential MVA algorithm for the same network. -
Uses of PopulationVector in solvers.queueingnet.treeAlgorithms.treeConvolution
Methods in solvers.queueingnet.treeAlgorithms.treeConvolution with parameters of type PopulationVectorModifier and TypeMethodDescriptionBigRational[][]IThreadedTCSolver.calculateMeanQueueLengths(PopulationVector p) Calculates per class and per station mean queue lengths using methods outlined in LamLien83 paper.BigRational[][]MultiThreadTCSolver.calculateMeanQueueLengths(PopulationVector p) Calculates per class and per station mean queue lengths using methods outlined in LamLien83 paper.BigRational[][]SingleThreadTCSolver.calculateMeanQueueLengths(PopulationVector p) Calculates per class and per station mean queue lengths using methods outlined in LamLien83 paper.IThreadedTCSolver.calculateThroughputs(PopulationVector p) Calculates per class throughputs using methods outlined in LamLien83 paper.MultiThreadTCSolver.calculateThroughputs(PopulationVector p) Calculates per class throughputs using methods outlined in LamLien83 paper.SingleThreadTCSolver.calculateThroughputs(PopulationVector p) Calculates per class throughputs using methods outlined in LamLien83 paper.IThreadedTCSolver.computeG(Node node, PopulationVector pv) Compute G using postorder tree traversal.MultiThreadTCSolver.computeG(Node node, PopulationVector pv) Computes G using postorder tree traversal.SingleThreadTCSolver.computeG(Node node, PopulationVector pv) Computes G using postorder tree traversal.ConvolutionLayer.computeGmPlusStoreMultiple(Node cloneParent, PopulationVector p, int m) Calculates Gm+(n-1_k) by storing multiple g arrays, one for each partially covered class in pc.ConvolutionLayer.computeGmPlusStoreSingle(Node cloneParent, PopulationVector p, int m) Calculates Gm+(n-1_k) using first method from section 4.2 in Lam/Lien paper.ConvolutionLayer.computeGNminusOneMethod1(Node root, int k, PopulationVector pv) Computes the normalisation constant G(N - 1_k) for the specified class k, required to calculate the chain throughputs.voidConvolutionCore.computeLeafNodeGArray(Node n, PopulationVector popVec, boolean backup) Computes the g-array at the specified leaf node by implementing Eq.voidConvolutionLayer.computeLeafNodeGArray(Node node, PopulationVector popVec) Wraps the computation of leaf node g-arrays so that the solvers do not need direct access to the convolution core.voidSingleThreadTCSolver.computeSubnetNode(Node node, PopulationVector pv) Computes results at subnetwork node by delegating to the convolution layer.voidConvolutionCore.computeSubnetNodeGArray(Node node, PopulationVector popVec, boolean backup) Computes the g-array at the specified subnet (non-leaf) node.voidConvolutionLayer.computeSubnetNodeGArray(Node node, PopulationVector popVec) Wraps the computation of subnet node g arrays so that the solvers do not need direct access to the convolution core.voidConvolutionCore.feedbackFilter(Node parentNode, PopulationVector parentPcMax, PopulationVector popVec, boolean backup) Implements equation (6) from Lam/Lien for combining two leaf node stations, more efficient than normal convolution if one is a fixed-rate station.MultiThreadTCSolver.getComputeLeafNodeThread(Node node, PopulationVector pv) Computes results at leaf node by creating an appropriate thread to run the computation.protected ComplexityEvaluator.ComplexityBundleTCComplexityEvaluator.getLeafNodeComplexity(Node n, PopulationVector popVec) Gets the complexity of a leaf node computation in the tree convolution algorithm.protected ComplexityEvaluator.ComplexityBundleTCComplexityEvaluator.getStandardAlgorithmComplexity(PopulationVector popVec) Gets the complexity of running standard convolution over a network with the specified population vector.protected ComplexityEvaluator.ComplexityBundleTCComplexityEvaluator.getSubnetNodeComplexity(Node n, PopulationVector popVec) Gets the complexity of a subnetwork node computation in the tree convolution algorithm.MultiThreadTCSolver.getSubnetNodeThread(Node node, PopulationVector pv) Computes results at subnetwork node by creating an appropriate thread to run the computation.voidSingleThreadTCSolver.initLeafNode(Node node, PopulationVector pv) Computes results at leaf node by delegating to the convolution layer.protected BigDecimalConvolutionCore.leafNodeDelayInitalCondition(PopulationVector p, PopulationVector popVec, Node n) Computes the g-array at the specified leaf node representing a delay station.booleanTCComplexityEvaluator.treeHasAcceptableComplexity(Node root, PopulationVector pv) Determines if the tree convolution algorithm for the specified tree has better complexity characteristics than the standard/sequential algorithm for the same network.