modified: be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java

This commit is contained in:
Jdihadi Ahamdy 2020-06-03 11:03:21 +02:00
parent 46722fd591
commit 65d760558c
2 changed files with 17 additions and 23 deletions

View file

@ -5,5 +5,11 @@ public class AStarAlgorithm extends DijkstraAlgorithm {
public AStarAlgorithm(ShortestPathData data) {
super(data);
}
/*Réécriture de la méthiode newLabel*/
/*Afin d'utiliser LabelSatr au lieu de Label dans l'algo*/
protected Label Label (Node node, ShortestpathData data) {
return new LabelSatr(node,data);
}
}

View file

@ -36,11 +36,12 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
notifyOriginProcessed(data.getOrigin());
/////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////INITIALISATION/////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
// -----------------initialisation-------------------------------------------------
BinaryHeap<Label> tas = new BinaryHeap<Label>();
ArrayList<Label> labels = new ArrayList<Label>();
//On initialise tous les labels à +infini, avec marque à false et pere à NULL
for (int i = 0; i < nbNodes; i++) {
labels.add(new Label(nodes.get(i)));
@ -49,13 +50,8 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
labels.get(index_origine).setCost(0);
//On insère le label actualisé dans le tas
tas.insert(labels.get(index_origine));
/////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////INITIALISATION/////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////ITERATIONS//////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
//--------------------Boucle d'iteration-------------------------------------------
//Définition d'une variable pour compter le nombre d'itérations pour le debogage
int nbIterations = 0;
@ -71,7 +67,8 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
//Vérification de la taille du tas
System.out.println("Taille du tas : " + tas.size());
//Debogage
//Sortie debogueur
//Incrémentation du nombre d'itérations
nbIterations++;
//Verification du tas
@ -82,11 +79,10 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
System.out.println("Tas non valide");
}
//On récupère les arcs successeurs du label minimal
List<Arc> arcs = label_min.getNode().getSuccessors();
//Debogage
//Sortie debogueur
System.out.println("Nb successeurs du label : " + arcs.size());
for (int i = 0; i < arcs.size(); i++) {
@ -118,13 +114,8 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
}
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////ITERATIONS//////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////CREATION DE LA SOLUTION////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
//-------------------On crée notre solution -------------------------------------
ShortestPathSolution solution = null;
//La destination n'a pas de prédécesseur, le chemin est infaisable
@ -169,11 +160,8 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////CREATION DE LA SOLUTION////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
return solution;
}
}