From 0052d67e9f0c1317a030aa601b10c09c81641144 Mon Sep 17 00:00:00 2001 From: Brendan Saint-Germes Date: Tue, 2 Jun 2026 10:51:47 +0200 Subject: [PATCH] autre: Ajout de commentaires dans l'ensemble de nos codes produits --- .../graphs/algorithm/ArcInspectorFactory.java | 2 + .../shortestpath/AStarAlgorithm.java | 13 +++++- .../shortestpath/DijkstraAlgorithm.java | 43 ++++++++++++++----- .../graphs/algorithm/shortestpath/Label.java | 10 +---- .../algorithm/shortestpath/LabelStar.java | 1 + .../graphs/algorithm/utils/BinaryHeap.java | 11 ++++- .../algorithm/shortestpath/AStarTest.java | 1 + .../algorithm/shortestpath/DijkstraTest.java | 1 + .../ShortestPathAlgorithmTest.java | 40 ++++++++++------- .../main/java/org/insa/graphs/model/Path.java | 8 +++- 10 files changed, 90 insertions(+), 40 deletions(-) diff --git a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/ArcInspectorFactory.java b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/ArcInspectorFactory.java index 8b9a051..7c8f963 100644 --- a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/ArcInspectorFactory.java +++ b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/ArcInspectorFactory.java @@ -110,6 +110,7 @@ public class ArcInspectorFactory { } }; + // Ajout de l'ArcInspector qui évalue les PCC en temps à vélo public static class BicyleByTime implements ArcInspector { static int maxBicycleSpeed = 20; @@ -142,6 +143,7 @@ public class ArcInspectorFactory { } } + // Ajout de l'ArcInspector qui évalue les PCC en distance à vélo public static class BicyleByLength implements ArcInspector { static int maxBicycleSpeed = 20; 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 d447351..9304620 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 @@ -4,16 +4,25 @@ import org.insa.graphs.model.Node; public class AStarAlgorithm extends DijkstraAlgorithm { + /* + L'algorithme A* est une variante de Dijkstra. + Au lieu de réimplémenter bêtement un algorithme tout entier, nous nous sommes rendu compte que l'on pouvait simplement modifier une fonction createLabel() + et que l'ensemble des itérations restaient les mêmes. Notre classe AStarAlgorithm hérite donc de DijkstraAlgorithm, et on modifie seulement la fonction createLabel(). + */ + public AStarAlgorithm(ShortestPathData data) { super(data); } @Override protected Label createLabel(Node node) { - final LabelStar labelStar = new LabelStar(node); final ShortestPathData data = (ShortestPathData)this.data; + // Création du LabelStar "vide" + final LabelStar labelStar = new LabelStar(node); + + // Contrairement à Dijkstra où on créé juste un Label "vide", ici on doit en plus calculer la distance entre le Node et le départ du chemin. final Double distance = data.getDestination().getPoint().distanceTo(node.getPoint()); // en mètres - + // En fonction de si on fait un PCC en distance ou en temps de trajet, notre heuristique ne sera pas la même switch (data.getMode()) { case LENGTH: labelStar.setCoutEstime(distance); // en mètres 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 2c09554..4eea833 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 @@ -22,8 +22,7 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { protected HashMap labels; // clé-valeur pour retrouver le label associé à un noeud à partir de son id protected BinaryHeap