栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在有向图中寻找哈密顿路径的随机算法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在有向图中寻找哈密顿路径的随机算法

基本上,一旦您对节点的随机选择以一种方式构造了图,使得最后一个顶点A没有未访问的相邻顶点,则需要使一个顶点可用以继续。

为此,请执行以下操作:随机选择一个相邻的顶点,删除其现有的一条边(在哈密顿路径中,任何单个顶点只能有两条边),然后从当前顶点到当前可用的随机选择的一条点绘制一条新边。然后,您从随机选择的顶点跟踪到图形的末尾(第一个只有一个边的顶点),并继续执行算法。

在各种可怕的伪代码中:

  Graph graph;  Vertex current;  Path path;  while(!IsHamiltonian(path))  {    if(HasUnvisitedNeighbor(current, path))    {      Vertex next = SelectRandomUnvisited(current, path);      DrawEdgeTo(next, current, path);      current= next;    }    else    {       Vertex next = SelectRandomNeighbor(current, path);       RemoveRandomEdgeFrom(next, path);       DrawEdgeTo(next, current, path);       path = FindEnd(next, current, path);  //Finds the end of the path, starting from next, without passing through current    }  }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/371695.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号