RLPark 1.0.0
Reinforcement Learning Framework in Java

CritterbotEnvironments.java

Go to the documentation of this file.
00001 package rlpark.plugin.critterbot.environment;
00002 
00003 import java.util.List;
00004 
00005 import rlpark.plugin.critterbot.CritterbotProblem;
00006 import rlpark.plugin.critterbot.actions.CritterbotAction;
00007 import rlpark.plugin.critterbot.data.CritterbotLabels;
00008 import rlpark.plugin.rltoys.envio.observations.ObsFilter;
00009 import zephyr.plugin.core.api.monitoring.abstracts.DataMonitor;
00010 import zephyr.plugin.core.api.monitoring.abstracts.Monitored;
00011 
00012 public class CritterbotEnvironments {
00013   public static void addObservationsLogged(final CritterbotProblem problem, DataMonitor loggedManager) {
00014     ObsFilter filter = CritterbotLabels.newDefaultFilter(problem.legend());
00015     List<String> labelsToLog = filter.legend().getLabels();
00016     for (String label : labelsToLog) {
00017       final int obsIndex = problem.legend().indexOf(label);
00018       loggedManager.add(label, new Monitored() {
00019         @Override
00020         public double monitoredValue() {
00021           double[] o_t = problem.lastReceivedObs();
00022           if (o_t == null)
00023             return -1;
00024           return o_t[obsIndex];
00025         }
00026       });
00027     }
00028   }
00029 
00030   public static void addActionsLogged(final CritterbotEnvironment environment, DataMonitor loggedManager) {
00031     for (int i = 0; i < 3; i++) {
00032       String label = String.format("a[%d]", i);
00033       final int actionIndex = i;
00034       loggedManager.add(label, new Monitored() {
00035         @Override
00036         public double monitoredValue() {
00037           CritterbotAction a_t = environment.lastAction();
00038           if (a_t == null || a_t.actions == null)
00039             return -1;
00040           return a_t.actions[actionIndex];
00041         }
00042       });
00043     }
00044     loggedManager.add("ActionMode", new Monitored() {
00045       @Override
00046       public double monitoredValue() {
00047         CritterbotAction a_t = environment.lastAction();
00048         if (a_t == null)
00049           return -1;
00050         return a_t.motorMode.ordinal();
00051       }
00052     });
00053   }
00054 }
 All Classes Namespaces Files Functions Variables Enumerations
Zephyr
RLPark