예제 #1
0
파일: RCP1.cs 프로젝트: Sorcha/RandomGraphs
        private void ErdosGenerateButton_Click(object sender, EventArgs e)
        {
            int.TryParse(ErdosNumberOfNodesTextBox.Text, out var numberOfNodes);
            int N = numberOfNodes;

            double.TryParse(ErdosProbabilityTextBox.Text, NumberStyles.Any, CultureInfo.InvariantCulture, out var probability);
            if (radioButton1.Checked)
            {
                var model = new ErdösRenyiModel(numberOfNodes, probability);
                if (visualize)
                {
                    var graphviz = new GraphvizAlgorithm <int, UndirectedEdge <int> >(model.Graph);

                    string output = graphviz.Generate(new FileDotEngine(), "graph");

                    ErdosGraphPictureBox.ImageLocation = @"graph.png";
                }
                double avg_k          = (double)2 * model.getCount() / numberOfNodes;;
                double expected_avg_k = probability * (numberOfNodes - 1);
                label18.Text = string.Format(@"{0}", avg_k);
                label13.Text = string.Format(@"{0}", expected_avg_k);
                label15.Text = string.Format(@"{0}", model.getGCC());
                // label3.Text = string.Format(@"{0}", Metrics.ClusteringCoefficientMetric.Analyze(model, false));


                var degreeDistribuition = model.DegreeDistribuition();

                //foreach (var degree in degreeDistribuition)
                //{
                //  Console.WriteLine($@"{degree.Key} - {degree.Value}");
                //}

                ErdosDistribuitionDegreeChart.Titles.Add(new Title(RandomGraphStrings.DegreeChartTitle));

                GenerateDegreeDistribuitionChart(ErdosDistribuitionDegreeChart, degreeDistribuition);
            }
            if (radioButton2.Checked)
            {
                GenerateCriticalPointChart(chart5, N);
                //GenerateAveragePathLengthErdosChart(chart7, N, N_init, E);
                GenerateClusteringCoefficientErdosChart(ErdosClusteringChart, N);
            }
        }
예제 #2
0
        public static void testWattsStrogatzModel()
        {
            int    nodes          = 10000;
            double beta           = 0.7;
            int    degree         = 4;
            bool   allowReflexive = false;
            bool   directed       = false;

            ErdösRenyiModel wsm = new ErdösRenyiModel(nodes, beta);

            DegreeDistributionMetric metric = new DegreeDistributionMetric();
            var dddegree = wsm.DegreeDistribuition();

            /* foreach (var d in dddegree)
             * {
             *   Console.WriteLine(string.Format("{0};{1}",d.Key,d.Value));
             * }*/

            //var graphviz = new GraphvizAlgorithm<int, UndirectedEdge<int>>(random_network.MGraph);
            //string output = graphviz.Generate(new FileDotEngine(), "graph");

            int edges = 2 * degree * nodes;
        }