Verif fastest

This commit is contained in:
El Haji Fofana 2023-05-19 11:42:26 +02:00
commit 728f069973
4 changed files with 16 additions and 9 deletions

View file

@ -17,7 +17,7 @@ public class AStarAlgorithm extends DijkstraAlgorithm {
} }
@Override @Override
public void shortestVerif(ShortestPathSolution solution,ArrayList<Node> solutionNodes , ShortestPathData data) public void ShortestVerif(ShortestPathSolution solution,ArrayList<Node> solutionNodes , ShortestPathData data)
{ {
Path p = Path.createShortestPathFromNodes(data.getGraph(), solutionNodes); Path p = Path.createShortestPathFromNodes(data.getGraph(), solutionNodes);
System.out.println("shortest path : " + p.getLength()); System.out.println("shortest path : " + p.getLength());

View file

@ -8,6 +8,7 @@ import org.insa.graphs.algorithm.utils.BinaryHeap;
import org.insa.graphs.model.Arc; import org.insa.graphs.model.Arc;
import org.insa.graphs.model.Node; import org.insa.graphs.model.Node;
import org.insa.graphs.model.Path; import org.insa.graphs.model.Path;
import org.insa.graphs.model.Point;
public class DijkstraAlgorithm extends ShortestPathAlgorithm { public class DijkstraAlgorithm extends ShortestPathAlgorithm {
@ -82,10 +83,8 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
} }
} }
} }
Label dest =List_Label.get(data.getDestination().getId()); Label dest =List_Label.get(data.getDestination().getId());
while (dest.getParent() != null){ while (dest.getParent() != null){
Arcs.add(dest.getParent()); Arcs.add(dest.getParent());
dest = List_Label.get(dest.getParent().getOrigin().getId()); dest = List_Label.get(dest.getParent().getOrigin().getId());
@ -97,15 +96,14 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
solutionNodes.add(a.getOrigin()); solutionNodes.add(a.getOrigin());
} }
solutionNodes.add(data.getDestination()); solutionNodes.add(data.getDestination());
shortestVerif(solution, solutionNodes, data); ShortestVerif(solution, solutionNodes, data);
fastestVerif(solution, solutionNodes, data); fastestVerif(solution, solutionNodes, data);
volDoiseauVerif(data, solution);
return solution; return solution;
} }
//Permet de vérifier si le chemin obtenu par la solution est bien le plus court
public void ShortestVerif(ShortestPathSolution solution,ArrayList<Node> solutionNodes , ShortestPathData data)
public void shortestVerif(ShortestPathSolution solution,ArrayList<Node> solutionNodes , ShortestPathData data)
{ {
Path p = Path.createShortestPathFromNodes(data.getGraph(), solutionNodes); Path p = Path.createShortestPathFromNodes(data.getGraph(), solutionNodes);
System.out.println("shortest path : " + p.getLength()); System.out.println("shortest path : " + p.getLength());
@ -124,4 +122,13 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
} }
} }
// Permet de vérifier si la distance de la solution est plus long que la distance à vol d'oiseau
public void volDoiseauVerif(ShortestPathData data, ShortestPathSolution solution){
double distanceV = Point.distance(data.getGraph().get(data.getOrigin().getId()).getPoint(), data.getDestination().getPoint());
if (distanceV > solution.getPath().getLength()){
System.out.println("La solution n'est pas réalisable");
} else {
System.out.println("La solution est réalisable");
}
}
} }