From 7624518c7ee6188b4c307357d53a21a0c192643f Mon Sep 17 00:00:00 2001 From: Bafo Date: Thu, 18 May 2023 19:09:10 +0200 Subject: [PATCH] Astar Fini --- .../shortestpath/AStarAlgorithm.java | 15 ++++++++++-- .../shortestpath/DijkstraAlgorithm.java | 12 ++++++--- .../graphs/algorithm/shortestpath/Label.java | 23 ++++++++++++------ .../algorithm/shortestpath/LabelStar.java | 11 +-------- .../shortestpath/AStarAlgorithm.class | Bin 1493 -> 3094 bytes .../shortestpath/DijkstraAlgorithm.class | Bin 6153 -> 6543 bytes 6 files changed, 38 insertions(+), 23 deletions(-) diff --git a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/AStarAlgorithm.java b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/AStarAlgorithm.java index e30befe..f00186c 100644 --- a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/AStarAlgorithm.java +++ b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/AStarAlgorithm.java @@ -1,7 +1,8 @@ package org.insa.graphs.algorithm.shortestpath; import org.insa.graphs.model.Arc; import org.insa.graphs.model.Node; - +import org.insa.graphs.model.Path; +import java.util.ArrayList; import org.insa.graphs.model.Point; public class AStarAlgorithm extends DijkstraAlgorithm { @@ -12,7 +13,17 @@ public class AStarAlgorithm extends DijkstraAlgorithm { @Override public Label CreationLabel(Node x, Double cout, Arc parent){ ShortestPathData data = getInputData(); - return new LabelStar(x,cout,parent,Point.distance(x.getPoint(), data.getDestination().getPoint())); + return new LabelStar(x,cout,parent,Point.distance(data.getGraph().get(x.getId()).getPoint(), data.getDestination().getPoint())); } + @Override + public void ShortestVerif(ShortestPathSolution solution,ArrayList solutionNodes , ShortestPathData data) + { + Path p = Path.createShortestPathFromNodes(data.getGraph(), solutionNodes); + System.out.println("shortest path : " + p.getLength()); + if (p.getLength()-solution.getPath().getLength() < 1.00){ + System.out.println("le chemin Astar est le shortest"); + } + + } } diff --git a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java index 7ea02b7..f6430d8 100644 --- a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java +++ b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java @@ -97,13 +97,19 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { solutionNodes.add(a.getOrigin()); } solutionNodes.add(data.getDestination()); + ShortestVerif(solution, solutionNodes, data); + + return solution; + + } + + public void ShortestVerif(ShortestPathSolution solution,ArrayList solutionNodes , ShortestPathData data) + { Path p = Path.createShortestPathFromNodes(data.getGraph(), solutionNodes); - Path p2 = Path.createFastestPathFromNodes(data.getGraph(), solutionNodes); System.out.println("shortest path : " + p.getLength()); if (p.getLength()-solution.getPath().getLength() < 1.00){ System.out.println("le chemin Dijkstra est le shortest"); } - - return solution; + } } \ No newline at end of file diff --git a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/Label.java b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/Label.java index 0dfe78f..be5d384 100644 --- a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/Label.java +++ b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/Label.java @@ -22,20 +22,27 @@ public class Label implements Comparable