static void GenerateWebpage() { var gtg = new GallaiTreeGenerator(K); var gallaiTrees = new List <Choosability.Graph>(); for (int blocks = 1; blocks <= MaxBlocks; blocks++) { System.Console.WriteLine("generating " + blocks + " block Gallai trees for K=" + K + "..."); var all = gtg.EnumerateAll(blocks, MaxOddCycle).ToList(); System.Console.WriteLine("removing isomorphs..."); var distinct = all.RemoveSelfIsomorphs(); gallaiTrees.AddRange(distinct); } System.Console.WriteLine("removing isomorphs..."); gallaiTrees = gallaiTrees.RemoveSelfIsomorphs(); System.Console.WriteLine("generating vector graphics..."); gallaiTrees.ToWebPageSimple("gallai\\" + K + "\\" + MaxBlocks + "\\" + MaxOddCycle + "\\", K); }
static void GoSlow() { var gtg = new GallaiTreeGenerator(K); var gallaiTrees = new List <Choosability.Graph> { Choosability.Graphs.K(1) }; for (int blocks = 1; blocks <= MaxBlocks; blocks++) { System.Console.Write("generating " + blocks + " block Gallai trees for K=" + K + "..."); var all = gtg.EnumerateAll(blocks, MaxOddCycle); gallaiTrees.AddRange(all); System.Console.WriteLine(" " + gallaiTrees.Count); } System.Console.WriteLine("computing invariants..."); var data = gallaiTrees.Select(g => new GraphInvariantPile() { G = g, N = g.N, E = g.E, Beta = g.IndependenceNumberBronKerbosch(g.VerticesOfDegree(K - 1)), Q = g.Vertices.Count(v => g.Degree(v) == K - 2 && g.IsClique(g.Neighbors[v])), }).ToList(); System.Console.WriteLine("removing duplicates..."); data = data.DistinctBy(x => x.Key).ToList(); foreach (var d in data) { d.ComputeRemainingInvariants(); } System.Console.WriteLine("generating glpk..."); var glpk = MakeCodes(data); System.Console.WriteLine("writing file..."); using (var sw = new StreamWriter("code.txt")) sw.Write(glpk); }
public static void Go() { var gtg = new GallaiTreeGenerator(K); var gallaiTrees = new List <Choosability.Graph> { Choosability.Graphs.K(1) }; for (int n = MinVertices; n <= MaxVertices; n++) { System.Console.WriteLine("generating for " + n + " vertex trees... "); foreach (var T in string.Format(@"C:\Users\landon\Google Drive\research\Graph6\trees\trees{0}.g6", n).EnumerateGraph6File()) { var cuts = FindBlockCuts(T); if (cuts == null) { continue; } if (cuts.Count <= 0) { gallaiTrees.AddRange(gtg.EnumerateAll(1, MaxOddCycle)); } else { gallaiTrees.AddRange(gtg.EnumerateAllForBlockTree(T, cuts, MaxOddCycle)); } } } //System.Console.WriteLine("removing isomorphs..."); //gallaiTrees = gallaiTrees.RemoveSelfIsomorphs(); //System.Console.WriteLine("generating vector graphics..."); //gallaiTrees.ToWebPageSimple("gallai\\" + K + "\\" + MaxVertices + "\\" + MaxOddCycle + "\\", K); System.Console.WriteLine("computing invariants..."); var data = gallaiTrees.Select(g => new GraphInvariantPile() { G = g, N = g.N, E = g.E, Beta = g.IndependenceNumberBronKerbosch(g.VerticesOfDegree(K - 1)), Q = g.Vertices.Count(v => g.Degree(v) == K - 2 && g.IsClique(g.Neighbors[v])), }).ToList(); System.Console.WriteLine("removing duplicates..."); data = data.DistinctBy(x => x.Key).ToList(); foreach (var d in data) { d.ComputeRemainingInvariants(); } System.Console.WriteLine("generating glpk..."); var glpk = MakeCodes(data); System.Console.WriteLine("writing file..."); using (var sw = new StreamWriter("code.txt")) sw.Write(glpk); System.Console.WriteLine("generating vector graphics..."); gallaiTrees.ToWebPageSimple("gallai\\invariant\\" + K + "\\" + MaxVertices + "\\" + MaxOddCycle + "\\", K); }