static void Eliminate(string path) { var eliminatedPath = path + ".triangle_eliminated.txt"; File.Delete(eliminatedPath); foreach (var g in GraphEnumerator.EnumerateGraphFile(path)) { var ones = g.VertexWeight.IndicesWhere(w => w == 1).ToList(); if (ones.Count == 2 && g[ones[0], ones[1]]) { var n1 = g.Neighbors[ones[0]]; var n2 = g.Neighbors[ones[1]]; var common = n1.Intersection(n2); if (common.Any(v => g.Degree(v) == 2)) { continue; } } g.AppendWeightStringToFile(eliminatedPath); } }
static void Eliminate(string path) { var eliminatedPath = path + ".nosink.txt"; File.Delete(eliminatedPath); foreach (var g in GraphEnumerator.EnumerateGraphFile(path).EliminateSinks()) { g.AppendWeightStringToFile(eliminatedPath); } }
static void Eliminate(string path) { var eliminatedPath = path + ".not.eliminated.txt"; File.Delete(eliminatedPath); var graphs = GraphEnumerator.EnumerateGraphFile(path).ToList(); var excluded = graphs.SelectMany(g => OneStepEliminators(g)).ToList(); foreach (var gg in graphs.Where(g => excluded.All(h => !Graph.Isomorphic(h, g)))) { WriteGraph(gg, eliminatedPath); } }
static void Eliminate(string path) { var eliminatedPath = path + ".eliminated.txt"; File.Delete(eliminatedPath); var P4 = Choosability.Graphs.P(4); foreach (var g in GraphEnumerator.EnumerateGraphFile(path)) { P4.VertexWeight = new List <int>() { 0, 0, 0, 0 }; if (g.Contains(P4, true, WeightConditionEqualAndDegreeTwoInternal)) { continue; } P4.VertexWeight = new List <int>() { 1, 0, 0, 0 }; if (g.Contains(P4, true, WeightConditionEqualAndDegreeTwoInternal)) { continue; } P4.VertexWeight = new List <int>() { 1, 0, 0, 1 }; if (g.Contains(P4, true, WeightConditionEqualAndDegreeTwoInternal)) { continue; } WriteGraph(g, eliminatedPath); } }
public static void Go() { int total = 0; int skipped = 0; var forbidden = GraphEnumerator.EnumerateGraphFile(ForbiddenPath).ToList(); var gn = new GraphEnumerator(OutputFile, MinN, MaxN, false); gn.FileRoot = GraphFileRoot; foreach (var g in gn.EnumerateGraph6File()) { total++; if (forbidden.Any(h => g.Contains(h, Induced))) { skipped++; continue; } gn.AddWinner(g); } System.Console.WriteLine(100 * skipped / total + "% skipped"); }
public GraphPictureMaker(string graphFile) : this(GraphEnumerator.EnumerateGraphFile(graphFile)) { }