![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
The limit solver. More...
#include <line/solvers/env/solver_env_limit.h>
Classes | |
| class | CacheAccum |
| The RATE accumulator behind the cache blend, SolverENV.accumCacheMetric. More... | |
Public Member Functions | |
| SolverEnvLimit (Environment< T > &e, const EnvOptions &o) | |
| SolverEnvLimit (Environment< T > &e, const EnvOptions &o, EnvStageAvgFn< T > stage_fn) | |
| With an injected stage solver: stage_fn runs every stage, exactly as the reference calls its factory. | |
| EnvLimitSolution | solve () |
Static Public Member Functions | |
| static void | stage_occupation (const Environment< T > &env, const EnvOptions &o, std::vector< double > &occ, std::vector< double > &w) |
| stageOccupation_: the expected time spent in each stage over the horizon and the weight of each stage, read off the initialised environment without solving any stage. | |
| static void | occupation_refusal (const Environment< T > &env, const EnvOptions &o) |
| occupationRefusal_: a finite horizon integrates exp(A t), which only an environment of exponential arcs has; T = Inf reads the embedded chain and mean holding times, which any semi-Markov stage has. | |
| static std::vector< double > | env_init_prob (const EnvOptions &o, std::size_t E) |
| envInitProb_: options.config.env_init, default the first stage. | |
| static double | env_horizon (const EnvOptions &o) |
| envHorizon_: the length of SolverENV's timespan, Inf when unbounded. | |
| static EnvStageAvg< T > | ctmc_stage_steady (const qn::NetworkStruct< T > &sn, double cutoff) |
| One stage in steady state under the enumerated CTMC at cutoff, with its cache split, which is exact (read off the chain). | |
The limit solver.
envObj must already carry a model per stage; init() is called here, as solveEnvLimit calls self.init() before reading probEnv.
Definition at line 176 of file solver_env_limit.h.
|
inline |
Definition at line 178 of file solver_env_limit.h.
|
inline |
With an injected stage solver: stage_fn runs every stage, exactly as the reference calls its factory.
opt.stage_solver is then not consulted, since the caller has already named the solver by handing one over.
Definition at line 185 of file solver_env_limit.h.
|
inlinestatic |
One stage in steady state under the enumerated CTMC at cutoff, with its cache split, which is exact (read off the chain).
An ensemble built on SolverCTMC stages.
Definition at line 580 of file solver_env_limit.h.
References line::env::EnvStageAvg< T >::cache, line::mva::AvgResult< T >::cache, line::ctmc::CtmcOptions::cutoff, line::env::EnvStageAvg< T >::QN, line::mva::AvgResult< T >::QN, line::ctmc::solver_ctmc_run_analyzer(), line::env::EnvStageAvg< T >::TN, line::mva::AvgResult< T >::TN, line::env::EnvStageAvg< T >::UN, and line::mva::AvgResult< T >::UN.
|
inlinestatic |
envHorizon_: the length of SolverENV's timespan, Inf when unbounded.
Definition at line 337 of file solver_env_limit.h.
References line::env::EnvOptions::env_timespan_end, and line::env::EnvOptions::env_timespan_start.
Referenced by occupation_refusal(), and stage_occupation().
|
inlinestatic |
envInitProb_: options.config.env_init, default the first stage.
Definition at line 329 of file solver_env_limit.h.
References line::env::EnvOptions::env_init.
Referenced by occupation_refusal(), and stage_occupation().
|
inlinestatic |
occupationRefusal_: a finite horizon integrates exp(A t), which only an environment of exponential arcs has; T = Inf reads the embedded chain and mean holding times, which any semi-Markov stage has.
The initial stage law must be a distribution over the stages.
Definition at line 292 of file solver_env_limit.h.
References line::lang::GlobalConstants::CoarseTol, line::env::EnvArc< T >::dist, line::env::EnvArc< T >::enabled, env_horizon(), env_init_prob(), line::lang::EXP, line::InputError::InputError(), line::lang::process_to_text(), and line::UnsupportedError::UnsupportedError().
Referenced by line::env::stage_occupation().
|
inline |
Definition at line 190 of file solver_env_limit.h.
Referenced by line::env::solver_env(), line::env::solver_env(), line::env::solver_env_limit(), and line::env::solver_env_limit().
|
inlinestatic |
stageOccupation_: the expected time spent in each stage over the horizon and the weight of each stage, read off the initialised environment without solving any stage.
See the file header.
Definition at line 200 of file solver_env_limit.h.
References line::env::EnvArc< T >::dist, line::env::EnvArc< T >::enabled, env_horizon(), env_init_prob(), line::expm(), line::lang::GlobalConstants::FineTol, line::inverse(), and line::UnsupportedError::UnsupportedError().
Referenced by line::env::stage_occupation().