![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
The MMAP[K]/MAP[K]/1 FCFS queue in which each class's service phase is CARRIED. More...
#include <cmath>#include <cstddef>#include <string>#include <vector>#include "line/api/mam/map_moment.h"#include "line/api/mam/mmap_lambda.h"#include "line/api/mam/mmapph1fcfs.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/linalg.h"#include "line/util/lu.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::qsys::MmapMap1Result< T > |
| Return value of qsys_mmapmap1, mirroring the MATLAB struct. More... | |
Namespaces | |
| namespace | line |
| Conservation laws of a layered queueing network, enumerated from its structure. | |
| namespace | line::qsys |
| namespace | line::qsys::mmapmap1detail |
Functions | |
| template<class T> | |
| bool | line::qsys::mmapmap1detail::is_renewal (const mam::Map< T > &m) |
| D1 = (-D0 e) alpha to within tolerance, as mam_is_renewal_map. | |
| template<class T> | |
| MmapMap1Result< T > | line::qsys::qsys_mmapmap1 (const mam::Mmap< T > &arrival, const std::vector< mam::Map< T > > &svc, std::vector< bool > carry=std::vector< bool >()) |
| MMAP[K]/MAP[K]/1 FCFS with per-class carried service phases, exactly. | |
The MMAP[K]/MAP[K]/1 FCFS queue in which each class's service phase is CARRIED.
THE SERVICE LAW. Each class owns ONE service process whose successive draws are chained in the start order of THAT class: a class-k job starts in the phase the previous class-k draw ended in, whatever was served in between. That is how JMT and both LDES engines sample a MAP service, and the law SolverCTMC follows through the per-class carried-phase local variable. A renewal class keeps its marginal phase-type law, which is exact for it.
THE REDUCTION. Under FCFS at one server the service-start order IS the arrival order, so the landing phase of each class-k draw can be decided at the ARRIVAL of its job. With V_k = (-S0)^-1 S1 a draw started in h ends in j with probability V_k(h,j); conditioned on (h,j) it is phase type: S0 restricted to the phases i with V_k(i,j) > 0, moved by the Doob transform S0(i,i')V_k(i',j)/V_k(i,j) and started in h. The queue is a MMAP[K']/PH[K']/1 FCFS queue whose arrival environment is (arrival phase, carried phase of every carried class) and whose marks are (k,h,j); mmapph1fcfs (He, 2012) solves it exactly and the class measures are the sums over each class's marks.
References: Q. He, "Analysis of a continuous time SM[K]/PH[K]/1/FCFS queue: Age process, sojourn times, and queue lengths", Journal of Systems Science and Complexity, 25(1):133-155, 2012.
Definition in file qsys_mmapmap1.h.