RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package rlpark.plugin.rltoys.problems.stategraph; 00002 00003 import java.util.Collection; 00004 import java.util.LinkedHashMap; 00005 import java.util.Map; 00006 00007 import rlpark.plugin.rltoys.envio.actions.Action; 00008 import rlpark.plugin.rltoys.math.vector.RealVector; 00009 00010 00011 public class GraphState { 00012 00013 public final String name; 00014 public final Double reward; 00015 00016 final private Map<Action, GraphState> transitions = new LinkedHashMap<Action, GraphState>(); 00017 private RealVector vectorRepresentation; 00018 00019 public GraphState(String name, double reward) { 00020 this.name = name; 00021 this.reward = reward; 00022 } 00023 00024 public void connect(Action action, GraphState state) { 00025 transitions.put(action, state); 00026 } 00027 00028 protected GraphState nextState(Action action) { 00029 return transitions.get(action); 00030 } 00031 00032 public boolean hasNextState() { 00033 return !transitions.isEmpty(); 00034 } 00035 00036 @Override 00037 public String toString() { 00038 return name; 00039 } 00040 00041 public Collection<GraphState> children() { 00042 return transitions.values(); 00043 } 00044 00045 public void setVectorRepresentation(RealVector vectorRepresentation) { 00046 this.vectorRepresentation = vectorRepresentation; 00047 } 00048 00049 public RealVector v() { 00050 return vectorRepresentation; 00051 } 00052 }