Class CyclicPoisson

All Implemented Interfaces:
Serializable, Copyable

public class CyclicPoisson extends ContinuousDistribution implements Serializable
A cyclic Poisson arrival process with deterministic phase switching.

In phase i, arrivals follow Poisson(rates[i]) for exactly durations[i] time units, then the rate switches deterministically to phase (i+1) % n. The schedule repeats cyclically.

Unlike a MAP, which uses exponential holding times to approximate the phase schedule stochastically, this process fires rate-change events at exact phase boundaries in the LDES simulation engine.

The process representation stores:

  • getProcess().get(0) — 1×n matrix of arrival rates
  • getProcess().get(1) — 1×n matrix of phase durations

Solver support. Only the LDES simulation engine honours the exact phase schedule. CyclicPoisson is declared solely in the LDES feature set, so every analytical solver (MVA, NC, CTMC, MAM, FLD, JMT, SSA) rejects a model using it via the standard unsupported-feature check.

See Also:
  • Constructor Details

    • CyclicPoisson

      public CyclicPoisson(double[] rates, double[] durations)
      Creates a cyclic Poisson process.
      Parameters:
      rates - arrival rates per phase (arrivals per time unit), length n
      durations - duration of each phase in the same time unit, length n
  • Method Details

    • getRates

      public double[] getRates()
      Returns a copy of the arrival rates array.
    • getDurations

      public double[] getDurations()
      Returns a copy of the phase durations array.
    • getNumPhases

      public int getNumPhases()
      Returns the number of phases in the cyclic schedule.
    • getTimeAverageRate

      public double getTimeAverageRate()
      Computes the time-average arrival rate: sum(rates[i]*durations[i]) / sum(durations[i]).
    • getMean

      public double getMean()
      Description copied from class: Distribution
      Gets the mean (expected value) of this distribution.
      Specified by:
      getMean in class Distribution
      Returns:
      the mean value
    • getSCV

      public double getSCV()
      Returns 1.0 as a representative SCV (used only if Erlang conversion is attempted).
      Specified by:
      getSCV in class Distribution
      Returns:
      the squared coefficient of variation
    • getSkewness

      public double getSkewness()
      Description copied from class: Distribution
      Gets the skewness of this distribution. Skewness measures the asymmetry of the probability distribution.
      Specified by:
      getSkewness in class Distribution
      Returns:
      the skewness value
    • evalCDF

      public double evalCDF(double t)
      Description copied from class: Distribution
      Evaluates the cumulative distribution function (CDF) at the given point.
      Specified by:
      evalCDF in class Distribution
      Parameters:
      t - the point at which to evaluate the CDF
      Returns:
      the CDF value at point t
    • evalLST

      public double evalLST(double s)
      Description copied from class: Distribution
      Evaluate the Laplace-Stieltjes Transform at s
      Specified by:
      evalLST in class ContinuousDistribution
      Parameters:
      s - the Laplace domain variable
      Returns:
      the LST value at s
    • getProcess

      public MatrixCell getProcess()
      Description copied from class: ContinuousDistribution
      Gets the process representation with actual distribution parameters. Returns a MatrixCell containing the distribution parameters.
      Specified by:
      getProcess in class ContinuousDistribution
      Returns:
      MatrixCell with distribution-specific parameters
    • sample

      public double[] sample(int n, Random random)
      Description copied from class: Distribution
      Generates random samples from this distribution using the specified random generator.
      Specified by:
      sample in class Distribution
      Parameters:
      n - the number of samples to generate
      random - the random number generator to use
      Returns:
      array of random samples
    • toString

      public String toString()
      Overrides:
      toString in class Object