NSGA-IIアルゴリズムで非ソートソートサブルーチンを実装しています。以下のコードの最初の部分である:2-D arraylistがwhileループ外の0にリセットされる
public ArrayList<ArrayList<AttStrategy>> nondominatedSorting
(ArrayList<AttStrategy> StrategyPopulation, double max_rho_mal, double p_max) {
int i = 0, p, q;
int [] domination_count = new int[StrategyPopulation.size()];
ArrayList<AttStrategy> dominated_strategies = new ArrayList<>();
ArrayList<AttStrategy> dominating_strategies = new ArrayList<>();
ArrayList<ArrayList<AttStrategy>> dominated_strategies_list = new ArrayList<>();
ArrayList<ArrayList<AttStrategy>> pareto_strategies = new ArrayList<>();
while(i < StrategyPopulation.size()) {
int j = 0;
domination_count[StrategyPopulation.get(i).getId()] = 0;
dominated_strategies.clear();
for (j = i+1; j < StrategyPopulation.size(); j++){
if (constraintDominated(StrategyPopulation.get(i), StrategyPopulation.get(j), max_rho_mal, p_max))
dominated_strategies.add(StrategyPopulation.get(j));
else if (constraintDominated(StrategyPopulation.get(j), StrategyPopulation.get(i), max_rho_mal, p_max))
domination_count[StrategyPopulation.get(i).getId()] += 1;
}
if (domination_count[StrategyPopulation.get(i).getId()] == 0) {
dominating_strategies.add(StrategyPopulation.get(i));
}
dominated_strategies_list.add(StrategyPopulation.get(i).getId(), dominated_strategies);
//values getting stored in the arraylist
System.out.println("Size of " + StrategyPopulation.get(i).getId() + ": " + dominated_strategies_list.get(i).size());
i = i + 1;
} //while-loop ends
//values getting reset to 0.
System.out.println("********Outside the loop*********");
for(i = 0; i < dominated_strategies_list.size(); i++){
System.out.println("Size of " + i + ": " + dominated_strategies_list.get(i).size());
}
//.............................................
}
私が午前問題は、2-DのArrayListのでdominated_strategies_listです。このarraylistはwhileループ内に取り込まれていますが、ループ外で使用されるとすべての値は0にリセットされます。ただし、ループ内で更新されている他のarraylistsおよび配列はループ外に値を保持します。したがって、私はこのarraylist(dominated_strategies_list)をサブルーチンの後半部分で使用することはできません。私はどこでミスをしていますか?可能な解決策を提案する。
非常に厄介な、あなたの選択およびすべてはあなたが助けたり、必要がないかどうかに依存...あなたのコードをフォーマットし、いくつかのコメント – Javant
を追加...やコメントを無視してください。 –