OptaPlanner:pillarSwapMoveSelector 多个 variableNameInclude 元素
OptaPlanner: pillarSwapMoveSelector multiple variableNameInclude elements
我正在尝试在我的配置 XML 中指定一个 pillarSwapMoveSelector
,它可以交换实体 class 的所有变量,这些变量不是链接变量(因为它们不兼容)随着柱子移动)。
根据 OptaPlanner 8.8.0.Final documentation,以下应该是有效的:
<pillarSwapMoveSelector>
<pillarSelector>
<entitySelector>
<entityClass>a.fully.qualified.ClassName</entityClass>
</entitySelector>
</pillarSelector>
<variableNameInclude>planningVariable1</variableNameInclude>
<variableNameInclude>planningVariable2</variableNameInclude>
<variableNameInclude>planningVariable3</variableNameInclude>
</pillarSwapMoveSelector>
好像不是。这是故意无效的吗?或者这只是文档的问题?
无论如何,如果它是一个错误,作为解决方法,您必须使用包装器来指定 variableNameInclude
s:
的集合
<pillarSwapMoveSelector>
<pillarSelector>
<entitySelector>
<entityClass>a.fully.qualified.ClassName</entityClass>
</entitySelector>
</pillarSelector>
<variableNameIncludes>
<variableNameInclude>planningVariable1</variableNameInclude>
<variableNameInclude>planningVariable2</variableNameInclude>
<variableNameInclude>planningVariable3</variableNameInclude>
</variableNameIncludes>
</pillarSwapMoveSelector>
感谢您的报告;如您所料,这是文档中的一个问题。这是 OptaPlanner 8 中引入的更改之一。文档将很快更新以反映这一点。
我还要提一下 OptaPlanner 8 中引入的另一件事,即求解器和基准配置的 XML 模式定义。如果按如下方式声明 solver
元素:
<solver xmlns="https://www.optaplanner.org/xsd/solver" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.optaplanner.org/xsd/solver https://www.optaplanner.org/xsd/solver/solver.xsd">
您可以在任何支持 XSD 的 IDE 中使用代码完成和验证。
我正在尝试在我的配置 XML 中指定一个 pillarSwapMoveSelector
,它可以交换实体 class 的所有变量,这些变量不是链接变量(因为它们不兼容)随着柱子移动)。
根据 OptaPlanner 8.8.0.Final documentation,以下应该是有效的:
<pillarSwapMoveSelector>
<pillarSelector>
<entitySelector>
<entityClass>a.fully.qualified.ClassName</entityClass>
</entitySelector>
</pillarSelector>
<variableNameInclude>planningVariable1</variableNameInclude>
<variableNameInclude>planningVariable2</variableNameInclude>
<variableNameInclude>planningVariable3</variableNameInclude>
</pillarSwapMoveSelector>
好像不是。这是故意无效的吗?或者这只是文档的问题?
无论如何,如果它是一个错误,作为解决方法,您必须使用包装器来指定 variableNameInclude
s:
<pillarSwapMoveSelector>
<pillarSelector>
<entitySelector>
<entityClass>a.fully.qualified.ClassName</entityClass>
</entitySelector>
</pillarSelector>
<variableNameIncludes>
<variableNameInclude>planningVariable1</variableNameInclude>
<variableNameInclude>planningVariable2</variableNameInclude>
<variableNameInclude>planningVariable3</variableNameInclude>
</variableNameIncludes>
</pillarSwapMoveSelector>
感谢您的报告;如您所料,这是文档中的一个问题。这是 OptaPlanner 8 中引入的更改之一。文档将很快更新以反映这一点。
我还要提一下 OptaPlanner 8 中引入的另一件事,即求解器和基准配置的 XML 模式定义。如果按如下方式声明 solver
元素:
<solver xmlns="https://www.optaplanner.org/xsd/solver" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.optaplanner.org/xsd/solver https://www.optaplanner.org/xsd/solver/solver.xsd">
您可以在任何支持 XSD 的 IDE 中使用代码完成和验证。