From e3ea377b6b15d255fe3ba2a826697a5e80540e8c Mon Sep 17 00:00:00 2001 From: OmidRezaei Date: Sun, 12 May 2019 10:54:01 +0430 Subject: [PATCH] Made Many Changes Implemented PathData And Dijkstra Algorithm but not tested yet. --- Diagrams/PathTaker.vsdx | Bin 270072 -> 270759 bytes .../Dijkstra/DijkstraAlgorithm.java | 37 +++++++++- .../Dijkstra/DijkstraAlgorithmTest.java | 21 +++++- Graph/src/algorithms/Dijkstra/PathData.java | 63 ++++++++++++++++++ Graph/src/algorithms/GraphBuilder.java | 2 +- Graph/src/elements/Graph.java | 59 ++++------------ 6 files changed, 131 insertions(+), 51 deletions(-) create mode 100644 Graph/src/algorithms/Dijkstra/PathData.java diff --git a/Diagrams/PathTaker.vsdx b/Diagrams/PathTaker.vsdx index c7d43183f8da0ef52ac52a17b87fd73265c50bdc..f2b98f2e383821471c1b3637ddf8b2eecfb75e92 100644 GIT binary patch delta 53817 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�yH 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 U@%P)$(1Ia+fB^YCJwU4YKRF^5_5c6? diff --git a/Graph/src/algorithms/Dijkstra/DijkstraAlgorithm.java b/Graph/src/algorithms/Dijkstra/DijkstraAlgorithm.java index 2615f52..36459c4 100644 --- a/Graph/src/algorithms/Dijkstra/DijkstraAlgorithm.java +++ b/Graph/src/algorithms/Dijkstra/DijkstraAlgorithm.java @@ -1,9 +1,44 @@ package algorithms.Dijkstra; import elements.Graph; +import elements.GraphNode; +import java.util.ArrayList; + +/** + * A type that calculates the path and distance from the source node to any other node that the source node is connected to(Including the target node) + * It's methods return an instance PathData. + */ public class DijkstraAlgorithm { - public static void FindShortestPath(Graph graph, String sourceNodeIdentification, String targetNodeIdentification) { + public static PathData FindShortestPath(Graph graph, String sourceNodeIdentifier, String targetNodeIdentifier) throws ArrayStoreException { + return FindShortestPath(graph, graph.getNode(sourceNodeIdentifier), graph.getNode(targetNodeIdentifier)); + } + + public static PathData FindShortestPath(Graph graph, GraphNode sourceNode, GraphNode targetNode) throws ArrayStoreException { + if (graph.getNodes().size() == 0) throw new ArrayStoreException(); + ArrayList nodes = graph.getNodes(); + ArrayList navigatedNodes = new ArrayList<>(); + PathData pathData = new PathData(nodes, sourceNode, targetNode); + + nodes.remove(sourceNode); + navigatedNodes.add(sourceNode); + + GraphNode leastDistantNode = pathData.GetClosestNode(nodes); + + nodes.remove(leastDistantNode); + navigatedNodes.add(leastDistantNode); + + for (GraphNode node : leastDistantNode.getAttachedNodes().keySet()) { + double currentDistance = pathData.GetDistanceToNode(leastDistantNode) + + leastDistantNode.getAttachedNodes().get(node).getWeight(); + if (currentDistance < pathData.GetDistanceToNode(node)){ + pathData.distances.put(node, currentDistance); + node.setPreviousNodeInPath(leastDistantNode); + break; + } + } + + return pathData; } } diff --git a/Graph/src/algorithms/Dijkstra/DijkstraAlgorithmTest.java b/Graph/src/algorithms/Dijkstra/DijkstraAlgorithmTest.java index 4227371..e858f07 100644 --- a/Graph/src/algorithms/Dijkstra/DijkstraAlgorithmTest.java +++ b/Graph/src/algorithms/Dijkstra/DijkstraAlgorithmTest.java @@ -2,6 +2,7 @@ import algorithms.GraphBuilder; import elements.Graph; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -15,11 +16,25 @@ void SetUp() { } + @AfterEach + void TearDown() { + + } + @Test - void Test1() { + void GraphWithNoNodes_ThrowsArgumentException() { graph = GraphBuilder.Build().WithNodes(0).getGraph(); - Assertions.assertThrows(IllegalArgumentException.class, - () -> DijkstraAlgorithm.FindShortestPath(graph, "0", "0")); + Assertions.assertThrows(ArrayStoreException.class, () -> DijkstraAlgorithm.FindShortestPath(graph, "0", "0")); + } + + @Test + void GraphWith1Node_ReturnsPathWithOneNode() { + graph = GraphBuilder.Build().WithNodes(1).getGraph(); + + PathData pathData = DijkstraAlgorithm.FindShortestPath(graph, "0", "0"); + + Assertions.assertEquals(1, pathData.distances.size()); + Assertions.assertEquals(0, pathData.GetDistanceToNode(graph.getNode("0"))); } } \ No newline at end of file diff --git a/Graph/src/algorithms/Dijkstra/PathData.java b/Graph/src/algorithms/Dijkstra/PathData.java new file mode 100644 index 0000000..5ac3b69 --- /dev/null +++ b/Graph/src/algorithms/Dijkstra/PathData.java @@ -0,0 +1,63 @@ +package algorithms.Dijkstra; + +import elements.GraphNode; + +import java.util.ArrayList; +import java.util.HashMap; + +/** + * A Type that contains and returns the path and distance from the source node to any other node in the graph that the source node is connected to(Including Target Node). + */ +public class PathData { + GraphNode sourceNode; + GraphNode targetNode; + HashMap distances; + + public PathData(ArrayList nodes, GraphNode sourceNode, GraphNode targetNode) { + this.sourceNode = sourceNode; + this.targetNode = targetNode; + distances = new HashMap<>(); + for (GraphNode node : nodes) + distances.put(node, Double.POSITIVE_INFINITY); + sourceNode.setPreviousNodeInPath(null); + distances.put(sourceNode, 0.0); + } + + /** + * @return + */ + public ArrayList GetPathNodesToTargetNode() { + return null; + } + + /** + * @return + */ + public ArrayList GetPathNodesToNode(GraphNode node) { + return null; + } + + + /** + * @return + */ + public double GetDistanceToNode(GraphNode node) { + return 0; + } + + public GraphNode GetClosestNode(ArrayList nodes) { + double minDistance = Double.POSITIVE_INFINITY; + + GraphNode closestNode = sourceNode; + for (GraphNode graphNode : nodes) { + if (graphNode != sourceNode) { + double distance = distances.get(graphNode); + if (distance < minDistance) { + minDistance = distance; + closestNode = graphNode; + } + } + } + return closestNode; + } +} diff --git a/Graph/src/algorithms/GraphBuilder.java b/Graph/src/algorithms/GraphBuilder.java index fb33ff1..b361db8 100644 --- a/Graph/src/algorithms/GraphBuilder.java +++ b/Graph/src/algorithms/GraphBuilder.java @@ -16,7 +16,7 @@ public static GraphBuilder Build() { public GraphBuilder WithNodes(int nodeCount) { for (int index = 0; index < nodeCount; index++) - graph.addNode(String.format("%d", nodeCount)); + graph.addNode(index + ""); return this; } diff --git a/Graph/src/elements/Graph.java b/Graph/src/elements/Graph.java index 866450b..600b314 100644 --- a/Graph/src/elements/Graph.java +++ b/Graph/src/elements/Graph.java @@ -1,14 +1,13 @@ package elements; import java.util.ArrayList; -import java.util.List; /** * The type Graph. */ public class Graph { - private List nodes = new ArrayList<>(); - private List edges = new ArrayList<>(); + private ArrayList nodes = new ArrayList<>(); + private ArrayList edges = new ArrayList<>(); /** * Gets nodes. @@ -16,7 +15,7 @@ public class Graph { * @return the nodes */ - public List getNodes() { + public ArrayList getNodes() { return nodes; } @@ -26,7 +25,7 @@ public List getNodes() { * @param nodes the nodes */ - public void setNodes(List nodes) { + public void setNodes(ArrayList nodes) { this.nodes = nodes; } @@ -36,7 +35,7 @@ public void setNodes(List nodes) { * @return the edges */ - public List getEdges() { + public ArrayList getEdges() { return edges; } @@ -46,7 +45,7 @@ public List getEdges() { * @param edges the edges */ - public void setEdges(List edges) { + public void setEdges(ArrayList edges) { this.edges = edges; } @@ -57,16 +56,9 @@ public void setEdges(List edges) { */ public GraphNode addNode(String id) { - /* - * Instantiate new graph node and add it - * to the main nodes array list - */ GraphNode newNode = new GraphNode(id); nodes.add(newNode); - /* - * Return the new node - */ return newNode; } @@ -78,22 +70,11 @@ public GraphNode addNode(String id) { */ public GraphEdge addDirectionalEdge(double weight, GraphNode source, GraphNode target) { - /* - * Instantiate a new graph edge and - * add it to the main edges array list - */ GraphEdge newEdge = new GraphEdge(weight, source, target); edges.add(newEdge); - /* - * Add the target node to the attached nodes array list - * of the source node - */ attachNodes(source, target, newEdge); - /* - * Return the new graph edge - */ return newEdge; } @@ -106,26 +87,15 @@ public GraphEdge addDirectionalEdge(double weight, GraphNode source, GraphNode t */ public NonDirectionalEdge addNonDirectionalEdge(double weight, GraphNode source, GraphNode target) { - /* - * Instantiate two new graph edges, one from the source node to the target - * and the other one from target node to the source. - * Then add both of the edges to the main edges array list - */ + GraphEdge edgeOne = addDirectionalEdge(weight, source, target); GraphEdge edgeTwo = addDirectionalEdge(weight, target, source); edges.add(edgeOne); edges.add(edgeTwo); - /* - * Attach the nodes together - */ attachNodes(source, target, edgeOne); attachNodes(target, source, edgeTwo); - /* - * Instantiate a new non-directional edge - * with the two directional edges already instantiated and return the edge - */ return new NonDirectionalEdge(edgeOne, edgeTwo); } @@ -174,18 +144,9 @@ public void removeNode(GraphNode node) { */ public void removeDirectionalEdge(GraphEdge edge) { - /* - * Remove the edge from the main graph edges array list - */ edges.remove(edge); - /* - * Remove the target node from the attached nodes array list - * of the source node - */ detachNodes(edge.getSourceNode(), edge.getTargetNode()); - - } /** @@ -197,4 +158,10 @@ public void removeDirectionalEdge(GraphEdge edge) { public void removeNonDirectionalEdge(NonDirectionalEdge edge) { } + + public GraphNode getNode(String nodeIdentifier) { + for (GraphNode node : nodes) + if (node.getIdentifier().equals(nodeIdentifier)) return node; + return null; + } }