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 8867956..b8a148d 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 @@ -22,14 +22,7 @@ public class AStarAlgorithm extends DijkstraAlgorithm { @Override protected Label createLabel(ShortestPathData data, Arc pere, Label noeudPrecedent) { - if(pere == null && noeudPrecedent == null) { - return new LabelStar(data.getOrigin(), - 0, - Point.distance(data.getOrigin().getPoint(), data.getDestination().getPoint() ) , - null); - } - - + double coutEstime = 0; @@ -67,8 +60,15 @@ public class AStarAlgorithm extends DijkstraAlgorithm { noeudPrecedent.getCost() + data.getCost(pere), coutEstime, pere); - - - } + + @Override + protected Label createLabelOrigin(ShortestPathData data) { + + return new LabelStar(data.getOrigin(), + 0, + Point.distance(data.getOrigin().getPoint(), data.getDestination().getPoint() ) , + null); + + } } 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 e4f4635..4e1d03d 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 @@ -31,7 +31,7 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { Label labels[] = new Label[graph.getNodes().size()]; Arrays.fill(labels, null); - Label origine = createLabel(data, null, null); + Label origine = createLabelOrigin(data); labels[data.getOrigin().getId()] = origine; tas.insert(origine); @@ -135,17 +135,16 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { solution = new ShortestPathSolution(data, Status.INFEASIBLE); } - System.out.println("nb erreurs = "+cptErreurs); +// System.out.println("nb erreurs = "+cptErreurs); return solution; } protected Label createLabel(ShortestPathData data, Arc pere, Label noeudPrecedent) { - if(pere != null && noeudPrecedent != null) { - return new Label( pere.getDestination() , noeudPrecedent.getCost()+ data.getCost(pere), pere); - }else { - return new Label(data.getOrigin(), 0, null); - } - + return new Label( pere.getDestination() , noeudPrecedent.getCost()+ data.getCost(pere), pere); + } + + protected Label createLabelOrigin(ShortestPathData data) { + return new Label(data.getOrigin(), 0, null); } } diff --git a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/LabelStar.java b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/LabelStar.java index ab7f26a..bb42d71 100644 --- a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/LabelStar.java +++ b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/LabelStar.java @@ -3,7 +3,7 @@ package org.insa.graphs.algorithm.shortestpath; import org.insa.graphs.model.Arc; import org.insa.graphs.model.Node; -public class LabelStar extends Label{ +public class LabelStar extends Label implements Comparable