Example #1
0
        private void GenerateAveragePathLengthWattsChart(Chart chart, int N, int k)
        {
            int    iter = 20;
            double max  = 0;

            double[] datax = new double[iter];
            double[] datay = new double[iter];
            chart.Series.Clear();
            chart.Legends.Clear();
            chart.Titles.Clear();
            chart.ChartAreas.Clear();
            WattsStrogatzModel g;

            for (int i = 0; i < iter; i++)
            {
                g = new WattsStrogatzModel(N, false, false, (double)i / iter, k);

                Data.RandomNetwork d = g.Generate();
                datay[i] = d.AveragePathLength();
                datax[i] = (double)i / iter;
                if (datay[i] > max)
                {
                    max = datay[i];
                }
                Console.WriteLine("x : " + datax[i] + ", y : " + datay[i]);
            }
            ChartSeries(chart, datax, datay, "p = Avg Path Len", iter, N);
            ChartAreas(chart, "Graph Avg Path Length", max);
            ChartTitle(chart, "");
        }
Example #2
0
        private void GenerateClusteringCoefficientChart(Chart chart, int N, int k)
        {
            int iter = 20;

            double[] datax = new double[iter];
            double[] datay = new double[iter];
            chart.Series.Clear();
            chart.Legends.Clear();
            chart.Titles.Clear();
            chart.ChartAreas.Clear();
            WattsStrogatzModel g;

            for (int i = 0; i < iter; i++)
            {
                //RandomGraph g = new RandomGraph(N, (double)i/iter);
                g = new WattsStrogatzModel(N, false, false, (double)i / iter, k);

                //ErdösRenyiModel g = new ErdösRenyiModel(N, (double)i / iter);
                Data.RandomNetwork d = g.Generate();

                datay[i] = d.ClusteringCoefficient();
                datax[i] = (double)i / iter;
                //Console.WriteLine("x : " + datax[i] + ", y : "+ datay[i]);
            }
            ChartSeries(chart, datax, datay, "p = Clust. Coeff.", iter, N);
            ChartAreas(chart, "Graph Clustering Coefficient", 1);
            ChartTitle(chart, "");
        }
Example #3
0
        private void button1_Click(object sender, EventArgs e)
        {
            int N = int.Parse(textBox1.Text);
            int k = int.Parse(textBox5.Text);
            //int iter = N;
            double p = 0.0;

            double.TryParse(textBox2.Text, NumberStyles.Any, CultureInfo.InvariantCulture, out p);
            WattsStrogatzModel g = new WattsStrogatzModel(N, false, false, p, k);

            Data.RandomNetwork d = g.Generate();
            if (radioButton4.Checked)
            {
                if (visualize)
                {
                    var    graphviz = new GraphvizAlgorithm <int, UndirectedEdge <int> >(d.MGraph);
                    string output   = graphviz.Generate(new FileDotEngine(), "graph");
                    pictureBox1.ImageLocation = "graph.png";
                }
                label4.Text = string.Format(@"{0}", d.ClusteringCoefficient());
                var degreeDistribuition = d.DegreeDistribuition();


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

                GenerateDegreeDistribuitionChart(chart2, degreeDistribuition);
            }
            if (radioButton3.Checked)
            {
                GenerateAveragePathLengthWattsChart(chart4, N, k);
                GenerateClusteringCoefficientChart(chart3, N, k);
            }
        }
Example #4
0
        public static void testWattsStrogatzModelClust()
        {
            int    nodes          = 100;
            double beta           = 0.1;
            int    degree         = 4;
            bool   allowReflexive = false;
            bool   directed       = false;

            for (double i = 0.0; i <= 1; i += 0.1)
            {
                WattsStrogatzModel          wsm            = new WattsStrogatzModel(nodes, allowReflexive, directed, i, degree);
                RandomNetwork               random_network = wsm.Generate();
                ClusteringCoefficientMetric m = new ClusteringCoefficientMetric();
                double d = m.Analyze(random_network, directed);
                Console.Write(d + " ");
            }

            Console.WriteLine();
        }