You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中获取图结构中叶节点之间的所有可能路径

R语言igraph包实现无向图叶节点间所有简单路径查询

以下是可直接运行的实现代码,输出结果和你给出的示例完全匹配:

library(igraph)

# 创建示例无向图
G <- graph(c(1,2,2,3,2,5,4,5,5,6,4,7,4,8,7,8,8,9), directed=F)

# 筛选所有叶节点:无向图中度为1的节点即为叶节点
leaf_nodes <- which(degree(G) == 1)

# 生成叶节点的两两唯一组合,避免重复计算A到B和B到A的重复路径
leaf_pairs <- combn(leaf_nodes, 2, simplify = FALSE)

# 遍历所有节点对,查询全部简单路径
all_leaf_paths <- list()
for (pair in leaf_pairs) {
  paths <- all_simple_paths(G, from = pair[1], to = pair[2])
  all_leaf_paths <- c(all_leaf_paths, paths)
}

# 格式化输出结果
for (i in seq_along(all_leaf_paths)) {
  cat(sprintf("[%d] %s\n", i, paste(all_leaf_paths[[i]], collapse = " ")))
}

注意事项

  • 若需要保留双向路径,可将combn(leaf_nodes, 2)替换为全排列生成逻辑,同时过滤节点值相同的无效配对
  • 若图规模较大,可在all_simple_paths()中添加cutoff = 最大路径长度参数,限制搜索范围避免计算量爆炸
  • 该方案默认返回无重复节点的简单路径,符合常规图分析场景需求

内容的提问来源于stack exchange,提问作者Qzhao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 12:45:01