From 4240bea40fd704440714004c4ca6d86a9223271f Mon Sep 17 00:00:00 2001 From: J-morag <38430800+J-morag@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:59:24 +1100 Subject: [PATCH] Add regenerated nodes metric. Low level only. --- src/main/java/BasicMAPF/Solvers/A_Solver.java | 5 +++++ src/main/java/Environment/Metrics/InstanceReport.java | 1 + 2 files changed, 6 insertions(+) diff --git a/src/main/java/BasicMAPF/Solvers/A_Solver.java b/src/main/java/BasicMAPF/Solvers/A_Solver.java index e82ed0c2..043cda37 100644 --- a/src/main/java/BasicMAPF/Solvers/A_Solver.java +++ b/src/main/java/BasicMAPF/Solvers/A_Solver.java @@ -31,6 +31,7 @@ public abstract class A_Solver implements I_Solver{ protected long endTime; protected boolean abortedForTimeout; protected int totalLowLevelNodesGenerated; + protected int totalLowLevelNodesRegenerated; protected int totalLowLevelNodesExpanded; protected int totalLowLevelTimeMS; protected int totalLowLevelCalls; @@ -87,6 +88,7 @@ protected void init(MAPF_Instance instance, RunParameters parameters){ this.generatedNodes = 0; this.totalLowLevelNodesGenerated = 0; + this.totalLowLevelNodesRegenerated = 0; this.totalLowLevelNodesExpanded = 0; this.totalLowLevelTimeMS = 0; this.totalLowLevelCalls = 0; @@ -105,6 +107,8 @@ protected void init(MAPF_Instance instance, RunParameters parameters){ protected void digestSubproblemReport(InstanceReport subproblemReport) { Integer statesGenerated = subproblemReport.getIntegerValue(InstanceReport.StandardFields.generatedNodesLowLevel); this.totalLowLevelNodesGenerated += statesGenerated==null ? 0 : statesGenerated; + Integer statesRegenerated = subproblemReport.getIntegerValue(InstanceReport.StandardFields.regeneratedNodesLowLevel); + this.totalLowLevelNodesRegenerated += statesRegenerated==null ? 0 : statesRegenerated; Integer statesExpanded = subproblemReport.getIntegerValue(InstanceReport.StandardFields.expandedNodesLowLevel); this.totalLowLevelNodesExpanded += statesExpanded==null ? 0 : statesExpanded; Integer totalLowLevelTimeMS = subproblemReport.getIntegerValue(InstanceReport.StandardFields.elapsedTimeMS); @@ -147,6 +151,7 @@ protected void writeMetricsToReport(Solution solution){ instanceReport.putIntegerValue(InstanceReport.StandardFields.totalLowLevelTimeMS, this.totalLowLevelTimeMS); instanceReport.putIntegerValue(InstanceReport.StandardFields.generatedNodesLowLevel, this.totalLowLevelNodesGenerated); instanceReport.putFloatValue(InstanceReport.StandardFields.generationRateLowLevel,(float) this.totalLowLevelNodesGenerated / ((float) (this.totalLowLevelTimeMS) / 1000f)); + instanceReport.putIntegerValue(InstanceReport.StandardFields.regeneratedNodesLowLevel, this.totalLowLevelNodesRegenerated); instanceReport.putIntegerValue(InstanceReport.StandardFields.expandedNodesLowLevel, this.totalLowLevelNodesExpanded); instanceReport.putFloatValue(InstanceReport.StandardFields.expansionRateLowLevel, (float) this.totalLowLevelNodesExpanded / ((float) (this.totalLowLevelTimeMS) / 1000f)); instanceReport.putIntegerValue(InstanceReport.StandardFields.totalLowLevelCalls, this.totalLowLevelCalls); diff --git a/src/main/java/Environment/Metrics/InstanceReport.java b/src/main/java/Environment/Metrics/InstanceReport.java index 14495b47..783e0bdb 100644 --- a/src/main/java/Environment/Metrics/InstanceReport.java +++ b/src/main/java/Environment/Metrics/InstanceReport.java @@ -44,6 +44,7 @@ public static class StandardFields{ public final static String expandedNodesLowLevel = "Expanded Nodes (Low Level)"; public final static String expandedNodes = "Expanded Nodes (High Level)"; public final static String generatedNodesLowLevel = "Generated Nodes (Low Level)"; + public final static String regeneratedNodesLowLevel = "Regenerated Nodes (Low Level)"; public final static String generatedNodes = "Generated Nodes (High Level)"; public final static String startDateTime = "Start Date"; public final static String endDateTime = "End Date";