OptaPlanner 在 pptimization 过程中动态调整实体属性

问题描述 投票:0回答:1

我正在开发一个用于车辆路线优化的 OptaPlanner 项目,并且我有一个特定的要求。我们面临着规划过度受限的问题,即跳过客户停靠站。我们决定采用一种可行的解决方案,即添加虚拟值以捕获文档中提到的未分配实体。我想根据优化过程自动调整我域中某些 BusStop 实体的 isVirtual 属性。

这是我的域模型的简化版本:

public class BusStop {
    private boolean isVirtual;
    // Other properties and getters/setters
}

我希望此更改是动态的,并影响优化过程以提高总体分数,就好像 isVirtual 属性是分数计算的一部分一样。

任何人都可以提供一些指导或示例来说明如何在 OptaPlanner 中实现此行为吗?

到目前为止已完成的工作:在优化过程中,当总线的总路线距离超过某个阈值(例如 150,000 米)时,我会在约束提供程序实现本身中自动将某些 BusStop 实体的 isVirtual 属性设置为 true,但这是也正在实施其他解决方案。

java optimization optaplanner
1个回答
0
投票

我不会将

isVirtual
作为计划变量,这会导致搜索空间爆炸。

相反,我会添加一个中等约束(在切换到 HardMediumSoftLongScore 后)来惩罚分配的虚拟车辆的数量。

这样,您就不必应对变化无常的 150,000 米阈值等问题。

© www.soinside.com 2019 - 2024. All rights reserved.