Ejemplo n.º 1
0
        /// <summary>
        /// constructor
        /// </summary>
        /// <param name="instance">instance</param>
        public CBSPathManager(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 CBSPathPlanningConfiguration;

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

            method.LengthOfAWaitStep    = config.LengthOfAWaitStep;
            method.RuntimeLimitPerAgent = config.RuntimeLimitPerAgent;
            method.RunTimeLimitOverall  = config.RunTimeLimitOverall;
            method.SearchMethod         = config.SearchMethod;

            if (config.AutoSetParameter)
            {
                //best parameter determined my master thesis
                method.SearchMethod         = CBSMethod.CBSSearchMethod.BestFirst;
                method.RuntimeLimitPerAgent = config.Clocking / instance.Bots.Count;
                method.RunTimeLimitOverall  = config.Clocking;
            }
        }
Ejemplo n.º 2
0
        public void CBS()
        {
            var method = new CBSMethod(GetGraph(), 0, PathPlanningCommunicator.DUMMY_COMMUNICATOR);

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

            output(agents);
        }