/// <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; } }
public void FARnn() { var method = new FARMethod(GetGraph(), 0, FARMethod.EvadingStrategy.EvadeToNextNode, PathPlanningCommunicator.DUMMY_COMMUNICATOR); method.LengthOfAWaitStep = 1; var agents = Test(method); output(agents); }