问题标签 [lemon-graph-library]

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 投票
2 回答
1623 浏览

r - 使用 Rcpp 在 R 上的柠檬图库

我认为这个答案有点复杂,因为它涉及到几件事。

我想用 R 进行高性能计算,尤其是图形(网络)。作为 R 包igraph非常好。但是 R 很慢,所以我想用 C++(可能是 C)编写计算量大的例程。我看了一下igraph C 库,发现使用起来有点乱。我还查看了Boost Graph Library,我读到它很难学习。所以我最终找到了Lemon Graph Library。它在 C++ 中,看起来非常好用。

所以我按照官方页面的推荐安装了Lemon Graph Library。然后使用Rcpp内联包,我管理自己从 R 运行 Lemon Graph C++ 代码。在这里,我详细写下我所做的。但基本上我把这个:

在 myexample_inline.R 文件中,然后运行 ​​R 控制台并写入:

所以它有效!但现在我有以下问题。如果我创建一个 C++ 函数(比如 double func1(g)),例如计算某个 Lemon 图形对象的某些属性。我如何从内联代码中调用该函数?我必须将 func1() 作为模板函数并将其放在 cxxfunction() 的包含字段中吗?

基本上:我不知道如何从另一个也在 R 中内联的 C++ 函数调用在 R 中内联的 C++ 函数。这可能吗?还有另一种不使用内联代码的方法吗?

也许我可以使用Rcpp 模块来做到这一点,但我无法(仍然)弄清楚如何做到这一点。我在使模块工作时遇到问题。我会继续尝试这个,但也许我可以从这里得到一些提示。

我还考虑过开发(我的第一个)包的可能性。但是我遇到了 Lemon Graph C++ 代码以这种方式调用标题的问题(例如):

所以这意味着(至少我相信这一点)我无法避免安装 Lemon Graph Library。如果我想制作 Lemon Graph Library 的 R 包,我必须再次“重写”所有代码!!!所以这不是我的主要选择。

此致

0 投票
2 回答
1767 浏览

c++ - Lemon Graph Library C++ - 有向图

我正在寻找 Lemon 来处理我的寻路,因为它具有搜索和最短路径算法等。

问题是,我一开始就一直在理解 Lemon 的工作原理,他们有教程但没有论坛可问。

我对有向图的理解是你有一个节点,它可以链接或不链接到另一个节点,然后你对它有一个权重。

例子:

在此,AB权重为 1C的连接,与无连接(因此一旦到达,C您就会被卡住),并BA1 的值B连接并C以 5 的值连接。

该教程说要做这样的事情:

所以现在我有一个g包含三个节点的图表。怎么办?在哪里/如何添加连接信息以及权重值?

0 投票
1 回答
1901 浏览

c++ - 将 Dijkstra 算法与 Lemon Graph Library 一起使用

我对从 Lemon Graph Libraries(Lemon's Dijkstra's http://lemon.cs.elte.hu/pub/tutorial/a00009.html)运行 Dijkstra 算法所需的一些参数有疑问。要运行该算法,可以编写类似图形dijkstra(g, length).distMap(dist).run(s,t);在哪里、起始节点是什么以及目标节点是什么的东西。我的问题是什么是and ,以及它们是如何使用的。谢谢!gstlengthdist

0 投票
1 回答
1628 浏览

c++ - Lemon Graph Library C++ - 使用循环的 addNode

是否有可能使用 C++ 中的循环创建柠檬图?

我的问题:

  1. 具有列的数据库表(我们称之为 t_nodes):节点
  2. 带有图形信息的数据库表(我们称之为 t_edges):node1 | 节点2 | 边缘分数
  3. 超过 10000 个条目

我想要的结果:

  1. 有向图:例如 N1 -> N2;N2 -> N3;N3 -> N1

我的问题

  1. 是否可以对表中的每个条目使用循环来将节点添加到图中t_nodes

    • 到目前为止,我只是找到了他们手动添加每个节点的实现(参见下面的示例)
    • 真的没有机会使用循环将节点添加到柠檬图中吗?
  2. 如何对 中提到的所有关系使用循环t_edges

感谢您的宝贵时间,非常感谢您的帮助!


在周末有一些空闲时间并花一些时间骑自行车后,我找到了解决方案:)

我的解决方案:

看起来,柠檬没有提供支持图表边缘的附加信息的可能性。因此,我刚刚创建了一个额外的向量来存储这些信息。但是,出于某些目的,使用哈希图访问节点可能更明智。

看看开发的示例脚本(非常简单;))


Lemon C++-代码示例(参考: http: //lemon.cs.elte.hu/pub/tutorial/a00022.html):

0 投票
0 回答
185 浏览

c++ - 柠檬.eps中的自动坐标导出

在 Lemon 教程中,所有示例在绘制图形时都指定坐标:

是否有可能在不指定坐标的情况下将图形图像导出到 .eps 文件(或任何其他文件)?(我的意思是自动排列)

0 投票
1 回答
495 浏览

struct - 具有固定大小的 Eigen 对象作为成员和容器的结构

我有一个结构,它有一个固定大小的 Eigen 对象作为成员,我想将其用作 Lemon 的边缘图:

代码编译得很好,但我得到一个运行时错误:

我应该如何解决这个问题?(我已经包含了EIGEN_MAKE_ALIGNED_OPERATOR_NEW宏。)

0 投票
4 回答
43141 浏览

cmake - CMake 错误:TARGETS 没有为共享库目标指定 LIBRARY DESTINATION

使用 CMake 构建开源项目时(在我的例子中,它是柠檬图形库),当我尝试通过以下方式构建共享库时出现此错误-DBUILD_SHARED_LIBS=1

这个错误来自哪里,我该如何解决?

0 投票
2 回答
852 浏览

c++ - 在 LEMON 图形库中查找边的节点

假设我有一个边缘。如何轻松找到它连接的两个节点?LEMON 的文档太少了,我找不到这方面的信息。

0 投票
1 回答
867 浏览

c++ - 在不复制的情况下将元素插入到柠檬图库地图中

我正在使用Lemon Graph Library,我想在不复制或分配的情况下将项目添加到柠檬地图。这是代码:

这里的主要问题是 CrossRefMap 需要在构造函数中初始化并且没有复制构造函数或赋值运算符。我可以改用指向这个结构的指针,但是这个解决方案并不让我满意。我怎么解决这个问题?任何建议将不胜感激。;)

0 投票
1 回答
656 浏览

c++ - 在 Lemon Graph Library 中访问向量中的地图值

我有以下代码

在 printin 我得到错误:

我如何访问各州的名称....