graph-theory相关内容

无向图转换为树

给出一个无向图,其中每个节点在空间中具有笛卡尔坐标,并且具有树的一般形状,是否有一种算法可以将图形转换成树,并找到合适的根节点? 请注意,我们对“树"的定义要求分支不要以锐角偏离父节点. 请参见下面的示例图.我们如何找到红色节点? 解决方案 这是有关如何解决问题的建议. 先决条件 符号: g图,g.v图顶点 v,w,z:单个顶点 e:单个边缘 n:顶点数 ..
发布时间:2020-11-20 05:37:24 其他开发

使用Dijkstra检测多个最短路径

给定一个加权有向图,如何修改Dijkstra算法以测试给定节点对之间是否存在多个最低成本的路径? 我的当前算法如下:(贷给魏斯) / ** *单源加权最短路径算法。 (Dijkstra) *使用基于二进制堆 * / 的优先级队列public void dijkstra(String startName) { PriorityQueue pq =新的Prio ..
发布时间:2020-10-22 01:31:55 Java开发

有没有比Dijkstra更快的算法?

给定一个仅具有正边权重的有向连通图,是否有比使用斐波那契堆的Dijkstra更快的算法来找到两个顶点之间的最短路径? 维基百科说,Dijkstra在O(| E | + | V | * log(| V |))中(使用斐波那契堆)。 我不是寻找优化,例如执行时间的一半,而是时间复杂度不同的算法(例如从O(n * log n)到O(n))。 此外,我想了解您对以下方法的看法: 确 ..
发布时间:2020-10-22 01:23:04 其他开发

此python代码是否使用深度优先搜索(DFS)来查找所有路径?

此代码在关于图论的python官方文章中给出。这是代码: def find_all_paths(graph,start,end,path = []): path = path + [开始] 如果开始==结束: 返回[路径] 如果不是graph.has_key(开始): 返回[] 路径= [] 用于图形[开始]中的节点:$ b​​ $ b如果节点不在路径中: newpaths = ..
发布时间:2020-10-20 23:40:54 Python

DFS中的边缘分类

根据这本书(算法简介),在dfs中,边缘分为4种: 树边缘(如果存在)边缘(u,v),首先发现v,然后(u,v)是 a树边缘。 后边缘,如果......,v是 前缘,如果......,则表明v已被发现并且v是u的后代,即前缘 交叉边缘,除上述三个以外的所有边缘。 我的问题试图确定(u,v)是后边缘还是前边缘时,如何确定v是您的祖先还是后代? 解决方案方案 如果确实需要, ..
发布时间:2020-10-20 23:40:47 其他开发

如何使用最大流量算法找到图形上的最小割口?

我需要找到图形上的最小割线。我一直在阅读有关流动网络的信息,但我能找到的只是最大流动算法,例如Ford-Fulkerson,push-relabel等。给定最大流动最小割定理,是否有可能使用这些算法之一来查找使用最大流量算法在图形上的最小割角? 到目前为止,我发现的最佳信息是,如果我发现“饱和”边缘,即流量等于容量的边缘,则这些边缘对应于最小切割。真的吗?这听起来对我来说不是100%正确。的 ..
发布时间:2020-10-13 19:08:26 其他开发

检测连接的体素的环/电路

我有一个骨架化的体素结构,看起来像这样: 实际结构比该示例大得多在结构中找到闭合环的任何方法? 我尝试将其转换为图并使用基于图的方法,但是它们都存在一个问题,即图没有节点位置的空间信息,因此图可以有多个同源的环。 由于图形太大,因此不可能找到所有的环,然后过滤掉感兴趣的环。环的大小差别很大。 感谢您的帮助和贡献! 任何语言方法和伪方法-code是可以接受的,尽管我主要使用 ..

约翰逊图的矩阵阵列是什么样的?

我似乎找不到关于约翰逊图的矩阵数组的任何示例(或根本没有很多信息)。谁能给我发送一个有关其数组外观的示例吗? 解决方案 这直接使用此处给出的Johnson Graph的定义 Wiki Johnson图 johnsonmatrix [n_,k_]:=模块[{s = Select [Subsets [Range [n]],Length [#] == k&]}}, {s,MatrixF ..

如何为一组边缘分配相同的样式?

我有一个图表,希望graphviz可以为我进行布局和可视化。该图具有122条边和123个节点。边缘有4种不同的边缘,我希望它们在视觉上可以区分。但是,我还没有决定最好的方法,我想稍微玩一下表盘。 不幸的是,我没有看到边缘的“ class”或“ stylesheet”属性。我只能为每个边缘(很多重复)分别设置视觉属性。也许我错过了什么?毕竟是否有某种方法可以将边添加到4个不同的组中,然后对组进 ..
发布时间:2020-10-05 04:04:38 其他开发

用R(手动)计算顶点(节点)的局部聚类系数

我发现显示如何手工计算LCC的示例(参见图片)。 如何在R中复制这些步骤?重点是查找“邻居之间的实际链接数”(中间步骤) 我最好手动计算 * igraph包装是否提供此数字? 邻接矩阵示例: 矩阵(数据= c(0,1,0,1,1,0,0,1,1,1,0,1,1,0,1,0,0),ncol = 4 ) 解决方案 所有这些操作都可以在 igraph 。举一个 ..
发布时间:2020-10-03 02:13:53 其他开发

在无向图的DFS搜索中记录前辈

我正尝试使用此线程中的代码: Boost DFS back_edge ,以将循环记录在无向图中.为此,我需要为每个dfs树在找到back_edge时存储predecessors.由于这是无向图,因此我认为我们不能直接从 EventVisitor概念.因此,我正在考虑在以下代码的void back_edge()方法中记录其前身.但是我不确定如何执行此操作并返回循环顶点. 这是我为录制前辈而添加 ..
发布时间:2020-09-22 04:58:40 其他开发

如何使用Autofac构建已解析实例的图形?

所有注册后,我正在执行ContainerBuilder.RegisterCallback并订阅所有IComponentRegistration.Preparing和IComponentRegistration.Activating事件,以便能够处理所有激活.通过这两个事件,我可以构建一棵树,事件的顺序如下所示: 准备:根 准备中:FirstLevel_A 激活:FirstLevel_A ..
发布时间:2020-09-14 07:08:00 C#/.NET

您如何用A-Star或Dijkstra的算法求解15题?

我已经读过一本AI书,其中流行的算法(A-Star,Dijkstra)用于模拟或游戏中的寻路,也用于解决著名的"15难题". 谁能给我一些指导,说明如何将15谜题简化为节点和边的图形,以便我可以应用其中一种算法? 如果我将图中的每个节点都视为游戏状态,那么那棵树不会变得很大吗?还是只是这样做的方法? 解决方案 对于A-Star来说,具有15个谜题的一种很好的启发方法是在错误位置 ..

二次时间顶点覆盖率验证

假设您获得了一个无向图G,该图具有n个顶点和m个顶点 n x n邻接矩阵A表示的边,您也 给定顶点S的子集(由大小为m的数组表示). 如何检查S是否是G的顶点覆盖且具有二次方 时间和空间的复杂性? 根据顶点覆盖的定义,我知道我们要求每个边都必须入射到S中包含的顶点. 我可以轻松地提出三次算法:遍历邻接矩阵;每个1表示边(u, v).检查S中是否包含u或v.如果不是,答案是否定的.如果我 ..
发布时间:2020-08-22 21:05:23 其他开发

二分图中最小顶点覆盖的算法

我正在尝试找出一种算法,用于查找二部图的最小顶点覆盖率. 我正在考虑一个解决方案,它将问题减少到二部图中的最大匹配.众所周知,可以使用从bip创建的networ中的最大流量来找到它.图. 最大匹配M应该确定最小.顶点覆盖C,但是我无法选择设置C的顶点. 比方说.图具有部分X,Y和顶点,这些顶点是最大匹配边缘的端点在集合A中,而那些不属于B. 我会说我应该为M到C的边缘选择一个顶点 ..
发布时间:2020-08-22 20:39:11 其他开发

完整图形组件的数量

给出一个无向图.我如何检查它是否可以分为两组,其中一组的每个节点都连接到其自身的其他每个节点(完整图).一组可以为空,也可以只有一个节点.不应保留任何节点. 谢谢. 编辑:两组之间的边缘不被禁止. 基本上,我们必须检查图表是否可以分为两个组 解决方案 如@Damien所述,检查给定图的顶点是否可以划分为两个集团实际上是 给定一个图G =(V,E),将其补码表示为G'.然后,且 ..
发布时间:2020-08-22 20:23:48 其他开发