public PredictionControl(IModel model, List<Property> properties, List<LoggedValue> loggedValues) { _logger = new LogIt("", loggedValues); // TODO Add Path // Variables from properties list M = (int) Convert.ToDouble(properties.Find(p => p.Name.Equals("M")).Value); _horizonSize = (int)Convert.ToDouble(properties.Find(p => p.Name.Equals("Horizon")).Value); _predictionHorizonSize = (int)Convert.ToDouble(properties.Find(p => p.Name.Equals("PredictionHorizon")).Value); // TODO _discount = Convert.ToDouble(properties.Find(p => p.Name.Equals("Discount")).Value); _startSigma = Convert.ToDouble(properties.Find(p => p.Name.Equals("StartSigma")).Value); _sigmaMin = Convert.ToDouble(properties.Find(p => p.Name.Equals("SigmaMin")).Value); var externalDiscretization = Convert.ToDouble(properties.Find(p => p.Name.Equals("ExternalDiscretization")).Value); var internalDiscretization = Convert.ToDouble(properties.Find(p => p.Name.Equals("InternalDiscretization")).Value); var TimeLimit = Convert.ToDouble(properties.Find(p => p.Name.Equals("TimeLimit")).Value); _iterationLimitOptimisation = (int)Convert.ToDouble(properties.Find(p => p.Name.Equals("OptimisationIterationLimit")).Value); _iterationsLimit = (int)(TimeLimit / externalDiscretization); _model = model; _model.SetDiscretizations(externalDiscretization, internalDiscretization); _state = new List<double>(_model.GetInitialState()); _minAction = _model.MinActionValues(); _maxAction = _model.MaxActionValues(); VestSum = 0; VestAv = 0; GenerateHorizon(); _iterationNumExternal = 0; _episodeNr = 0; }
public Advisor(IModel model, List<Property> properties, List<LoggedValue> loggedValues) { _model = model; MODEL_ACTION_VAR_COUNT = _model.GenerateControlVariables().Count; MODEL_STATE_VAR_COUNT = _model.GetInitialState().Count; HORIZON_SIZE = (int)Convert.ToDouble(properties.Find(p => p.Name.Equals("Horizon")).Value); Vsize = (int)Convert.ToDouble(properties.Find(p => p.Name.Equals("Neurons Number")).Value); BetaV = Convert.ToDouble(properties.Find(p => p.Name.Equals("BetaV")).Value); Gamma = Convert.ToDouble(properties.Find(p => p.Name.Equals("Discount")).Value);; Sigma = Convert.ToDouble(properties.Find(p => p.Name.Equals("Sigma")).Value); SigmaMin = Convert.ToDouble(properties.Find(p => p.Name.Equals("SigmaMin")).Value); TimesToAdjust = (int)Convert.ToDouble(properties.Find(p => p.Name.Equals("TimesToAdjust")).Value); var externalDiscretization = Convert.ToDouble(properties.Find(p => p.Name.Equals("ExternalDiscretization")).Value); var internalDiscretization = Convert.ToDouble(properties.Find(p => p.Name.Equals("InternalDiscretization")).Value); var TimeLimit = Convert.ToDouble(properties.Find(p => p.Name.Equals("TimeLimit")).Value); TimesToTeach = (int)Convert.ToDouble(properties.Find(p => p.Name.Equals("TimesToTeach")).Value); TimesToAdjustPastActions = (int)Convert.ToDouble(properties.Find(p => p.Name.Equals("TimesToAdjustPastActions")).Value); _logger = new LogIt("", loggedValues); _model.SetDiscretizations(externalDiscretization, internalDiscretization); TimeIndex = 0; _episodeNr = 0; AllVisits = new ArrayList(); Sampler = new ASampler(); IterationsLimit = (int) (TimeLimit / externalDiscretization); VestSum = 0; StartInState(_model.GetInitialState().ToArray()); MinAction = new Vector(_model.MinActionValues()); MaxAction = new Vector(_model.MaxActionValues()); double[] stateAverage = _model.GetStateValuesAverageNN().ToArray(); double[] stateStandardDeviation = _model.GetStateValuesStandardDeviationNN().ToArray(); Init(stateAverage, stateStandardDeviation, MinAction.Table, Vsize); }