RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package rlpark.plugin.robot.observations; 00002 00003 import java.util.List; 00004 00005 import rlpark.plugin.rltoys.envio.observations.ObsAsDoubles; 00006 import rlpark.plugin.rltoys.math.GrayCode; 00007 import rlpark.plugin.rltoys.math.vector.BinaryVector; 00008 import rlpark.plugin.rltoys.math.vector.implementations.BVector; 00009 00010 00011 public class ObservationVersatileArray implements ObsAsDoubles { 00012 private final ObservationVersatile[] observations; 00013 00014 public ObservationVersatileArray(List<ObservationVersatile> observations) { 00015 this.observations = new ObservationVersatile[observations.size()]; 00016 observations.toArray(this.observations); 00017 } 00018 00019 public ObservationVersatile last() { 00020 if (observations == null || observations.length == 0) 00021 return null; 00022 return observations[observations.length - 1]; 00023 } 00024 00025 public BinaryVector toRawBinary() { 00026 ObservationVersatile last = last(); 00027 if (last == null) 00028 return null; 00029 return BVector.toBinary(last.rawData()); 00030 } 00031 00032 public BinaryVector toGrayCodeBinary() { 00033 ObservationVersatile last = last(); 00034 if (last == null) 00035 return null; 00036 return BVector.toBinary(GrayCode.toGrayCode(last.rawData())); 00037 } 00038 00039 @Override 00040 public double[] doubleValues() { 00041 ObservationVersatile last = last(); 00042 if (last == null) 00043 return null; 00044 return last.doubleValues(); 00045 } 00046 00047 public ObservationVersatile[] array() { 00048 return observations; 00049 } 00050 }