Exemplo n.º 1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="EvadersPolicy"></param>
 /// <param name="PursuersPolicy"></param>
 /// <param name="p"></param>
 /// <param name="g"></param>
 /// will be used if policies ask input in input boxes
 /// </param>
 public PerformanceEstimation(string EvadersPolicy, string PursuersPolicy,
                              GameLogic.IGameParams p, AGameGraph g)
 {
     this.evadersPolicy  = Utils.ReflectionUtils.constructEmptyCtorType <IEvadersPolicy>(EvadersPolicy).GetType();   //AEvadersPolicy.ChildrenByTypename[EvadersPolicy];
     this.pursuersPolicy = Utils.ReflectionUtils.constructEmptyCtorType <APursuersPolicy>(PursuersPolicy).GetType(); //APursuersPolicy.ChildrenByTypename[PursuersPolicy];
     this.gameParam      = p;
     this.gameGraph      = g;
 }
Exemplo n.º 2
0
        /// <summary>
        /// processes the specific scenario, and runs simulation according to params in 'policyInput'
        /// NOTE: 1) 'policyInput' is assumed to include AppArgumentKeys.SIMULATION_REPETETION_COUNT
        /// NOTE: 2) results will contain policyInput
        /// </summary>
        /// <param name="parallelOptInner"></param>
        /// <param name="evadersPolicy"></param>
        /// <param name="pursuersPolicy"></param>
        /// <param name="p"></param>
        /// <param name="g"></param>
        /// <param name="policyInput"></param>
        /// <param name="game"></param>
        /// <returns></returns>
        public static Dictionary <string, string> getEstimatedResultsAverage(ParallelOptions parallelOptInner,
                                                                             string evadersPolicy, string pursuersPolicy, GameLogic.IGameParams p, AGameGraph g,
                                                                             Dictionary <string, string> policyInput,
                                                                             AGameProcess game,
                                                                             bool calcStdDev)
        {
            int repetetionCount = int.Parse(AppConstants.AppArgumentKeys.SIMULATION_REPETETION_COUNT.tryRead(policyInput));

            if (repetetionCount <= 0)
            {
                return(null);
            }

            PerformanceEstimation estimator = new PerformanceEstimation(evadersPolicy,
                                                                        pursuersPolicy,
                                                                        p,
                                                                        g);

            var res = new Dictionary <string, string> (policyInput);

            res.AddRange(
                Utils.Algorithms.AlgorithmUtils.Average(
                    estimator.estimatePerformance(
                        Utils.ReflectionUtils.constructEmptyCtorTypeFromObj <AGameProcess>(game),
                        repetetionCount, policyInput, int.MaxValue, false, parallelOptInner), calcStdDev));

            return(res);
        }