Class ModelAdapter
-
- All Implemented Interfaces:
public class ModelAdapterStatic class to transform and adapt models, providing functionality for: - Creating tagged job models for response time analysis - Fork-join network transformations (formerly from FJ.java) - Model preprocessing and adaptation operations
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public classModelAdapter.TaggedChainResultResult of tagging a chain in a model
public classModelAdapter.AggregateChainResultResult of aggregating chains in a model
public classModelAdapter.DeaggInfoDeaggregation information for converting chain-level results back to class-level
-
Constructor Summary
Constructors Constructor Description ModelAdapter()
-
Method Summary
Modifier and Type Method Description static ModelAdapter.TaggedChainResulttagChain(Network model, Chain chain, JobClass jobclass, String suffix)Create a tagged version of a job chain for response time analysis static ModelAdapter.TaggedChainResulttagChain(Network model, Chain chain, JobClass jobclass)Convenience method with default parameters static ModelAdapter.TaggedChainResulttagChain(Network model, Chain chain)Convenience method with default parameters static MatrixfindPaths(NetworkStruct sn, Matrix P, int startNode, int endNode, int r, ArrayList<Integer> toMerge, Matrix QN, Matrix TN, double currentTime, Matrix fjclassmap, Matrix fjforkmap, Network nonfjmodel)Finds the response times along each path leading out of startNode up to (and not including) endNode static MatrixfindPathsCS(NetworkStruct sn, Matrix P, int curNode, int endNode, int curClass, ArrayList<Integer> toMerge, Matrix QN, Matrix TN, double currentTime, Matrix fjclassmap, Matrix fjforkmap, Network nonfjmodel)Finds the response times along each path leading out of curNode up to (and not including) endNode Variant for models with class switching static Ret.FJApproxht(Network model)Heidelberger-Trivedi fork-join queueing network transformation. static Ret.FJApproxmmt(Network model)Fork-Join Transform approach with default forkLambda parameter static Ret.FJApproxmmt(Network model, Matrix forkLambda)Fork-Join Transform approach to evaluate queueing networks including fork-join systems. static Ret.FJsortForkssort_forks(NetworkStruct sn, NetworkStruct nonfjstruct, Matrix fjforkmap, Matrix fjclassmap, Network nonfjmodel)Determines a directed acyclic graph of relationships among fork nodes. static ModelAdapter.AggregateChainResultaggregateChains(Network model)Transform a multi-class model into an equivalent chain-aggregated model This function transforms a queueing network model with multiple classes into a stochastically equivalent model where each chain becomes a single class. static ModelAdapter.AggregateChainResultaggregateChains(Network model, String suffix)Transform a multi-class model into an equivalent chain-aggregated model -
-
Method Detail
-
tagChain
static ModelAdapter.TaggedChainResult tagChain(Network model, Chain chain, JobClass jobclass, String suffix)
Create a tagged version of a job chain for response time analysis
- Parameters:
model- The original modelchain- The chain to tagjobclass- The specific job class to tag (optional, defaults to first class in chain)suffix- The suffix to add to tagged class names (optional, defaults to ".- Returns:
TaggedChainResult containing the tagged model and tagged job class
-
tagChain
static ModelAdapter.TaggedChainResult tagChain(Network model, Chain chain, JobClass jobclass)
Convenience method with default parameters
-
tagChain
static ModelAdapter.TaggedChainResult tagChain(Network model, Chain chain)
Convenience method with default parameters
-
findPaths
static Matrix findPaths(NetworkStruct sn, Matrix P, int startNode, int endNode, int r, ArrayList<Integer> toMerge, Matrix QN, Matrix TN, double currentTime, Matrix fjclassmap, Matrix fjforkmap, Network nonfjmodel)
Finds the response times along each path leading out of startNode up to (and not including) endNode
-
findPathsCS
static Matrix findPathsCS(NetworkStruct sn, Matrix P, int curNode, int endNode, int curClass, ArrayList<Integer> toMerge, Matrix QN, Matrix TN, double currentTime, Matrix fjclassmap, Matrix fjforkmap, Network nonfjmodel)
Finds the response times along each path leading out of curNode up to (and not including) endNode Variant for models with class switching
-
ht
static Ret.FJApprox ht(Network model)
Heidelberger-Trivedi fork-join queueing network transformation. Transforms the queueing network containing a FJ subsystem into a queueing network without one. Fork nodes changed to Router nodes. Join nodes changed to Delay nodes. One artificial class is created for each parallel branch and for each class. Another delay is added to model the sojourn time of the original classes. -- This approach is derived by PHILIP HEIDELBERGER and KISHOR S. TRIVEDI in "Analytic Queueing Models for Programs with Internal Concurrency"
- Parameters:
model- - the original network- Returns:
- queueing network with no FJ system, the class and the fork maps for the artificial classes, and the auxiliary delay map (each join node is mapped to a corresponding auxiliary delay).
-
mmt
static Ret.FJApprox mmt(Network model)
Fork-Join Transform approach with default forkLambda parameter
-
mmt
static Ret.FJApprox mmt(Network model, Matrix forkLambda)
Fork-Join Transform approach to evaluate queueing networks including fork-join systems. An equivalent network is created where the fork nodes are replaced by routers, the join nodes are replaced by delays, and the parallelism induced by a fork-join system is simulated through the addition of artificial open customer classes.
- Parameters:
model- - the original queueing networkforkLambda- - the arrival rates of the artificial classes- Returns:
- the equivalent queueing network with the fork-join systems replaced with other nodes, a mapping of the artificial classes and their corresponding original classes, a mapping of the artificial classes and their FJ systems, and the fanout of each artificial class
-
sort_forks
static Ret.FJsortForks sort_forks(NetworkStruct sn, NetworkStruct nonfjstruct, Matrix fjforkmap, Matrix fjclassmap, Network nonfjmodel)
Determines a directed acyclic graph of relationships among fork nodes.
-
aggregateChains
static ModelAdapter.AggregateChainResult aggregateChains(Network model)
Transform a multi-class model into an equivalent chain-aggregated model This function transforms a queueing network model with multiple classes into a stochastically equivalent model where each chain becomes a single class. Classes belonging to the same chain (i.e., classes that can switch into each other) are merged into one aggregate class. The aggregated model preserves: - Total chain population (closed chains) - Total arrival rate (open chains) - Service demands at each station - Routing structure at the chain level
- Parameters:
model- Source Network model with potentially multiple classes per chain- Returns:
AggregateChainResult containing the aggregated model, alpha, and deaggInfo
-
aggregateChains
static ModelAdapter.AggregateChainResult aggregateChains(Network model, String suffix)
Transform a multi-class model into an equivalent chain-aggregated model
- Parameters:
model- Source Network model with potentially multiple classes per chainsuffix- Optional suffix for chain class names- Returns:
AggregateChainResult containing the aggregated model, alpha, and deaggInfo
-
-
-
-