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