Esempio n. 1
0
        private EvaluatedEpisode EvaluateEpisode(Episode episode, ContinuousAxis axis)
        {
            var    key = Tuple.Create(episode, axis);
            double value;

            if (!_evaluateCache.TryGetValue(key, out value))
            {
                value = ContinuousAxisEvaluator.Evaluate(axis, episode.World, episode.Hero);
                _evaluateCache[key] = value;
            }
            return(new EvaluatedEpisode {
                Episode = episode,
                Value = value,
            });
        }
 private static List <DataPoint> EpisodesToDataPoints(List <Episode> episodes)
 {
     return(episodes.AsParallel().Select(episode => new DataPoint {
         Episode = episode,
         Class = (byte)episode.Tactic,
         Weight = (float)episode.Weight,
         Attributes =
             EnumUtils.GetEnumValues <ContinuousAxis>()
             .Select(axis => (float)ContinuousAxisEvaluator.Evaluate(axis, episode.World, episode.Hero))
             .ToArray(),
         Categories =
             EnumUtils.GetEnumValues <CategoricalAxis>()
             .Select(axis => PolicyHelper.CategoriesToBits(CategoricalAxisEvaluator.Evaluate(axis, episode.World, episode.Hero)))
             .ToArray(),
     }).ToList());
 }