输入:图 G(假设所有边都有单位权重),源-目的顶点对 (X1, Y1) , (X2 Y2) , ..., (Xk, Yk) (它们都是不同的)。
输出:路线 R1(从 X1 到 Y1)、R2(从 X2 到 Y2)、...、Rk(从 Xk 到 Yk)使得 R1、R2、...、Rk 在它们之间不共享任何顶点。无需优化路线长度。
使用什么算法?这个问题的复杂性是什么?我需要一个理论上强大的解决方案,而不是启发式的大部分时间都有效的解决方案。
最明显的解决方案是将每个自由顶点(不在 X1、X2、..Xk 或 Y1、Y2、...、Yk 中)分配给 k 条路径之一,看看它们是否真的以所需的方式形成路径。有可能的 n^k 分配( (n-2k)^k 更准确)。我们能做得更好吗?如果我们假设图形是二维网格结构怎么办?(相当于解决https://play.google.com/store/apps/details?id=com.bigduckgames.flow 游戏,但没有满足每个方格的要求)。