From 81a156cc7fb6d0186dc3a42cc7ae774ed16a37ee Mon Sep 17 00:00:00 2001 From: J-morag <38430800+J-morag@users.noreply.github.com> Date: Fri, 24 Nov 2023 20:55:21 +1100 Subject: [PATCH] fix LNS OutOfBoundsException for very few agents --- .../LargeNeighborhoodSearch/LargeNeighborhoodSearch_Solver.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/BasicMAPF/Solvers/LargeNeighborhoodSearch/LargeNeighborhoodSearch_Solver.java b/src/main/java/BasicMAPF/Solvers/LargeNeighborhoodSearch/LargeNeighborhoodSearch_Solver.java index e1415b44..3c010994 100644 --- a/src/main/java/BasicMAPF/Solvers/LargeNeighborhoodSearch/LargeNeighborhoodSearch_Solver.java +++ b/src/main/java/BasicMAPF/Solvers/LargeNeighborhoodSearch/LargeNeighborhoodSearch_Solver.java @@ -149,7 +149,7 @@ protected Solution solveLNS(MAPF_Instance instance, ConstraintSet initialConstra // select neighborhood (destroy heuristic) int destroyHeuristicIndex = selectDestroyHeuristicIndex(); I_DestroyHeuristic destroyHeuristic = this.destroyHeuristics.get(destroyHeuristicIndex); - Set agentsSubset = new HashSet<>(destroyHeuristic.selectNeighborhood(bestSolution, Math.min(neighborhoodSize, agents.size()), random, instance.map)); + Set agentsSubset = new HashSet<>(destroyHeuristic.selectNeighborhood(bestSolution, Math.min(neighborhoodSize, agents.size()-1), random, instance.map)); // get solution without selected agents Solution destroyedSolution = new Solution();