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 fd172f0..304229d 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,9 +1,35 @@ package org.insa.graphs.algorithm.shortestpath; +import org.insa.graphs.algorithm.AbstractInputData.Mode; + + + +import org.insa.graphs.model.Graph; +import org.insa.graphs.model.Node; +import org.insa.graphs.model.Point; + public class AStarAlgorithm extends DijkstraAlgorithm { public AStarAlgorithm(ShortestPathData data) { super(data); } + + public void init( Graph graph, Label[] TabLabel, ShortestPathData data) { + //Initialisation + double vitesse = data.getMaximumSpeed(); + if(data.getMode() == Mode.LENGTH) { + vitesse = 1 ; + } + else { + if(vitesse == -1) { + vitesse = (double) data.getGraph().getGraphInformation().getMaximumSpeed() ; + } + vitesse = vitesse / 3.6 ; + } + for (Node node: graph.getNodes()) { // on crée un Label pour chaque node + double distance = Point.distance( node.getPoint(), data.getDestination().getPoint() ); + TabLabel[node.getId()]= new LabelStar(node,distance/vitesse); + } + } } 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 80e6566..d81c455 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 @@ -16,6 +16,13 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { super(data); } + public void init( Graph graph, Label[] TabLabel, ShortestPathData data) { + //Initialisation + for (Node node: graph.getNodes()) { + TabLabel[node.getId()]= new Label(node); // on crée un Label pour chaque node + } + } + @Override protected ShortestPathSolution doRun() { final ShortestPathData data = getInputData(); @@ -24,19 +31,16 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { Graph graph = data.getGraph(); final int nbNodes = graph.size(); BinaryHeap