RLPark 1.0.0
Reinforcement Learning Framework in Java

TileCoder.java

Go to the documentation of this file.
00001 package rlpark.plugin.rltoys.algorithms.representations.tilescoding;
00002 
00003 import java.io.Serializable;
00004 
00005 import rlpark.plugin.rltoys.algorithms.representations.tilescoding.hashing.Hashing;
00006 import rlpark.plugin.rltoys.algorithms.representations.tilescoding.hashing.Tiling;
00007 
00008 
00009 public class TileCoder implements Serializable {
00010   private static final long serialVersionUID = 2546756615574797245L;
00011   private final Tiling[] tilings;
00012   private final int[] activeTiles;
00013   public final int resolution;
00014 
00015   public TileCoder(Tiling[] tilings, int resolution) {
00016     this.tilings = tilings;
00017     this.resolution = resolution;
00018     activeTiles = new int[tilings.length];
00019   }
00020 
00021   public int[] updateActiveTiles(Hashing hashing, double[] inputs) {
00022     for (int i = 0; i < tilings.length; i++) {
00023       Tiling tiling = tilings[i];
00024       int coordinates[] = tiling.tilesCoordinates(inputs);
00025       activeTiles[i] = hashing.hash(tiling, coordinates);
00026     }
00027     return activeTiles;
00028   }
00029 
00030   public int nbTilings() {
00031     return tilings.length;
00032   }
00033 
00034   public int[] inputIndexes() {
00035     return tilings[0].inputIndexes();
00036   }
00037 
00038   public Tiling[] tilings() {
00039     return tilings;
00040   }
00041 
00042   @Override
00043   public String toString() {
00044     StringBuilder result = new StringBuilder();
00045     for (int i = 0; i < tilings.length; i++)
00046       result.append("  Tiling " + i + ": " + tilings[i].toString() + "\n");
00047     return result.toString();
00048   }
00049 }
 All Classes Namespaces Files Functions Variables Enumerations
Zephyr
RLPark