mathematical-optimization - OptaPlanner 是否能够模拟随机程序?

标签 mathematical-optimization optaplanner stochastic

在工作中,我们正在努力优化生产的商品数量以满足不确定的需求。通过分析之前发生的需求,我们知道需求的概率分布。

用数学术语来说,这个问题是一个多阶段随机整数规划。我们现在正在研究 OptaPlanner 来解决它。但是,OptaPlanner 似乎没有提供建模和解决此类问题的能力。一种可能性是将程序转换为确定性问题,这可能是可解的,但这将花费很多时间来转换和解决。

所以我们的问题是:OptaPlanner 能否对此类问题进行建模并有效地解决它们?

最佳答案

这些类型的用例不是开箱即用的示例,也不是经过充分研究的,但是使用一些自定义代码是可能的:

  • OptaPlanner 可以在任何分数计算函数之上进行优化。唯一真正的要求是它返回一个Score,它本质上是一个Comparable.
  • 您可以定义自定义 Score(请参阅文档),但在下面的示例中,我将使用标准的 HardSoftScore 就可以了。 HardSoftScore 基本上是 2 个 int 变量。

例如,假设下雨的概率为:星期一 50%,星期二 10%,星期三 20%。现在假设我们有车辆路线问题,需要在那一周运送 100 个包裹,有 2 辆卡车:卡车 A 可以运载 20 个包裹并且不受雨水影响,卡车 B 可以运载 40 个包裹但受雨水影响:雨水造成它的维护成本和 1 周内过多的降雨将其损坏。

现在我们可以编写一个分数计算函数来在我们的分数规则中考虑这些因素:

  • 当B的概率累积降雨的“总和”过高时,将hard score降低多少太多(所以解不可行)
  • 使用 B 时下雨的概率会造成软成本(=> 降低软分数)
  • 使用 A 或 B 会产生每行驶距离的软成本

也就是说,OptaPlanner 不提供任何概率算术方法,例如求和概率(这是非平凡的)。但是,您可以插入任何提供该功能的 Java 框架,为 drools DRL 调用这些函数。此外,drools-chance 本来应该提供该功能,但该项目目前处于非事件状态(但我们迟早会重新启动它)。

关于mathematical-optimization - OptaPlanner 是否能够模拟随机程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36174787/

相关文章:

java - 当我使用 @PlanningPin 时,为什么 OptaPlanner 给出 "Bailing out of neverEnding selector to avoid infinite loop."错误?

java - 随机爬山法

python 代码 : Geometric Brownian Motion - what's wrong?

python - NLopt 无效参数

java - OptaPlanner 了解规则

algorithm - 加油站问题 - 最便宜和最少的加油站

java - 光规划器 :Error when displaying constraints scores

java - 了解随机登山者

algorithm - 类背包优化问题的遗传算法

machine-learning - RISO 的 L-BFGS 不起作用