jmdp.solvers
Class RelativeValueIterationSolver<S extends State,A extends Action>

java.lang.Object
  extended by jmdp.solvers.Solver<S,A>
      extended by jmdp.solvers.AbstractInfiniteSolver<S,A>
          extended by jmdp.solvers.AbstractAverageSolver<S,A>
              extended by jmdp.solvers.RelativeValueIterationSolver<S,A>
Type Parameters:
S - state
A - action

public class RelativeValueIterationSolver<S extends State,A extends Action>
extends AbstractAverageSolver<S,A>

This class solves the average cost criteria for infinite horizon problems

Author:
Andres Sarmiento and German Riano - Universidad de Los Andes

Field Summary
 
Fields inherited from class jmdp.solvers.Solver
policy, printProcessTime, printValueFunction, problem, solved, valueFunction
 
Constructor Summary
RelativeValueIterationSolver(CTMDP<S,A> problem)
          Creates a new solver for a continuous time, infinite horizon problem.
RelativeValueIterationSolver(CTMDP<S,A> problem, double factor)
          Creates a new solver for a continuous time, infinite horizon problem to be solved with the modified relative value iteration method.
RelativeValueIterationSolver(DTMDP<S,A> problem)
          The constructor method exclusively receives a discrte time infinite horizon problem of the type DTMDP.
RelativeValueIterationSolver(DTMDP<S,A> problem, double factor)
          Creates a new solver for the given discrete time, infinite horizon problem.
 
Method Summary
 int getIterations()
           
 long getProcessTime()
           
 void setFactor(double factor)
          Sets the factor for the modified relative value iteration method.
 Solution<S,A> solve()
          Called to solve the problem.
 java.lang.String toString()
          The sub classes must return the Solver name.
 
Methods inherited from class jmdp.solvers.AbstractInfiniteSolver
getDiscreteProblem, getProblem, printSolution
 
Methods inherited from class jmdp.solvers.Solver
getOptimalPolicy, getOptimalValueFunction, getValueFunction, isSolved, printSolution, setPrintProcessTime, setPrintValueFunction
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RelativeValueIterationSolver

public RelativeValueIterationSolver(DTMDP<S,A> problem)
The constructor method exclusively receives a discrte time infinite horizon problem of the type DTMDP.

Parameters:
problem - the structure of the problem of type InfiniteMDP

RelativeValueIterationSolver

public RelativeValueIterationSolver(DTMDP<S,A> problem,
                                    double factor)
Creates a new solver for the given discrete time, infinite horizon problem. It uses the modified relative value iteration method. For details, consult the User's Manual. The factor helps avoiding periodicity in the chain.

Parameters:
problem - problem
factor - factor

RelativeValueIterationSolver

public RelativeValueIterationSolver(CTMDP<S,A> problem)
Creates a new solver for a continuous time, infinite horizon problem.

Parameters:
problem - continuous time, infinite horizon problem

RelativeValueIterationSolver

public RelativeValueIterationSolver(CTMDP<S,A> problem,
                                    double factor)
Creates a new solver for a continuous time, infinite horizon problem to be solved with the modified relative value iteration method.

Parameters:
problem - continuous time, infinite horizon problem
factor -
Method Detail

setFactor

public void setFactor(double factor)
Sets the factor for the modified relative value iteration method.


toString

public java.lang.String toString()
Description copied from class: Solver
The sub classes must return the Solver name.

Specified by:
toString in class Solver<S extends State,A extends Action>
See Also:
Object.toString()

solve

public Solution<S,A> solve()
Description copied from class: Solver
Called to solve the problem. This method MUST write the local variable policy and valueFunction.

Specified by:
solve in class Solver<S extends State,A extends Action>

getProcessTime

public final long getProcessTime()
Specified by:
getProcessTime in class Solver<S extends State,A extends Action>
Returns:
Returns the processTime.

getIterations

public final int getIterations()
Specified by:
getIterations in class AbstractInfiniteSolver<S extends State,A extends Action>
Returns:
Returns the iterations.