コード例 #1
0
        public override void Initialize()
        {
            if (mIsInitialized)
            {
                return;
            }
            mIsInitialized = true;

            mLayer1 = new HAPMOEALayer <S>(mProblem1, mConfig);
            mLayer2 = new HAPMOEALayer <S>(mProblem2, mConfig);
            mLayer3 = new HAPMOEALayer <S>(mProblem3, mConfig);

            // initialize layer 1
            ParetoNode <S> node0 = mLayer1.CreateNode("Node 0");

            // initialize layer 2
            ParetoNode <S> node1 = mLayer2.CreateNode("Node 1");
            ParetoNode <S> node2 = mLayer2.CreateNode("Node 2");

            // initialize layer 3
            ParetoNode <S> node3 = mLayer3.CreateNode("Node 3");
            ParetoNode <S> node4 = mLayer3.CreateNode("Node 4");
            ParetoNode <S> node5 = mLayer3.CreateNode("Node 5");
            ParetoNode <S> node6 = mLayer3.CreateNode("Node 6");

            mLayer1.Link2BottomLayer(mLayer2);
            mLayer2.Link2BottomLayer(mLayer3);

            mLayer1.Initialize();
            mLayer2.Initialize();
            mLayer3.Initialize();
        }
コード例 #2
0
ファイル: HybridGame.cs プロジェクト: xiaoxiongnpu/cs-moea
        public override void Initialize()
        {
            if (mIsInitialized)
            {
                return;
            }
            mIsInitialized = true;

            int dimension_count = mProblem.GetDimensionCount();

            for (int objective_index = 0; objective_index != dimension_count; objective_index++)
            {
                mEliteDesignVariables[objective_index] = mProblem.GetLowerBound(objective_index) + DistributionModel.GetUniform() * (mProblem.GetUpperBound(objective_index) - mProblem.GetLowerBound(objective_index));
            }

            int objective_count = mProblem.GetObjectiveCount();
            int design_variable_count_per_objective = dimension_count / objective_count;

            //Initialize the NashNodes
            for (int objective_index = 0; objective_index < objective_count; objective_index++)
            {
                Dictionary <int, double> ellite_design_variables       = new Dictionary <int, double>();
                Dictionary <int, int>    design_variable_local_mapping = new Dictionary <int, int>();
                int starting_design_variable_index = objective_index * design_variable_count_per_objective;
                int ending_design_variable_index   = (objective_index + 1) * design_variable_count_per_objective;
                for (int j = 0; j < dimension_count; ++j)
                {
                    if (j >= starting_design_variable_index && j < ending_design_variable_index)
                    {
                        design_variable_local_mapping[j] = j - starting_design_variable_index;
                    }
                    else
                    {
                        ellite_design_variables[j] = mEliteDesignVariables[j];
                    }
                }
                NashNode <S> nash_node = new NashNode <S>(mProblem, mConfig, ellite_design_variables, design_variable_local_mapping, objective_index);
                mNashNodes.Add(nash_node);
                mNashNodes[objective_index].Initialize();
            }

            //Initialize the ParetoNode and Fixed Array
            mParetoNode = new ParetoNode <S>(mProblem);
            mParetoNode.Population.Config.Copy(mConfig);
            mParetoNode.Initialize();
        }