RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package rlpark.plugin.rltoys.algorithms.representations.tilescoding.hashing; 00002 00003 import java.io.Serializable; 00004 00005 import rlpark.plugin.rltoys.algorithms.representations.discretizer.Discretizer; 00006 import rlpark.plugin.rltoys.utils.Utils; 00007 00008 public class Tiling implements Serializable { 00009 private static final long serialVersionUID = 4526997497936063389L; 00010 public final int hashingIndex; 00011 private final Discretizer[] discretizers; 00012 private final int[] inputIndexes; 00013 private final int[] coordinates; 00014 00015 public Tiling(int hashingIndex, Discretizer[] discretizers, int[] inputIndexes) { 00016 assert Utils.checkInstanciated(discretizers); 00017 this.hashingIndex = hashingIndex; 00018 this.discretizers = discretizers; 00019 this.inputIndexes = inputIndexes; 00020 coordinates = new int[inputIndexes.length]; 00021 } 00022 00023 public int[] tilesCoordinates(double[] inputs) { 00024 for (int i = 0; i < inputIndexes.length; i++) 00025 coordinates[i] = discretizers[i].discretize(inputs[inputIndexes[i]]); 00026 return coordinates; 00027 } 00028 00029 public Discretizer[] discretizers() { 00030 return discretizers; 00031 } 00032 00033 public int[] inputIndexes() { 00034 return inputIndexes; 00035 } 00036 00037 @Override 00038 public String toString() { 00039 StringBuilder result = new StringBuilder(); 00040 for (int i = 0; i < discretizers.length; i++) 00041 result.append("i" + inputIndexes[i] + discretizers[i].toString() + " "); 00042 return result.toString(); 00043 } 00044 }