Class BMAP

  • All Implemented Interfaces:
    java.io.Serializable , jline.lang.Copyable

    
    public class BMAP
    extends MarkedMAP implements Serializable
                        

    A Batch Markovian Arrival Process (BMAP) BMAP is a point process where arrivals occur in batches. Uses the standard BMAP representation: - D0: infinitesimal generator for transitions without arrivals - D1: rate matrix for transitions generating 1 arrival - D2: rate matrix for transitions generating 2 arrivals - ... - Dk: rate matrix for transitions generating k arrivals BMAP extends MarkedMAP where each "mark" k represents a batch size k.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Constructor Summary

      Constructors 
      Constructor Description
      BMAP() Default constructor creating an empty BMAP
      BMAP(MatrixCell bmap) Construct a BMAP from a MatrixCell containing {D0, D1, D2, ...
      BMAP(Matrix D0, Array<Matrix> Dk) Construct a BMAP from D0 and variable number of Dk matrices
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      String getName() Returns the name of this distribution type.
      static BMAP fromMAPWithBatchPMF(Matrix D0, Matrix D1, Array<int> batchSizes, Array<double> pmf) Factory method to create BMAP from a base MAP and batch size distribution Given a base MAP (D0_base, D1_base) for inter-batch arrivals and a batch size distribution, constructs the BMAP by scaling: Dk = D1_base * pmf[k-1]
      int getMaxBatchSize() Get the maximum batch size supported by this BMAP
      double getMeanBatchSize() Get the mean batch size (expected number of arrivals per batch) Computed as weighted average of batch sizes by their rates: E[batch size] = sum(k * rate_k) / sum(rate_k)
      Array<double> getBatchRates() Get the arrival rates for each batch size
      Matrix getBatchMatrix(int batchSize) Get the D_k matrix for batch size k
      String toString()
      • Methods inherited from class jline.lang.processes.MarkedMAP

        normalize, sample, sample, toTimeReversed
      • Methods inherited from class jline.lang.processes.Marked

        D, D, getD1k
      • Methods inherited from class jline.lang.processes.MarkovModulated

        evalACFT, getACFDecay
      • Methods inherited from class jline.lang.processes.Markovian

        acf, embedded, embeddedProb, evalCDF, evalCDF, evalLST, evalMeanT, evalVarT, getACF, getEmbedded, getEmbeddedProb, getIDC, getIDI, getInitProb, getMean, getMoments, getMu, getNumberOfPhases, getPhi, getProcess, getRate, getSCV, getSkewness, getSubgenerator, getVar, getVariance, idc, idi, initProb, mean, moments, mu, numPhases, numberOfPhases, phi, process, rate, scv, setMean, setProcess, setRate, skewness, subgenerator, var, variance
      • Methods inherited from class jline.lang.processes.Distribution

        evalProbInterval, getNumParams, getParam, getSupport, isContinuous, isDisabled, isDiscrete, isImmediate, isMarkovian, name, numParams, param, setNumParams, setParam, support
      • Methods inherited from class jline.lang.Copyable

        copy
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BMAP

        BMAP()
        Default constructor creating an empty BMAP
      • BMAP

        BMAP(MatrixCell bmap)
        Construct a BMAP from a MatrixCell containing {D0, D1, D2, ...
        Parameters:
        bmap - MatrixCell where: - bmap.get(0) = D0 (transitions without arrivals) - bmap.
      • BMAP

        BMAP(Matrix D0, Array<Matrix> Dk)
        Construct a BMAP from D0 and variable number of Dk matrices
        Parameters:
        D0 - the infinitesimal generator for transitions without arrivals
        Dk - variable number of matrices where Dk[i-1] represents transitions generating i arrivals
    • Method Detail

      • getName

         String getName()

        Returns the name of this distribution type.

        Returns:

        "BMAP" to identify this as a Batch Markovian Arrival Process

      • fromMAPWithBatchPMF

         static BMAP fromMAPWithBatchPMF(Matrix D0, Matrix D1, Array<int> batchSizes, Array<double> pmf)

        Factory method to create BMAP from a base MAP and batch size distribution Given a base MAP (D0_base, D1_base) for inter-batch arrivals and a batch size distribution, constructs the BMAP by scaling: Dk = D1_base * pmf[k-1]

        Parameters:
        D0 - the base MAP's D0 matrix (transitions without batch arrivals)
        D1 - the base MAP's D1 matrix (inter-batch arrival transitions)
        batchSizes - array of batch sizes (e.g.
        pmf - probability mass function for batch sizes (must sum to 1)
        Returns:

        a BMAP constructed from the base MAP and batch distribution

      • getMaxBatchSize

         int getMaxBatchSize()

        Get the maximum batch size supported by this BMAP

        Returns:

        the maximum batch size k where Dk is defined

      • getMeanBatchSize

         double getMeanBatchSize()

        Get the mean batch size (expected number of arrivals per batch) Computed as weighted average of batch sizes by their rates: E[batch size] = sum(k * rate_k) / sum(rate_k)

        Returns:

        the mean batch size

      • getBatchRates

         Array<double> getBatchRates()

        Get the arrival rates for each batch size

        Returns:

        array where result[k-1] is the rate of batch size k arrivals

      • getBatchMatrix

         Matrix getBatchMatrix(int batchSize)

        Get the D_k matrix for batch size k

        Parameters:
        batchSize - the batch size (1, 2, 3, ...
        Returns:

        D_k matrix for the specified batch size, or null if out of range