Utilisation de inspector dans Dijkstra et getter d'inspector dans ShortestPathData
This commit is contained in:
parent
58317db92a
commit
dc63c1178f
2 changed files with 19 additions and 2 deletions
|
@ -4,6 +4,8 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
import org.insa.graphs.algorithm.AbstractSolution;
|
||||
import org.insa.graphs.algorithm.ArcInspector;
|
||||
import org.insa.graphs.algorithm.ArcInspectorFactory;
|
||||
import org.insa.graphs.algorithm.utils.BinaryHeap;
|
||||
import org.insa.graphs.algorithm.utils.ElementNotFoundException;
|
||||
import org.insa.graphs.model.Arc;
|
||||
|
@ -24,12 +26,17 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
|
|||
// retrieve data from the input problem (getInputData() is inherited from the
|
||||
// parent class ShortestPathAlgorithm)
|
||||
final ShortestPathData data = getInputData();
|
||||
// on crée un inspector qui nous permettra de savoir si on peut ou pas utiliser un arc
|
||||
ArcInspector inspector = data.getArcInspector();
|
||||
// on change l'inspector au mode qui nous intéresse soit ici voiture ( qui est a la deuxieme case du tableau)
|
||||
//inspector = ArcInspectorFactory.getAllFilters().get(1);
|
||||
final Graph graph = data.getGraph();
|
||||
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());
|
||||
|
||||
// variable that will contain the solution of the shortest path problem
|
||||
ShortestPathSolution solution = null;
|
||||
|
@ -66,6 +73,9 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
|
|||
|
||||
// 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
|
||||
// du mode de transport (piéton ou voiture )
|
||||
if(inspector.isAllowed(arcscourants)){
|
||||
Node successeur = arcscourants.getDestination();
|
||||
// si le successeur n'est pas marqué on vérifie son coût courant
|
||||
if(!(tableau_label[successeur.getId()].getmarque())) {
|
||||
|
@ -92,6 +102,8 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -40,6 +40,11 @@ public class ShortestPathData extends AbstractInputData {
|
|||
return destination;
|
||||
}
|
||||
|
||||
// Ajout : getter pour l'arc Inspector
|
||||
public ArcInspector getArcInspector(){
|
||||
return this.arcInspector;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Shortest-path from #" + origin.getId() + " to #" + destination.getId()
|
||||
|
|
Loading…
Reference in a new issue