graph-theory相关内容

使用邻接表对图中所有路径进行 BFS 遍历

我目前正在尝试在使用邻接矩阵的图中遍历从源到目的地的所有路径.我一直在尝试以 BFS 方式进行操作.感谢您的帮助.我只有一条路.我如何才能打印其他路径? 公共类 AllPossiblePaths {静态int v;静态数组列表adj[];公共 AllPossiblePaths(int v) {这个.v = v;adj = 新的 ArrayList[v];for (int i = 0; i ..

使用 Graphs.jl 在 Julia 中创建简单的图形对象

我开始研究图论(我计划将它用于机器学习和/或贝叶斯推理).我想在 Julia 中编写代码,并找到了包 Graphs.但是我怎样才能使用这个包来创建简单的图表呢?比如这个: 如果我了解如何使用 Graphs 创建一个表示该图的 Julia 对象,那将非常有用.它的文档缺少示例,所以我无法开始. 解决方案 Julia 的 Graphs 包 有 simple_graph 接口用于创建这样的 ..
发布时间:2022-01-23 20:04:43 其他开发

编写一个没有递归的迭代深化的 DFS

所以目前我有一个带有以下伪代码的 DFS procedure DFS(Graph,source):创建堆栈 S将源推送到 S标记来源而 S 不为空:将 S 中的项目弹出到 v对于图中 v 上的每条边 e:让 w 成为 e 的另一端如果 w 未标记:标记 w将 w 推到 S 上 如何更改此函数以接受限制搜索深度的第三个参数? 解决方案 让 Node 为图的每个节点创建一个结构,添加一个名 ..

设计受 Yahoo Pipes 启发的界面

我非常喜欢 Yahoo Pipes 的界面 (http://pipes.yahoo.com/pipes/) 并且想为不同的问题创建一个类似的界面.是否有任何库可以让我创建具有相同基本外观的界面? 我特别喜欢管道的行为方式以及它们不只是直线的方式. 编辑:该应用程序将基于网络.我愿意使用 Flash 或 Javascript. 解决方案 WireIt 是一个开源的 javascr ..
发布时间:2022-01-18 22:18:59 其他开发

如何合并具有交集的集合(连通分量算法)?

是否有任何有效的方法来合并具有交集的集合.例如: l = [{1, 3}, {2, 3}, {4, 5}, {6, 5}, {7, 5}, {8, 9}] 预期结果是: r = [{1, 2, 3}, {4, 5, 6, 7}, {8, 9}] 应该合并所有有交集(公共组件)的集合.例如: {1, 3} &{2, 3}# {3} 所以这两个集合应该合并: {1, 3} |{2, 3} ..
发布时间:2022-01-17 18:43:39 Python

用于大规模持久化图的 NoSQL 解决方案

我迷上了使用 Python 和 NetworkX 来分析图表,随着我了解更多,我想使用越来越多的数据(我猜我正在成为数据迷 :-).最终我认为我的 NetworkX 图(存储为 dict 的 dict)将超过我系统上的内存.我知道我可能可以添加更多内存,但我想知道是否有办法将 NetworkX 与 Hbase 或类似解决方案集成? 我环顾四周,并没有真正找到任何东西,但我也找不到任何与允许简 ..
发布时间:2022-01-13 13:56:33 Python

Prolog中定义图:边和路径,查找两个顶点之间是否有路径

我对 Prolog 很陌生.我在 graph.pl 中定义了下图: 这是我的 Prolog 代码: edge(a,e).边缘(e,d).边(d,c).边缘(c,b).边(b,a).边(d,a).边缘(e,c).边(f,b).路径(X,X).路径(X,Y):- 边缘(X,Z);路径(Z,Y). 我是这样理解的:只有在顶点X之间有边时,顶点X和顶点Y之间才有路径code> 和顶点 Z 并且在 ..
发布时间:2022-01-12 10:07:18 其他开发

路径/小径/步行的定义

许多谓词定义某种非循环路径,该路径由通过二元关系定义的边构建,非常类似于定义传递闭包.因此需要一个通用的定义. 请注意,图论中定义的概念并不容易符合通常的预期.最值得注意的是,我们对边的名称不感兴趣. 更糟糕的是,图论也发生了一些变化,引入了 walk 的概念, 注意到 传统上,路径指的是现在通常称为开放式步行的路径.如今,当没有任何限定的情况下,路径通常被理解为简单,这意味着没 ..

Map-Navigation Project,道路数据通常如何存储/表示?

像 Garmin 和 TomTom 这样的导航系统一直让我着迷.我想实现小型地图/导航应用程序来尝试各种路径算法并扩展我对它们的了解. 这是一个两部分的问题: 1.) 地图数据如何存储? - 当您拥有道路网络时,这些数据通常如何存储?保留哪些部分数据以便以后重现地图?每条道路是否存储为一系列改变方向的点?这些数据以何种文件格式存储?是否有公开可用的库来轻松解析这些文件?有没有人详细说明 ..
发布时间:2022-01-10 17:43:17 其他开发

GPU 上的图算法

当前的 GPU 执行和内存模型受到某种限制(内存限制、数据结构限制、无递归......). 您认为在 GPU 上实现图论问题是否可行?例如,顶点覆盖?主导集?独立集?最大派系?.... 在 GPU 上使用分支定界算法是否也可行?递归回溯? 解决方案 你会感兴趣的 使用并行图算法探索 GPU 的极限 使用 CUDA 在 GPU 上加速大型图算法. ..
发布时间:2022-01-10 16:11:30 其他开发

C++ 中的连接组件标签

我需要在 C++ 应用程序中的图像上使用 连接组件标签 算法.我可以自己实现,但我试图使用 Boost 的 union-find/disjoint sets 实现,因为它在 union-find wiki 中被提及文章. 我不知道如何创建 disjoint_sets 对象,以便它可以处理我拥有的图像数据(无符号短裤).我错过了什么?Boost 文档中的示例对我来说没有任何意义.当我有图像时, ..
发布时间:2022-01-09 18:49:03 C/C++开发

检测连接体素的环/电路

我有一个骨架化的体素结构,如下所示: 实际结构明显比这个例子大.有什么方法可以找到结构中的闭环吗?我尝试将其转换为图并使用基于图的方法,但它们都有一个问题,即图没有节点位置的空间信息,因此图可以有多个同源环. 不可能找到所有环然后过滤掉感兴趣的环,因为图表太大了.环的大小差异很大. 感谢您的帮助和贡献! 尽管我主要使用 Python 和 Matlab 工作,但欢迎使用任何语 ..

识别给定边的连通图

我如何对相关的人进行分组,甚至是间接的?具体来说,使用如下数据集的前两列,我如何在 SAS(可能使用 DATA 步或 PROC SQL)中以编程方式导出第三列?有非迭代算法吗? 背景:每个人都有多个地址.通过每个地址,每个人都连接到零个或多个人.如果两个人已连接,他们将获得相同的组 ID.如果 A 直接连接到 B,B 连接到 C,则 A、B 和 C 共享一个组. 数据人;输入perso ..
发布时间:2022-01-08 17:06:01 其他开发

'Head First' 风格的数据结构算法书?

我喜欢关于面向对象设计的 Head First 系列书籍.这是对这个主题的一个非常温和和有趣的介绍.我目前正在学习数据结构课程,发现我们正在使用的文本(Kruse/Ryba 数据结构和 C++ 中的程序设计)非常枯燥且难以理解.这主要是由于我自己在数学领域的局限性. 有没有人知道数据结构文本的风格比较轻松,带有幽默感,但仍然涵盖了所有基础知识,例如二叉树、B 树和图? 解决方案 算法 ..
发布时间:2022-01-05 19:03:46 C/C++开发

从图形创建树结构

我正在尝试找到正确的方法来绘制数据集,该数据集包含有关用户通常在不同位置花费的时间量的信息.重要的是,有些类别和子类别的数据粒度级别越来越高(例如,60% 的人在“家",其中 40% 的人在“客厅").我知道 TreeMaps 可以显示我需要的信息和关系,但我被要求对数据进行“网络"可视化. 我特别寻找的是 Python 中的一种绘图方法,它允许我使用根据属于其类别的用户数量自动调整大小的节 ..
发布时间:2022-01-05 18:52:58 Python

深度优先搜索的完备性

我引用了人工智能:现代方法: 深度优先搜索的属性在很大程度上取决于使用的是图搜索还是树搜索版本.避免重复状态和冗余路径的图搜索版本在有限状态空间中是完整的,因为它最终会扩展每个节点.另一方面,树搜索版本不完整[...].深度优先树搜索可以在没有额外内存成本的情况下进行修改,以便它根据从根到当前节点的路径上的状态检查新状态;这避免了有限状态空间中的无限循环,但并没有避免冗余路径的扩散. ..

在图或树中寻找冗余边的算法

是否有一个既定的算法来查找图中的冗余边? 比如我想找出 a->d 和 a->e 是多余的,然后去掉它们,像这样: => 编辑:Strilanc 很好,可以帮我读懂我的想法.“冗余"这个词太强了,因为在上面的例子中,a->b 或 a->c 都不被认为是冗余的,而 a->d 是. 解决方案 您想计算保持顶点可达性的最小图. 这称为图的传递归约.维基百科文章应该会让你走上 ..
发布时间:2022-01-05 18:39:23 其他开发

寻找树的中心

我有一个问题,这是我计划的一部分. 对于树 T=(V,E),我们需要找到树中的节点 v,该节点使从 v 到任何其他节点的最长路径的长度最小. 那么我们如何找到树的中心呢?是否可以只有一个或多个中心? 如果有人能给我很好的算法,这样我就可以了解如何适应我的程序. 解决方案 有两种方法可以做到这一点(两者同时运行): 使用 BFS(我将在这里描述) 使用FIFO队列. ..
发布时间:2022-01-05 18:32:22 其他开发

树(有向无环图)实现

我需要像这样的树/有向无环图实现: public class TreeNode{私钥K;//此节点的“key",始终存在私有V值;//此节点的“值",不必设置私有树节点父母;私有集>孩子们;} 没有任何排序. TreeNode 只是键和可能值的包装器(节点不必设置值). 我需要指向父母和孩子的链接. 标准 API 或 Commons 等中有什么东西可以为我做这件事吗? ..
发布时间:2022-01-05 18:31:34 Java开发