【问题标题】:OptaPlanner for large data sets用于大型数据集的 OptaPlanner
【发布时间】:2016-06-01 15:00:24
【问题描述】:

一位客户要求我使用 Drools 进行一个项目。查看 Drools 文档,我认为他们在谈论 OptaPlanner。

公司接收来自许多客户的运输订单,并将这些订单与多家承运商的预订相关联。去年的订单超过100,000。当前发生的“优化”基于服务、分配和费率,并且是线性的(使用约束将每个订单分配给承运人,但不考虑周围订单)。要求是在池中保留非关键订单数天,并使用相同的约束优化池中的订单以实现最低成本。

最初,他们希望在去年的订单上运行“假设”以微调约束。如果这个练习成功,他们想在他们的实时系统中使用它。

我的问题是 OptaPlanner 是否是该任务的正确工具,如果是,是否有一个示例可以帮助我开始。

【问题讨论】:

    标签: optaplanner


    【解决方案1】:

    看看vehicle routing videos,听起来你的车辆路线有问题。

    如果您只使用 Drools 来分配订单,那么您基本上构建了一个构建启发式(= 贪心算法)。如果您使用 OptaPlanner 分配订单(并使用 Drools 来计算解决方案的质量(= 分数)),那么您将获得更好的解决方案。请参阅false assumptions on vehicle routing 了解原因。

    要扩展到 10 万个订单(= 计划实体),请使用 Nearby Selection(最多 1 万个)和分区搜索(a sign of weakness,但需要超过 1 万个)。

    【讨论】:

    • 称赞 Geoffrey 的出色工作,我想知道缩放到 100K 是否真的是 Mark 的问题。由于他的客户永远不会同时获得这么多订单,因此问题的规模减小了(已经交付的订单无法进一步优化)。甚至过去一年的订单分析也应该考虑到订单的到达情况。
    • 好点——过去一年订单的大小在求解过程中并不重要(任何影响都可以预先计算)。只有计划的订单数量的大小很重要。
    猜你喜欢
    • 2016-05-24
    • 1970-01-01
    • 2011-12-11
    • 2014-09-26
    • 2015-11-15
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多