MAMSolver is a tool that provides implementation for the matrix-analytic algorithms. The tool provides solutions for Markov chains of QBD, GI/M/1 and M/G/1-types.

On using the tool, please refer to the paper MAMSolver: A Matrix Analytic Methods Tool (BibTex, EndNote, ACM Ref) or the paper ETAQA Solutions for Infinite Markov Processes with Repetitive Structures (Bibtex, EndNote)


MAMSolver provides solutions for both continuous and discrete time Markov chains of QBD, GI/M/1 and M/G/1-types. The solution of these type of processes using the matrix-analytic methodology is characterized by matrix-based operations. The two most important matrices computed are R for QBD and GI/M/1-type processes and G for QBD and M/G/1-type processes.

These two important matrices in MAMSolver are computed using both classic and the most recent efficient algorithms. For example the matrix G and R for QBD processes are computed using the logarithmic reduction algorithm, while the matrix G for M/G/1-type processes is computed using the cyclic-reduction algorithm.

Now there are two versions of the MAMSolver written in different languages: (1), the C++ version; (2), the Matlab version. The input for C++ version MAMSolver is a text file which consists of the matrices of the infinitesimal generator. The input for Matlab version are matrices that describe the transition rates/probabilities for a Markov process. Check the example page for more details.

The Matlab version of the MAMSolver implements the ETAQA algorithm to solve the probabilities and moments of queue lengths. To use the Matlab version of MAMSolver's algorithm, one has to have G, R matrix ready which can be computed also by Matlab scripts provided in the website of Prof. dr. Benny Van Houdt

The output from Matlab version MAMSolver include the arregated probabilities of the Markov Chain and moments of queue length as specified in the input parameters. The output from C++ version MAMSolver consists of:

  • system load measured using the drift condition and caudal charateristic (file "drift -conditions")
  • matrix G (file "G-matrix")
  • matrix R (file "R-matrix")
  • stationary probability distribution (file "probability")
  • queue length distribution (file "QL-dist")
  • average queue length (file "QL-length")

More information on the structure of MAMSolver can be found in the paper presented at the TOOLS 2002 conference (ps, or pdf)

This work has been supported by National Science Foundation under grants ITR-0428330, CNS-0720699, EIA-9974992, CCR-0098278, and ACI-0090221.

Latest News

    New Matlab Script Version

    A Matlab Version ETAQA has been implemented and ready for test! Check the examples.

    New MAMSolver Site Live

    The MAMSolver website has been renovated.