Algorithm 包含双连通图中所有顶点的路径

Algorithm 包含双连通图中所有顶点的路径,algorithm,graph,graph-algorithm,depth-first-search,Algorithm,Graph,Graph Algorithm,Depth First Search,给您一个双连通图。任意两个不同节点之间存在多条简单路径的图 假设图中有N个顶点。现在,您必须从这N个顶点(可能相同)中选择起点和终点,并从起点移动到终点,以便至少访问一次所有顶点,但访问一次所有边。你必须知道这样一条路径是否存在。我认为这个问题是NP难的,这是从卡特林的观察中得到的启发:在三次图中,具有哈密顿圈相当于具有跨越欧拉回路。简化只会输出输入图形。如果输入图有一条哈密顿路径,那么这条路径就是一条跨越欧拉轨迹(这个问题需要我们去寻找)。相反,假设我们有一条跨越欧拉轨迹。该审判有三个案件:

给您一个双连通图。任意两个不同节点之间存在多条简单路径的图


假设图中有N个顶点。现在,您必须从这N个顶点(可能相同)中选择起点和终点,并从起点移动到终点,以便至少访问一次所有顶点,但访问一次所有边。你必须知道这样一条路径是否存在。

我认为这个问题是NP难的,这是从卡特林的观察中得到的启发:在三次图中,具有哈密顿圈相当于具有跨越欧拉回路。简化只会输出输入图形。如果输入图有一条哈密顿路径,那么这条路径就是一条跨越欧拉轨迹(这个问题需要我们去寻找)。相反,假设我们有一条跨越欧拉轨迹。该审判有三个案件:

  • 轨迹中阶数为1的两个顶点;所有其他顶点的阶数均为偶数
  • 所有顶点都具有偶数阶
  • 轨迹中三度的两个顶点;所有其他顶点的阶数均为偶数

  • 案例1立即给出了哈密顿路径。案例2立即给出了一个哈密顿循环,从中我们可以删除任何边并得到哈密顿路径。案例3也不太难;度3的顶点是轨迹的起点和终点,因此删除第一条边和最后一条边,得到一条哈密顿路径。

    这个条件与“超欧拉”的性质密切相关(我猜这个问题是“有一个生成的欧拉或半欧拉子图,而超欧拉仅限于”有一个扩展欧拉子图。)。卡特林调查了超欧拉图的理论:。没有什么明显适用于双连通图的特殊情况。输入约束是什么?N