dijkstra
This commit is contained in:
		
							parent
							
								
									c20c21f527
								
							
						
					
					
						commit
						026f99c0e6
					
				
					 2 changed files with 28 additions and 3 deletions
				
			
		|  | @ -11,6 +11,9 @@ contraintes : | |||
| - on vérifie que tous les sommets du marathon se situent à l'intérieur de cette zone  | ||||
| - chaque sommet doit avoir une zone (autour de lui) de sommets voisins acceptables. Cette zone doit contenir tous les sommets de distance inférieure ou égale à 4 km par rapport au sommet précédent.  | ||||
| - on ne peut pas avoir des arcs qui se croisent | ||||
| - on ne peut pas avoir d'obstacles sur le chemin | ||||
| - on ne peut pas avoir de grosses montées ou descentes | ||||
| 
 | ||||
| 
 | ||||
| 1er algo: on considère qu'on connait le point de départ et le point d'arrivée | ||||
| 
 | ||||
|  | @ -18,8 +21,29 @@ contraintes : | |||
| ALGO  | ||||
| 
 | ||||
| int dist_done = 0; //distance déja effectuée depuis le point de départ  | ||||
| 
 | ||||
| 
 | ||||
| liste_deja_visite //liste avec sommets déjà visités (au début elle ne contient que l'origine) | ||||
| //on appelle origine le point de départ et dest le point de destination | ||||
| zone //zone des arcs acceptables pour chaque sommet. Par exemple zone[k] donne tous les arcs acceptables en partant du sommet k.  | ||||
| 
 | ||||
| //x est le sommet qu'on est en train de traiter | ||||
| //suc est l'arc successeur  | ||||
| 
 | ||||
| for suc in zone[x] loop | ||||
| 
 | ||||
| if suc.roadType==PEDESTRIAN or suc.roadType==CYCLEWAY or suc.roadType==TRUNK or suc.roadType==TRACK then | ||||
|     //on lève une exception et on affiche un message qui dit que cette rue n'est pas acceptable car elle est très petite | ||||
| end if | ||||
| 
 | ||||
| 
 | ||||
| for i in liste_deja_visite loop | ||||
|     if x==i then | ||||
|         //on lève une exception et on affiche un message pour dire que le sommet a déjà été visité | ||||
|     end if | ||||
| end loop | ||||
| 
 | ||||
| 
 | ||||
| if x==dest then | ||||
|     //on est arrivé à la destination  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -9,6 +9,7 @@ import org.insa.graphs.algorithm.shortestpath.ShortestPathData; | |||
| import org.insa.graphs.algorithm.shortestpath.ShortestPathSolution; | ||||
| import org.insa.graphs.model.Graph; | ||||
| import org.insa.graphs.model.Node; | ||||
| import org.insa.graphs.model.Path; | ||||
| import org.insa.graphs.model.io.BinaryGraphReader; | ||||
| import org.insa.graphs.model.io.GraphReader; | ||||
| import java.io.IOException; | ||||
|  | @ -62,7 +63,7 @@ public class DijkstraTest { | |||
|         bellman2 = new BellmanFordAlgorithm(new ShortestPathData(graph1,origin2,destination2,ArcInspectorFactory.getAllFilters().get(2))); | ||||
|         solDijkstra2 = dijkstra2.run(); | ||||
|         solBellman2 = bellman2.run(); | ||||
|     }  | ||||
|     }   | ||||
| 
 | ||||
|     @Test | ||||
|     public void testDijkstra1(){//test en distance avec Bellman-Ford | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue