## Uses of Class
jmarkov.basic.State

- Packages that use State
  Package | Description
  --- | ---
  examples.jmdp |
  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 | jMDP is used to solve Markov Decision Processes.
  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.

- - ### Uses of State in examples.jmdp

    Subclasses of State in examples.jmdp
    Modifier and Type | Class and Description
    --- | ---
    `class` | `InvLevel` This class allows to represent a State with a songle integer.
    `class` | `TandemQueues` This class represents a state in a tandem queuing system it is used by the Access Control examples

  - ### Uses of State in jmarkov

    Classes in jmarkov with type parameters of type State
    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>`

    Subclasses of State in jmarkov
    Modifier and Type | Class and Description
    --- | ---
    `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.

    Methods in jmarkov that return State
    Modifier and Type | Method and Description
    --- | ---
    `Sub[]` | GeomProcess.`getBoundaryStates()` Returns an array with the States in the boundary level.
    `Sub[]` | GeomProcess.`getTypicalStates()` Returns an array with the States in the typical levels.

    Methods in jmarkov with parameters of type State
    Modifier and Type | Method and Description
    --- | ---
    `int` | GeomRelState.`compareTo(State s)` Compares GeomStates according to rLevel first and then according to the subStates comparator.
    `int` | GeomState.`compareTo(State s)` Compares GeomStates according to level first and then according to the subStates comparator.

  - ### Uses of State in jmarkov.basic

    Classes in jmarkov.basic with type parameters of type State
    Modifier and Type | Class and Description
    --- | ---
    `class` | `DecisionRule<S extends State,A extends Action>` This class represents a deterministic decision rule which assigns an action to every state.
    `class` | `Policy<S extends State,A extends Action>` Policy is a set of "Decision Rules".
    `class` | `Solution<S extends State,A extends Action>` This class represents the joint information of a value function and a policy which summarizes the solution to a problem.
    `class` | `StateEvent<S extends State,E extends Event>` This class represents a state compounded of a state and an event.
    `interface` | `States<S extends State>` This interface represents a set of objects State.
    `class` | `StatesSet<S extends State>` This class represent a set of States.
    `class` | `Transition<S extends State>` This class represent a transition to a given state.
    `interface` | `Transitions<S extends 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.

    Subclasses of State in jmarkov.basic
    Modifier and Type | Class and Description
    --- | ---
    `class` | `PropertiesState` The states are characterized by an array of integer-valued properties, whose meaning will change from implementation to implementation.
    `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.

    Methods in jmarkov.basic that return State
    Modifier and Type | Method and Description
    --- | ---
    `S[]` | StatesSet.`toStateArray()` Returns an array with the States in the set.

    Methods in jmarkov.basic with parameters of type State
    Modifier and Type | Method and Description
    --- | ---
    `int` | StateEvent.`compareTo(State i)`
    `abstract int` | State.`compareTo(State j)` The method compareTo should be implemented in order to establish a total ordering among the States.
    `int` | PropertiesState.`compareTo(State s)`

    Constructors in jmarkov.basic with parameters of type State
    Constructor and Description
    `StatesSet(S[] states)` Creates a set of objects S from a given set of States.

  - ### Uses of State in jmarkov.jmdp

    Classes in jmarkov.jmdp with type parameters of type State
    Modifier and Type | Class and Description
    --- | ---
    `class` | `CT2DTConverter<S extends State,A extends Action>` This class formulates a DTMDP equivalent to a CTMDP.
    `class` | `CTMDP<S extends State,A extends Action>` This class represents a continuous time MDP.
    `class` | `CTMDPEv<S extends State,A extends Action,E extends Event>` This class represents an Infinite horizon, continuous time Markov Decision Process with events.
    `class` | `CTMDPEvA<S extends State,A extends Action,E extends Event>` This class represents an Infinite horizon, continuous time Markov Decision Process with events where actions depend on events.
    `class` | `DTMDP<S extends State,A extends Action>` This class represents a discrete time infnite horizon MDP problem.
    `class` | `DTMDPEv<S extends State,A extends Action,E extends Event>` This class represents an infinite horizon, discrete time, Markov Decision Process with events.
    `class` | `DTMDPEvA<S extends State,A extends Action,E extends Event>` This class represents an infinite horizon, discrete time, Markov Decision Process with events, where actions depend on events.
    `class` | `FiniteDP<S extends State,A extends Action>` This class should ONLY be used in FINITE horizon deterministic problems.
    `class` | `FiniteMDP<S extends State,A extends Action>` This class should ONLY be used in FINITE horizon problems.
    `class` | `FiniteMDPEv<S extends State,A extends Action,E extends Event>` This class represents a finite horizon discrete time MDP with events.
    `class` | `InfiniteMDP<S extends State,A extends Action>` This class is a structural class.
    `class` | `MDP<S extends State,A extends Action>` This class is the main framework to build a Dynamic Programming Problem.

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

    Classes in jmarkov.jmdp.solvers with type parameters of type State
    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.
    `interface` | `LPSolver<S extends State,A extends Action>`
    `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.
    `interface` | `MpsLpSolver<S extends State,A extends Action>` This interface define the minimium elements for creating 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` | `ProbabilitySolver<S extends State,A extends Action>` This class is designed to calculate the long run probabilities of infinite horizon problem.
    `class` | `RelativeValueIterationSolver<S extends State,A extends Action>` This class solves the average cost criteria for infinite horizon problems
    `class` | `Solver<S extends State,A extends Action>` Structural class for every solver.
    `class` | `ValueIterationSolver<S extends State,A extends Action>` This class belongs to the set of default solvers included in the jmdp package.

  - ### Uses of State in jmarkov.solvers

    Methods in jmarkov.solvers with parameters of type State
    Modifier and Type | Method and Description
    --- | ---
    `double[][]` | TransientSolver.`getTransientProbs(double[] times, State i0)` Computes the steady state probabilities at this given times, assuming the Markov Chain starts in the given state i0.
    `double[][]` | JamaTransientSolver.`getTransientProbs(double[] times, State i0)`
    `abstract double[]` | TransientSolver.`getTransientProbs(double time, State i0)` Computes the steady state probabilities at this given time, assuming the Markov Chain starts in the given state i0.
    `double[]` | JamaTransientSolver.`getTransientProbs(double time, State i0)`
    `double[][]` | TransientSolver.`getTransientProbs(int NumberPoints, double delta, State i0)` Computes the steady state probabilities at times delta, 2delta, 3delta,..., assuming the Markov Chain starts in the given state i0.
    `double[][]` | JamaTransientSolver.`getTransientProbs(int NumberPoints, double delta, State i0)`