Java Optaplanner更改移动过滤
我正在为调度问题编写ChangeMoves过滤器,其中规划实体是由几个整数变量定义的移位。 SelectionFilter接口非常简单,但是,我很难获得移动将更改哪个变量的详细信息。在我的情况下,这些信息对于检查是否应该过滤移动是至关重要的 虽然changeMove有getPlanningValue()方法,但我没有找到任何方法来检查将为哪个变量赋值(在我的解决方案中,它们都是整数)。还有getSimpleModeDescriptor()方法,它返回包含变量名的字符串描述,但文档不鼓励解析它返回的值 关于如何找出ChangeMove要更改的变量,有什么想法吗?我做错什么了吗? 在将来的版本中,是否可能从移动的variableDescriptor中公开getVariableName()方法 谢谢:) 编辑:在检查getSimpleMoveDescriptor()代码并测试不鼓励的解析后,例如Java Optaplanner更改移动过滤,java,optaplanner,Java,Optaplanner,我正在为调度问题编写ChangeMoves过滤器,其中规划实体是由几个整数变量定义的移位。 SelectionFilter接口非常简单,但是,我很难获得移动将更改哪个变量的详细信息。在我的情况下,这些信息对于检查是否应该过滤移动是至关重要的 虽然changeMove有getPlanningValue()方法,但我没有找到任何方法来检查将为哪个变量赋值(在我的解决方案中,它们都是整数)。还有getSimpleModeDescriptor()方法,它返回包含变量名的字符串描述,但文档不鼓励解析它返回
if(move.getSimpleMoveTypeDescription().contains("startQuantum")) {
return false;
}
我得到了想要的行为。不过,可能无法保证移动描述格式会在optaplanner的未来版本中保留变量名 修复了7.0版的。该ChangeMove应该有一个名为
getVariableName()
的新方法,该方法返回variableDescriptor.getVariableName()
,并将其链接到此处。好的,可以了,谢谢!jira已经创建,请参见回答谢谢:),同时使用simpleMoveTypeDescription期待最终发布!