examples.jmdp

## Class LeadTimeStochasticDemand

- java.lang.Object
- - jmarkov.jmdp.MDP<S,A>
  - - jmarkov.jmdp.InfiniteMDP<S,A>
    - - jmarkov.jmdp.DTMDP<examples.jmdp.LeadTimeState,Order>
      - - examples.jmdp.LeadTimeStochasticDemand

-     public class LeadTimeStochasticDemand
      extends DTMDP<examples.jmdp.LeadTimeState,Order>

  This file models a multi item inventory problem. The demands are random and independent in between them, with Poisson distribution with means "lambda[]".
  Author:
    Andres Sarmiento, Germán Riaño (project advisor) - Universidad de Los Andes

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `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)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Actions<Order>` | `feasibleActions(examples.jmdp.LeadTimeState i)` Returns the set of actions available at this state.
    `double` | `immediateCost(examples.jmdp.LeadTimeState i, Order a)` Cost incurred when taking action a from state i
    `static void` | `main(java.lang.String[] a)`
    `double` | `prob(examples.jmdp.LeadTimeState i, examples.jmdp.LeadTimeState j, Order a)` Probability of going from state i to state j by taking the action a
    `States<examples.jmdp.LeadTimeState>` | `reachable(examples.jmdp.LeadTimeState i, Order a)` Set of states that can be reached from this state i, after taking the action a.

    - ### Methods inherited from class jmarkov.jmdp.DTMDP

      `getSteadyStateProbabilities, setProbabilitySolver, solve`

    - ### Methods inherited from class jmarkov.jmdp.InfiniteMDP

      `getAllStates, getNumStates, getSolver`

    - ### Methods inherited from class jmarkov.jmdp.MDP

      `debug, debug, debug, getDebugLevel, getOptimalPolicy, getOptimalValueFunction, getReporter, isFinite, isSolved, operation, printSolution, printSolution, setDebugLevel, setReporter, setSolver, solve`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### LeadTimeStochasticDemand

          public 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)

      Parameters:
        `initSet` -
        `maxInventory` - Capacity
        `maxItemsPerOrder` -
        `leadTime` - stages for the order to arrive
        `maxBackorders` - Capacity
        `K` - Fixed cost per Order
        `cost` - variable cost
        `price` - variable cost
        `h` - percentual cost of holding inventory
        `holdingCost` - holding cost per period.
        `theta` - means of the Poisson demands per stage
        `backOrderCost` - cost incurred when there is no

  - ### Method Detail

    - #### reachable

          public States<examples.jmdp.LeadTimeState> reachable(examples.jmdp.LeadTimeState i,
                                                      Order a)

      Description copied from class: `DTMDP`
      Set of states that can be reached from this state i, after taking the action a.
      Specified by:
        `reachable` in class `DTMDP<examples.jmdp.LeadTimeState,Order>`
      Parameters:
        `i` - Current State
        `a` - Action taken
      Returns:
        The reachable states.

    - #### prob

          public double prob(examples.jmdp.LeadTimeState i,
                    examples.jmdp.LeadTimeState j,
                    Order a)

      Description copied from class: `DTMDP`
      Probability of going from state i to state j by taking the action a
      Specified by:
        `prob` in class `DTMDP<examples.jmdp.LeadTimeState,Order>`
      Parameters:
        `i` - Current state.
        `j` - Destination State
        `a` - Action
      Returns:
        The probability.

    - #### immediateCost

          public double immediateCost(examples.jmdp.LeadTimeState i,
                             Order a)

      Description copied from class: `DTMDP`
      Cost incurred when taking action a from state i
      Specified by:
        `immediateCost` in class `DTMDP<examples.jmdp.LeadTimeState,Order>`
      Parameters:
        `i` - Current State
        `a` - Current Action
      Returns:
        The cost incurred per transition

    - #### feasibleActions

          public Actions<Order> feasibleActions(examples.jmdp.LeadTimeState i)

      Description copied from class: `InfiniteMDP`
      Returns the set of actions available at this state.
      Specified by:
        `feasibleActions` in class `InfiniteMDP<examples.jmdp.LeadTimeState,Order>`
      Parameters:
        `i` - Current State
      Returns:
        set of Actions that can be taken at this state.

    - #### main

          public static void main(java.lang.String[] a)
                           throws java.lang.Exception

      Parameters:
        `a` - Not used
      Throws:
        `java.lang.Exception`