RLPark 1.0.0
Reinforcement Learning Framework in Java
|
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 }