Class DiffusionAnalyzer

java.lang.Object
jline.solvers.fluid.analyzers.DiffusionAnalyzer
All Implemented Interfaces:
FluidAnalyzer

public class DiffusionAnalyzer extends Object implements FluidAnalyzer
Diffusion approximation for closed multiclass BCMP networks.

Queue lengths are modelled as continuous variables driven by Brownian noise and integrated with the Euler-Maruyama scheme, which is the stochastic extension of the deterministic fluid limit. Each step takes the flow drift

   d(i,r) = sum_(j,s) x(j,s)/mu_inv(j,s) * P[(j,s)->(i,r)]  -  x(i,r)/mu_inv(i,r)
 
adds sqrt(dt)*N(0,1) per coordinate, reflects at zero and projects each class back onto its own population, which is the closed-network constraint the unconstrained SDE does not preserve.

Supported models: closed multiclass networks, scheduling PS / FCFS / INF / SIRO, single-server or infinite-server stations only.

IT IS A STOCHASTIC METHOD. Like SSA and LDES it draws from a seeded stream, so a run is reproducible for a fixed options.seed but is NOT expected to agree digit for digit with MATLAB, whose randn is a different generator. Everything else -- the drift, the reflection, the projection and the metric read-back -- is the reference's own.

Port of matlab/src/solvers/FLD/solver_fluid_diffusion.m.