optaplanner - 本地搜索的附近选择器配置错误
问题描述
我在尝试在本地搜索中实现 NearbySelector 时遇到此错误。本地搜索配置。我尝试了随机和原始选择顺序:
<changeMoveSelector>
<entitySelector id="entitySelector1"/>
<selectionOrder>ORIGINAL</selectionOrder>
<valueSelector>
<nearbySelection>
<originEntitySelector mimicSelectorRef="entitySelector1"/>
<nearbyDistanceMeterClass>NearbyGrainMeter</nearbyDistanceMeterClass>
<parabolicDistributionSizeMaximum>40</parabolicDistributionSizeMaximum>
</nearbySelection>
</valueSelector>
</changeMoveSelector>
错误:
java.lang.IllegalArgumentException: The nearbySelectorConfig (NearbySelectionConfig()) with randomSelection (false) has distribution parameters.
at org.optaplanner.core.config.heuristic.selector.common.nearby.NearbySelectionConfig.buildNearbyRandom(NearbySelectionConfig.java:226)
at org.optaplanner.core.config.heuristic.selector.common.nearby.NearbySelectionConfig.applyNearbyValueSelector(NearbySelectionConfig.java:205)
at org.optaplanner.core.config.heuristic.selector.value.ValueSelectorConfig.buildValueSelector(ValueSelectorConfig.java:293)
at org.optaplanner.core.config.heuristic.selector.move.generic.ChangeMoveSelectorConfig.buildBaseMoveSelector(ChangeMoveSelectorConfig.java:84)
at org.optaplanner.core.config.heuristic.selector.move.MoveSelectorConfig.buildMoveSelector(MoveSelectorConfig.java:252)
at org.optaplanner.core.config.heuristic.selector.move.MoveSelectorConfig.buildMoveSelector(MoveSelectorConfig.java:241)
at org.optaplanner.core.config.heuristic.selector.move.composite.UnionMoveSelectorConfig.buildBaseMoveSelector(UnionMoveSelectorConfig.java:77)
at org.optaplanner.core.config.heuristic.selector.move.MoveSelectorConfig.buildMoveSelector(MoveSelectorConfig.java:252)
at org.optaplanner.core.config.localsearch.LocalSearchPhaseConfig.buildMoveSelector(LocalSearchPhaseConfig.java:289)
at org.optaplanner.core.config.localsearch.LocalSearchPhaseConfig.buildDecider(LocalSearchPhaseConfig.java:155)
at org.optaplanner.core.config.localsearch.LocalSearchPhaseConfig.buildPhase(LocalSearchPhaseConfig.java:141)
at org.optaplanner.core.config.localsearch.LocalSearchPhaseConfig.buildPhase(LocalSearchPhaseConfig.java:54)
at org.optaplanner.core.config.solver.SolverConfig.buildPhaseList(SolverConfig.java:446)
at org.optaplanner.core.config.solver.SolverConfig.buildSolver(SolverConfig.java:349)
at org.optaplanner.core.impl.solver.AbstractSolverFactory.buildSolver(AbstractSolverFactory.java:61)
at App.main(App.java:168)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:282)
at java.lang.Thread.run(Thread.java:748)```
Does anyone understand what is happening?
解决方案
附近的选择需要RANDOM
选择顺序,而您的配置ChangeMoveSelector
指定<selectionOrder>ORIGINAL</selectionOrder>
.
您是否尝试将其更改为:<selectionOrder>RANDOM</selectionOrder>
?
推荐阅读
- python-3.x - for循环的优化
- python - 如何使用熊猫数据框的if条件
- pyspark - 在 pyspark 中使用窗口函数时出现错误
- git - git pull 后不自动提交,没有合并冲突
- android - Android存储访问框架文档递归创建文件和目录
- google-apps-script - 谷歌应用脚本(谷歌表单)中的 pagebreakitem 和 sectionheaderitem 有什么区别?
- web-crawler - 如何从维基百科中提取语义事实
- python - 查找每两行 pandas data.frame 的字符串之间的差异
- c# - como puedo usalor HttpPostedFileBase en asp.net core?
- angular - Firestore数据的角度循环