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