graph-theory相关内容

您如何使用 A-Star 或 Dijkstra 算法解决 15 难题?

我在我的一本 AI 书籍中读到,在模拟或游戏中用于寻路的流行算法(A-Star、Dijkstra)也用于解决众所周知的“15 拼图". 谁能给我一些关于如何将 15 拼图简化为节点和边图以便我可以应用其中一种算法的指示? 如果我将图中的每个节点都视为一个游戏状态,那这棵树会不会变得很大?或者这只是这样做的方式? 解决方案 对于 A-Star 的 15 谜题来说,一个很好的启发式 ..
发布时间:2021-11-30 13:05:45 AI人工智能

检测有向图中循环的最佳算法

检测有向图中所有环的最有效算法是什么? 我有一个表示需要执行的作业时间表的有向图,一个作业是一个节点,一个依赖项是一个边.我需要检测导致循环依赖关系的图中循环的错误情况. 解决方案 Tarjan's strong连通分量算法具有O(|E| + |V|)时间复杂度. 有关其他算法,请参阅维基百科上的强连通分量. ..
发布时间:2021-11-26 23:53:28 其他开发

绘制网络图

我正在尝试在 ASP 网页上绘制图形.我希望 API 会有所帮助,但到目前为止我还没有找到. 该图包含标记的节点和未标记的有向边.理想的输出类似于 this. 有没有人知道任何可以提供帮助的预先构建的东西? 解决方案 绝对graphviz.您指向的维基百科链接上的图像是在 graphviz 中制作的.从其描述页面看,图形描述文件如下所示: graph untitled {图[ ..
发布时间:2021-11-15 02:22:35 其他开发

寻找一个简单的 Java API 来创建图形(边 + 节点)

我正在尝试寻找一个简单的 Java API 来创建图形关系.它应该有一些功能,例如 addEdge()、addNode()、isConnected(node1, node2)、findPaths(node1, node2) 等.我不需要 UI,只需要逻辑. 我找到了一堆学术项目,但似乎没有一个是“定义图 API". 有人知道这样的 API 吗? 解决方案 JGraphT 听起来 ..
发布时间:2021-11-15 00:35:22 其他开发

如何使用 Python/pyspark 运行 graphx?

我正在尝试使用 pyspark 通过 Python 运行 Spark graphx.我的安装看起来是正确的,因为我能够很好地运行 pyspark 教程和(Java)GraphX 教程.大概因为 GraphX 是 Spark 的一部分,pyspark 应该能够连接它,对吗? 这里是pyspark的教程:http://spark.apache.org/docs/0.9.0/quick-start ..
发布时间:2021-11-12 05:40:27 其他开发

用最小割将图分成相同大小的不相交集

是否有任何算法或代码将图节点划分为满足以下条件的两个或多个不相交的集合:首先,只允许移除边缘.其次,边缘被加权,那些将被删除的必须具有最小权重(最小切割算法).第三,期望的不相交集合的大小尽可能长. 解决方案 看起来您正在尝试解决最小二分问题,其中给定图 G,您希望将 V[G] 划分为两个不相交的子集A 和 B 的大小相等,使得 A 和 B 之间的边的权重之和最小.不幸的是,最小-二分问题 ..
发布时间:2021-10-26 18:49:05 其他开发

是否有一种算法可以在无向图中找到分离源和汇的最小割

我有一个边加权无向图和 2 个节点(通常称为源和汇).我需要找到一组权重最小的边,将这 2 个节点分成 2 个弱分量. 我了解 Ford-Fulkerson 的最大流算法 和他的定理关于有向图上的最大流和最小割关系. 我还知道对无向图的 Ford-Fulkerson 最大流算法进行了修改,该算法将每个无向边替换为 2 个相反的有向边,并同时更新流向它们两个.但是有了这个修改,最大流最小 ..
发布时间:2021-10-26 18:46:25 其他开发

Dijkstra's 算法不生成最短路径?

我正在使用 Dijkstra 算法解决最短路径问题.我遇到了麻烦,因为该算法应该提供最短路径,但是在运行该算法后,我手动得到了一条短路路径.这只是这个算法的副产品吗? 我试图生成的路径来自 a -> z 这是我通过应用算法得到的路径,在我访问的每个顶点处进行最短距离跳跃: 2 4 2 2 1 2 1 1 8 = 23->d->g->k->r ->n ->q ->p->t->z 这 ..
发布时间:2021-10-26 18:42:50 其他开发

如何找到所有最短路径

我有一张图,我想找到两个节点之间的所有最短路径.我通过 BFS 找到了两个节点之间的最短路径.但是,如果存在多个,它只会给我一条最短路径. 如何使用 BFS 获得所有这些? 我已经用著名的 BFS 伪代码实现了我的代码. 另外,我有一个邻接列表向量,它包含所有节点的邻接顶点. 解决方案 更简单的方法是使用 dfs 查找从源到目标的所有路径.现在找出这些路径中最短的路径.这是一 ..
发布时间:2021-10-26 18:42:02 其他开发

找到连接的节点集群的算法

我正在处理 3d 数据,并提供了一个相互连接的顶点列表.数据格式如下: faces = [(0, 1, 2),(1, 3, 2),(3, 5, 6),(5, 7, 4),(10, 11, 12),(11, 12, 13),(12, 13, 14)] 数组中的每一项都由一个三元组组成,其中每个位置的数字表示相互连接的顶点的索引.我在图片中可视化了这个例子,以便更好地理解顶点是如何连接的. ..
发布时间:2021-10-26 18:39:24 其他开发

计算网格中标记节点 k 距离内的节点

我正在尝试解决编码挑战,但是我的解决方案不是很高效,我正在寻找有关如何改进算法的建议. 拼图如下: 您将获得一个代表果园的单元格网格,每个单元格可以是一个空点 (0) 或一棵果树 (1).一位农民想知道果园内距离所有果树 k 距离内有多少空位. 使用出租车几何计算距离,例如: k = 1[1, 0][0, 0]答案是 2,因为只有右下角的位置与所有树木的距离 > k. 我的解 ..
发布时间:2021-10-26 18:37:44 其他开发

解决依赖群体

使用以下函数我可以生成一些测试数据. 导入随机,字符串a = 列表(string.ascii_lowercase)def gen_test_data():s = []对于 xrange(15) 中的 i:p = random.randint(1,3)xs = [random.choice(a) for i in xrange(p)]s.append(xs)返回 这是我的测试数据. [['作为 ..
发布时间:2021-07-23 19:18:51 其他开发

图形工具是否有投影二部图的方法?

我正在尝试将二部图投影到两个单模图中. 我想使用双重投影方法分析二部图.我一直在使用 NetworkX,但我想尝试使用图形工具,因为它声称效率更高.我的图有可能很快变得很大,所以我想使用最有效的方法/包.包图形工具声称效率更高,我想尝试一下,但我找不到使用它来投影二部图的方法.有谁知道这是否可以使用图形工具?我找到的唯一信息是创建者要求提出类似问题的人创建票证,以便他/他们可以开始处理它,但 ..
发布时间:2021-06-22 18:30:49 其他开发

可视化对GraphViz太大的无向图?

我需要一些建议,以绘制具有178,000个节点和500,000条边的无向图.我已经尝试过Neato,Tulip和Cytoscape.Neato甚至都离得很近,Tulip和Cytoscape声称他们可以应付,但似乎没有能力.(郁金香什么也不做,Cytoscape声称正在工作,然后停下来.) 我只希望矢量格式文件(ps或pdf)具有合理的节点布局. 解决方案 Graphviz本身提供了呈 ..
发布时间:2021-05-13 19:26:32 其他开发

减少基本图形公式的复杂度/计算时间

我尝试使用基本公式(是从另一个SO问题中得到的),用于计算 n 个顶点的不同边集的最大数量: 2 **(n *(n-1)/2) 但是它仅对小范围的数字有用-然后变得太复杂了. 有没有办法改善这个公式/降低复杂性? 解决方案 这是一种大大加快此速度的简便方法: 2 ** x 始终等于 1 ..
发布时间:2021-05-13 19:26:28 其他开发

在序言中定义图形并检查带有边的列表

对于Prolog来说,我是一个非常陌生的人,并且设法定义了一个图形 到目前为止,我的序言代码是 edge(1,2).边(1,3).edge(2,3).edge(3,4).边(4,6).edge(6,5).边(5,3).边(5,1). im试图弄清楚如何编写一个walk/2谓词,该谓词检查W是否是G(图形)中的参数,应该检查其边缘是否与另一个连接. 所以当我检查结果时 ?- ..
发布时间:2021-05-13 19:26:25 其他开发

为什么我用Java实现的随机Prim's Algorithm只会生成完整的网格?

我试图在维基百科 https://en.wikipedia.org/wiki/Maze_generation_algorithmRandomized_Prim上遵循此伪代码的s_algorithm但是我的代码只会生成一个完整的网格.我对算法的功能了解不足.有人可以帮忙解释我在做什么错吗? 我看过一些资料,但我无法将其包裹住 公共类MazeGen {私有int维度,nodeCounter;私 ..
发布时间:2021-05-13 19:26:22 其他开发

如何从特征实现中返回HashMap的键上的迭代器?

我正在尝试在Rust中构建一个简单的图形库.任何图都必须实现一个特征 Graph .此特征目前仅具有一个功能,即 nodes ,它允许使用for-in循环来迭代图的节点. Graph 的实现, MapGraph ,是围绕 HashMap 的轻量级包装. MapGraph 必须实现 Graph 特征方法 nodes .我在使它正常工作时遇到问题. 这是 Graph 的代码: pub ..
发布时间:2021-05-13 19:26:18 其他开发

突出显示NetworkX中的某些节点/边缘-使用zip()的问题

我能够使用networkx填充网络图.我的问题是当我要突出显示图形无法生成的路径(例如最短路径)时,它将在下面返回错误. nx.draw_networkx_edges(Gr,pos,edgelist = path_edges,edge_color ='r',width = 10)在draw_networkx_edges中的文件"/usr/local/lib/python3.6/site-pac ..
发布时间:2021-05-13 19:26:14 其他开发

计算网络周期

最好的方法是什么,或者有没有实现的方法可以对网络中的3个和4个周期进行计数. 3个周期等于要从一个模式网络计算的三个节点(三角形)的连接组从两个模式网络中计算出四个周期相等的四个节点的连接组(正方形) 如果我有这样的网络: onemode ..
发布时间:2021-05-13 19:26:11 其他开发