优先图中的最短路径

Shortest path in precedence graph

我正在寻找一种算法来确定优先图的最短路径并考虑连接图。我查看了 Dijkstra 和 Bellman Ford,但我认为它们对于优先图不可行,因为它们只在每个顶点向外穿过一条边。 但是在优先图中也有一些情况,你必须经过两条或更多条边才能到达下一个顶点。例如,要拆卸,您必须先拆下 A 和 B 部分,然后才能到达 C 部分。

我试图解决的问题: 我有一个表示如何拆卸产品的简单优先级图。每个顶点都有一个成本(时间单位)。在这张图中,我有一个起点和终点。结果应该是拆卸所需的最少时间。

还需要考虑的是,您可以根据连接图将模块作为一个整体进行拆卸以到达特定部分。该图显示了各部分实际上是如何相互连接的。像A一样,必须删除B和C才能到达D。必须先删除A。然后你可以将 B 和 C 作为一个整体删除(删除 C,同时 B 仍然附加到它)。

我现在使用深度优先搜索算法并进行一些修改以适应我在第一部分的目的。第二部分,也应该考虑模块而不是每个单独的和平,仍然缺失。也许对算法进行更多修改也有可能。