From 53d3bee642da9da745ce6ecf88454240c5576b89 Mon Sep 17 00:00:00 2001 From: Simon O'Shea Date: Wed, 9 Aug 2023 12:14:10 -0400 Subject: [PATCH] updated algorithms / heuristics --- Pathfinding Visualizer/Assets/Scripts/CellMesh.cs | 2 +- .../Assets/Scripts/Pathfinder.cs | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Pathfinding Visualizer/Assets/Scripts/CellMesh.cs b/Pathfinding Visualizer/Assets/Scripts/CellMesh.cs index aa6acc8..e6802c4 100644 --- a/Pathfinding Visualizer/Assets/Scripts/CellMesh.cs +++ b/Pathfinding Visualizer/Assets/Scripts/CellMesh.cs @@ -84,7 +84,7 @@ public class CellMesh : MonoBehaviour for (int i = 0; i < count; i++) { Node n = result.Pop(); - Debug.Log("Agent at: " + n.agent.x + ", " + n.agent.y); + //Debug.Log("Agent at: " + n.agent.x + ", " + n.agent.y); Debug.Log(n.lastMove); grid.SetValue(n.agent.x, n.agent.y, 3); diff --git a/Pathfinding Visualizer/Assets/Scripts/Pathfinder.cs b/Pathfinding Visualizer/Assets/Scripts/Pathfinder.cs index 2f10505..b44c638 100644 --- a/Pathfinding Visualizer/Assets/Scripts/Pathfinder.cs +++ b/Pathfinding Visualizer/Assets/Scripts/Pathfinder.cs @@ -74,7 +74,12 @@ public class Pathfinder { result = StartDFS(initialState, -1); } - } + // Run IDS + if (algorithm == 2) + { + result = StartIDS(initialState); + } + } public static Stack StartAStar(Node initialState, int heuristic) { @@ -117,7 +122,7 @@ public class Pathfinder List children = currentNode.expand(-1); if (heuristic == 0) - h2(children); + h0(children); else if (heuristic == 1) h1(children); else if (heuristic == 2) @@ -203,7 +208,7 @@ public class Pathfinder List open = new List(); open.Add(initialState); - int cap = 100000; + int cap = 90000; while (true && cap > 0) { // if open is empty, we have exhausted all of our options and there is no solution @@ -211,6 +216,7 @@ public class Pathfinder return solution; Node currentNode = open[0]; + open.RemoveAt(0); // check if agent is in goal state if (currentNode.samples.Count == 0) @@ -234,7 +240,7 @@ public class Pathfinder Debug.Log("Too much work :("); return solution; } - public static Stack ids(Node initialState) + public static Stack StartIDS(Node initialState) { Debug.Log("RUNNING IDS"); Stack result = new Stack();