保存随机变异爬山算法的最佳解决方案-Java

时间:2019-03-15 18:18:12

标签: java algorithm

我正在尝试为我的算法保存最佳解决方案,该算法可以打印出二进制尺度问题的解决方案。 我的代码正在保存最佳的Fitness结果(最小的数字),但没有保存应该是最佳Fitness的Scales解决方案的最佳Scales解决方案(二进制代码)。

public static ScalesSolution RMHC(ArrayList<Double> weights, int iter) {
if(weights == null || weights.size() == 0 || iter < 1) {        
    return null;                                               
}                                                              

ScalesSolution sol = new ScalesSolution(weights.size());        
ScalesSolution newSol = new ScalesSolution(sol.GetSol());       
double oldSolFitness = sol.ScalesFitness(weights);              
double newSolFitness = 0;                                       

for(int i = 1; i <= iter; i++) {                                
    newSol.SmallChange();                                       
    newSolFitness = newSol.ScalesFitness(weights);              

    if(newSolFitness < oldSolFitness) {                         

        oldSolFitness = newSolFitness;                          

        sol = new ScalesSolution(newSol.GetSol());              

    }                                                           
    else if(newSolFitness > oldSolFitness) {                    
        newSolFitness = oldSolFitness;                          
        sol = new ScalesSolution(newSol.GetSol());              

    }                                                           
    oldSolFitness = newSolFitness;                             


    System.out.println(newSol.GetSol() + "; " + newSolFitness);

}                                                               
return sol;                                                     

}

最后,我要保存找到的最佳适应度的解决方案(二进制),而不是保存找到的最后一个解决方案。

如果需要更多信息,请给我发消息,谢谢!

0 个答案:

没有答案