6.4 지름(Diameter)

네트워크 지름은 네트워크에서 (두 노드 사이의 최단 경로의 길이인) 가장 긴 측지선 거리이다. igraph에서, diameter() 함수가 거리를 반환한다. 반면에, get_diameter() 함수는 그 거리의 첫 번째 발견된 경로에 있는 노드들을 반환한다. 만일 NA로 설정되어 있지 않다면, 에지의 가중치가 기본 값으로 사용됨을 주목하기 바란다.

diameter(net, directed=F, weights=NA)
## [1] 4
diameter(net, directed=F)
## [1] 28
diam <- get_diameter(net, directed=T)
diam
## + 7/17 vertices, named, from d3766f8:
## [1] s12 s06 s17 s04 s03 s08 s07

get_diameter() 함수는 정점 시퀀스(vertex sequence)를 반환함을 주목하라.

그러나 벡터와 같이 작동하도록 요청되었을 때, 정점 시퀀스는 그 안에 있는 노드들의 수치 색인을 생성하게 됨을 주목하라. 에지 시퀀스에도 동일하게 적용된다.

class(diam)
## [1] "igraph.vs"
as.vector(diam)
## [1] 12  6 17  4  3  8  7

지름 내의 노드들 색 지정하기 :

vcol <- rep("gray40", vcount(net))
vcol[diam] <- "gold"

ecol <- rep("gray80", ecount(net))
ecol[E(net, path=diam)] <- "orange" 

# E(net, path=diam) : 'diam' 경로에 따른 에지들
plot(net, vertex.color=vcol, edge.color=ecol, edge.arrow.mode=0)