RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package rlpark.plugin.rltoys.algorithms.representations.tilescoding.hashing; 00002 00003 import rlpark.plugin.rltoys.algorithms.representations.discretizer.Discretizer; 00004 00005 public class Identity implements Hashing { 00006 private static final long serialVersionUID = -3659050449466106614L; 00007 private final int memorySize; 00008 00009 public Identity(Tiling tilings) { 00010 memorySize = computeMemorySize(tilings); 00011 } 00012 00013 private int computeMemorySize(Tiling tilings) { 00014 int memorySize = 1; 00015 for (Discretizer discretizer : tilings.discretizers()) 00016 memorySize *= discretizer.resolution(); 00017 return memorySize; 00018 } 00019 00020 @Override 00021 public int hash(Tiling tiling, int[] inputs) { 00022 int activatedIndex = 0; 00023 Discretizer[] discretizers = tiling.discretizers(); 00024 int multiplier = 1; 00025 for (int i = 0; i < discretizers.length; i++) { 00026 Discretizer partition = discretizers[i]; 00027 activatedIndex += inputs[i] * multiplier; 00028 multiplier *= partition.resolution(); 00029 } 00030 return activatedIndex; 00031 } 00032 00033 @Override 00034 public int memorySize() { 00035 return memorySize; 00036 } 00037 }