class KargerMinCutVariation {

    public Set<ConnectsToGraph> computeTargetLabelPartitions() {
        Set<ConnectsToGraph> best = new HashSet<>();
        int bestMinCut = Integer.MAX_VALUE;
        int currentMinCut;

        for (int i = 0; i < repetitions; i++) {
            current = new ConnectsToGraph(original);
            minCut();
            currentMinCut = current.getEdges().size();

            if (currentMinCut < bestMinCut) {
                bestMinCut = currentMinCut;
                best.clear();
                best.add(current);
            } else if (currentMinCut == bestMinCut) {
                best.add(current);
            }
        }
        LOGGER.debug("Minimum cut of " + bestMinCut +
            " found for " + best.size() + " possibilities in " +
            repetitions + " repetitions");
        return best;
    }

    public  KargerMinCutVariation(ConnectsToGraph graph);

}