1

我看到了车辆路线问题的这段代码,对于我想要的术语,我只需要这些变量和限制:代码和限制,但我无法理解什么以及如何解释 TravelTimes 数据以及问题给出的结果,不它通过所有节点?路线是什么?结果。有3个节点吗?这是存款的节点。最后我无法理解节点之间的时间和结果。我会很感激有人解释。

我想知道从存款节点出发并经过所有其他节点的路线是什么。

4

1 回答 1

3

此 MiniZinc 模型包含车辆路线问题的线性模型。

该模型寻找由变量表示的路径x。如果x[i,j]等于1,则表示该路由包含从 Nodei到 Node的路径j。一个特殊的节点0代表仓库(车辆的起点/终点)。

在此特定模型中,您可以从所有任何节点旅行到任何其他节点,但是它们之间的旅行时间不相等。该TravelTime数组包含在不同节点之间移动所需的时间。TravelTime[i,j]是从 Nodei到 Node的时间j。该模型的目标是最小化 中所选路径的行程时间x

为了完成模型,“入度”约束强制为每个节点(包括仓库)选择 1 个传入路径,而“出度”约束强制为每个节点(包括仓库)选择 1 个传出路径。这些约束确保您访问每个节点并且车辆返回起点。

正如我在开头提到的,这个模型看起来像是为线性求解器编写的,例如 MIP 求解器。像 CBC 和 Gurobi 这样的求解器可能会在这个模型上做得很好,但其他的不会。为了让其他求解器更容易访问它,您可以查看circuit全局,它将替换“入度”和“出度”约束。全局约束允许求解器选择如何以对求解器可能的最佳方式强制执行特定约束。

于 2020-07-29T06:46:08.013 回答