Я пытаюсь определить ребра между точками сочленения, используя igraph (и тидиграф) и его функцию articulation_points
. Другими словами, я ищу ребра в моем графике, которые, если разрезать, разделят график на две части. Моим первым предположением было то, что все, что мне нужно было сделать, это отфильтровать ребра до тех, где вершины from
и to
были точками сочленения. К сожалению, я быстро обнаружил, что этого недостаточно, поскольку этот подход помечает края, которые не будут разбивать сеть, если они будут обрезаны, когда они находятся рядом друг с другом. Есть ли другой путь к этому списку «края артикуляции»?
Вот мои (неправильные) логи c.
mygraph %N>%
mutate(apoint = name %in% as.character(igraph::articulation_points(.G()))) %E>%
mutate(aedge = .N()$apoint[from] & .N()$apoint[to])
Я попытаюсь найти минимальную сеть, которая имеет свойство терпеть неудачу с этой логикой c. Оставайтесь с нами.