Optaplanner VRP示例,同一时间窗口内每个站点需要多辆车

问题描述 投票:0回答:1

我们正在使用定制的VRP教程示例,为前往客户的服务工程师优化日常路线以执行某些维修和安装任务。我们有时间窗口,并且会在未来数周内优化1000多个任务。

我们的(简化的)域模型包括:

  • Engineer-完成所有工作的人
  • [Task-在特定位置的单个工作分配]
  • DailyRoute-给定日期的工程师路线,包含任务的链接列表

作为新要求,我们现在必须支持两名工程师并行中完成同一任务。

我们当前的计划是通过为第二位工程师创建subtasks来实现这一目标,并实施一条规则,即其到达时间必须与主要任务相同。但是,这是有问题的,因为将相互依赖的任务之一移动到不同的时间(例如,不同的DailyRoute)将主要违反上述约束。

到目前为止,我们已经提出了以下想法:

  • 允许单个任务仅在同一天移至DailyRoute,作为其他任务的分配路线
    • 可以通过SelectionFilter完成
  • 使用CompositeMoves将两个并行任务一次移动到不同日期
    • 我们需要自定义的MoveIteratorFactory来选择连接的任务吗?
    • 或者可以用CartesianProductMoveSelector代替吗?
    • 我们是否可以在第二步使用附近的选择,以选择与第一步的新分配日期相同的日期(当时是否已经完成了一个步?)>

我们正在使用定制的VRP教程示例来优化前往客户的服务工程师的日常路线,以执行某些维修和安装任务。我们有时间窗口...

optaplanner vehicle-routing
1个回答
0
投票

对于两名并行从事同一任务的工程师,请参阅文档“设计模式”,特别是“直到最后一个模式的延迟”。没有示例,但是我们的支持服务已帮助实施了几次-可行。

© www.soinside.com 2019 - 2024. All rights reserved.