【问题标题】:OptaPlanner deploy multiple vehicles to same locationOptaPlanner 将多辆车部署到同一位置
【发布时间】:2015-12-22 04:38:13
【问题描述】:

我采用了 OptaPlanner VRP 网络示例并根据我的需要对其进行了定制。除了以下情况外,它工作正常:

可用车辆数量:2。
每辆车的容量为 6。
客户需求为 7。

在上述场景中,OptaPlanner 无法解决问题。我认为它应该将 2 辆车部署到同一个客户位置,但它没有按预期工作。

我无法弄清楚如何配置 OptaPlanner 规则以使其正常工作。

【问题讨论】:

    标签: optaplanner drools-planner


    【解决方案1】:

    一种解决方法是用需求 7 拆分客户

    • 分成需求 3 和 4 的 2 个客户(都在同一个位置)。
    • 或进入需求 3、2 和 2 的 3 个客户(都在同一位置)。

    您会发现,只要有可能,同一辆车就会访问同一地点的所有客户。为了获得更好的设计,您甚至可能希望将Customer 重构为Customer(每个位置仅1 个)和CustomerPart(每个客户的单独需求1 个)。

    请注意,在原始需求中,一个需求不能拆分为 2 辆车(不是因为约束规则,而是因为域设计)。因此,使用原始实现来解决您的需求,自然会排除一些可行且可能更优化的解决方案。

    您的拆分越多,您打开新的可行和潜在的新最优解决方案的次数就越多。当然,您将每个客户的需求拆分得越多,搜索空间就越大。并且大幅增加。用需求 1 的 7 个客户替换该客户(并为所有客户这样做)将是完美的,但会遇到重大的可扩展性问题。

    为了实用,我会将高于最小车辆容量一半(甚至是该容量的三分之一)的所有需求分开,但不会更多。使用 OptaPlanner Benchmarker 来衡量(而不是猜测)当拆分限制参数发生变化时,结果质量和数据集可扩展性如何,因此您可以对其进行调整。 (哦,如果您最终进行了这些基准测试,请在此处分享您的最佳参数值。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-25
      • 1970-01-01
      • 2014-04-12
      • 2020-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多