This commit is contained in:
Georgia Koutsodima 2023-05-10 09:34:05 +02:00
parent c20c21f527
commit 026f99c0e6
2 changed files with 28 additions and 3 deletions

View file

@ -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

View file

@ -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