问题标签 [edges]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - igraph如何沿最短路径获取边缘ID
我有一个包含多个最短路径的图,并且想要检索顶点的 ID 和边的 ID:
igraph_get_all_shortest_paths(...)
仅计算顶点列表。
不是吗
应该这样做吗?
当我运行时:
我收到错误:igraph_vector_clear: Assertion `v != ((void *)0)' failed
java - Prefuse API java创建边
我最近正在使用 prefuse 进行一些可视化。我所做的是从数据库中加载一些信息,为它们制作一个 prefuse 表实例,并根据该信息制作一个图表。这工作正常。
我的问题是如何为该图创建边缘?
我想我必须创建另一个表来保持边缘,但我不知道创建那个东西的方法......感谢任何帮助!谢谢!
这是我为图表设置数据的代码:
c++ - 从图中删除一条边
我想从使用 Boost 图形库生成的图形中删除一些边。
我使用 Boostboost::mt19937
生成从 1 到 N(顶点数)的随机数,如下所示,并添加随机边。
但是如果我有以下 4 个顶点,我会得到上面的输出:
但可以看出,边缘(0,2) and (3,2)
是重复的。对于较大的图,有时例如:(1,3) and (3,1)
exists 并且它们都与无向图相同。如何删除这些顶点。我知道 Boost 有一个叫做 的东西remove_edge_if()
,但是我没有找到任何精确的例子来支持我的情况。
loops - Prolog图找到没有循环的路径,检查边缘
我试图在 Prolog 的图中找到一条路径。我设法用我在网上找到的一些片段来解决这个问题。但是,它会跟踪节点以避免两次访问它们,而我需要它不要两次访问同一边缘。这可能在大多数图中归结为相同的事情,但是因为我想用它来计算从边缘上的点到边缘上其他点的路径,我不希望它返回从一个点到相邻节点的路径到相反的节点(比如,如果我们有一条从节点 A 到节点 C 的边 AC,中间有一个点 B,那么 ACB 将不是一条可接受的路径,因为它经过 AC 两次)。
这是我当前的代码:
对于上面的示例,这将返回例如:
现在我想我可以简单地替换\+ memberchk(X,[Y|P1])
以\+ memberchk(Edge,S)
确保相同的边缘不会两次出现在路径中,这将解决问题。但是,当我这样做时,Prolog 说没有路径。
有人可以向我解释这是哪里出错了吗?
java - 荣格用值着色顶点
我现在被 Java 库 Jung 困住了。
我显示顶点和边,只是我找不到任何顶点着色函数,我需要顶点值而不是鼠标。
我的渲染:
r - R igraph 将平行边转换为权重属性
我正在为 R 使用 igraph。我的图基于一个包含平行边的边列表(多个边具有相同的源和目标)。我想将这些平行边转换为边属性权重。有没有办法做到这一点?
如果没有简单的方法。如何识别这些平行边缘?
不返回单个重复项。我想它正在寻找重复的边缘 id。
algorithm - 从连接节点列表中绘制图形
在一个系统中,我有一个节点列表,这些节点像普通图中一样连接。我们了解整个系统及其所有联系,我们也有一个起点。我所有的边缘都有一个方向。
现在我想自动绘制所有这些节点和边。问题不是实际绘图,而是计算 (x,y) 坐标。所以基本上我想画出整个图表,这样看起来不错。
我的数据结构将类似于:
这个问题一定有一些众所周知的算法吗?我找不到任何东西,但我可能使用了错误的关键字。
我的想法:
一种方法是将我们的起始节点定位在 (0,0),然后有一些常数,即“距离”。然后对于每个邻居,它会将距离添加到 y 位置,并且对于作为邻居的每个节点,设置 x= distance*n。
但这确实会带来很多问题——所以这绝对不是要走的路。
java - 绘制控制流图
我的任务是制作控制流图。首先,我设法将我的代码分成基本块。例如,这里的这个程序:
将变成以下基本块:
区块 1
区块 2
区块 3
区块 4
区块 5
区块 6
区块 7
块 8
第 9 块
我通过扫描文件并使用 Pattern 和 Matcher 根据 if、while 等语句拆分程序来完成此操作。基本块是一个 ArrayList,所有这些块都保存在一个 ArrayList> 中。
接下来,我保留了哪些基本块相互连接的 HashMap。例如,块 1 将连接到块 2 和块 3,因为它是一个 if 语句(如果这是一条路,则走另一条路)。这个 HashMap 是 > 的块号,以及它所连接的块号列表。
所以,我有基本块,以及这些基本块之间的连接列表。我现在的问题是我不确定如何以图形形式显示它。之前,我使用paint() 方法并绘制圆和线来表示一个简单的控制图,其中每个块只有一个与下一个块的连接。但是,当有多个连接时,我不知道该怎么做。有什么简单的方法可以做到这一点吗?
谢谢!
graph - 图:通过公共边进行分组/聚类的算法
首先,如果我的英语有点不对劲(这不是我的母语),我很抱歉。我会尽力让自己被理解。
我正在为我的硕士论文做一个可视化项目,我想出了一个算法问题。可视化由一个图表组成,该图表通过我所谓的关键字(边缘)表示我称之为人工制品(图表的节点)之间的连接。这些人工制品可以是各种各样的东西。例如,它们可以表示照片,而边缘将表示照片之间的标签。出于说明目的,假设照片 A 通过标签 1 连接到照片 B。这意味着照片 A 和照片 B 都具有标签 1。
现在,我有一个称为扩展的操作,它以这种方式工作:
用户双击一个节点(在我的示例中是一张照片),程序会查询数据库以查找与该节点的每个新连接。在上面的示例中,如果用户双击照片 B,则扩展将生成例如分别带有标签 2 和 3 的照片 C 和照片 D。问题是这会产生大量数据,让我无法解决分组节点的问题。理想的情况是使用尽可能多的常见关键字(边缘)进行分组。例如,现在假设照片 C 和 D 都具有标签 5,那么将有一组具有 C 和 D 的边缘为 5。但是如果照片 D 和 E 都具有标签 5 和 6,则该组是带有边缘的 D 和 E 5 和 6,然后是带有边缘 5 的照片 C(边缘可以重复)。为了显示:
我的问题是完成这个算法。在数据库上,我有以下表格:
关键字 (keyword_id、other_attributes)
人工制品(artefact_id, other_attributes )
Keyword_Artefact (keyword_id, artefact_id)
Keyword_Artefact_Artefact (keyword_id, artefact_id1, artefact_id2)
解决这个问题的最佳方法是什么?一个可以用相当数量的数据完成的。
我正在使用 prefuse 库在 java 中开发这个程序。