【问题标题】:Optaplanner take fastest pathOptaplanner 采取最快的路径
【发布时间】:2016-01-09 12:46:26
【问题描述】:
  • 我们如何优化 Optaplanner 以选择最快的路线?请参阅下图中突出显示的点。它正在走很长的路。

注意:车辆不需要返厂。我认为我不能使用 CVRPTW,因为arrivalAfterDueTimeAtDepot 是一个内置的硬约束(此外我没有任何时间限制)。

  • 我们如何编写约束来选择容量较小的车辆?
    例如,一位客户只需要 3 件物品,而我们有两辆车,容量分别为 4 和 9。似乎 Optaplanner 默认从输入顺序中选择第一辆车。

【问题讨论】:

标签: optaplanner drools-planner


【解决方案1】:

我认为它正在将蓝色车辆开往班加罗尔市中心,因为绿色车辆已经满员。

检查分数是多少(通过Solver.getScoreDirectorFactory() 计算)如果您手动将该位置放入绿色行程并交换绿色和蓝色行程的车辆。 如果情况更糟(或破坏硬约束),那么 OptaPlanner 选择其他解决方案是正常的。在这种情况下,要么你的 score 函数有错误(或者你意识到根本不想要那个解决方案)。但如果它确实有更好的分数,OptaPlanner 的<localSearch>(例如 Late Acceptance)应该会找到它(尤其是在横向扩展时,因为具有讽刺意味的是,局部最优在缩减时是一个更大的问题)。您可以尝试添加<subchainSwapMoveSelector> 等以更快地避开局部最优。

如果您想更多地引导搜索(这通常不是一个好主意),您可以定义一个规划值强度比较器,将小型车辆排在大型车辆之前,并使用构造启发式@987654324 @(_DECREASING)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    相关资源
    最近更新 更多