RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package rlpark.plugin.rltoys.envio.policy; 00002 00003 import rlpark.plugin.rltoys.algorithms.functions.states.Projector; 00004 import rlpark.plugin.rltoys.envio.actions.Action; 00005 import rlpark.plugin.rltoys.envio.rl.RLAgent; 00006 import rlpark.plugin.rltoys.envio.rl.TRStep; 00007 import rlpark.plugin.rltoys.math.vector.RealVector; 00008 import rlpark.plugin.rltoys.math.vector.implementations.PVector; 00009 00010 public class Policies { 00011 public static Action decide(Policy policy, RealVector x) { 00012 policy.update(x); 00013 return policy.sampleAction(); 00014 } 00015 00016 @SuppressWarnings("serial") 00017 public static RLAgent toAgent(final Policy policy) { 00018 return new RLAgent() { 00019 @Override 00020 public Action getAtp1(TRStep step) { 00021 policy.update(new PVector(step.o_tp1)); 00022 return policy.sampleAction(); 00023 } 00024 }; 00025 } 00026 00027 @SuppressWarnings("serial") 00028 public static RLAgent toAgentFA(final Policy policy, final Projector projector) { 00029 return new RLAgent() { 00030 @Override 00031 public Action getAtp1(TRStep step) { 00032 policy.update(projector.project(step.o_tp1)); 00033 return policy.sampleAction(); 00034 } 00035 }; 00036 } 00037 }