RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package rlpark.plugin.rltoys.agents.rl; 00002 00003 import rlpark.plugin.rltoys.algorithms.control.Control; 00004 import rlpark.plugin.rltoys.algorithms.control.acting.ControlPolicyAdapter; 00005 import rlpark.plugin.rltoys.algorithms.functions.states.Projector; 00006 import rlpark.plugin.rltoys.envio.actions.Action; 00007 import rlpark.plugin.rltoys.envio.policy.Policy; 00008 import rlpark.plugin.rltoys.envio.rl.RLAgent; 00009 import rlpark.plugin.rltoys.envio.rl.TRStep; 00010 00011 public class ControlAgentFA implements RLAgent { 00012 private static final long serialVersionUID = 1863728076381568361L; 00013 private final Control control; 00014 private final Projector projector; 00015 00016 public ControlAgentFA(Policy policy, Projector projector) { 00017 this(new ControlPolicyAdapter(policy), projector); 00018 } 00019 00020 public ControlAgentFA(Control control, Projector projector) { 00021 this.projector = projector; 00022 this.control = control; 00023 } 00024 00025 @Override 00026 public Action getAtp1(TRStep step) { 00027 if (step.isEpisodeEnding()) 00028 return null; 00029 return control.proposeAction(projector.project(step.o_tp1)); 00030 } 00031 00032 public Control control() { 00033 return control; 00034 } 00035 00036 public Projector projector() { 00037 return projector; 00038 } 00039 }