簡體   English   中英

如何知道圖中的哪些節點是可移除的

[英]How to know which nodes in a graph are removable

我有一個帶有一些屬性的大約200個頂點的圖g ,我想知道哪些節點可以被移除,即,這意味着g在移除后仍然是一個連接的子網絡,而且我想知道哪個節點會產生我需要的屬性增加最多。

這是一個可能更容易理解的例子

g <- erdos.renyi.game(200, 0.03)
V(g)$name <- 1:vcount(my_graph) 
V(g)$weight <- rnorm(200) 
V(g)$RWRNodeweight <- runif(200, min=0, max=0.05)

#Criteria to meet
cumsum <- sum(V(g)$weight*V(g)$RWRNodeweight)/sqrt(sum(V(g)$RWRNodeweight^2))

我想知道哪些節點是“可移動的”,即在刪除它們之后圖形仍然完全連接,然后如果刪除“可移動”節點的cumsum增加,則刪除增加最大的節點。 一旦刪除了具有最高增長的“可移動”節點,我想再次啟動該過程,直到刪除“可移動”節點時沒有增加cumsum

我想知道哪些節點是“可移動的”,即在刪除它們之后,圖形仍然是完全連接的

articulation.points告訴您刪除會增加連接組件數量的節點列表。 可以安全刪除此列表中存在的任何節點。 然后你必須遍歷這個列表並計算cumsum的新值( cumsum排除每個節點),以找出哪一個最好刪除。

您可以計算生成樹 ,然后可以刪除末尾的節點(具有單個頂點的節點),直到達到單個節點(如果需要)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM