![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
The 'sync.faster' and 'sync.slower' methods of SolverMAM: the synchronous approximation of an M/G/c/K station with dual bounds, qsys_mgck_sync. More...
#include <cmath>#include <cstddef>#include <string>#include <vector>#include "line/api/mam/map_moment.h"#include "line/api/qsys/qsys_mgck_sync.h"#include "line/lang/distribution.h"#include "line/lang/qn/network_struct.h"#include "line/solvers/mam/mam_types.h"#include "line/util/error.h"Go to the source code of this file.
Classes | |
| struct | line::mam::MamSyncParams< T > |
| What qsys_mgck_sync needs, read off the model by mam_sync_refusal. More... | |
Namespaces | |
| namespace | line |
| Conservation laws of a layered queueing network, enumerated from its structure. | |
| namespace | line::mam |
| namespace | line::mam::sync_detail |
Functions | |
| const char * | line::mam::sync_detail::drop_to_text (lang::DropStrategy d) |
| template<class T> | |
| std::string | line::mam::mam_sync_refusal (const qn::NetworkStruct< T > &L, std::size_t nph, MamSyncParams< T > *par=nullptr) |
| mam_sync_applicable.m: why the sync methods cannot answer this model, or "" when they can, in which case par (when given) is filled. | |
| template<class T> | |
| mva::MvaSolution< T > | line::mam::solver_mam_sync (const qn::NetworkStruct< T > &L, const MamOptions &opt) |
| Port of solver_mam_sync.m: fills Q, U, R, T, C, X from qsys_mgck_sync. | |
The 'sync.faster' and 'sync.slower' methods of SolverMAM: the synchronous approximation of an M/G/c/K station with dual bounds, qsys_mgck_sync.
Port of matlab/src/solvers/MAM/mam_sync_applicable.m and solver_mam_sync.m. 'sync.faster' returns lower bounds on the mean queue length, response time and loss probability, 'sync.slower' upper ones; options.config.sync_phases (MamOptions::sync_phases) selects the phase expansion.
THE RULE IS A SHAPE: the synchronous approximation is a model of one M/G/c/K station, so the network must be a single open class with one Source (Poisson) and one FCFS Queue with a finite capacity and the drop rule, every completion leaving the network. The service law must be one the embedded chain can take exactly: deterministic, or phase type. The phase expansion needs it deterministic.
ONE PREDICATE, THREE CALLERS: runner_detail::check_model_method, the mam_dispatch arm and solver_mam_sync all ask mam_sync_refusal.
Definition in file solver_mam_sync.h.