dijkstra
This commit is contained in:
		
							parent
							
								
									c81a209b5a
								
							
						
					
					
						commit
						14240bbf30
					
				
					 1 changed files with 29 additions and 1 deletions
				
			
		|  | @ -1,8 +1,13 @@ | |||
| package org.insa.graphs.algorithm.shortestpath; | ||||
| import org.insa.graphs.model.Node; | ||||
| import org.insa.graphs.model.Arc; | ||||
| import org.insa.graphs.algorithm.AbstractSolution.Status;  | ||||
| import org.insa.graphs.model.Graph; | ||||
| 
 | ||||
| import org.insa.graphs.model.Path; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.Collections; | ||||
| 
 | ||||
| import org.insa.graphs.algorithm.utils.BinaryHeap; | ||||
| 
 | ||||
|  | @ -28,7 +33,7 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { | |||
|         Label label_origine = tab.get(data.getOrigin().getId()); | ||||
|         label_origine.setCoutmin(0); | ||||
| 
 | ||||
|         Label label_dest =tab.get(data.getDestination().getId()) | ||||
|         Label label_dest =tab.get(data.getDestination().getId()); | ||||
|         /*insertion de label origine dans le tas */ | ||||
|         tas.insert(label_origine); | ||||
|         Label x; | ||||
|  | @ -53,6 +58,29 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { | |||
|                 } | ||||
|             } | ||||
|         } | ||||
|         // On n'a pas trouvé de solution, on est sorti de la boucle car le tas est vide  | ||||
|         if (label_dest.getMarque()==false) { | ||||
|             solution = new ShortestPathSolution(data, Status.INFEASIBLE); | ||||
|         } | ||||
|         else { | ||||
| 
 | ||||
|             // The destination has been found, notify the observers. | ||||
|             notifyDestinationReached(data.getDestination()); | ||||
| 
 | ||||
|             // Create the path from the array of predecessors... | ||||
|             ArrayList<Arc> arcs = new ArrayList<>(); | ||||
|             Arc arc = label_dest.getPere(); | ||||
|             while (arc != null) { | ||||
|                 arcs.add(arc); | ||||
|                 arc = tab.get(arc.getOrigin().getId()).getPere(); | ||||
|             } | ||||
| 
 | ||||
|             // Reverse the path... | ||||
|             Collections.reverse(arcs); | ||||
| 
 | ||||
|             // Create the final solution. | ||||
|             solution = new ShortestPathSolution(data, Status.OPTIMAL, new Path(data.getGraph(), arcs)); | ||||
|         } | ||||
| 
 | ||||
|          | ||||
|         return solution; | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue