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
|
- 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.
|
- 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 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
|
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
|
ALGO
|
||||||
|
|
||||||
int dist_done = 0; //distance déja effectuée depuis le point de départ
|
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.algorithm.shortestpath.ShortestPathSolution;
|
||||||
import org.insa.graphs.model.Graph;
|
import org.insa.graphs.model.Graph;
|
||||||
import org.insa.graphs.model.Node;
|
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.BinaryGraphReader;
|
||||||
import org.insa.graphs.model.io.GraphReader;
|
import org.insa.graphs.model.io.GraphReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
Loading…
Reference in a new issue