Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 4
0
        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");
        }
Ejemplo n.º 6
0
 public GraphPictureMaker(string graphFile) : this(GraphEnumerator.EnumerateGraphFile(graphFile))
 {
 }