From 886415c478dde3e0f4744426407a2a371b2d20f7 Mon Sep 17 00:00:00 2001 From: matbesancon Date: Mon, 26 Jan 2026 22:16:52 +0100 Subject: [PATCH 1/2] bump Julia compat bound --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 8c7eacf..2941f92 100644 --- a/Project.toml +++ b/Project.toml @@ -21,7 +21,7 @@ Graphs = "1" GraphsFlows = "0.1" GraphsMatching = "0.2" MathOptInterface = "1" -julia = "1" +julia = "1.10" Hungarian = "0.7.0" [extras] From 6c2501cfda4082a35bc223c1cfecccdbb3490917 Mon Sep 17 00:00:00 2001 From: matbesancon Date: Tue, 27 Jan 2026 09:54:56 +0100 Subject: [PATCH 2/2] remove nonnegative check --- src/spanning_tree.jl | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/spanning_tree.jl b/src/spanning_tree.jl index e5423d3..49dc269 100644 --- a/src/spanning_tree.jl +++ b/src/spanning_tree.jl @@ -18,13 +18,9 @@ function FrankWolfe.compute_extreme_point( N = length(direction) iter = collect(Graphs.edges(lmo.graph)) distmx = spzeros(N, N) - min_weight = minimum(direction) - # we add a positive offset for negative weights - # not changing optimal solutions since all trees have the same # of edges - offset = min_weight > 0 ? zero(min_weight) : 1 - min_weight for idx in 1:N - distmx[src(iter[idx]), dst(iter[idx])] = direction[idx] + offset - distmx[dst(iter[idx]), src(iter[idx])] = direction[idx] + offset + distmx[src(iter[idx]), dst(iter[idx])] = direction[idx] + distmx[dst(iter[idx]), src(iter[idx])] = direction[idx] end span = Graphs.kruskal_mst(lmo.graph, distmx) v = spzeros(N) @@ -32,6 +28,7 @@ function FrankWolfe.compute_extreme_point( for i in 1:N if (src(edge) == src(iter[i]) && dst(edge) == dst(iter[i])) v[i] = 1 + break end end end