![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Exact solve of a single-class closed exponential queueing network whose CTMC state space (reachable occupancy vectors) is stored in a Multi-valued Decision Diagram instead of an explicit state list. More...
#include <chrono>#include <cmath>#include <cstddef>#include <vector>#include "line/api/mc/ctmc_solve.h"#include "line/api/mdd/mdd.h"#include "line/api/mdd/mdd_reachset.h"#include "line/api/mdd/mdd_types.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::mdd::MddClosedQnResult< T > |
| Result of the MDD-stored exact closed-network solve. More... | |
Namespaces | |
| namespace | line |
| namespace | line::mdd |
Functions | |
| template<class T> | |
| MddClosedQnResult< T > | line::mdd::mdd_closedqn (const std::vector< T > &mu, const Matrix< T > &P, const std::vector< double > &servers, int N, const MDD *reuse=nullptr) |
| Exact solve of a single-class closed exponential queueing network whose CTMC state space (reachable occupancy vectors) is stored in a Multi-valued Decision Diagram instead of an explicit state list. | |
Exact solve of a single-class closed exponential queueing network whose CTMC state space (reachable occupancy vectors) is stored in a Multi-valued Decision Diagram instead of an explicit state list.
Port of matlab/src/api/mdd/mdd_closedqn.m, jline.api.mdd.Mdd_closedqn and python/line_solver/api/mdd/closedqn.py. The reachable set is generated with mdd_reachset and the generator matrix is assembled using the MDD's O(K) state indexing (MDD::index), so no explicit (|S| x width) state matrix is ever materialised during assembly – the diagram is the store. For single-class exponential stations the aggregated (occupancy) chain is exact: the rate from n to n-e_i+e_j is mu_i * min(n_i, c_i) * P(i,j) for n_i > 0, matching SolverCTMC on the same model, which makes this the live exact oracle the mdd_mcd aggregation is validated against.
The reference's 'verbose' knob is NOT carried (this api layer is silent, as MddMcdOptions documents); stats returns the same storage numbers. The reference's 'ctmcmethod' knob is NOT carried either: the C++ ctmc_solve has a single direct backend.
Definition in file mdd_closedqn.h.