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); } }
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, ""); }
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, ""); }
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); //} }
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; }