Exemple #1
0
        private void button2_Click(object sender, EventArgs e)
        {
            int N                 = int.Parse(textBox4.Text);
            int N_init            = int.Parse(textBox6.Text);
            int E                 = int.Parse(textBox3.Text);;
            BarabasiAlbertModel g = new BarabasiAlbertModel(N, false, false, N_init, E);

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


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

                GenerateDegreeDistribuitionChart(chart1, degreeDistribuition);
            }
            if (radioButton5.Checked)
            {
                GenerateAveragePathLengthBarabasiChart(chart7, N, N_init, E);
                GenerateClusteringCoefficientChartBarabasi(chart6, N, N_init, E);
            }
        }
Exemple #2
0
        private void GenerateAveragePathLengthBarabasiChart(Chart chart, int N, int Ninit, int Edges)
        {
            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();
            BarabasiAlbertModel g;

            for (int i = 0; i < iter; i++)
            {
                g = new BarabasiAlbertModel(N, false, false, Ninit, Edges * i);

                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, "");
        }
Exemple #3
0
        private void GenerateClusteringCoefficientChartBarabasi(Chart chart, int N, int Ninit, int Edges)
        {
            int iter    = 20;
            int portion = Edges;

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

            for (int i = 0; i < iter; i++)
            {
                //RandomGraph g = new RandomGraph(N, (double)i/iter);
                g = new BarabasiAlbertModel(N, false, false, Ninit, Edges * i);

                //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, "");
        }
Exemple #4
0
        public static void testBarabasiAlbertModel()
        {
            //Model specific variabels
            int  nodes          = 500;
            int  degree         = 2;
            bool allowReflexive = false;
            bool directed       = false;
            int  init           = 3;
            int  edges          = ((init) * (init - 1) / 2 + (degree * (nodes - init)));

            //Create the model
            BarabasiAlbertModel      bam;
            DegreeDistributionMetric metric = new DegreeDistributionMetric();

            for (int i = 100; i < 1000; i += 100)
            {
                bam = new BarabasiAlbertModel(i, allowReflexive, directed, init, degree);
                RandomNetwork random_network = bam.Generate();
                var           dddegree       = metric.Analyze(random_network, directed);
                Console.WriteLine(string.Format("{0};{1}", i, dddegree));
            }


            //for (int j = 4; j <= 10; j += 2)
            //{
            //    bam = new BarabasiAlbertModel(j, allowReflexive, directed, init, degree);

            //    RandomNetwork random_network = bam.Generate();
            //    DegreeDistributionMetric metric = new DegreeDistributionMetric();
            //    AverageDegreeMetric m = new AverageDegreeMetric();
            //    m.Analyze(random_network, directed);
            //    double c = metric.Analyze(random_network, directed);

            //}
        }
Exemple #5
0
        public static void testBaModel()
        {
            int    nodes          = 1000;
            double beta           = 0.7;
            int    degree         = 4;
            bool   allowReflexive = false;
            bool   directed       = false;

            BarabasiAlbertModel wsm = new BarabasiAlbertModel(nodes, allowReflexive, directed, 3, 5);
            var net = wsm.Generate();
            DegreeDistributionMetric metric = new DegreeDistributionMetric();
            var dddegree = metric.Analyze(net);

            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;
        }