public static void KargerMinCut() { string fileName = "kargerMinCut.txt"; StreamReader reader = null; int[] testArray = null, testArrayCopy = null; try { if (File.Exists(fileName)) { var fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read); reader = new StreamReader(fileStream); List <Vertex> vertices = new List <Vertex>(); while (!reader.EndOfStream) { string[] lineElems = reader.ReadLine().Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries); List <int> adjacentVert = new List <int>(); for (int i = 1; i < lineElems.Length; i++) { adjacentVert.Add(Convert.ToInt32(lineElems[i])); } vertices.Add(new Vertex(Convert.ToInt32(lineElems[0]), Convert.ToInt32(lineElems[0]), adjacentVert)); } UGraph graph = new UGraph(vertices); LinkedList <Edge> crossingEdges = graph.GetCrossingEdgesForMinCut(); int minCutCount = crossingEdges.Count; } } catch (Exception ex) { throw ex; } finally { if (reader != null) { reader.Dispose(); } } }
public ContractibleGraph(UGraph pOriginalGraph) { OriginalGraph = pOriginalGraph; ContractibleEdges = GetContractibleEdgesForGraph(); }