RLPark 1.0.0
Reinforcement Learning Framework in Java

TileCodersHashing.java

Go to the documentation of this file.
00001 package rlpark.plugin.rltoys.algorithms.representations.tilescoding;
00002 
00003 import rlpark.plugin.rltoys.algorithms.representations.discretizer.DiscretizerFactory;
00004 import rlpark.plugin.rltoys.algorithms.representations.tilescoding.hashing.Hashing;
00005 import rlpark.plugin.rltoys.math.ranges.Range;
00006 import rlpark.plugin.rltoys.math.vector.BinaryVector;
00007 import zephyr.plugin.core.api.monitoring.annotations.Monitor;
00008 
00009 @Monitor
00010 public class TileCodersHashing extends TileCoders {
00011   private static final long serialVersionUID = -5352847170450739533L;
00012   private final Hashing hashing;
00013 
00014   public TileCodersHashing(Hashing hashing, int inputSize, double min, double max) {
00015     this(hashing, buildRanges(inputSize, min, max));
00016   }
00017 
00018   public TileCodersHashing(Hashing hashing, Range... ranges) {
00019     this(hashing, createDefaultDiscretizer(ranges), ranges.length);
00020   }
00021 
00022   public TileCodersHashing(Hashing hashing, DiscretizerFactory discretizerFactory, int nbInputs) {
00023     super(discretizerFactory, nbInputs);
00024     this.hashing = hashing;
00025   }
00026 
00027   @Override
00028   protected int computeVectorSize() {
00029     return hashing.memorySize();
00030   }
00031 
00032   @Override
00033   protected void activateIndexes(double[] inputs, BinaryVector vector) {
00034     for (TileCoder tileCoder : tileCoders)
00035       setFeatureOn(vector, tileCoder.updateActiveTiles(hashing, inputs));
00036   }
00037 }
 All Classes Namespaces Files Functions Variables Enumerations
Zephyr
RLPark