RLPark 1.0.0
Reinforcement Learning Framework in Java

AveBins.java

Go to the documentation of this file.
00001 package rlpark.plugin.rltoys.algorithms.representations.discretizer.avebins;
00002 
00003 import rlpark.plugin.rltoys.algorithms.representations.discretizer.Discretizer;
00004 import rlpark.plugin.rltoys.math.averages.MeanVar;
00005 
00006 public class AveBins implements Discretizer {
00007   private static final long serialVersionUID = -782566775380769598L;
00008   private final MeanVar[] averages;
00009 
00010   public AveBins(MeanVar prototype, int nbBins) {
00011     averages = new MeanVar[nbBins];
00012     for (int i = 0; i < averages.length; i++)
00013       averages[i] = prototype.newInstance();
00014   }
00015 
00016   @Override
00017   public int discretize(double input) {
00018     int begin = 0;
00019     int end = averages.length - 1;
00020     while (begin != end) {
00021       int position = (begin + end) / 2;
00022       MeanVar meanVar = averages[position];
00023       meanVar.update(input);
00024       if (input <= meanVar.mean())
00025         end = position;
00026       else
00027         begin = position + 1;
00028     }
00029     return begin;
00030   }
00031 
00032   @Override
00033   public int resolution() {
00034     return averages.length;
00035   }
00036 }
 All Classes Namespaces Files Functions Variables Enumerations
Zephyr
RLPark