コード例 #1
0
        public override Network create()
        {
            //まずは完全グラフ生成器を準備
            var cng = new CompleteNetworkGenerator(m0);
            cng.NodeCreate = this.NodeCreate;

            //完全グラフを生成
            var net = cng.create();

            //順次成長させていく NodeNumになるまで
            while(net.Nodes.Count() < NodeNum)
            {
                //既存の全ノードを準備
                var candidateNodes =  net.Nodes.ToList();

                //新しいノードを追加
                var newNode = NodeCreate();
                net.AddNode(newNode);

                //k個を選ぶ
                for (int i = 0; i < k; i++)
                {
                    //既存ノードの中から選ぶ
                    var selectedNode = RuletSelect(candidateNodes);
                    candidateNodes.Remove(selectedNode);

                    net.ConnectNodes(selectedNode,newNode);
                }
            }

            return net;
        }
コード例 #2
0
        public override Network create()
        {
            //まずは完全グラフ生成器を準備
            var cng = new CompleteNetworkGenerator(m0);

            cng.NodeCreate = this.NodeCreate;

            //完全グラフを生成
            var net = cng.create();

            //順次成長させていく NodeNumになるまで
            while (net.Nodes.Count() < NodeNum)
            {
                //既存の全ノードを準備
                var candidateNodes = net.Nodes.ToList();

                //新しいノードを追加
                var newNode = NodeCreate();
                net.AddNode(newNode);


                //k個を選ぶ
                for (int i = 0; i < k; i++)
                {
                    //既存ノードの中から選ぶ
                    var selectedNode = RuletSelect(candidateNodes);
                    candidateNodes.Remove(selectedNode);

                    net.ConnectNodes(selectedNode, newNode);
                }
            }

            return(net);
        }