diff options
author | Ian Valentin Christensen <valentianchristensen@gmail.com> | 2025-04-29 12:45:05 +0200 |
---|---|---|
committer | Ian Valentin Christensen <valentianchristensen@gmail.com> | 2025-04-29 12:45:05 +0200 |
commit | 5052ead7740365ceb6c84b47b2fbc492f8f21058 (patch) | |
tree | 32a80061a6e65c278a21f148e053c106f76e92ff /src/dk.biks.bachelorizer/dk | |
parent | 597f219826fee4898c3692e33c45018e255c7949 (diff) |
fix duplicate sets of groups as vertices in moduleGroups
Diffstat (limited to 'src/dk.biks.bachelorizer/dk')
-rw-r--r-- | src/dk.biks.bachelorizer/dk/biks/bachelorizer/Graph.java | 14 |
1 files changed, 12 insertions, 2 deletions
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<Set<Vertex>> sets, final AbstractGraph g ) { AbstractGraph h = new AdjListGraph(); + Map<Set<Vertex>, String> label = new Map<>(); + for (Set<Vertex> 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<Vertex> s: sets) { for (Set<Vertex> 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); } } |