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

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

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

最佳答案

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

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

  • 例如,假设下雨的概率是:周一 50%,周二 10%,周三 20%。现在假设我们有车辆路径问题,需要在那个星期运送 100 个包裹,有 2 辆卡车:可以运载 20 个包裹且不受雨影响的卡车 B 和可以运载 40 个包裹但受雨影响的卡车 B:下雨造成 a它的维护成本和 1 周内的大雨破坏了它。

    现在我们可以编写一个分数计算函数来在我们的分数规则中考虑这些因素:
  • 当 B 上累积降雨的概率“和”太高时,将硬分降低多少太多(因此解决方案不可行)
  • 使用 B 时下雨的概率造成软成本(=> 降低软得分)
  • 使用 A 或 B 造成每驱动距离的软成本

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

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

    10-13 01:58