![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Controls, defaulting to SolverOptions('NC') in the reference. More...
#include <line/solvers/nc/nc_types.h>
Public Attributes | |
| std::string | method = "default" |
| double | tol = 1e-4 |
| options.tol | |
| double | iter_tol = 1e-4 |
| options.iter_tol, the eta stopping test | |
| int | iter_max = 1000 |
| std::string | highvar = "interp" |
| options.config.highvar. | |
| std::string | fork_join = "default" |
| options.config.fork_join: which fork-join arm the shared fixed point takes on a model with a Fork. | |
| std::string | multiserver = "default" |
| options.config.multiserver: how a finite multiserver station is represented. | |
| std::size_t | samples = 100000 |
| options.samples, read by the estimators | |
| unsigned long | seed = 23000 |
| options.seed, read by the estimators | |
| std::size_t | aghq_nodes = 3 |
| options.config.mcmc_batches: the non-overlapping batches the Chen-O'Cinneide estimator splits its run into for the batch-means confidence intervals. | |
| std::size_t | mcmc_batches = 30 |
| double | mcmc_burnin = 0.1 |
| options.config.mcmc_burnin: the warm-up fraction that estimator discards before it starts accumulating. | |
| std::string | cdf_algorithm = "exact" |
| options.config.algorithm for getCdfRespT: 'exact' selects pfqn_stdf, 'rd' the heuristic pfqn_stdf_heur. | |
| double | mem_tol = 1e-6 |
| options.config.mem_tol / mem_maxiter, read by the MEM fixed point. | |
| long | mem_maxiter = 1000 |
| 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. | |
| bool | slotted = false |
| options.config.slotted. | |
| double | slotlength = 1.0 |
| options.config.slotlength, the slot length in model time units. | |
Controls, defaulting to SolverOptions('NC') in the reference.
Definition at line 33 of file nc_types.h.
| std::size_t line::nc::NcSolverOptions::aghq_nodes = 3 |
options.config.mcmc_batches: the non-overlapping batches the Chen-O'Cinneide estimator splits its run into for the batch-means confidence intervals.
30 is Schmeiser (1982), the count used in the tables of the paper. options.config.aghq_nodes: nodes per simplex direction of the adaptive Gauss-Hermite rule. q = 1 reproduces pfqn_le; the rule costs q^(M-1) evaluations, so the default stays small.
Definition at line 77 of file nc_types.h.
| bool line::nc::NcSolverOptions::base_has_fork = false |
Whether the model this solve came from has a Fork, which the model handed to the analyzer no longer does.
Same role as MvaOptions::base_has_fork.
Definition at line 98 of file nc_types.h.
Referenced by line::nc::solver_nc_solve().
| std::string line::nc::NcSolverOptions::cdf_algorithm = "exact" |
options.config.algorithm for getCdfRespT: 'exact' selects pfqn_stdf, 'rd' the heuristic pfqn_stdf_heur.
The reference defaults this field into the options struct when it is absent.
Definition at line 90 of file nc_types.h.
| std::string line::nc::NcSolverOptions::fork_join = "default" |
options.config.fork_join: which fork-join arm the shared fixed point takes on a model with a Fork.
default/mmt/fjt is the MMT transform, ht/heidelberger-trivedi the Heidelberger-Trivedi one. See MvaOptions::fork_join; the driver is the same function for both solvers.
Definition at line 51 of file nc_types.h.
| std::string line::nc::NcSolverOptions::highvar = "interp" |
options.config.highvar.
SolverOptions('NC') overrides the global default and sets this to 'interp', so a non-product-form FCFS station is rescaled by the WSC 2020 interpolation and the analyzer iterates. Setting it to 'default' makes the outer loop run exactly once.
Definition at line 44 of file nc_types.h.
| int line::nc::NcSolverOptions::iter_max = 1000 |
Definition at line 37 of file nc_types.h.
| double line::nc::NcSolverOptions::iter_tol = 1e-4 |
options.iter_tol, the eta stopping test
Definition at line 36 of file nc_types.h.
| std::size_t line::nc::NcSolverOptions::mcmc_batches = 30 |
Definition at line 78 of file nc_types.h.
| double line::nc::NcSolverOptions::mcmc_burnin = 0.1 |
options.config.mcmc_burnin: the warm-up fraction that estimator discards before it starts accumulating.
The paper discards none and ignores the initialization bias.
Definition at line 84 of file nc_types.h.
| long line::nc::NcSolverOptions::mem_maxiter = 1000 |
Definition at line 93 of file nc_types.h.
| double line::nc::NcSolverOptions::mem_tol = 1e-6 |
options.config.mem_tol / mem_maxiter, read by the MEM fixed point.
Definition at line 92 of file nc_types.h.
| std::string line::nc::NcSolverOptions::method = "default" |
Definition at line 34 of file nc_types.h.
Referenced by line::nc::solver_nc_getprob_marg(), line::nc::solver_nc_run_analyzer(), and line::nc::solver_nc_solve().
| std::string line::nc::NcSolverOptions::multiserver = "default" |
options.config.multiserver: how a finite multiserver station is represented.
default keeps the historical dispatch (Seidmann on default, the exact mu(n)=min(n,c) lattice on exact/is/panald, and the lattice on the 2-station Delay+multiserver shape); seidmann forces Seidmann everywhere, exact/lld forces the lattice everywhere it is admissible. The SolverMVA values this solver has no counterpart for (softmin, conway, krzesinski, suri, erlang) fall back to default rather than throwing: one options object is commonly reused across solvers. See MvaOptions::multiserver.
Definition at line 63 of file nc_types.h.
| std::size_t line::nc::NcSolverOptions::samples = 100000 |
options.samples, read by the estimators
Definition at line 64 of file nc_types.h.
| unsigned long line::nc::NcSolverOptions::seed = 23000 |
options.seed, read by the estimators
Definition at line 65 of file nc_types.h.
| double line::nc::NcSolverOptions::slotlength = 1.0 |
options.config.slotlength, the slot length in model time units.
Definition at line 108 of file nc_types.h.
| bool line::nc::NcSolverOptions::slotted = false |
options.config.slotted.
Runs the solve on a discrete time scale, the same switch SolverLDES uses. It routes to solver_nc_dt and REFUSES a model outside the discrete-time product form rather than falling back to the continuous-time analyzers: the continuous-time answer to a slotted question is a different number, not a worse one.
Definition at line 106 of file nc_types.h.
Referenced by line::nc::solver_nc_solve().
| double line::nc::NcSolverOptions::tol = 1e-4 |
options.tol
Definition at line 35 of file nc_types.h.