Exemple #1
0
        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 });
        }
Exemple #2
0
        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
        }
Exemple #3
0
        private static void Update(CommunityAlgorithm communityAlg, CommunityTracker tracker)
        {
            communityAlg.Update();
            communityAlg.DisplayNodesCommunities();
            Console.WriteLine("Modularity: {0}", communityAlg.GetModularity());

            tracker.Update();
        }
Exemple #4
0
        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();
        }
Exemple #5
0
 private static void UpdateCommunities(CommunityTracker communityTracker)
 {
     communityTracker.CommunityAlg.Update();
     communityTracker.Update();
 }