From b59cf7532b4444ff3780d4db2bc24ce3d0f60ddd Mon Sep 17 00:00:00 2001 From: Gasson-Betuing Danyl Date: Sun, 18 May 2025 12:52:41 +0200 Subject: [PATCH] LabelStar --- .../shortestpath/DijkstraAlgorithm.java | 87 +++++++++++++++---- .../graphs/algorithm/shortestpath/Label.java | 6 ++ .../algorithm/shortestpath/LabelStar.java | 22 +++++ 3 files changed, 100 insertions(+), 15 deletions(-) create mode 100644 be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/LabelStar.java diff --git a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java index 9124a12..9523984 100644 --- a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java +++ b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java @@ -1,12 +1,13 @@ package org.insa.graphs.algorithm.shortestpath; -import java.util.Arrays; +import java.util.ArrayList; +import java.util.Collections; import org.insa.graphs.model.Arc; import org.insa.graphs.model.Graph; import org.insa.graphs.model.Node; import org.insa.graphs.model.Path; -import org.insa.graphs.algorithm.shortestpath.Label; +import org.insa.graphs.algorithm.AbstractSolution.Status; import org.insa.graphs.algorithm.utils.BinaryHeap; public class DijkstraAlgorithm extends ShortestPathAlgorithm { @@ -23,11 +24,14 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { // retrieve data from the input problem (getInputData() is inherited from the // parent class ShortestPathAlgorithm) final ShortestPathData data = getInputData(); + // the graph Graph graph = data.getGraph(); + // node number final int nbNodes = graph.size(); int nodeId = 0; + // initialize the label list Label[] labels = new Label[nbNodes]; for(Node node : graph.getNodes()){ @@ -35,6 +39,7 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { labels[nodeId] = new Label(node, false, Double.POSITIVE_INFINITY); } + labels[data.getOrigin().getId()].computedCost = 0; labels[data.getOrigin().getId()].computedCost = 0; // variable that will contain the solution of the shortest path problem ShortestPathSolution solution = null; @@ -43,30 +48,82 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { BinaryHeap