## Uses of Interface
jmarkov.basic.States

- Packages that use States
  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 | jMDP is used to solve Markov Decision Processes.

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

    Methods in examples.jmarkov that return States
    Modifier and Type | Method and Description
    --- | ---
    `States<examples.jmarkov.AccessControl2QueuesState>` | AccessControl2Queues.`dests(examples.jmarkov.AccessControl2QueuesState i, examples.jmarkov.AccessControl2QueuesEvent e)`
    `States<examples.jmarkov.BBPhaseState>` | BBPhase.`dests(examples.jmarkov.BBPhaseState i, examples.jmarkov.BBPhaseEvent e)`
    `States<examples.jmarkov.BucketState>` | BucketBrigades.`dests(examples.jmarkov.BucketState i, examples.jmarkov.BucketEvent e)` This function returns an array of states that are reached from a state i after the event e has ocurred.
    `States<examples.jmarkov.BucketStateBuf>` | BucketBuffers.`dests(examples.jmarkov.BucketStateBuf i, examples.jmarkov.BucketEventBuf e)` This function returns an array of states that are reached from a state i after the event e has ocurred.
    `States<examples.jmarkov.DriveThruState>` | DriveThru.`dests(examples.jmarkov.DriveThruState i, examples.jmarkov.DriveThruEvent e)` Computes the status of the destination when an event occurs
    `States<examples.jmarkov.JacksonState>` | Jackson.`dests(examples.jmarkov.JacksonState i, examples.jmarkov.JacksonEvent e)`
    `States<examples.jmarkov.KanbanState>` | Kanban.`dests(examples.jmarkov.KanbanState i, examples.jmarkov.KanbanEvent ev)`
    `States<examples.jmarkov.MM2dNState>` | QueueMM2dN.`dests(examples.jmarkov.MM2dNState i, examples.jmarkov.QMM2dNEvent e)`
    `States<examples.jmarkov.PickBlockNarrowContState>` | PickBlockNarrowCont.`dests(examples.jmarkov.PickBlockNarrowContState i, examples.jmarkov.PickBlockNarrowContEvent e)`
    `States<examples.jmarkov.PickBlockNarrowSlowState>` | PickBlockNarrowSlow.`dests(examples.jmarkov.PickBlockNarrowSlowState i, examples.jmarkov.PickBlockNarrowSlowEvent e)`
    `States<examples.jmarkov.PickBlockNarrowState>` | PickBlockNarrow.`dests(examples.jmarkov.PickBlockNarrowState i, examples.jmarkov.PickBlockNarrowEvent e)`
    `States<examples.jmarkov.PickBlockWideContKPickers_V3State>` | PickBlockWideContKPickers_V3.`dests(examples.jmarkov.PickBlockWideContKPickers_V3State i, examples.jmarkov.PickBlockWideContKPickers_V3Event e)`
    `States<examples.jmarkov.PickBlockWideSlowState>` | PickBlockWideSlow.`dests(examples.jmarkov.PickBlockWideSlowState i, examples.jmarkov.PickBlockWideSlowEvent e)`
    `States<examples.jmarkov.PickBlockWideState>` | PickBlockWide.`dests(examples.jmarkov.PickBlockWideState i, examples.jmarkov.PickBlockWideEvent e)`
    `States<examples.jmarkov.QueueMM1NState>` | QueueMM1N.`dests(examples.jmarkov.QueueMM1NState i, examples.jmarkov.QueueMM1NEvent e)`
    `States<examples.jmarkov.QueueMMKdNState>` | QueueMMKdN.`dests(examples.jmarkov.QueueMMKdNState i, examples.jmarkov.QueueMMKdNEvent e)`
    `States<examples.jmarkov.WebState>` | Web.`dests(examples.jmarkov.WebState i, examples.jmarkov.WebEvent e)`

  - ### Uses of States in examples.jmdp

    Methods in examples.jmdp that return States
    Modifier and Type | Method and Description
    --- | ---
    `States<examples.jmdp.AnimalWeight>` | CattleGrowth.`reachable(examples.jmdp.AnimalWeight arg0, examples.jmdp.AnimalActions arg1, int t)`
    `States<examples.jmdp.BankQueues>` | Bank2Queues.`reachable(examples.jmdp.BankQueues i, examples.jmdp.BankServers a)`
    `States<examples.jmdp.CTStockE>` | CTInventoryEvents.`reachable(examples.jmdp.CTStockE i, Order a, examples.jmdp.CTInventoryEvent e)`
    `States<examples.jmdp.CTStock>` | CTInventory.`reachable(examples.jmdp.CTStock i, Order a)`
    `States<InvLevel>` | ProbsExample.`reachable(InvLevel i, Order a)`
    `States<InvLevel>` | InfStochasticDemand.`reachable(InvLevel i, Order a)`
    `States<InvLevel>` | ControlProdNonEvents.`reachable(InvLevel i, Order a)`
    `States<InvLevel>` | ControlProduccion.`reachable(InvLevel i, Order a, DemandEvent e)`
    `States<InvLevel>` | StochasticDemand.`reachable(InvLevel i, Order a, int t)`
    `States<InvLevel>` | Inventory.`reachable(InvLevel i, Order a, int t)`
    `States<examples.jmdp.LeadTimeState>` | LeadTimeStochasticDemand.`reachable(examples.jmdp.LeadTimeState i, Order a)`
    `States<examples.jmdp.PendingOrders>` | OrderProcessing.`reachable(examples.jmdp.PendingOrders i, examples.jmdp.ProcessAction a)`
    `States<TandemQueues>` | AccessControl.`reachable(TandemQueues i, Admit a, TandemEvent e)`
    `States<TandemQueues>` | AccessControlFiniteHor.`reachable(TandemQueues i, Admit a, TandemEvent e, int t)`

    Constructors in examples.jmdp with parameters of type States
    Constructor and Description
    `AccessControl(States<TandemQueues> init, double c1, double c2, double lambda, double mu1, double mu2, int b1, int b2)` Builds a AccessControl
    `AccessControlFiniteHor(States<TandemQueues> init, double c1, double c2, double lambda, double mu1, double mu2, int b1, int b2, int N)` Builds a AccessControlFiniteHor
    `Bank2Queues(States<examples.jmdp.BankQueues> initial, double clientMinuteCost, double userMinuteCost, double clientProbability, double lambda, double mu, int maxCapacity, int maxServers)` Builds a Bank2Queues
    `CowHerd(States<examples.jmdp.CowQuantity> initial, int horizon, double[] price, int[] mxCows)`
    `CTInventory(States<examples.jmdp.CTStock> initSet, int maxCapacity, int truckSize, double K, double cost, double price, double holdingCost, double demandRateA, double leadTime)`
    `CTInventoryEvents(States<examples.jmdp.CTStockE> initSet, int maxCapacity, int truckSize, double K, double cost, double price, double holdingCost, double demandRateA, double leadTime)`
    `Inventory(int lastStage, States<InvLevel> initSet, int M, int K, double[] pr, double[] qr, double[] F)`
    `LeadTimeStochasticDemand(States<examples.jmdp.LeadTimeState> initSet, int maxInventory, int maxItemsPerOrder, int leadTime, int maxBackorders, double K, double cost, double price, double h, double holdingCost, double theta, double backOrderCost)`
    `ProbsExample(States<InvLevel> initial)`
    `StochasticDemand(States<InvLevel> initSet, int lastStage, int maxInventory, int maxBackorders, int truckSize, double K, double b, double price, double cost, double h, double theta)`

  - ### Uses of States in examples.jphase

    Methods in examples.jphase that return States
    Modifier and Type | Method and Description
    --- | ---
    `States<examples.jphase.RealSystemState>` | PhaseSystem.`dests(examples.jphase.RealSystemState i, examples.jphase.RealSystemEvent e)`

  - ### Uses of States in jmarkov

    Methods in jmarkov that return States
    Modifier and Type | Method and Description
    --- | ---
    `States<GeomState<Sub>>` | GeomProcess.`dests(GeomState<Sub> i, E e)` Overrides SimpleMarkovProcess' method
    `abstract States<S>` | SimpleMarkovProcess.`dests(S i, E e)` Determines the destination set of States when events e occurs.

  - ### Uses of States in jmarkov.basic

    Classes in jmarkov.basic that implement States
    Modifier and Type | Class and Description
    --- | ---
    `class` | `StatesSet<S extends State>` This class represent a set of States.

    Methods in jmarkov.basic with parameters of type States
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | StatesSet.`add(States<S> states)` Adds the States in the iterator to the set.

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

  - ### Uses of States in jmarkov.jmdp

    Methods in jmarkov.jmdp that return States
    Modifier and Type | Method and Description
    --- | ---
    `States<S>` | FiniteMDP.`getStates(int t)` All the states that are available at stage t.
    `States<S>` | DTMDPEv.`reachable(S i, A a)`
    `abstract States<S>` | DTMDP.`reachable(S i, A a)` Set of states that can be reached from this state i, after taking the action a.
    `States<S>` | CTMDPEv.`reachable(S i, A a)`
    `abstract States<S>` | CTMDP.`reachable(S i, A a)` Set of States that can be reached from this state i, after taking the action a.
    `States<S>` | CT2DTConverter.`reachable(S i, A a)`
    `abstract States<S>` | DTMDPEvA.`reachable(S i, A a, E e)` Set of reachable states from state i given that action a is taken and event e occurs.
    `abstract States<S>` | DTMDPEv.`reachable(S i, A a, E e)` Set of reachable states from state i given that action a is taken and event e occurs.
    `abstract States<S>` | CTMDPEv.`reachable(S i, A a, E e)` Set of reachable states from state i given that action a is taken and event e occurs.
    `abstract States<S>` | FiniteMDPEv.`reachable(S i, A a, E e, int t)` Set of reachable states from state i given that action a is taken and event e occurs.
    `States<S>` | FiniteMDPEv.`reachable(S i, A a, int t)`
    `abstract States<S>` | FiniteMDP.`reachable(S i, A a, int t)` Set of States that can be reached from this state i, at this stage t, after taking the acton a.
    `States<S>` | FiniteDP.`reachable(S i, A a, int t)` Final function must not be extended by any user.
    `States<StateEvent<S,E>>` | DTMDPEvA.`reachable(StateEvent<S,E> i, A a)`
    `States<StateEvent<S,E>>` | CTMDPEvA.`reachable(StateEvent<S,E> i, A a)`
    `abstract States<S>` | CTMDPEvA.`reached(S i, A a, E e)` Set of reachable states from state i given that action a is taken and event e occurs.

    Constructors in jmarkov.jmdp with parameters of type States
    Constructor and Description
    `CTMDP(States<S> initial)` Creates a new continuous time infinite horizon MDP Problem.
    `CTMDPEv(States<S> initial)` This constructor builds a continuous time MDP with events.
    `CTMDPEvA(States<S> initial)` Creates a new continuous time infinite horizon MDP Problem with events
    `DTMDP(States<S> initial)` Creates a new infinite horizon discrete time (MDP) Problem.
    `DTMDPEv(States<S> initial)` Creates a new infinite horizon discrete time (MDP) Problem with events
    `DTMDPEvA(States<S> initial)` Creates a new infinite horizon discrete time (MDP) Problem with events
    `FiniteDP(States<S> initial, int lastStage)` Creates a new FINITE Dynamic Programming (DP) Problem.
    `FiniteMDP(States<S> initial, int horizon)` Creates a new FINITE horizon (MDP) Problem.
    `FiniteMDPEv(States<S> initial, int horizon)`
    `InfiniteMDP(States<S> initial)` Creates a new INFINITE Dynamic Programming (DP) Problem.
    `StochasticShortestPath(States<S> states)`