新手问题:我想使用 petgraph rust crate。 该图应该是struct MyGraph的一部分。 为此,我需要包装一些函数,使它们可以从外部访问: 然而,rust 编译器抱怨 u32 由self.g.add_node() function 返回,如果您直接调用 function 则情况 ...
新手问题:我想使用 petgraph rust crate。 该图应该是struct MyGraph的一部分。 为此,我需要包装一些函数,使它们可以从外部访问: 然而,rust 编译器抱怨 u32 由self.g.add_node() function 返回,如果您直接调用 function 则情况 ...
我有一个包含图形作为成员的结构; 具体来说,来自StableGraph板条箱的petgraph 。 我正在尝试实现一个合并此图中两个节点的 function。fn merge(&mut self, to_keep: NodeIndex<Ix>, to_drop: NodeInde ...
我已经在 Rust 中使用petgraph实现了 Yen 的算法Wikipedia 。 在main function 中,代码如下所示:use std::collections::BinaryHeap; use std::cmp::Reverse; use std::collections::Ha ...
我最近一直在使用 Petgraph 为节点和自定义边制作带有结构的简单图形,但我遇到了一个问题,我不确定它是来自库还是来自 Rust。 我有一个图表,其中有多个节点,每个节点都有一个名称。 然后我将节点的所有索引(类型为 NodeIndex)放在一个向量中,因为 Petgraph 没有提供图表中所 ...
我想在 Rust 中创建一个带有字符串节点的未加权无向图。 我一直在尝试使用petgraph和UnGraph上提供的from_edges构造方法,但我无法这样做,因为&str不是有效的 NodeIndex。 有没有更简单的方法来做到这一点? ...
我正在尝试使用 Petgraph 的all_simple_paths() ,但我不确定需要什么类型的注释,文档没有给出示例。 它返回一个impl Iterator<Item = TargetColl> where TargetColl: FromIterator<G::NodeI ...
我正在使用 Petgraph 的拓扑排序toposort来获取图形节点的排序列表。 但是, toposort不保证同一级别的所有节点都将以一致的确定顺序返回。 Petgraph 中是否有其他选项可以按确定的顺序返回节点,还是我需要编写自己的 function? (如果是这样,任何指针?) ...
我正在为我的图使用边缘过滤器并想要更新边缘权重:use petgraph::prelude::*; use petgraph::graph; use petgraph::visit::{Dfs, EdgeFiltered, IntoEdges}; fn filter_edges(edge: gr ...
Petgraph Graph 的edges function返回边的迭代器。 然后每次迭代都会返回一个EdgeReference ,它可以方便地存储两个节点和边缘权重,如果您调试打印一个,您可以看到。 但不幸的是, EdgeReference成员都是私有的,因此您无法在代码中访问它们。 那么如何 ...
Rust 的 Petgraph 库有一堆过滤器“适配器” ,但我找不到任何示例或教程来说明如何使用它们。 一些(但不是全部)具有构造函数,例如EdgeFiltered.from_fn() ,它接受一个图形和一个 function,但不清楚你如何将它与Dfs或astar等搜索方法一起使用,因为它们 ...
我正在使用 Rust 的petgraph库,并且想知道如何检查节点是否是循环的一部分。 petgraph::algo::is_cyclic_directed function 会告诉我图中是否有任何循环,但是在查看所有文档后,我找不到任何可以告诉我节点是否属于循环的函数。 我原以为这将是一项足够 ...
我对 Rust 很陌生,所以这可能是一个非常菜鸟的问题。 我正在尝试使用 rust -> wasm 创建一个 web 应用程序。 Tried to follow the tutorial https://rustwasm.github.io/docs/book/introduction.ht ...
我有一个从原始输入到petgraph::UnGraph结构的解析器。 我需要找到访问所有节点的最短路径。 我找到了algo::dijkstra ,但据我所知,Dijkstra 只会给我连接两个特定节点的最短路径。 petgraph 库中是否有一个函数可以轻松解决旅行商问题,还是我需要自己实现一个 ...
Petgraph 文档暗示了 Serde 支持。 在“当前功能”下: serde-1 - 默认关闭。 使用 serde 1.0 启用 Graph、StableGraph 的序列化。 与单独的 petgraph 相比,可能需要更新版本的 Rust。 我可以在源代码中看到文件serde_u ...
Petgraph 实现其所有特征以引用其内部图类型。 如何在结构中存储和使用Graph而不是&Graph ? 这有效,但存储对图形的引用: extern crate petgraph; use crate::petgraph::visit::*; use petgraph::data: ...
我正在研究petgraph库的源代码,但找不到Graph::NodeId类型的来源。 我可以看到函数astar接受类型G (可以是Graph )。 astar期望G的命名空间中有一个NodeId类型。 pub fn astar<G, F, H, K, IsGoal>( gra ...
我可能遗漏了一些非常基本的东西——我是 Rust 的新手。 我正在尝试将petgraph::dot::Dot表示写入文件。 以下小代码示例无法编译: use petgraph::Graph; use petgraph::dot::{Dot, Config}; use std::fs::File; ...
我正在尝试使用petgraph crate 在有向图上实现随机游走。 到目前为止,我已经定义了一个实现Walker特性的RandomWalk结构: 但是,我收到错误: 我真的不明白petgraph API 是如何工作的, GraphBase不是正确的类型吗? ...
我有一个petgraph::Graph结构,我通过给每个节点权重一个parent_edge_idx来强加一个树结构,它是从其父节点连接到自身的边的Option<EdgeIdx> 。 我需要遍历节点的子节点。 我需要连接边的边权重和孩子的节点权重。 我想将该迭代分解为一个辅助函数,该函数 ...
我正在尝试从 JSON 数据创建一个 petgraph Graph 。 JSON 包含图的边,键表示起始顶点,值是相邻顶点的列表。 可以生成一个包含边向量的图。 我设法创建了一个Vec<(String, String))>但不是预期的Vec<(&str, &str ...