/// <summary> /// The function will shuffle some optional edges to the must edges /// in a way that must edges will create a weakly connected component /// including initVertex. For this function n is already known. /// /// </summary> /// <param name="mustEdges"></param> /// <param name="optionalEdges"></param> /// <param name="numberOfVertices"></param> void CreateWeakClosureForMustEdges(ref Edge[] mustEdges, ref Edge[] optionalEdges, int numberOfVertices) { ConnectedComponentDivider divider = new ConnectedComponentDivider(mustEdges, numberOfVertices); Edge[][] comps = divider.ConnectedComponents; ClosureOfConnectedComps closure = new ClosureOfConnectedComps(mustEdges, optionalEdges, numberOfVertices, comps, this.initVertex); mustEdges = closure.MustEdges; optionalEdges = closure.OptionalEdges; }
/// <summary> /// The function will shuffle some optional edges to the must edges /// in a way that must edges will create a weakly connected component /// including initVertex. For this function n is already known. /// /// </summary> /// <param name="mustEdges"></param> /// <param name="optionalEdges"></param> /// <param name="numberOfVertices"></param> void CreateWeakClosureForMustEdges(ref Edge[] mustEdges, ref Edge[] optionalEdges, int numberOfVertices) { ConnectedComponentDivider divider=new ConnectedComponentDivider(mustEdges,numberOfVertices); Edge[][] comps=divider.ConnectedComponents; ClosureOfConnectedComps closure=new ClosureOfConnectedComps(mustEdges, optionalEdges, numberOfVertices, comps,this.initVertex); mustEdges=closure.MustEdges; optionalEdges=closure.OptionalEdges; }