MATP1生成测试SolutionSet

时间:2022-07-23
本文章向大家介绍MATP1生成测试SolutionSet,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

MATP1生成测试SolutionSet

ProblemSet matp1;
matp1 = MATP1.getProblem();
ReadPrintPFTools tools = new ReadPrintPFTools();
SolutionSet testSSvarMATP1 = new SolutionSet();
   ////设置初始化测试标准SolutionSet
tools.InistdSoltSet(10,0,testSSvarMATP1,matp1);
tools.PrintSolutionSet(testSSvarMATP1);
//设置初始化测试标准SolutionSet,即最大值为1,最小值为0,x0值可以指定为0-1之间的任意实数
public void InistdSoltSet(int num_sol, double x0, SolutionSet solset, ProblemSet PS) throws ClassNotFoundException, JMException {
    //初始化SolutionSet及其Xreal
    XReal[] Xn = new XReal[num_sol];
    for (int i = 0; i < num_sol; i++) {
        solset.add(new Solution(PS));
        //将每个solution的决策变量取出,单独进行保存
        Xn[i] = new XReal(solset.get(i));
        //设置所有Solution中的x0
        Xn[i].setValue(0, x0);
        //设置Solution i 中的其余位置
        for (int j = 1; j < Xn[i].size(); j++) {
            Xn[i].setValue(j,(double) i*(1.0-0.0)/num_sol);
        }
    }
}
//打印SolutionSet的全部变量
    public void PrintSolutionSet(SolutionSet solset) {
        //检验决策变量
        Variable[] var;
        for (int i = 0; i < solset.size(); i++) {
            System.out.println("Solution " + i + "Variable   ");
            var = solset.get(i).getDecisionVariables();
            for (int j = 0; j < var.length; j++) {
                System.out.print(var[j] + "  ");
            }
            System.out.println();
        }
    }

结果