コード例 #1
0
        public IEnumerator <IStepContext <float> > GetEnumerator()
        {
            StatisticsCalculator <Person, int>       stats   = new StatisticsCalculator <Person, int>();
            StatisticsCalculator <RobotJoint, float> statsCA = new StatisticsCalculator <RobotJoint, float>();

            int stepsSoFar = 0;

            while (steps < 0 || (stepsSoFar++ < steps))
            {
                SimulatorStep step = new SimulatorStep
                {
                    StatisticsCalculator           = stats,
                    ContinuousStatisticsCalculator = statsCA,
                    EventId    = Guid.NewGuid().ToString(),
                    Person     = GetRandomPerson(),
                    RobotJoint = GetRandomRobotJoint(),
                    SlotCount  = this.slots,
                };

                yield return(step);

                step.RecordContinuousAction(statsCA);
                step.Record(stats);
            }
        }
コード例 #2
0
 public void RecordContinuousAction(StatisticsCalculator <RobotJoint, float> statisticsCalculator)
 {
     if (this.ContinuousActionCache.HasValue)
     {
         statisticsCalculator.Record(this.RobotJoint, this.ContinuousActionCache.Value, this.outcomeCache.Value);
         Console.WriteLine($" {statisticsCalculator.TotalActions}, ctxt, {this.RobotJoint.Id}, action, {this.ContinuousActionCache.Value}, outcome, {this.outcomeCache.Value}, dist, {this.ActionDistributionString}, {statisticsCalculator.GetStats(this.RobotJoint, this.ContinuousActionCache.Value)}");
     }
 }
コード例 #3
0
 public void Record(StatisticsCalculator <Person, int> statisticsCalculator)
 {
     if (this.DecisionCache.HasValue)
     {
         statisticsCalculator.Record(this.Person, (int)this.DecisionCache.Value, this.outcomeCache.Value);
         Console.WriteLine($" {statisticsCalculator.TotalActions}, ctxt, {this.Person.Id}, action, {this.DecisionCache.Value}, outcome, {this.outcomeCache.Value}, dist, {this.ActionDistributionString}, {statisticsCalculator.GetStats(this.Person, (int)this.DecisionCache.Value)}");
     }
 }
コード例 #4
0
        public IEnumerator <IStepContext <float> > GetEnumerator()
        {
            StatisticsCalculator stats = new StatisticsCalculator();

            int stepsSoFar = 0;

            while (steps < 0 || (stepsSoFar++ < steps))
            {
                SimulatorStep step = new SimulatorStep
                {
                    StatisticsCalculator = stats,
                    EventId = Guid.NewGuid().ToString(),
                    Person  = GetRandomPerson()
                };

                yield return(step);

                step.Record(stats);
            }
        }