diff options
-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); } } |