From 4345b03ba0ab22f36555f4eafbc33f71a4d9bc8a Mon Sep 17 00:00:00 2001 From: georgia Date: Wed, 29 Mar 2023 16:14:06 +0200 Subject: [PATCH] fastest path --- .../main/java/org/insa/graphs/model/Path.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/be-graphes-model/src/main/java/org/insa/graphs/model/Path.java b/be-graphes-model/src/main/java/org/insa/graphs/model/Path.java index b6e9a89..8611bab 100644 --- a/be-graphes-model/src/main/java/org/insa/graphs/model/Path.java +++ b/be-graphes-model/src/main/java/org/insa/graphs/model/Path.java @@ -36,6 +36,34 @@ public class Path { throws IllegalArgumentException { List arcs = new ArrayList(); // TODO: + List nodes2=nodes; + Arc candidat = null; //arc candidat à être le plus rapide entre deux nodes + if(nodes.size()==0){ + return new Path(graph); + } + else if(nodes.size()==1){ + return new Path(graph,nodes.get(0)); + } + else{ + Node deb = nodes2.get(0); + for(Node fin : nodes2){ + if(!fin.equals(deb)){ + double time = Float.MAX_VALUE; + for(Arc a : deb.getSuccessors()){ + if(a.getDestination().equals(fin)&&time>a.getMinimumTravelTime()){ + time = a.getMinimumTravelTime(); + candidat=a; + } + } + + if(time==Float.MAX_VALUE){ + throw new IllegalArgumentException("Liste de noeuds non valide"); + } + arcs.add(candidat); + deb = fin; + } + } + } return new Path(graph, arcs); }