RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package rlpark.plugin.rltoys.problems.puddleworld; 00002 00003 import rlpark.plugin.rltoys.algorithms.functions.ContinuousFunction; 00004 import zephyr.plugin.core.api.monitoring.annotations.Monitor; 00005 00006 public class LocalFeatureSumFunction implements ContinuousFunction { 00007 private final ContinuousFunction[] features; 00008 @Monitor 00009 private final double[] weights; 00010 private final double baseReward; 00011 00012 public LocalFeatureSumFunction(double[] weights, ContinuousFunction[] features, double baseReward) { 00013 this.weights = weights; 00014 this.features = features; 00015 this.baseReward = baseReward; 00016 } 00017 00018 @Override 00019 public double value(double[] input) { 00020 double sum = 0.0; 00021 for (int i = 0; i < features.length; i++) 00022 sum += weights[i] * features[i].value(input); 00023 return sum + baseReward; 00024 } 00025 00026 public double[] weights() { 00027 return weights; 00028 } 00029 00030 public ContinuousFunction[] features() { 00031 return features; 00032 } 00033 00034 public int size() { 00035 return features.length; 00036 } 00037 }