![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Exact normalizing-constant analysis of a discrete-time (slotted) model. More...
#include <cmath>#include <cstddef>#include <limits>#include <string>#include <vector>#include "line/api/dpfqn/dpfqn_nc.h"#include "line/api/dqsys/dqsys_bernoulli1.h"#include "line/api/sn/sn_rt_stations.h"#include "line/lang/qn/network_struct.h"#include "line/solvers/nc/nc_types.h"#include "line/util/error.h"Go to the source code of this file.
Classes | |
| struct | line::nc::DtModel< T > |
| Classification of a model against the discrete-time product form. More... | |
Namespaces | |
| namespace | line |
| namespace | line::nc |
Functions | |
| template<class T> | |
| DtModel< T > | line::nc::nc_is_dt_model (const qn::NetworkStruct< T > &sn) |
| Classify sn against the two discrete-time product-form families. | |
| template<class T> | |
| NcSolution< T > | line::nc::solver_nc_dt (const qn::NetworkStruct< T > &sn, const NcSolverOptions &opt) |
| Exact discrete-time analysis of sn. | |
Exact normalizing-constant analysis of a discrete-time (slotted) model.
Port of matlab/src/solvers/NC/nc_is_dt_model.m and solver_nc_dt_analyzer.m. The route is requested with NcSolverOptions::slotted, the same switch SolverLDES uses to run on a discrete time scale, and is never auto-detected: a Geometric service time is a perfectly ordinary continuous-time model unless the caller says the model lives on a slot lattice.
Two families are covered, both from Daduna (2001):
chapter 2 a Bernoulli server fed by a Bernoulli arrival stream, with an unbounded buffer (theorem 2.3, corollary 2.7), a finite buffer (corollary 2.8) or a load-dependent service probability (example 2.10), evaluated by dqsys_bernoulli1; chapter 3 a closed cycle of Bernoulli servers (theorem 3.2, corollary 3.4), evaluated by dpfqn_nc when the service probabilities are state independent and by dpfqn_ncld otherwise.
THE ADMISSIBLE FEATURE SET IS NARROW BECAUSE THE PRODUCT FORM IS NARROW. Beyond the geometric service requirement:
A model that fails any of these is an ERROR, not a fallback to the continuous-time analyzer: the continuous-time answer to a slotted question is a different number, not a worse one.
Every metric is on the slot lattice: a rate is a per-slot probability and a time is a number of slots. NcSolverOptions::slotlength rescales both to model time units.
Definition in file solver_nc_dt.h.