问题标签 [boost-graph]

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 回答
13229 浏览

c++ - 如何创建 C++ Boost 无向图并以深度优先搜索 (DFS) 顺序遍历它?

如何创建 C++ Boost 无向图并以深度优先搜索 (DFS) 顺序遍历它?

0 投票
2 回答
1916 浏览

c++ - Boost Graph Library:BGL 中是否有用于社区检测的简洁算法?

有人将 BGL 用于大型生产服务器吗?

  • 您的网络由多少个节点组成?
  • 您如何处理社区检测
  • BGL 有什么很酷的方法来检测社区吗?
  • 有时,两个社区可能通过一两条边连接在一起,但这些边不可靠,可能会逐渐消失。有时根本没有边缘。

有人可以简要谈谈如何解决这个问题。请打开我的心扉,启发我。

到目前为止,我已经设法以最便宜的方式确定两个节点是否位于一个岛上(在一个社区中),但现在我需要确定不同岛上的哪些两个节点彼此最接近。我们只能尽量少地使用不可靠的地理数据。

如果我们将其比喻为大陆和岛屿,并将其排除在社会距离背景之外。我想计算出在一片水域中哪两块土地最靠近。

0 投票
3 回答
4224 浏览

search - 使用 Boost 的图 breadth_first_search() 在未加权的无向图中查找路径

我正在使用带有无向和未加权边的 adjacency_list 图。我需要找到顶点 u 和顶点 v 之间的最短路径。我应该从 u 开始使用 breadth_first_search() 吗?到达v时,如何获取路径,如何停止搜索?

谢谢!

0 投票
1 回答
2857 浏览

c++ - 如何将 BGL 有向图用作无向图(用于布局算法)?

我正在使用 Boost.Graph 处理有向图(实际上是双向图)。我想使用现有的布局算法(Kamada-Kawai 或 Fruchterman-Reingold),但它们只接受无向图作为参数。

使用这些布局算法的最简单方法是什么?更一般地说,诱使算法认为有向图实际上是无向的正确方法是什么?

谢谢,贝努瓦

0 投票
2 回答
324 浏览

c++ - Boost (BGL):如何去混淆我的错误?

我似乎记得读过有关在与 boost 库相关的编译器错误中“减少”模板喷射大小的方法。我的回忆是它为模板参数提供了比编译器默认命名更好的名称(这非常可怕)。

这是真的,还是我梦到的?我一直试图找到我在哪里读到这篇文章,但我似乎找不到任何东西 - 有没有办法?

0 投票
5 回答
23168 浏览

c++ - 修改 Boost::Graph 中的顶点属性

我试图弄清楚如何使用 boost::graph 来存储一些信息。但是,我希望将信息绑定到每个顶点。盯着库的文档会发现(a)写得不好的文档,或者(b),我显然不像我想象的那样擅长 C++。选择两个。

我正在寻找一个简单的示例使用。

0 投票
1 回答
3907 浏览

c++ - 创建 boost::graph edge_weight 属性映射

使用带有捆绑属性的 boost::graph。我希望能够使用各种不同的可能边缘加权方案来运行搜索。如果可能的话,我不想为捆绑的属性创建一个额外的类,并根据搜索类型传递不同的权重图,而无需创建新图表或修改图表中的所有现有属性。

我可以为 edge_weight_t 手动构建 property_map 吗?这是我到目前为止所得到的:

我只想能够做到

并将距离[e]分配给适当的值——

还是我只需要分解并为捆绑的属性组成一个新结构——我一直试图避免的事情——并从中创建权重图?boost::graph 的新功能;不要假设我在这里没有做完全愚蠢的事情。

0 投票
1 回答
542 浏览

boost-graph - 在 BGL 中更改边缘的目标

如果我的 BGL 图包含从节点 x 到节点 y 的边,并且我想更改此边的目标,以便现在它从 x 指向 z,怎么办?

BGL中是否有任何功能?

0 投票
3 回答
426 浏览

c++ - 我应该如何将数据类链接到我的 GUI 代码(在 C++ 中显示对象的属性)?

我有一个类(在 C++ 中),调用它Data,当代码运行时它有数千个实例(对象)。我有一个小部件(在 Qt 中),调用它DataWidget来显示对象的属性。为了快速构建小部件,我只是将对象属性写入文件并让小部件解析文件中的属性 - 这种方法有效,但不可扩展或不美观。

更清楚地说,我的要求是:
1 -DataWidget应该能够同时显示多个不同的Data对象属性
2 -DataWidget应该能够Data每秒显示数千个对象
3 -DataWidget应该与生成新Data对象的代码一起运行
4 - 每个Data对象都需要永久保存到文件/数据库

目前,GUI 已创建并DataWidget创建,然后实验运行并生成数千个Data对象(定期将其中一些写入文件)。实验运行后,DataWidget显示最后Data写入文件的对象(它们被写入 XML 文件)。

使用我当前的文件方法,我可以通过在实验运行后抓取多个文件来满足(1) 。由于实验与无关,因此没有并发性,因此在添加一个通知新文件存在的信号之前DataWidget,我无法执行(3) 。DataWidget

我没有继续使用这种方法有两个原因:首先,即使文件没有立即写入磁盘,我无法想象这种方法是可扩展的,除非实现一个缓存系统——但是,这似乎是我我要重新发明轮子?其次,Data是图形数据结构的包装器,我正在使用 Graphml(通过 Boost 图形库,即write_graphml())将结构写入 XML 文件,并使用 Boost 的read_graphml()将结构读回需要我将文件读回Data对象...这意味着程序的实验部分将对象编码为 XML,将 XML 写入文件(但希望在内存中而不是磁盘中),然后DataWidget从文件中读取 XML 并将其解码为对象!

在我看来,我应该使用一个可以处理所有缓存等的数据库。此外,似乎我应该能够跳过文件/数据库Data步骤DataWidget并将的列表Data)。然而,我还想将文件保存Data到文件/数据库步骤并非完全没有意义——我只是在错误的时间以错误的方式使用它。

考虑到我的要求,更好的方法是什么?

是否有任何通用资源和/或指南来处理和显示此类数据?

0 投票
3 回答
4583 浏览

c++ - 提升图形库和访问者

我正在编写一个用于操作债券图的库,并且我正在使用 Boost Graph Library 为我存储数据。不幸的是,我似乎无法弄清楚如何使用它来实现适当的访问者模式,因为您不能子类化顶点 - 您必须改为依赖“属性”。库中提供的访问者框架似乎非常适合使用某些算法,其中顶点都是相同类型,但存储不同的信息。在我的问题中,顶点具有不同类型并存储不同类型的信息 - 一些顶点是电阻器,而有些是电容器等。我该如何编写基于顶点属性而不是工作的访问者模式顶点本身?

到目前为止,我唯一的想法是编写一个小类来表示一个对象的类型,该对象指向我需要获取图形信息的原始顶点。然而,这似乎很笨拙,而且不好用。