solvers.ENV

solver_env_statevec_analyzer(self, phase, it, e)

SOLVER_ENV_STATEVEC_ANALYZER Full state-vector coupling for SolverENV.

Alternative to the mean-field analyzer (solver_env_meanfield_analyzer). Instead of collapsing each stage to marginal mean queue lengths and re-seeding the next stage with initFromMarginal, this analyzer carries the entire state probability vector across environment switches and propagates it with the CTMC transient (matrix-exponential action) on the per-stage generator.

For each stage e with infinitesimal generator Q_e (supplied by a SolverCTMC inner solver) and entry distribution pi_enter{e}, one iteration computes the transient pi(t) = pi_enter{e} * exp(Q_e t) over the stage time span, then:

  • the exit distribution toward each destination h, pi_exit{e}{h}, as the expectation of pi(t) at the (random) e->h transition time, weighted by the increments of the e->h transition CDF proc{e}{h};

  • the sojourn-end distribution pi_timeavg{e}, weighted by the overall stage holding-time CDF holdTime{e}, used in the environment-averaged blend.

Entry distributions are chained as

pi_enter{e} = sum_h probOrig(h,e) * resetStateFun{h,e}(pi_exit{h}{e}),

renormalised, and iterated to an L1 fixed point. The blend reuses the discipline-aware CTMC marginal mapping (solver_ctmc_avg_from_pi).

This weighting scheme is identical to solver_env_meanfield_analyzer; the sole difference is that the full joint distribution is propagated and chained rather than its marginal means, so the two agree when the marginal collapse is exact and differ when inter-class/inter-station correlations matter.

Backend: requires a SolverCTMC inner solver (an explicit enumerated generator and state space). MAM/LDQBD backends are not yet supported.

Phase dispatch (called by the SolverENV EnsembleSolver hooks):

‘pre’ pre_(self,it) -> [] ‘analyze’ analyze_(self,it,e) -> [results_e, runtime] ‘post’ post_(self,it) -> [] ‘finish’ finish_(self) -> [] ‘converged’ converged_(self,it) -> bool

Copyright (c) 2012-2026, Imperial College London All rights reserved.

solver_env_meanfield_analyzer(self, phase, it, e)

SOLVER_ENV_MEANFIELD_ANALYZER Mean-field (marginal mean queue-length) coupling for SolverENV.

This analyzer implements the default (and historical) SolverENV coupling: every stage is solved transiently and reduced to its marginal mean queue lengths, which are carried across environment switches via initFromMarginal. This mean-field collapse discards the joint state distribution at the handoff; see solver_env_statevec_analyzer for the full state-vector alternative. It is the default analyzer (options.method other than ‘statevec’).

Phase dispatch (called by the SolverENV EnsembleSolver hooks):

‘pre’ pre_(self,it) -> [] ‘analyze’ analyze_(self,it,e) -> [results_e, runtime] ‘post’ post_(self,it) -> [] ‘finish’ finish_(self) -> [] ‘converged’ converged_(self,it) -> bool

Copyright (c) 2012-2026, Imperial College London All rights reserved.