![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Ports of matlab/src/api/mc/ctmc_ssg.m and ctmc_ssg_reachability.m: the state space of a network as SolverCTMC enumerates it, in the reference's three views. More...
#include <cstddef>#include <map>#include <vector>#include "line/lang/qn/network_struct.h"#include "line/lang/qn/state.h"#include "line/lang/qn/state_events.h"#include "line/num/number.h"#include "line/solvers/ctmc/solver_ctmc.h"#include "line/solvers/ctmc/solver_ctmc_analyzer.h"#include "line/util/error.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::mc::CtmcSsgOptions |
| The reference's options read here: options.cutoff and the state cap. More... | |
| struct | line::mc::CtmcSsgResult< T > |
| The reference's [stateSpace, stateSpaceAggr, stateSpaceHashed, nodeStateSpace]. More... | |
Namespaces | |
| namespace | line |
| Conservation laws of a layered queueing network, enumerated from its structure. | |
| namespace | line::mc |
| namespace | line::mc::ssg_detail |
Functions | |
| template<class T> | |
| CtmcSsgResult< T > | line::mc::ssg_detail::assemble (const qn::NetworkStruct< T > &sn, std::vector< qn::NetState< T > > space) |
| The three matrix views from an enumerated space. | |
| std::vector< std::size_t > | line::mc::ssg_detail::cutoff_or_closed (const std::vector< std::size_t > &cutoff, std::size_t R) |
| template<class T> | |
| CtmcSsgResult< T > | line::mc::ctmc_ssg (const qn::NetworkStruct< T > &sn, const CtmcSsgOptions &options=CtmcSsgOptions(), const std::vector< qn::FjSync< T > > &fjsync=std::vector< qn::FjSync< T > >()) |
| Port of ctmc_ssg: the FULL state space of the network. | |
| template<class T> | |
| CtmcSsgResult< T > | line::mc::ctmc_ssg_reachability (const qn::NetworkStruct< T > &sn, const CtmcSsgOptions &options=CtmcSsgOptions(), const std::vector< qn::FjSync< T > > &fjsync=std::vector< qn::FjSync< T > >()) |
| Port of ctmc_ssg_reachability: the REACHABLE state space, walked from the model's initial state over the synchronizations refresh_sync and refresh_global_sync build. | |
Ports of matlab/src/api/mc/ctmc_ssg.m and ctmc_ssg_reachability.m: the state space of a network as SolverCTMC enumerates it, in the reference's three views.
stateSpace one row per network state, the per-node local rows concatenated in stateful-node order stateSpaceAggr (nstates x nstations*nclasses), the per-station job counts of each state (State.toMarginal) stateSpaceHashed (nstates x nstateful), the 1-based row of each node's local space that the state occupies nodeStateSpace the per-node local spaces the hashes index into, the reference's sn.space
The reference writes nodeStateSpace back onto sn.space and returns the struct; this NetworkStruct carries no space member (the analyzer rebuilds it per solve), so the node spaces are returned on the result instead.
ctmc_ssg is the FULL enumeration (State.spaceGenerator): every state the encoding admits, reachable or not. The reference refuses a fork-join model here, because a Fork firing does not conserve the per-chain population the lattice walks; ctmc_ssg_reachability is the reachable walk (State.reachableSpaceGenerator) from the model's initial state, which is the one those models need.
The enumeration itself is qn::space_generator and ctmc::reachable_space_generator, shared with SolverCTMC, so a space listed here is the space the solver solves.
Definition in file ctmc_ssg.h.