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