private void GenerateBtnClick(object sender, EventArgs e) { // creates network nodes var network = new Network(); for (var i = 0u; i < this.numNodesNumUD.Value; i++) { network.AddVertex(i); } // creates connections for (var i = 0u; i < this.numNodesNumUD.Value; i++) { for (var j = i + 1; j < this.numNodesNumUD.Value; j++) { if (this._rand.Next(CONNECTION_CHANCE) == 0) { network.AddEdge(new Connection(i, j, this._rand.NextDouble())); } } } // creates community algorithm var communityAlg = new CommunityAlgorithm( network, (int)this.numPassesNumUD.Value, (double)this.minModularityNumUD.Value); // creates tracker var filePath = Path.GetFullPath(Path.Combine(".", D3_FILE_NAME)); var maxUpdates = (uint)this.maxUpdatesNumUD.Value; var communityTracker = new CommunityTracker(communityAlg, filePath, maxUpdates, Formatting.Indented); // runs update algorithm this.EnableInterface(false); this.algorithmWorker.RunWorkerAsync(new object[] { communityTracker, maxUpdates }); }
public void SaveGraphEvolutionFileTest() { var network = new Network(); for (var i = 0u; i < NUM_NODES; i++) { network.AddVertex(i); } var fullPath = Path.Combine(Path.GetFullPath("."), EVO_FILE_NAME); File.Delete(fullPath); Console.WriteLine(fullPath); var communityAlg = new CommunityAlgorithm(network, NUM_PASSES, MIN_MODULARITY); using (var tracker = new CommunityTracker(communityAlg, fullPath, 6, Formatting.Indented)) { var e01 = new Connection(1, 0); var e02 = new Connection(0, 2); var e12 = new Connection(2, 1); var e13 = new Connection(1, 3); var e34 = new Connection(4, 3); Update(communityAlg, tracker); Console.WriteLine("Inserting 0->1, 0->2 and 1->2"); network.AddEdge(e01); network.AddEdge(e02); network.AddEdge(e12); Update(communityAlg, tracker); Console.WriteLine("Inserting 1->3 and 3->4"); network.AddEdge(e13); network.AddEdge(e34); Update(communityAlg, tracker); Console.WriteLine("Removing 0->1, 0->2 and 1->2"); network.RemoveEdge(e01); network.RemoveEdge(e02); network.RemoveEdge(e12); Update(communityAlg, tracker); Console.WriteLine("Removing 1->3 and 3->4"); network.RemoveEdge(e13); network.RemoveEdge(e34); Update(communityAlg, tracker); Console.WriteLine("Inserting 0->1, 0->2 and 1->2"); network.AddEdge(e01); network.AddEdge(e02); network.AddEdge(e12); Update(communityAlg, tracker); } Assert.IsTrue(File.Exists(fullPath), $"D3 json file should exist in {fullPath}."); Assert.IsTrue(new FileInfo(fullPath).Length > 0, "Json file size should be > 0 bytes."); #if !DEBUG File.Delete(fullPath); #endif }
private static void Update(CommunityAlgorithm communityAlg, CommunityTracker tracker) { communityAlg.Update(); communityAlg.DisplayNodesCommunities(); Console.WriteLine("Modularity: {0}", communityAlg.GetModularity()); tracker.Update(); }
private static void Main(string[] args) { var network = new Network(); for (var i = 0u; i < NUM_NODES; i++) { network.AddVertex(i); } var communityAlg = new CommunityAlgorithm(network, NUM_PASSES, MIN_MODULARITY); using (var tracker = new CommunityTracker(communityAlg, D3_JSON_FILE, MAX_UPDATES, Formatting.Indented)) { var e01 = new Connection(1, 0); var e02 = new Connection(0, 2); var e12 = new Connection(2, 1); var e13 = new Connection(1, 3); var e34 = new Connection(4, 3); Update(communityAlg, tracker); Console.WriteLine("Inserting 0->1, 0->2 and 1->2"); network.AddEdge(e01); network.AddEdge(e02); network.AddEdge(e12); Update(communityAlg, tracker); Console.WriteLine("Inserting 1->3 and 3->4"); network.AddEdge(e13); network.AddEdge(e34); Update(communityAlg, tracker); Console.WriteLine("Removing 0->1, 0->2 and 1->2"); network.RemoveEdge(e01); network.RemoveEdge(e02); network.RemoveEdge(e12); Update(communityAlg, tracker); Console.WriteLine("Removing 1->3 and 3->4"); network.RemoveEdge(e13); network.RemoveEdge(e34); Update(communityAlg, tracker); Console.WriteLine("Inserting 0->1, 0->2 and 1->2"); network.AddEdge(e01); network.AddEdge(e02); network.AddEdge(e12); Update(communityAlg, tracker); } Console.WriteLine("Done!"); Console.ReadKey(); }
private static void UpdateCommunities(CommunityTracker communityTracker) { communityTracker.CommunityAlg.Update(); communityTracker.Update(); }