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

OptaPlanner动态分数终止策略:请求级配置方法咨询

OptaPlanner按请求动态配置终止策略的实现方案

支持按请求配置终止策略,针对你场景中奖励最大值动态变化的情况,可通过以下两种方式实现:

1. 动态设置BestScoreLimit终止条件

每次处理请求时,先根据当前请求的业务数据计算出对应的最优目标分数(包含奖励项的最大值),再通过SolverConfig动态配置终止策略:

// 1. 根据当前请求数据计算目标分数,示例中soft分数对应奖励最大值
String targetBestScore = "0hard/0medium/" + calculateMaxRewardForRequest(request) + "soft";

// 2. 加载基础Solver配置并动态修改终止条件
SolverConfig solverConfig = SolverConfig.createFromXmlResource("your-solver-config.xml");
solverConfig.getTerminationConfig().setBestScoreLimit(targetBestScore);

// 3. 基于修改后的配置创建SolverFactory并提交求解任务
SolverFactory<YourSolution> solverFactory = SolverFactory.create(solverConfig);
solverManager.solve(request.getRequestId(), request.getProblem(), solution -> {
    // 处理求解结果
});

这种方式直接复用OptaPlanner内置的BestScoreLimitTermination,无需自定义逻辑,适合规则明确的场景。

2. 自定义终止器(复杂场景适用)

如果奖励最大值的判断逻辑更复杂(比如需要结合实时求解进度动态调整),可以实现自定义Termination接口:

public class RequestDynamicTermination implements Termination<YourSolution> {
    private final int maxReward;

    // 通过构造器传入当前请求的奖励最大值
    public RequestDynamicTermination(int maxReward) {
        this.maxReward = maxReward;
    }

    @Override
    public boolean isTerminated(ScoreDirector<YourSolution> scoreDirector) {
        SoftScore softScore = (SoftScore) scoreDirector.getScore().getSoftScore();
        // 判断当前奖励分数是否达到该请求的最大值
        return softScore.getScore() >= maxReward;
    }

    // 实现其他必要方法(如calculateTimeGradient等)
}

然后在请求处理时将自定义终止器配置到SolverConfig:

int maxReward = calculateMaxRewardForRequest(request);
SolverConfig solverConfig = SolverConfig.createFromXmlResource("your-solver-config.xml");
solverConfig.getTerminationConfig().setTerminationClass(RequestDynamicTermination.class);
// 通过SolverProperties传递参数(或自定义SolverFactory时注入)
solverConfig.setSolverProperty("maxReward", String.valueOf(maxReward));

注意事项

  • 每个请求需使用独立的SolverConfig/SolverFactory实例,避免不同请求的终止策略相互干扰;
  • 若基于Spring框架整合,可将SolverFactory配置为原型(Prototype)作用域,确保每次请求获取独立实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:32:41