public Object calculate(GraphData gd) { GraphModel graph = gd.getGraph(); Vector<ArrayDeque<BaseVertex>> maxsets = getMaxIndependentSet(graph); Vector<SubGraph> ret = new Vector<SubGraph>(); for (ArrayDeque<BaseVertex> maxset : maxsets) { SubGraph sd = new SubGraph(graph); sd.vertices = new HashSet<Vertex>(); for (BaseVertex v : maxset) { sd.vertices.add((Vertex) v); } ret.add(sd); } return ret; }