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