Example #1
0
        static void Main(string[] args)
        {
            int.TryParse(args[0], out var verticesCount);
            float.TryParse(args[1], out var removeEdgesPercentage);
            removeEdgesPercentage /= 100f;
            var numSamples = 15;

            var graphGenerator = new GraphGenerator();

            var graphList = GenerateGraphSamplesAsync(removeEdgesPercentage, numSamples, graphGenerator).Result;

            FileManage.WriteGraphsAsync(graphList).Wait();
        }
Example #2
0
        private static async Task <IList <Graph> > GenerateGraphSamplesAsync(float removeEdgesPercentage, int numSamples, GraphGenerator graphGenerator)
        {
            var graphList = new List <Graph>();
            var removeEdgesPercentages = new float[] { .05f, .40f, .70f };



            using (var cts = new CancellationTokenSource())
                for (int j = 5; j < 8; j++)
                {
                    foreach (var percentage in removeEdgesPercentages)
                    {
                        var verticesCount = 10 * Convert.ToInt32(Math.Pow(2, j));
                        Console.WriteLine($"*****  GENERATE {verticesCount} VERTICES {GetDensityName(percentage)} *****");
                        //var tasks = new List<Task>();
                        for (int i = 0; i < numSamples; i++)
                        {
                            (var edges, var verticesDegree) = graphGenerator.Gen(verticesCount);
                            await graphGenerator.RandomPruneAsync(edges, Convert.ToInt32(edges.Count *percentage), verticesDegree, cts.Token);

                            graphList.Add(new Graph {
                                Edges = edges.ToList(), VerticesCount = verticesCount, Id = $"{(i + 1)}_{GetDensityName(percentage)}"
                            });
                        }
                        //await Task.WhenAll(tasks);
                    }
                }
            return(graphList);
        }