RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package rlpark.plugin.rltoys.problems; 00002 00003 import rlpark.plugin.rltoys.algorithms.functions.states.Projector; 00004 import rlpark.plugin.rltoys.envio.actions.Action; 00005 import rlpark.plugin.rltoys.envio.rl.TRStep; 00006 import rlpark.plugin.rltoys.math.vector.RealVector; 00007 00008 public class PredictionProblemAdapter implements PredictionProblem { 00009 private final RLProblem problem; 00010 private final Projector projector; 00011 private final Action action; 00012 private TRStep step; 00013 00014 public PredictionProblemAdapter(RLProblem problem, Projector projector, Action action) { 00015 this.problem = problem; 00016 this.projector = projector; 00017 this.action = action; 00018 step = problem.initialize(); 00019 } 00020 00021 @Override 00022 public int inputDimension() { 00023 return projector.vectorSize(); 00024 } 00025 00026 @Override 00027 public boolean update() { 00028 assert !step.isEpisodeEnding(); 00029 step = problem.step(action); 00030 return true; 00031 } 00032 00033 @Override 00034 public double target() { 00035 return step.r_tp1; 00036 } 00037 00038 @Override 00039 public RealVector input() { 00040 return projector.project(step.o_t); 00041 } 00042 }