From 5052ead7740365ceb6c84b47b2fbc492f8f21058 Mon Sep 17 00:00:00 2001 From: Ian Valentin Christensen Date: Tue, 29 Apr 2025 12:45:05 +0200 Subject: fix duplicate sets of groups as vertices in moduleGroups --- src/dk.biks.bachelorizer/dk/biks/bachelorizer/Graph.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/dk.biks.bachelorizer/dk/biks/bachelorizer/Graph.java') diff --git a/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Graph.java b/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Graph.java index f9d3606..9d8e12f 100644 --- a/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Graph.java +++ b/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Graph.java @@ -219,6 +219,17 @@ public final class Graph { final ArrayList> sets, final AbstractGraph g ) { AbstractGraph h = new AdjListGraph(); + Map, String> label = new Map<>(); + for (Set groupSet : sets) { + // canonical string name - strings sortes alphabetically + String name = groupSet.stream() + .map(Vertex::toString) + .sorted() // avoid differently sorted duplicates + .collect(Collecters.joining(",", "{", "}")); + label.put(groupSet, name); + h.insertVertex(name); + } + for (Set s: sets) { for (Set t: sets) { if (t == s) { @@ -226,7 +237,6 @@ public final class Graph { } int sum = 0; for (Vertex v: s) { - // students with this choice for (Vertex w: t) { Integer weight = @@ -237,7 +247,7 @@ public final class Graph { } } h.insertEdge( - s.toString(), t.toString(), sum); + label.get(s), label.get(t), sum); } } -- cgit v1.2.3