## Uses of Interface
jmarkov.basic.JMarkovElement

- Packages that use JMarkovElement
  Package | Description
  --- | ---
  examples.jmarkov |
  examples.jmdp |
  examples.jphase |
  jmarkov | Provides the basic elements to model continuous time Markov chains (CTMC).
  jmarkov.basic | This package contains basic elements such as State, Event, Action that are used in jMarkov and jMDP
  jmarkov.jmdp.solvers | This package contins the framwork of solvers used by jMDP to solve Markov Decision Processes.
  jmarkov.solvers | Provides classes for customizing a solver used by JMarkov to solve transient and steady state probabilities in different models.
  jphase | This package provides capabilities for modeling Phase type distributions.

- - ### Uses of JMarkovElement in examples.jmarkov

    Classes in examples.jmarkov that implement JMarkovElement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AccessControl2Queues` This class represents a network with 2 queues in tandem, where the second queue has a buffer of size B and the first has a unit buffer.
    `class` | `BBPhase` This is the Java implementation for the Bucket Brigades System using Phase Distribution.
    `class` | `BBPhBuf` This class is a java implementation of Bucket Brigades System using Phase Distribution and buffers among the stations.
    `class` | `BBPhBufExp` This class model a Bucket Brigades production line with phase type service times.
    `class` | `BucketBrigades` This class describes a Bucket Brigades system with no intermediate buffers, N workers and M machines with possibly uneven working velocities.
    `class` | `BucketBuffers` Model of a Bucket Brigades production system with buffers.
    `class` | `DriveThru` This class implements a Drive Thru.
    `class` | `ErlangQueue` This class implements a system with N servers with erlang services.
    `class` | `HiperExQueue` This class implements a system with one server with PH service.
    `class` | `Jackson` This class represents a "Closed Jackson Network" with numStations multi-server workstations and N entities in the system.
    `class` | `Kanban` This class implements a Kanban system with one card.
    `class` | `PHLine` This class implements a system with two tandem servers, each one with a PH service.
    `class` | `PickBlockNarrow` This class represents a Narrow Aisle Picking System with 2 pickers, n picklocs and a infinity:1 pick/walk speed ratio.
    `class` | `PickBlockNarrowCont` This class represents a Narrow Aisle Picking System with 2 pickers n picklocs and exponential picking and walking times, each time can be different for each picker.
    `class` | `PickBlockNarrowSlow` This class represents a Narrow Aisle Picking System with 2 pickers n picklocs and a 1:1 pick/walk speed ratio.
    `class` | `PickBlockWide` This class represents a Wide Aisle Picking System with 2 pickers n picklocs and a infinity:1 pick/walk speed ratio.
    `class` | `PickBlockWideContKPickers_V3` This class represents a Wide Aisle Picking System with 2 pickers n picklocs and exponential picking and walking times, each time is different for each picker.
    `class` | `PickBlockWideSlow` This class represents a Wide Aisle Picking System with 2 pickers n picklocs and a 1:1 pick/walk speed ratio.
    `class` | `QueueMEk1` This example represents a queueing system with Poisson arrivals at rate lambda' if the system is empty, and a rate lambda otherwise.
    `class` | `QueueMH2k1` This example represents a queueing system with Poisson arrivals at rate $\lambda’$ if the system is empty, and a rate $\lambda$ otherwise.
    `class` | `QueueMM1N` This class implements an M/M/1/N queue.
    `class` | `QueueMM2dN` This class represents a system with 2 different exponential servers with rates mu1 and mu2, respectively, and arrival rate lambda.
    `class` | `QueueMMKdN` This class represents is a system with K different exponential servers with rates mu1, mu2, etc, respectively, and arrival rate lambda.
    `class` | `QueuePhPh2` This class implements a system whit two tandem servers each one with a phase service.
    `class` | `Web` This is an example of a web server that can receive different M types of items and can serve N simultaneous items with a maximum queue capacity of MaxQueue.

  - ### Uses of JMarkovElement in examples.jmdp

    Classes in examples.jmdp that implement JMarkovElement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Admit` This class represents an admission or rejection in an admission control model.
    `class` | `DemandEvent` This class represent a demand event in an inventory system and it is used by many examples.
    `class` | `InvLevel` This class allows to represent a State with a songle integer.
    `class` | `Order` This class represents an order in an inventory system.
    `class` | `TandemEvent` This class represents an event in a tandem queuing system it is used by the Access Control examples
    `class` | `TandemQueues` This class represents a state in a tandem queuing system it is used by the Access Control examples

  - ### Uses of JMarkovElement in examples.jphase

    Classes in examples.jphase that implement JMarkovElement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `PhaseSystem`

  - ### Uses of JMarkovElement in jmarkov

    Classes in jmarkov that implement JMarkovElement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `GeomProcess<Sub extends State,E extends Event>` The class GeomProcess represents a continuos or discrete Quasi Birth and Death process.
    `class` | `GeomRelState<Sub extends State>` This class is used to build destinations which are relative to a given GeomState.
    `class` | `GeomState<Sub extends State>` The actual Geometric model is build using this class.
    `class` | `MarkovProcess<S extends State,E extends Event>` The abstract class SimpleMarkovProcess represents a Continuous or Discrete Time Markov Chain.
    `class` | `SimpleMarkovProcess<S extends State,E extends Event>`

  - ### Uses of JMarkovElement in jmarkov.basic

    Subinterfaces of JMarkovElement in jmarkov.basic
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `PropertiesElement` This interface is a wrapper for elements (States, Actions Events) that can be represented by an arry of integers.
    `interface` | `Transitions<S extends State>`

    Classes in jmarkov.basic that implement JMarkovElement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Action` This class represents a single Action in Markov Decision Process (MDP).
    `class` | `DecisionRule<S extends State,A extends Action>` This class represents a deterministic decision rule which assigns an action to every state.
    `class` | `Event` The class Event allows the user to define the implementation of the Events that can alter the States of the Markov Chain.
    `class` | `PropertiesAction` This class is an easy way to use a Action that is represented by an integer valued array.
    `class` | `PropertiesEvent` This class is an easy way to use an event that is represented by an array of int.
    `class` | `PropertiesState` The states are characterized by an array of integer-valued properties, whose meaning will change from implementation to implementation.
    `class` | `State` The Class State represent a state in a MarkovProcess or MDP.
    `class` | `StateC` State to model shortest path problems.
    `class` | `StateEvent<S extends State,E extends Event>` This class represents a state compounded of a state and an event.
    `class` | `Transition<S extends State>` This class represent a transition to a given state.
    `class` | `TransitionsSet<S extends State>`
    `class` | `ValueFunction<S extends State>` This structure matches each state with a double number representing its value function, or in some cases the steady state probabilities.

  - ### Uses of JMarkovElement in jmarkov.jmdp.solvers

    Classes in jmarkov.jmdp.solvers that implement JMarkovElement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractAverageSolver<S extends State,A extends Action>` Structural class for average cost solvers to extend.
    `class` | `AbstractDiscountedSolver<S extends State,A extends Action>` This is a structural class that must be extended by classes solving the dicounted cost minimization problem.
    `class` | `AbstractFiniteSolver<S extends State,A extends Action>` Structural class for solvers to extend in order to solve finite horizon problems.
    `class` | `AbstractInfiniteSolver<S extends State,A extends Action>` Structural class to be extended by solvers in order to solve infinite horizon problems
    `class` | `AbstractTotalSolver<S extends State,A extends Action>` Structural class to be extended by solvers in order to solve the total cost criteria for an infinite horizon problem
    `class` | `FiniteSolver<S extends State,A extends Action>` This class belongs to the set of default solvers included in the jmdp package.
    `class` | `LPBCLAverageSolver<S extends State,A extends Action>` This solver solves a average-cost infinite horizon MDP by building and solving a linear problem using as interface Xpress BCL.
    `class` | `LPBCLDiscountedSolver<S extends State,A extends Action>` This solver solves a discounted infinite horizon MDP by building and solving a linear problem using as interface Xpress BCL.
    `class` | `MpsLpAverageSolver<S extends State,A extends Action>` This class builds the Dual Linear Program for an average infinite horizon MDP in a MPS file.
    `class` | `MpsLpDiscountedSolver<S extends State,A extends Action>` This class builds a Linear Program for a discounted infinite horizon MDP in a MPS file.
    `class` | `MPSQsOptAverageSolver<S extends State,A extends Action>` This solver solves an average infinite horizon MDP by building and solving a linear problem using as interface QSopt-Optimizer.
    `class` | `MPSQsOptDiscountedSolver<S extends State,A extends Action>` This solver solves an discounted infinite horizon MDP by building and solving a linear problem using as interface QSopt-Optimizer.
    `class` | `MPSXpressAverage<S extends State,A extends Action>` This solver solves an average infinite horizon MDP by building and solving a linear problem using as interface Xpress-Optimizer.
    `class` | `MPSXpressDiscounted<S extends State,A extends Action>` This solver solves a discounted infinite horizon MDP by building and solving a linear problem using as interface Xpress-Optimizer.
    `class` | `PolicyIterationSolver<S extends State,A extends Action>` This class solves infinite horizon discounted problems using the policy iteration algorithm.
    `class` | `PolicyIterationSolverAvg<S extends State,A extends Action>` This class solves infinite horizon non-discounted problems using the policy iteration algorithm.
    `class` | `RelativeValueIterationSolver<S extends State,A extends Action>` This class solves the average cost criteria for infinite horizon problems
    `class` | `StochasticShortestPathSolver<S extends StateC,A extends Action>` This solver gives a solution for the minimization of the total cost criterion for an infinite horizon MDP.
    `class` | `ValueIterationSolver<S extends State,A extends Action>` This class belongs to the set of default solvers included in the jmdp package.

  - ### Uses of JMarkovElement in jmarkov.solvers

    Classes in jmarkov.solvers that implement JMarkovElement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `GeometricSolver` Abstract class that defines a Geometric solver for QBD processes
    `class` | `GeometrixSolver`
    `class` | `JamaSolver` Solver implementation for steady state, using JAMA
    `class` | `JamaTransientSolver` This class claculate the transient probabilities.
    `class` | `MtjLogRedSolver` This class implements the Logarithmic reduction algorithm to find the steady state probabilities of a QBD process
    `class` | `MtjSolver` This class uses MTJ to solve Steady State probabilities.
    `class` | `Solver` This abstract class has to be extended in order to implement solvers for Steady State and Transient probabilities.
    `class` | `SteadyStateSolver` An abstract class for steady state solver.
    `class` | `TransientSolver` An abstract class for Transient solvers.

  - ### Uses of JMarkovElement in jphase

    Subinterfaces of JMarkovElement in jphase
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `ContPhaseVar` This interface defines the methods and attributes that any Continuous Phase-Type distribution should have
    `interface` | `DiscPhaseVar` This interface defines the behaviour that any Discrete Phase-Type distribution should have
    `interface` | `PhaseVar` This interface defines the methods and attributes that any Phase-Type distribution should have

    Classes in jphase that implement JMarkovElement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractContPhaseVar` Abstract class that defines a Continuous Phase-Type Distribution
    `class` | `AbstractDiscPhaseVar` Abstract class that defines the behaviour of the Discrete Phase-Type distributions
    `class` | `DenseContPhaseVar` This class allows the creation and manipulation of Continuous Phase-type distributions represented by dense matrices.
    `class` | `DenseDiscPhaseVar` This class allows the creation and manipulation of Discrete Phase-type distributions represented by dense matrices.
    `class` | `ErlangCoxianVar` Phase-Type representation of an ErlangCoxian distribution as defined by Osogami and Harchol in "Closed form solutions for mapping general distributions to quasi-minimal PH distributions", 2005.
    `class` | `HyperErlangVar` This class allows the creation and manipulation of HyperErlang distributions.
    `class` | `HypoExponentialVar` This class allows the creation and manipulation of hypoexponential distributions.
    `class` | `SparseContPhaseVar` This class allows the creation and manipulation of Continuous Phase-type distributions represented by sparse (Flexible Compressed Row) matrices.
    `class` | `SparseDiscPhaseVar` This class allows the creation and manipulation of Discrete Phase-type distributions represented by sparse (Flexible Compressed Row) matrices.