RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package rlpark.plugin.rltoys.experiments.parametersweep.prediction; 00002 00003 import java.util.ArrayList; 00004 import java.util.List; 00005 00006 import rlpark.plugin.rltoys.experiments.parametersweep.interfaces.Context; 00007 import rlpark.plugin.rltoys.experiments.parametersweep.interfaces.SweepDescriptor; 00008 import rlpark.plugin.rltoys.experiments.parametersweep.parameters.Parameters; 00009 00010 public abstract class PredictionSweepDescriptor implements SweepDescriptor { 00011 private static boolean testingMode = false; 00012 private final PredictionProblemFactory[] problemFactories; 00013 private final PredictionLearnerFactory[] learnerFactories; 00014 00015 public PredictionSweepDescriptor(PredictionProblemFactory[] problemFactories, 00016 PredictionLearnerFactory[] learnerFactories) { 00017 this.problemFactories = problemFactories; 00018 this.learnerFactories = learnerFactories; 00019 00020 } 00021 00022 @Override 00023 public List<? extends Context> provideContexts() { 00024 List<PredictionSweepContext> contexts = new ArrayList<PredictionSweepContext>(); 00025 for (PredictionProblemFactory problemFactory : problemFactories) 00026 for (PredictionLearnerFactory learnerFactory : learnerFactories) 00027 contexts.add(createContext(problemFactory, learnerFactory)); 00028 return contexts; 00029 } 00030 00031 @Override 00032 public List<Parameters> provideParameters(Context context) { 00033 List<Parameters> parameters = ((PredictionSweepContext) context).provideParameters(); 00034 if (testingMode) 00035 return PredictionParameters.adjustForLocalTesting(parameters); 00036 return parameters; 00037 } 00038 00039 abstract protected PredictionSweepContext createContext(PredictionProblemFactory problemFactory, 00040 PredictionLearnerFactory learnerFactory); 00041 00042 static public void setupTestingMode() { 00043 testingMode = true; 00044 } 00045 }