问题标签 [graph-tool]

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.

0 投票
1 回答
320 浏览

python - 在 graph_tool 中设置默认属性值

我需要计算图中每个顶点满足给定条件(例如“ACondition”)的次数。为此,我需要确保将顶点属性初始化为零,这是我明确执行的。请参阅下面的代码。

有没有办法指定属性的默认值,这样我就不需要显式设置它的初始值(即上面的第二个代码块)?

0 投票
1 回答
8292 浏览

python - 与 Networkx 相比,图形工具出奇地慢

在查看了令人印象深刻的性能比较之后,我决定尝试使用图形工具。因此,为了比较,我编写了代码来使用这两个包生成随机树。

图形工具代码:

Networkx 代码:

图形工具在我的 4 核机器上大约需要 14 秒,而 networkx 在同一台机器上只需要不到 2 秒!我错过了一些明显的东西吗?

提前致谢。

0 投票
2 回答
3115 浏览

python - 有效地使用图形工具

想了很久,终于决定把这个问题贴在这里。几天前,我开始graph-tool用来做各种事情。在那之前我一直在使用Networkx。我已经看到了令人印象深刻的性能比较,并认为一切都很简单。但是,我立即遇到了速度问题,并提出了一个与它的特定方面相关的问题。我得到了一个令我满意的快速答复。但是,现在这个速度问题时不时地困扰着我,我找不到任何关于graph-tool这与有效使用它有关。例如,从我上一个问题的答案中,我意识到最好将所有边添加在一起而不是一个接一个,这是一个非常重要的注意点,但在任何地方都没有提到!我现在有两个类似的问题:

(1) 如何选择给定节点的随机邻居?我只能看到以下解决方案:

由于v.all_neighbours()是生成器,我必须将其转换为列表以选择随机元素。这会减慢代码速度,但我没有看到更好的方法。

(2) 我想为list图中的每个顶点分配一个 1d 向量(可以吗?),然后我以特定方式交换和修改它们。这只是一个属性映射,我想查看一些有关如何有效使用它的文档。但是,我找不到任何东西。

(3) 我正在尝试模拟三元闭包,该网络本身随着时间而变化。因此,在每个时间步,我都需要关于图中每个顶点的邻居的信息。同样,我必须创建一个列表(或 numpy 数组):

这大大降低了我的代码速度。这意味着我没有正确执行此操作,但我找不到任何文档可以告诉我如何在图形工具中有效地使用邻居。

不知何故Networkx,我为相同任务编写的程序完全优于我根本买不到的图形工具代码。

这个列表可能会增加,因此,如果有人可以向我指出一些关于有效使用图形工具的文档,除了回答上述具体问题之外,我会非常高兴。

提前致谢。

0 投票
2 回答
97 浏览

python - ipython 中有趣的导入行为

我在玩 graph_tool 时注意到了这一点。某些模块属性似乎仅在从 ipython 运行时可用。最简单的例子(example.py)

run example.y', but from the command line,使用python example.py`从 ipython 运行没有错误产生

对于ipython example.py. 我不知道是什么原因造成的。我想访问绘图模块,但似乎我只能通过from graph_tool.draw import *任何帮助或解释来做到这一点。

0 投票
1 回答
90 浏览

python - AttributeError on Inferences for graph_tools

我正在使用 Python 图形工具库对图形进行一些推断,并且我引用了以下链接,该链接显示了 API 和一些示例。 https://graph-tool.skewed.de/static/doc/inference.html#graph_tool.inference.BlockState

我的代码如下编写,其中 g 是在上一步中定义的有向边加权图。

根据 API,BlockState 构造函数应该返回一个 BlockState obj,其函数 ch 为 collect_vertex_marginals 和 mcmc_sweep()。但是,我收到以下错误:

我只是忽略了什么吗?我没有看到任何类型的版本问题(例如过时的 API),所以我有点迷惑。谢谢!

0 投票
2 回答
912 浏览

python - 图工具上两个顶点的公共邻居

我想在图形工具上获得两个顶点的共同邻居。

根据该文件,有几种相似性度量可用,它们都使用共同邻居的数量。所以,我想应该很容易找到共同的邻居。但是,我找不到如何。

0 投票
0 回答
245 浏览

python - 使用 graph-tool 获取 Graph 的三元闭包

我正在尝试构建 graph-tool 的三元闭包Graph

graph_tool.topologycontains transitive_closure,这基本上是邻接矩阵的“无限次”幂:我需要的是第二次,或者通常是第一次k幂。

除了...计算邻接矩阵的幂之外,还有什么更好的方法吗?

0 投票
1 回答
2362 浏览

python - 在图形工具中过滤子图

这是一个关于图形工具的可笑的基本问题,弄清楚如何使用文档来解决这个问题应该是微不足道的,但我在绕圈子。我不怀疑文档的全面性,但它肯定不会让这变得容易。

目标:给定一个图 G,根据 G 的顶点列表提取诱导子图。

我知道我应该以GraphView某种方式做到这一点。我明白了。我也明白我需要为此做一个顶点PropertyMap。但我究竟应该创造什么?

这里的文档非常缺乏。例如,PropertyMaps 上的页面说每个PropertyMap都可以是某种类型,但我还没有弄清楚这是什么意思。类型代表什么?我什么时候想使用一种类型而不是另一种?鉴于PropertyMaps图形工具的有效使用显然是多么重要,我对文档的不清楚程度感到有些困惑。

对于这个问题,我有一种模糊的感觉,我需要使用布尔类型,因为也许我想将子图中我想要的顶点设置为“true”,而将子图中我不想要的顶点设置为“false”。 " 但这是否意味着PropertyMap我创建的需要与原始图 G 中的节点数相同的长度?或者我可以只提供一个节点列表并以某种方式让人们理解这些是唯一设置为 True 的节点吗?

0 投票
1 回答
197 浏览

graph-tool - 图形工具重叠块对象

如何将重叠块状态中每个节点的块成员资格转换为 numpy 数组?

具体来说,当推断重叠的块对象时,看起来重叠的成员数组可以通过

要将其转换为 numpy 数组,似乎我们需要了解任何给定节点的最大成员数(我们称之为 max_overlaps),然后我们可以转换为二维数组

但现在我不确定如何解释结果。这个矩阵的第一行是否真的是每个节点的第一个成员分配?如果是这样,那么我想说第二行是节点的第二个成员分配(如果存在),否则为 0。但是 0 是一个可能的块号,那么我们如何知道第 0 个块是否包含重叠成员呢?

0 投票
1 回答
191 浏览

gcc - gcc-5.2 安装到自己的目录后正确链接 PATH 和 LD_LIBRARY_PATH

我刚刚编译并安装了 gcc-5.2。我没有root访问权限,所以我将它安装在我自己的目录中。最后我忘记了我要链接的LD_LIBRARY_PATH内容PATH

当我简单地运行时,./gcc我收到以下错误:

我如何链接库路径有问题吗?提前致谢。另外,我做了简单的配置./configure --prefix=/bigbang/data/username/lib/gcc-5.2/,我应该使用什么推荐的配置标志?我的目标是使用graph_tool