![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
The options SolverMVA reads. More...
#include <line/solvers/mva/mva_types.h>
Public Attributes | |
| std::string | method = "default" |
| double | tol = 1e-4 |
| double | iter_tol = 1e-6 |
| int | iter_max = 1000 |
| std::string | multiserver = "default" |
| std::string | highvar = "default" |
| std::string | np_priority = "default" |
| options.config.np_priority: which non-preemptive priority correction a HOL station takes. | |
| std::string | fork_join = "default" |
| options.config.fork_join: which fork-join arm the fixed point takes. | |
| bool | has_init_sol = false |
| Warm start, (nstations x nchains) chain-aggregated queue lengths; empty for none. | |
| bool | base_has_fork = false |
| Whether the model this solve came from has a Fork, which the model handed to the analyzer no longer does. | |
| std::string | rqt_regime |
| options.config.rqt_regime: which service adaptation regime of the Robust Queueing Theory Table 1 the RQT analyzer takes. | |
| bool | rqt_exact = false |
| options.config.rqt_exact: use the exact worst case over the uncertainty sets instead of the closed-form bound of Theorem 3. | |
| double | rqt_alpha_a = 0.0 |
| options.config.rqt_alpha_a: arrival tail coefficient in (1,2]; 0 = 2. | |
| double | rqt_alpha_s = 0.0 |
| options.config.rqt_alpha_s: service tail coefficient in (1,2]; 0 = 2. | |
| std::vector< std::vector< double > > | interlock |
| options.config.interlock: the interlocked-flow matrix of Franks (1999), Eq. | |
The options SolverMVA reads.
Defaults are SolverOptions('MVA').
Definition at line 31 of file mva_types.h.
| bool line::mva::MvaOptions::base_has_fork = false |
Whether the model this solve came from has a Fork, which the model handed to the analyzer no longer does.
mvaDispatch.m tests self.model.hasFork – the BASE model – to force default onto AMVA, and by the time the analyzer runs the fork-join transform has already replaced the fork with a router, so the struct in hand cannot answer the question. Testing the transformed struct instead silently sends the model to exact mixed MVA, which the auxiliary near-zero-rate open classes degenerate.
Definition at line 65 of file mva_types.h.
Referenced by line::mva::solver_mva_run_analyzer(), and line::nc::solver_nc_solve().
| std::string line::mva::MvaOptions::fork_join = "default" |
options.config.fork_join: which fork-join arm the fixed point takes.
default, mmt and fjt are the MMT transform of fj_mmt.h; ht and heidelberger-trivedi are the Heidelberger-Trivedi transform of fj_ht.h, which is closed-model only. Read only by a model with a Fork.
Definition at line 51 of file mva_types.h.
Referenced by line::nc::solver_nc_solve().
| bool line::mva::MvaOptions::has_init_sol = false |
Warm start, (nstations x nchains) chain-aggregated queue lengths; empty for none.
Definition at line 53 of file mva_types.h.
| std::string line::mva::MvaOptions::highvar = "default" |
Definition at line 37 of file mva_types.h.
| std::vector<std::vector<double> > line::mva::MvaOptions::interlock |
options.config.interlock: the interlocked-flow matrix of Franks (1999), Eq.
(4.7), CLASS-indexed and row-major (nclasses x nclasses). interlock[r][s] is the share of the class-s queue that a class-r arrival must not see, because that work was itself caused by the class-r request. Empty for every model but the layers of SolverLN. It is kept CLASS-indexed, not chain-indexed, so that a later chain refresh cannot leave it stale: the analyzer aggregates it to chains against the struct it is about to solve. Doubles rather than T because the probabilities come from a fixed-point iterate and never enter an exact computation of their own.
Definition at line 91 of file mva_types.h.
| int line::mva::MvaOptions::iter_max = 1000 |
Definition at line 35 of file mva_types.h.
Referenced by line::fluid::solver_fld_cacheqn_analyzer(), line::fluid::solver_fld_cacheqn_tran(), line::nc::solver_nc_cacheqn_analyzer(), line::nc::solver_nc_cacheqn_retrieval_analyzer(), and line::nc::solver_nc_solve().
| double line::mva::MvaOptions::iter_tol = 1e-6 |
Definition at line 34 of file mva_types.h.
Referenced by line::nc::solver_nc_cacheqn_analyzer(), line::nc::solver_nc_cacheqn_retrieval_analyzer(), and line::nc::solver_nc_solve().
| std::string line::mva::MvaOptions::method = "default" |
Definition at line 32 of file mva_types.h.
Referenced by line::mva::mva_dispatch(), line::mva::solver_mva_get_prob_norm_const_aggr(), line::mva::solver_mva_run_analyzer(), line::nc::solver_nc_cacheqn_analyzer(), line::nc::solver_nc_cacheqn_retrieval_analyzer(), and line::nc::solver_nc_solve().
| std::string line::mva::MvaOptions::multiserver = "default" |
Definition at line 36 of file mva_types.h.
Referenced by line::mva::solver_amva().
| std::string line::mva::MvaOptions::np_priority = "default" |
options.config.np_priority: which non-preemptive priority correction a HOL station takes.
default and cl are Chandy-Lakshmi, which discounts the higher-priority utilization by the Linearizer's throughput difference; shadow is Sevcik's shadow server, which does not.
Definition at line 44 of file mva_types.h.
| double line::mva::MvaOptions::rqt_alpha_a = 0.0 |
options.config.rqt_alpha_a: arrival tail coefficient in (1,2]; 0 = 2.
Definition at line 77 of file mva_types.h.
| double line::mva::MvaOptions::rqt_alpha_s = 0.0 |
options.config.rqt_alpha_s: service tail coefficient in (1,2]; 0 = 2.
Definition at line 79 of file mva_types.h.
| bool line::mva::MvaOptions::rqt_exact = false |
options.config.rqt_exact: use the exact worst case over the uncertainty sets instead of the closed-form bound of Theorem 3.
Definition at line 75 of file mva_types.h.
| std::string line::mva::MvaOptions::rqt_regime |
options.config.rqt_regime: which service adaptation regime of the Robust Queueing Theory Table 1 the RQT analyzer takes.
Empty and independent leave the service distribution unknown; normal and pareto are the service-dependent fits.
Definition at line 72 of file mva_types.h.
| double line::mva::MvaOptions::tol = 1e-4 |
Definition at line 33 of file mva_types.h.
Referenced by line::fluid::solver_fld_cacheqn_analyzer(), line::fluid::solver_fld_cacheqn_tran(), line::nc::solver_nc_cacheqn_analyzer(), line::nc::solver_nc_cacheqn_retrieval_analyzer(), and line::nc::solver_nc_solve().