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 45c1a75..527f9f1 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 @@ -5,10 +5,10 @@ import java.util.EnumSet; import java.util.List; import org.insa.graphs.algorithm.AbstractInputData.Mode; -import org.insa.graphs.model.Arc; -import org.insa.graphs.model.GraphStatistics; import org.insa.graphs.model.AccessRestrictions.AccessMode; import org.insa.graphs.model.AccessRestrictions.AccessRestriction; +import org.insa.graphs.model.Arc; +import org.insa.graphs.model.GraphStatistics; public class ArcInspectorFactory { diff --git a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/MyArcInspector.java b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/MyArcInspector.java index 7d767ce..d656bd3 100644 --- a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/MyArcInspector.java +++ b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/MyArcInspector.java @@ -37,10 +37,9 @@ public class MyArcInspector implements ArcInspector { // Calcul du coût sur le temps de parcours double lengthInMeters = arc.getLength(); - double speedInMetersPerSecond = maxSpeed / 3.6; + double speedInMetersPerSecond = arc.getRoadInformation().getMaximumSpeed() / 3.6; // Conversion de km/h à m/s return lengthInMeters / speedInMetersPerSecond; } - } @Override 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 7d26591..110c233 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 @@ -70,21 +70,15 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { Label succLabel = labels[succ.getId()]; if (succLabel.getMarque()) - continue; // déjà traité + continue; - double newCost = LabelActuel.getTotalCost() + data.getCost(arc); + // Correction ici : on utilise getCoutRealise() pour Dijkstra + double newCost = LabelActuel.getCoutRealise() + data.getCost(arc); - //Label comp = new Label(null, false, newCost, null); //juste pour faire le compareTo entre label et pas entre double - - if (newCost < succLabel.getTotalCost()) { - //int res = succLabel.compareTo(comp); - //if (res!=0){ - // Mise à jour du coût et du prédécesseur - // Si le sommet a déjà un label dans le tas, on le retire - // avant de le mettre à jour - if (succLabel.getTotalCost() != Double.POSITIVE_INFINITY) { + if (newCost < succLabel.getCoutRealise()) { + if (succLabel.getCoutRealise() != Double.POSITIVE_INFINITY) { heap.remove(succLabel); - System.out.println(succLabel.getCoutRealise());// print de confirmation , pour verif si tous les couts qui sortent du tas sont croissant. getTotalcost pas croissant!! + //System.out.println(succLabel.getTotalCost());// print de confirmation , pour verif si tous les couts qui sortent du tas sont croissant. getTotalcost pas croissant!! } succLabel.setCoutRealise(newCost); succLabel.setPere(arc); 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 b3367ec..0bfc43f 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 @@ -51,15 +51,7 @@ public class Label implements Comparable