Class MinNormalAnalyzer

All Implemented Interfaces:
FluidAnalyzer

public class MinNormalAnalyzer extends ClosingAndStateDepMethodsAnalyzer
Second-order moment-closure fluid analysis, backing options.method='minnormal'. Java twin of the MATLAB solver_fluid_moments.

The default fluid methods close the moment hierarchy at first order: the drift of the mean depends on E[min(X_i,c_i)], which they replace by min(E[X_i],c_i). No second moment ever enters, so no variance is produced and the mean itself is biased wherever min() is not locally linear. This analyzer reinstates the second moment with the min-normal closure of Guenther, Stefanek and Bradley: the drift uses E[min(X_i,c_i)] under a normal marginal whose variance is produced by the covariance (Lyapunov) equation, so mean and covariance are solved self-consistently by fixed-point iteration. This corrects the mean, most visibly near rho = 1 where the first-order closure is worst, and it is the only fluid method that can represent GPS at all.

All performance measures are read back from the same event representation that defines the drift, so throughputs balance flow at the fixed point under whichever closure was used. That is also why this analyzer does not reuse the closing metric reader, which accepts SIRO as FCFS and has no GPS branch.

See Also:
  • Field Details

    • sigmaMatrix

      public Matrix sigmaMatrix
      State-level stationary covariance at the converged fixed point.
    • qVar

      public Matrix qVar
      Per-(station,class) queue-length variance.
    • classBlock

      public int[][] classBlock
      State coordinates of each (station,class), flattened as i*K+k.
    • stationBlock

      public int[][] stationBlock
      State coordinates of each station, i.e. every class and phase it serves.
    • sigma2

      public double[] sigma2
      Per-station population variance.
    • sigma2Drift

      public double[] sigma2Drift
      The same variance as it enters the DRIFT: zero at the delay stations, which have no min() to close. This, not sigma2, is what any later solve on the same fixed point (the passage-time ODE) must close its capacity term at, or it evaluates a first-order drift at a second-order fixed point.
    • outerIters

      public int outerIters
      Number of outer (mean, covariance) iterations performed.
  • Constructor Details

    • MinNormalAnalyzer

      public MinNormalAnalyzer()
  • Method Details