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