Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading Optaplanner多线程尝试在自定义移动时产生“缺少重基”_Multithreading_Optaplanner - Fatal编程技术网

Multithreading Optaplanner多线程尝试在自定义移动时产生“缺少重基”

Multithreading Optaplanner多线程尝试在自定义移动时产生“缺少重基”,multithreading,optaplanner,Multithreading,Optaplanner,我将Optaplanner库从7.5更新到7.9,以便与NurseServering代码的变体一起使用,并使用发行说明,例如,一些方法名称更改为成功重建并重新运行。然后,我将用于多线程处理的moveThreadCount xml行添加到我的解算器配置xml中。 汽车 运行然后立即抛出一个错误: 原因:java.lang.UnsupportedOperationException:自定义移动类westgranite.staffrostering.solver.move.EmployeeChang

我将Optaplanner库从7.5更新到7.9,以便与NurseServering代码的变体一起使用,并使用发行说明,例如,一些方法名称更改为成功重建并重新运行。然后,我将用于多线程处理的moveThreadCount xml行添加到我的解算器配置xml中。 汽车

运行然后立即抛出一个错误: 原因:java.lang.UnsupportedOperationException:自定义移动类westgranite.staffrostering.solver.move.EmployeeChangeMove未实现rebase方法,因此无法进行多线程解决。

我有很多自定义动作。在发行说明中,我没有看到任何关于需要添加rebase方法的参考,在当前更新的关于构建自定义移动的文档部分中,我也没有看到任何关于rebase方法的参考。


有人能给我指一下正确的路吗?谢谢

我建议阅读这篇优秀的博文:因为它更深入地解释了多线程解决的工作原理

我还建议阅读关于rebase方法的javadoc,它应该为您指出正确的方向:

下面是一个例子:

public class CloudComputerChangeMove extends AbstractMove<CloudBalance> {

    private CloudProcess cloudProcess;
    private CloudComputer toCloudComputer;

    ...

    @Override
    public CloudComputerChangeMove rebase(ScoreDirector<CloudBalance> destinationScoreDirector) {
        return new CloudComputerChangeMove(
                destinationScoreDirector.lookUpWorkingObject(cloudProcess),
                destinationScoreDirector.lookUpWorkingObject(toCloudComputer));
    }

}

请看Nick的答案,但丢失的文档/升级配方说明确实漏掉了,谢谢您的报道。谢谢Geoffrey和Nick!PS:升级到7.12+——修复了多线程解决中的错误。javadoc链接很有用,谢谢。虽然我同意这是一个很好的观点,但至少在当前的博客文章中没有提到需要新的重新设置基础代码。