Class BMAP

All Implemented Interfaces:
Serializable, 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.
See Also:
  • Constructor Details

    • BMAP

      public BMAP()
      Default constructor creating an empty BMAP
    • BMAP

      public BMAP(MatrixCell bmap)
      Construct a BMAP from a MatrixCell containing {D0, D1, D2, ..., Dk}
      Parameters:
      bmap - MatrixCell where: - bmap.get(0) = D0 (transitions without arrivals) - bmap.get(k) = Dk (transitions generating k arrivals) for k >= 1
    • BMAP

      public BMAP(Matrix D0, 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 Details

    • getName

      public String getName()
      Returns the name of this distribution type.
      Overrides:
      getName in class Distribution
      Returns:
      "BMAP" to identify this as a Batch Markovian Arrival Process
    • fromMAPWithBatchPMF

      public static BMAP fromMAPWithBatchPMF(Matrix D0, Matrix D1, int[] batchSizes, 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., [1, 2, 4, 8])
      pmf - probability mass function for batch sizes (must sum to 1)
      Returns:
      a BMAP constructed from the base MAP and batch distribution
    • getMaxBatchSize

      public int getMaxBatchSize()
      Get the maximum batch size supported by this BMAP
      Returns:
      the maximum batch size k where Dk is defined
    • getMeanBatchSize

      public 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

      public 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

      public 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
    • toString

      public String toString()
      Overrides:
      toString in class Object