static void removeEdge(HashSet<String> subgraph) {
		double min_jaccard = Integer.MAX_VALUE;
		int max_union = 0;
		String min_a = null;
		String min_b = null;
		for (String from : subgraph) {
			for (String to : graph.get(from)) {
				if (subgraph.contains(to)) {
					double jaccard = jaccard(from, to);
					if (jaccard == 0) {
						min_jaccard = 0;
						int union = union(from, to);
						if (union > max_union) {
							max_union = union;
							min_a = from;
							min_b = to;							
						}
					}
					if (jaccard < min_jaccard) {
						min_jaccard = jaccard;
						min_a = from;
						min_b = to;
					}
				}
			}
		}
		//System.out.println("Removing edge: " + min_a + " -> " + min_b);
		graph.get(min_a).remove(min_b);
		graph.get(min_b).remove(min_a);
	}