Algorithm 972: JMarkov: An integrated framework for Markov chain modeling

Juan F. Pérez, Daniel F. Silva, Julio C. Góez, Germán Riaño, Andrés Sarmiento, Andrés Sarmiento-Romero, Raha Akhavan-Tabatabaei

Research output: Contribution to journalArticlepeer-review

4 Scopus citations


Markov chains (MC) are a powerful tool for modeling complex stochastic systems. Whereas a number of tools exist for solving different types ofMCmodels, the first step inMCmodeling is to define themodel parameters. This step is, however, error prone and far from trivial when modeling complex systems. In this article, we introduce jMarkov, a framework for MC modeling that provides the user with the ability to define MC models from the basic rules underlying the system dynamics. From these rules, jMarkov automatically obtains the MC parameters and solves the model to determine steady-state and transient performance measures. The jMarkov framework is composed of four modules: (i) the main module supports MC models with a finite state space; (ii) the jQBD module enables the modeling of Quasi-Birth-and-Death processes, a class of MCs with infinite state space; (iii) the jMDP module offers the capabilities to determine optimal decision rules based on Markov Decision Processes; and (iv) the jPhase module supports the manipulation and inclusion of phase-type variables to representmore general behaviors than that of the standard exponential distribution. In addition, jMarkov is highly extensible, allowing the users to introduce new modeling abstractions and solvers.

Translated title of the contributionAlgoritmo 972: JMarkov: Un marco integrado para el modelado de cadenas de Markov
Original languageEnglish (US)
Article number29
JournalACM Transactions on Mathematical Software
Issue number3
StatePublished - Jan 1 2017

All Science Journal Classification (ASJC) codes

  • Software
  • Applied Mathematics


Dive into the research topics of 'Algorithm 972: JMarkov: An integrated framework for Markov chain modeling'. Together they form a unique fingerprint.

Cite this