From 340b1558e40f79bc9590fd095e727582575814b2 Mon Sep 17 00:00:00 2001 From: Leijurv Date: Tue, 28 Aug 2018 15:53:29 -0700 Subject: [PATCH 1/2] debug cosmetic improvements --- src/main/java/baritone/pathing/calc/AStarPathFinder.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/baritone/pathing/calc/AStarPathFinder.java b/src/main/java/baritone/pathing/calc/AStarPathFinder.java index 2dca7bb8b..eca57ea5d 100644 --- a/src/main/java/baritone/pathing/calc/AStarPathFinder.java +++ b/src/main/java/baritone/pathing/calc/AStarPathFinder.java @@ -183,13 +183,14 @@ public class AStarPathFinder extends AbstractNodeCostSearch implements Helper { bestDist = dist; } if (dist > MIN_DIST_PATH * MIN_DIST_PATH) { // square the comparison since distFromStartSq is squared + System.out.println((int) (numNodes * 1.0 / ((System.currentTimeMillis() - startTime) / 1000F)) + " nodes per second"); displayChatMessageRaw("Took " + (System.currentTimeMillis() - startTime) + "ms, A* cost coefficient " + COEFFICIENTS[i]); if (COEFFICIENTS[i] >= 3) { System.out.println("Warning: cost coefficient is greater than three! Probably means that"); System.out.println("the path I found is pretty terrible (like sneak-bridging for dozens of blocks)"); System.out.println("But I'm going to do it anyway, because yolo"); } - System.out.println("Path goes for " + dist + " blocks"); + System.out.println("Path goes for " + Math.sqrt(dist) + " blocks"); currentlyRunning = null; return Optional.of(new Path(startNode, bestSoFar[i], numNodes)); } From 23cbef102dae714a17c5c30f31a679d99a92e9f4 Mon Sep 17 00:00:00 2001 From: Leijurv Date: Tue, 28 Aug 2018 16:15:24 -0700 Subject: [PATCH 2/2] more debug info --- src/main/java/baritone/pathing/calc/AStarPathFinder.java | 6 +++++- .../baritone/pathing/calc/openset/BinaryHeapOpenSet.java | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/baritone/pathing/calc/AStarPathFinder.java b/src/main/java/baritone/pathing/calc/AStarPathFinder.java index eca57ea5d..383c3b908 100644 --- a/src/main/java/baritone/pathing/calc/AStarPathFinder.java +++ b/src/main/java/baritone/pathing/calc/AStarPathFinder.java @@ -75,6 +75,7 @@ public class AStarPathFinder extends AbstractNodeCostSearch implements Helper { long timeoutTime = startTime + (slowPath ? Baritone.settings().slowPathTimeoutMS : Baritone.settings().pathTimeoutMS).get(); long lastPrintout = 0; int numNodes = 0; + int numMovementsConsidered = 0; int numEmptyChunk = 0; boolean favoring = favoredPositions.isPresent(); int pathingMaxChunkBorderFetch = Baritone.settings().pathingMaxChunkBorderFetch.get(); // grab all settings beforehand so that changing settings during pathing doesn't cause a crash or unpredictable behavior @@ -125,6 +126,7 @@ public class AStarPathFinder extends AbstractNodeCostSearch implements Helper { double actionCost = movementToGetToNeighbor.getCost(calcContext); //long costEnd = System.nanoTime(); //System.out.println(movementToGetToNeighbor.getClass() + "" + (costEnd - costStart)); + numMovementsConsidered++; if (actionCost >= ActionCosts.COST_INF) { continue; } @@ -173,6 +175,9 @@ public class AStarPathFinder extends AbstractNodeCostSearch implements Helper { currentlyRunning = null; return Optional.empty(); } + System.out.println(numMovementsConsidered + " movements considered"); + System.out.println("Open set size: " + ((BinaryHeapOpenSet) openSet).size()); + System.out.println((int) (numNodes * 1.0 / ((System.currentTimeMillis() - startTime) / 1000F)) + " nodes per second"); double bestDist = 0; for (int i = 0; i < bestSoFar.length; i++) { if (bestSoFar[i] == null) { @@ -183,7 +188,6 @@ public class AStarPathFinder extends AbstractNodeCostSearch implements Helper { bestDist = dist; } if (dist > MIN_DIST_PATH * MIN_DIST_PATH) { // square the comparison since distFromStartSq is squared - System.out.println((int) (numNodes * 1.0 / ((System.currentTimeMillis() - startTime) / 1000F)) + " nodes per second"); displayChatMessageRaw("Took " + (System.currentTimeMillis() - startTime) + "ms, A* cost coefficient " + COEFFICIENTS[i]); if (COEFFICIENTS[i] >= 3) { System.out.println("Warning: cost coefficient is greater than three! Probably means that"); diff --git a/src/main/java/baritone/pathing/calc/openset/BinaryHeapOpenSet.java b/src/main/java/baritone/pathing/calc/openset/BinaryHeapOpenSet.java index 80c3965a3..b81145f3c 100644 --- a/src/main/java/baritone/pathing/calc/openset/BinaryHeapOpenSet.java +++ b/src/main/java/baritone/pathing/calc/openset/BinaryHeapOpenSet.java @@ -52,6 +52,10 @@ public class BinaryHeapOpenSet implements IOpenSet { this.array = new PathNode[size]; } + public int size() { + return size; + } + @Override public final void insert(PathNode value) { if (size >= array.length - 1) {