graph-theory相关内容
我有一个边加权无向图和 2 个节点(通常称为源和汇).我需要找到一组权重最小的边,将这 2 个节点分成 2 个弱分量. 我了解 Ford-Fulkerson 的最大流算法 和他的定理关于有向图上的最大流和最小割关系. 我还知道对无向图的 Ford-Fulkerson 最大流算法进行了修改,该算法将每个无向边替换为 2 个相反的有向边,并同时更新流向它们两个.但是有了这个修改,最大流最小
..
我正在使用 Dijkstra 算法解决最短路径问题.我遇到了麻烦,因为该算法应该提供最短路径,但是在运行该算法后,我手动得到了一条短路路径.这只是这个算法的副产品吗? 我试图生成的路径来自 a -> z 这是我通过应用算法得到的路径,在我访问的每个顶点处进行最短距离跳跃: 2 4 2 2 1 2 1 1 8 = 23->d->g->k->r ->n ->q ->p->t->z 这
..
我有一张图,我想找到两个节点之间的所有最短路径.我通过 BFS 找到了两个节点之间的最短路径.但是,如果存在多个,它只会给我一条最短路径. 如何使用 BFS 获得所有这些? 我已经用著名的 BFS 伪代码实现了我的代码. 另外,我有一个邻接列表向量,它包含所有节点的邻接顶点. 解决方案 更简单的方法是使用 dfs 查找从源到目标的所有路径.现在找出这些路径中最短的路径.这是一
..
我正在处理 3d 数据,并提供了一个相互连接的顶点列表.数据格式如下: faces = [(0, 1, 2),(1, 3, 2),(3, 5, 6),(5, 7, 4),(10, 11, 12),(11, 12, 13),(12, 13, 14)] 数组中的每一项都由一个三元组组成,其中每个位置的数字表示相互连接的顶点的索引.我在图片中可视化了这个例子,以便更好地理解顶点是如何连接的.
..
我正在尝试解决编码挑战,但是我的解决方案不是很高效,我正在寻找有关如何改进算法的建议. 拼图如下: 您将获得一个代表果园的单元格网格,每个单元格可以是一个空点 (0) 或一棵果树 (1).一位农民想知道果园内距离所有果树 k 距离内有多少空位. 使用出租车几何计算距离,例如: k = 1[1, 0][0, 0]答案是 2,因为只有右下角的位置与所有树木的距离 > k. 我的解
..
使用以下函数我可以生成一些测试数据. 导入随机,字符串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)返回 这是我的测试数据. [['作为
..
我正在尝试将二部图投影到两个单模图中. 我想使用双重投影方法分析二部图.我一直在使用 NetworkX,但我想尝试使用图形工具,因为它声称效率更高.我的图有可能很快变得很大,所以我想使用最有效的方法/包.包图形工具声称效率更高,我想尝试一下,但我找不到使用它来投影二部图的方法.有谁知道这是否可以使用图形工具?我找到的唯一信息是创建者要求提出类似问题的人创建票证,以便他/他们可以开始处理它,但
..
我需要一些建议,以绘制具有178,000个节点和500,000条边的无向图.我已经尝试过Neato,Tulip和Cytoscape.Neato甚至都离得很近,Tulip和Cytoscape声称他们可以应付,但似乎没有能力.(郁金香什么也不做,Cytoscape声称正在工作,然后停下来.) 我只希望矢量格式文件(ps或pdf)具有合理的节点布局. 解决方案 Graphviz本身提供了呈
..
我尝试使用基本公式(是从另一个SO问题中得到的),用于计算 n 个顶点的不同边集的最大数量: 2 **(n *(n-1)/2) 但是它仅对小范围的数字有用-然后变得太复杂了. 有没有办法改善这个公式/降低复杂性? 解决方案 这是一种大大加快此速度的简便方法: 2 ** x 始终等于 1
..
对于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(图形)中的参数,应该检查其边缘是否与另一个连接. 所以当我检查结果时 ?-
..
我试图在维基百科 https://en.wikipedia.org/wiki/Maze_generation_algorithmRandomized_Prim上遵循此伪代码的s_algorithm但是我的代码只会生成一个完整的网格.我对算法的功能了解不足.有人可以帮忙解释我在做什么错吗? 我看过一些资料,但我无法将其包裹住 公共类MazeGen {私有int维度,nodeCounter;私
..
我正在尝试在Rust中构建一个简单的图形库.任何图都必须实现一个特征 Graph .此特征目前仅具有一个功能,即 nodes ,它允许使用for-in循环来迭代图的节点. Graph 的实现, MapGraph ,是围绕 HashMap 的轻量级包装. MapGraph 必须实现 Graph 特征方法 nodes .我在使它正常工作时遇到问题. 这是 Graph 的代码: pub
..
我能够使用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
..
最好的方法是什么,或者有没有实现的方法可以对网络中的3个和4个周期进行计数. 3个周期等于要从一个模式网络计算的三个节点(三角形)的连接组从两个模式网络中计算出四个周期相等的四个节点的连接组(正方形) 如果我有这样的网络: onemode
..
我已经用图论的术语提出了这个问题,但是概念化不是必需的. 我要使用Python进行的操作是产生一个零和一的矩阵,其中每一行具有相同的个数,而每一列具有相同的个数.当行数(发送节点)不等于列数(接收节点)时,行数将与列数不同-这是我允许的. 在 numpy 中执行此操作对我来说很有意义,但是可能会有其他软件包(例如 networkx ?)会有所帮助. 这是我想要用所需的输入和输出编
..
有人给我一个关于让我感到困惑的任务的问题.我可能只是在想这个问题而已...问题出在后面. 使用线性时间算法来确定非循环无向图(即树)中最长的未加权路径. 我的初衷是使用DFS.但是似乎DFS只会给我从我开始的节点到另一个顶点的最长路径.但是,问题需要的是树中最长的路径……而不是从我开始的节点开始的最长路径.有人可以让我挺直吗? 谢谢. 解决方案 一种这样的方法是选取任意一
..
所以我在StackOverflow中看到了以下有关Python中DFS算法的帖子(非常有用): 此python吗代码使用深度优先搜索(DFS)来查找所有路径? 我还有一个需要分析的图形(以找到两个节点之间的每条可能的路径),但是我还需要在其中包括周期.例如,如果我有一个这样的图形: graph = {'开始':['1'],'1':['2'],'2':['3','End'],'3':
..
我已经用NetworkX制作了大约20,000个节点的大型图形.我想删除只有一个领带(或零领带)的节点,以减少混乱.由于它是一个非常大的图,因此我不知道按领带或1或0的名称或ID的节点. 有人知道如何在不指定节点ID或名称的情况下删除这些节点吗?
..
我正在研究大型神经网络的仿真,为此,我需要生成代表网络拓扑的随机图. 我希望能够指定这些图的以下属性: 节点数 N (〜= 1000-10000) 任意两个给定节点之间的平均连接概率 p (〜0.01-0.2) 全局聚类系数 C (〜0.1-0.5) 理想情况下,应从满足这些用户指定条件的所有可能图形的集合中均匀地绘制随机图形. 目前,我使用的是非常粗糙的随机扩散方法,
..
给出一个有向图,我需要找到所有其他顶点都可以达到的最小顶点集. 因此,函数的结果应该是最小数量的顶点,通过遵循有向边可以从中获得所有其他顶点. 可能的最大结果是没有边缘,因此将返回所有节点. 如果图形中有周期,则为每个周期选择一个节点.哪一个无关紧要,但是如果再次运行该算法,则应该保持一致. 我不确定是否存在现有的算法吗?如果有,它有名字吗?我已经尝试进行研究,最近的事情似
..