Beispiel #1
0
        /// <summary>
        /// constructor
        /// </summary>
        /// <param name="instance">instance</param>
        public WHCAvStarPathManager(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 WHCAvStarPathPlanningConfiguration;

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

            method.LengthOfAWaitStep    = config.LengthOfAWaitStep;
            method.RuntimeLimitPerAgent = config.RuntimeLimitPerAgent;
            method.RunTimeLimitOverall  = config.RunTimeLimitOverall;
            method.LengthOfAWindow      = config.LengthOfAWindow;
            method.AbortAtFirstConflict = config.AbortAtFirstConflict;
            method.UseDeadlockHandler   = config.UseDeadlockHandler;

            if (config.AutoSetParameter)
            {
                //best parameter determined my master thesis
                method.LengthOfAWindow      = 20;
                method.RuntimeLimitPerAgent = config.Clocking / instance.Bots.Count;
                method.RunTimeLimitOverall  = config.Clocking;
            }
        }
Beispiel #2
0
        public void WHCAvStar()
        {
            var method = new WHCAvStarMethod(GetGraph(), 0, PathPlanningCommunicator.DUMMY_COMMUNICATOR);

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

            output(agents);
        }