RLPark 1.0.0
Reinforcement Learning Framework in Java

VectorProjection2D.java

Go to the documentation of this file.
00001 package rlpark.plugin.rltoys.agents.functions;
00002 
00003 
00004 import rlpark.plugin.rltoys.algorithms.functions.stateactions.StateToStateAction;
00005 import rlpark.plugin.rltoys.algorithms.functions.states.Projector;
00006 import rlpark.plugin.rltoys.envio.actions.Action;
00007 import rlpark.plugin.rltoys.math.ranges.Range;
00008 import rlpark.plugin.rltoys.math.vector.RealVector;
00009 
00010 public class VectorProjection2D extends FunctionProjected2D {
00011   private final StateToStateAction toStateAction;
00012   private final Action[] actions;
00013 
00014   public VectorProjection2D(Range xRange, Range yRange, Projector projector) {
00015     this(xRange, yRange, projector, null, null);
00016   }
00017 
00018   public VectorProjection2D(Range xRange, Range yRange, Projector projector, StateToStateAction toStateAction,
00019       Action[] actions) {
00020     super(projector, xRange, yRange);
00021     this.toStateAction = toStateAction;
00022     this.actions = actions;
00023   }
00024 
00025   public double value(RealVector vector, double x, double y) {
00026     RealVector projected = projector.project(new double[] { x, y });
00027     if (projected.getDimension() == vector.getDimension())
00028       return vector.dotProduct(projected);
00029     double sum = 0.0;
00030     if (toStateAction == null)
00031       return sum;
00032     for (Action a : actions)
00033       sum += vector.dotProduct(toStateAction.stateAction(projected, a));
00034     return sum;
00035   }
00036 }
 All Classes Namespaces Files Functions Variables Enumerations
Zephyr
RLPark