## Uses of Class
jmarkov.basic.exceptions.SolverException

- Packages that use SolverException
  Package | Description
  --- | ---
  examples.jmdp |
  jmarkov.basic.exceptions | This package contains the definition od the Exceptions thrown by jMarkov
  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.

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

    Methods in examples.jmdp that throw SolverException
    Modifier and Type | Method and Description
    --- | ---
    `double` | OrderProcessing.`averageOrders()`
    `double` | WagnerWhitin.`getOptimalCost(int inventory)` Returns the optimal cost for this level of starting inventory.
    `double` | CowHerd.`getValue(int initQ)`
    `double` | CattleGrowth.`getValue(int initWeight)`
    `double` | ControlProdNonEvents.`getValueFunction(int invLevel)` Gets the optimal value function for this initial inventory level.
    `double` | Bank2Queues.`length()`
    `static void` | OrderProcessing.`main(java.lang.String[] args)`
    `static void` | InfStochasticDemand.`main(java.lang.String[] a)` Simple test Program.
    `static void` | CTInventoryEvents.`main(java.lang.String[] args)` This method just tests the class.
    `static void` | CTInventory.`main(java.lang.String[] args)` This method just tests the class.
    `static void` | CowHerd.`main(java.lang.String[] a)` Small test program
    `static void` | ControlProduccion.`main(java.lang.String[] a)` Test Program
    `static void` | ControlProdNonEvents.`main(java.lang.String[] a)` Small test program
    `static void` | CattleGrowth.`main(java.lang.String[] a)` Small test program
    `static void` | Bank2Queues.`main(java.lang.String[] args)` This method just tests the class.
    `static void` | AccessControlFiniteHor.`main(java.lang.String[] args)` This method just tests the class.
    `static void` | AccessControl.`main(java.lang.String[] args)` This method just tests the class.

  - ### Uses of SolverException in jmarkov.basic.exceptions

    Subclasses of SolverException in jmarkov.basic.exceptions
    Modifier and Type | Class and Description
    --- | ---
    `class` | `NotUnichainException` This Exception should be thrown by the SteadyStateSolver if it detects that there is not a unique solution to the stationary probabilities.
    `class` | `StructureException` This exception is produced in shortest path problems if the conditions for convergence are not met.

  - ### Uses of SolverException in jmarkov.jmdp

    Methods in jmarkov.jmdp that throw SolverException
    Modifier and Type | Method and Description
    --- | ---
    `Policy<S,A>` | MDP.`getOptimalPolicy()` Returns the optimal policy.
    `ValueFunction<S>` | MDP.`getOptimalValueFunction()` Returns the optimal ValueFunction.
    `ValueFunction<S>` | DTMDP.`getSteadyStateProbabilities()`
    `ValueFunction<S>` | CTMDP.`getSteadyStateProbabilities()`
    `void` | MDP.`solve()` Solves the problem.
    `Solution<S,A>` | DTMDP.`solve(double interestRate)` Solves the problem with the given interest rate
    `Solution<S,A>` | CTMDP.`solve(double interestRate)` Solves the problem with the given interest rate

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

    Methods in jmarkov.jmdp.solvers that throw SolverException
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | FiniteSolver.`bestPolicy(S initial)` Prints out the policy
    `Solution<S,A>` | MPSXpressDiscounted.`buildSolution()` A solution provided for a MPS File by Xpress-Optmizer has the next framework.
    `Solution<S,A>` | MPSXpressAverage.`buildSolution()`
    `Solution<S,A>` | MPSQsOptDiscountedSolver.`buildSolution()`
    `Solution<S,A>` | MPSQsOptAverageSolver.`buildSolution()`
    `abstract Solution<S,A>` | MpsLpDiscountedSolver.`buildSolution()` The implementator classes should override this class to build the solution after the model has been solved.
    `Solution<S,A>` | LPSolver.`buildSolution()` The implementator classes should override this class to build the solution after the model has been solved.
    `Solution<S,A>` | LPBCLDiscountedSolver.`buildSolution()`
    `Policy<S,A>` | Solver.`getOptimalPolicy()` Gets the optimal policy.
    `ValueFunction<S>` | Solver.`getOptimalValueFunction()` Gets the optimal ValueFunction.
    `void` | MPSXpressDiscounted.`openFile()`
    `abstract Solution<S,A>` | Solver.`solve()` Called to solve the problem.
    `Solution<S,A>` | PolicyIterationSolverAvg.`solve()`
    `Solution<S,A>` | PolicyIterationSolver.`solve()`
    `Solution<S,A>` | MpsLpDiscountedSolver.`solve()`
    `Solution<S,A>` | MpsLpAverageSolver.`solve()`
    `Solution<S,A>` | LPBCLDiscountedSolver.`solve()`
    `Solution<S,A>` | LPBCLAverageSolver.`solve()` Linear Programming Average Solver is a tool that builds the solution based on the MDP's mathematical background given by Puterman and the software provided by XpressMP (BCL libraries).
    `void` | MPSXpressDiscounted.`solveLP()` This is where the actual solving takes place.
    `void` | MPSXpressAverage.`solveLP()`
    `void` | MPSQsOptDiscountedSolver.`solveLP()`
    `void` | MPSQsOptAverageSolver.`solveLP()`
    `abstract void` | MpsLpDiscountedSolver.`solveLP()` The implementator classes should override this class to solve the problem using the mpsFile that has been created.
    `void` | LPSolver.`solveLP()` The implementator classes should override this class to solve the problem using the mpsFile that has been created.
    `void` | LPBCLDiscountedSolver.`solveLP()`

    Constructors in jmarkov.jmdp.solvers that throw SolverException
    Constructor and Description
    `ProbabilitySolver(CTMDP<S,A> problem)` Initializes a new solver for continuous chains and solves the probabilities for the optimal policy.
    `ProbabilitySolver(DTMDP<S,A> problem)` Initializes a new solver for discrete chains and solves the probabilities for the optimal policy.