Ajout des notify pour Dijkstra et vérification de Dijkstra visuellement
This commit is contained in:
parent
dc63c1178f
commit
a9cfc4d635
1 changed files with 11 additions and 3 deletions
|
@ -34,7 +34,7 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
|
|||
final int nbNodes = graph.size();
|
||||
final Node destination = data.getDestination();
|
||||
final Node origin = data.getOrigin();
|
||||
|
||||
|
||||
// affichage de l'inspector utilisé
|
||||
System.out.println("Inspector utilisé est : " + inspector.toString());
|
||||
|
||||
|
@ -60,7 +60,9 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
|
|||
// on met le label du sommet origine dans le tas
|
||||
// il n'est pas nécessaire de réordonner le tas car cela est implémenté dans la méthode insert
|
||||
tas.insert(tableau_label[origin.getId()]);
|
||||
// variable qui nous permet de garder les arcs ajoutés pour les mettre dans le path plus tard
|
||||
// On notifie le fait qu'on a pris en compte l'origine
|
||||
notifyOriginProcessed(origin);
|
||||
// variable qui nous permet de garder les arcs ajoutés pour les mettre dans le path plus tard
|
||||
List<Arc> arcsajout = new ArrayList<Arc>();
|
||||
// itération
|
||||
// condition d'arrêt 1: tas vide (soit on a réellement fini soit le point de destination ne fait pas parti de la même composante connexe)
|
||||
|
@ -70,7 +72,9 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
|
|||
// inutile : tas.findMin().setmarque(true);
|
||||
labelcourant = tas.deleteMin();
|
||||
labelcourant.setmarque(true);
|
||||
|
||||
// on notifie le fait qu'on a un node marqué
|
||||
//on appelle directement la fonction car DjikstraAlgorithm hérite de la classe ShortestPathAlgorithm
|
||||
notifyNodeMarked(labelcourant.getsommetcourant());
|
||||
// pour l'ensemble des arts existants à partir du nodecourant
|
||||
for (Arc arcscourants : labelcourant.getsommetcourant().getSuccessors()){
|
||||
// Utilisation condition pour savoir si un arc peut être utilisé ou pas en fonction
|
||||
|
@ -92,6 +96,8 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
|
|||
labelchanger.setcoutrealise(cout_nv);
|
||||
// on indique que l'arc pere est arcscourants
|
||||
labelchanger.setarcperefils(arcscourants);
|
||||
// On notifie le fait qu'on a un nouveau node accessible
|
||||
notifyNodeReached(labelchanger.getsommetcourant());
|
||||
try {
|
||||
// on met ce noeud dans le tas si il n'y a jamais été mis auparavant
|
||||
tas.remove(labelchanger);
|
||||
|
@ -113,6 +119,8 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
|
|||
solution = new ShortestPathSolution(data, AbstractSolution.Status.INFEASIBLE);
|
||||
}
|
||||
else {
|
||||
// On notifie le fait qu'on a trouvé la destination
|
||||
notifyDestinationReached(destination);
|
||||
// stockage de la liste des arcs de l'origine a la destination (on a besoin de le faire dans l'ordre inverse)
|
||||
Arc dernier_arc_traite = tableau_label[destination.getId()].getarcpere_fils();
|
||||
// avec la condition du while on s'arrete à l'origine
|
||||
|
|
Loading…
Reference in a new issue