public int FindMinCutKargerStein() { _edgesList = GraphGenerator.CreateEdgesList(_graphArray); var graph = new UnionFind(_verticesCount); return(FindMinCutKargerSteinRecursive(graph, _verticesCount)); }
public int FindMinCutUnion() { _edgesList = GraphGenerator.CreateEdgesList(_graphArray); var trialsNumber = GetDefaultTrials(); var lowestCut = int.MaxValue; for (int i = 0; i < trialsNumber; i++) { var randomGenerator = new Random(i); var currentCut = FindMinCutUnionOnce(randomGenerator); if (currentCut > lowestCut) { continue; } lowestCut = currentCut; } return(lowestCut); }