Example #1
0
        /// <summary>
        /// constructor
        /// </summary>
        /// <param name="instance">instance</param>
        public FARPathManager(Instance instance)
            : base(instance)
        {
            //Need a Request on Fail
            BotNormal.RequestReoptimizationAfterFailingOfNextWaypointReservation = true;

            //translate to lightweight graph
            var graph  = GenerateGraph();
            var config = instance.ControllerConfig.PathPlanningConfig as FARPathPlanningConfiguration;

            PathFinder = new FARMethod(graph, instance.SettingConfig.Seed, config.evadingStrategy, new PathPlanningCommunicator(
                                           instance.LogSevere,
                                           instance.LogDefault,
                                           instance.LogInfo,
                                           instance.LogVerbose,
                                           () => { instance.StatOverallPathPlanningTimeouts++; }));
            var method = PathFinder as FARMethod;

            method.LengthOfAWaitStep    = config.LengthOfAWaitStep;
            method.RuntimeLimitPerAgent = config.RuntimeLimitPerAgent;
            method.RunTimeLimitOverall  = config.RunTimeLimitOverall;
            method.Es1MaximumNumberOfBreakingManeuverTries = config.MaximumNumberOfBreakingManeuverTries;
            method.Es2BackEvadingAvoidance = config.NoBackEvading;
            method.UseDeadlockHandler      = config.UseDeadlockHandler;

            if (config.AutoSetParameter)
            {
                //best parameter determined my master thesis
                method.Es1MaximumNumberOfBreakingManeuverTries = 2;
                method.Es2BackEvadingAvoidance = true;
                method.RuntimeLimitPerAgent    = config.Clocking / instance.Bots.Count;
                method.RunTimeLimitOverall     = config.Clocking;
            }
        }
Example #2
0
        public void FARnn()
        {
            var method = new FARMethod(GetGraph(), 0, FARMethod.EvadingStrategy.EvadeToNextNode, PathPlanningCommunicator.DUMMY_COMMUNICATOR);

            method.LengthOfAWaitStep = 1;
            var agents = Test(method);

            output(agents);
        }