我有一个可以被认为是树的非循环图。这是一个简化的示例:
library(tidygraph)
create_tree(20,2, directed = TRUE, mode="in") %>% plot
现实生活中的例子可能稍微复杂一些,因为我可能有多个从叶子到根的路径(所有这些路径都是非循环的)。
我想通过删除中间节点来简化图形,如下所示:
K=0
在最极端的情况下(我们称之为“k = 0”简化)我会枚举所有叶子,确保它们通过深度优先搜索连接到根,然后删除所有中间连接,有效地将每个叶子连接到根。
K=-1
下一级简化(比如“k=-1”)我想从至少有一个叶子孩子的节点开始,然后重复相同的过程。简化后,所有中间节点都会被移除:
data.frame(from=c(5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20),
to = c(1,1,1,1,1, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10)) %>%
as_tbl_graph() %>% plot
K=-2
下一步的简化对这个图没有意义,因为不会修改边,也不会删除节点。
如何在 R 中使用igraph
/对其进行编码?tidygraph