You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过OptaPlanner API获取字段映射场景的Top N最优解?

OptaPlanner 获取Top N最优解的实现方法

OptaPlanner 支持获取Top N个最优解,具体可以通过以下步骤实现:

1. 配置解存储上限

在构建Solver时,通过配置设置需要保留的最优解数量(即Top N的N值):

代码方式配置

SolverFactory<FieldMappingSolution> solverFactory = SolverFactory.createFromXmlResource("fieldMappingSolverConfig.xml");
SolverConfig solverConfig = solverFactory.getSolverConfig();
// 设置保留Top 5个最优解,可根据需求修改数值
solverConfig.setSolutionListLimit(5);

XML配置文件方式

如果使用XML配置Solver,在配置文件中添加<solutionListLimit>节点:

<solver>
    <!-- 其他配置项 -->
    <solutionListLimit>5</solutionListLimit>
</solver>

2. 获取Top N最优解

求解完成后,通过Solver实例的getBestSolutionList()方法获取排序后的最优解列表(按分数从优到劣排列):

Solver<FieldMappingSolution> solver = solverFactory.buildSolver();
FieldMappingSolution initialSolution = // 初始化你的字段映射问题实例
solver.solve(initialSolution);
// 获取Top N解列表
List<FieldMappingSolution> topNSolutions = solver.getBestSolutionList();

注意事项

  • 该功能从OptaPlanner 7.0版本开始支持,请确保使用的版本符合要求。
  • solutionListLimit设置的是保留解的最大数量,实际返回的解数量可能少于设定值(比如没有足够多的不同最优解)。
  • 保留过多解会占用额外内存,若N值较大,需评估内存消耗情况。

内容的提问来源于stack exchange,提问作者bits1983

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 20:40:55