1

我正在尝试使用带有 C# 的 or-tool来解决车辆路由问题。是否可以为车辆添加某种技能(产品类型)?例子:

  • 车辆1 - 技能[液体]
  • 车辆2 - 技能[液体,气体]
  • 车辆3 - 技能[固体]
  • pick1 - 类型 [气体]
  • Pickup2 - 类型 [液体]

所以pickup1只能被vehicle2接走,而pickup2可以被vehicle1或者vehicle2接走。

4

1 回答 1

1

您可以限制每个节点的车辆变量以过滤不熟练的车辆。

对于给定的节点,vehicle var 有一个 domain [-1, 0, .., num_vehicle - 1]

-1如果节点未被访问,则分配给车辆变量。

因此,如果您有n车辆,并且您想禁止车辆i访问节点j,则需要将 i 从车辆 var 的域中删除j

[0, .., i - 1, i + 1, .. , n - 1]删除后,如果节点不是可选的,或者节点是可选的,则车辆变量的域应该[-1, .., i - 1, i + 1, .. , n - 1]是。

于 2020-08-31T09:06:28.307 回答