본문 바로가기

시각화 도구 설명서

[pajek] 5. Partition, Vector 파일

공지) pajek 설명서를 보시고 메일로 문의하시는 분들이 많습니다. 문의 내용이 비슷한 경우가 많으니, 되도록 댓글로 질문 부탁드립니다. 제가 댓글로 답변 드리면 다른 분들도 보실 수 있으니까요. :)


오늘은 pajek에서 사용하는 "Partition"과 "Vector" 데이터 파일 형식을 알아보겠습니다.

pajek에서는 기본적인 Network(.net) 파일 외에도 Partition, Vector, Permutation, Cluster, Hierarchy 파일 형식이 존재합니다. 이 파일 형식들은 Network 데이터의 메타데이터(meta-data)역할을 합니다. 즉, 네트워크를 설명하는 데이터란 거죠.

기타 파일 형식

위 실행창에서 왼쪽에 Networks 밑으로 Partition등이 보이죠? 여기에 데이터 파일을 등록해서 사용할 수 있습니다.

우선 테스트를 위해 랜덤 네트워크를 만들어 봅시다.  다음 메뉴를 클릭하면 간단한 랜덤 네트워크를 생성할 수 있습니다.

메뉴 > Net > Random Network > Total No. of Arcs

점(vertice)의 갯수와 연결선(arc)의 갯수를 물어보는데 각각 5와 10을 입력합시다. 그러면 점이 5개고 연결선이 10개인 랜덤 네트워크가 생성됩니다.  다음 메뉴를 클릭하면 만들어진 네트워크를 확인할 수 있습니다.

메뉴 > Draw > Draw


여기까지는 전에도 해본 것이니 어렵지 않을 겁니다. 그러면 이제 Partition을 만들어봅시다.

메뉴 > Net > Partitions > Degree > Input

위 명령은 노드(점)에 들어오는 방향으로 연결된 링크(연결선)의 숫자에 따라 노드를 파티션(Partition)으로 분류하라는 뜻입니다. (Net> Partitions 밑에 수많은 명령이 있는데 기능은 나중에 설명하도록 하겠습니다.) 위 메뉴를 누르고 나면 기본 창에 Partitions와 Vectors 항목에 새 파일이 생긴 것을 확인할 수 있습니다.


이제 왼쪽 디스켓 아이콘을 클릭해서 데이터 파일을 각각 저장해봅시다.
Netwokr 파일의 기본 확장자는 .net, Partition 파일은 .clu,  Vector 파일은 .vec입니다.  이제 하나씩 확인해볼까요?

.net 파일 (Network)
*Vertices 5
 1 "v1"                                     0.1000    0.5000    0.5000
 2 "v2"                                     0.3764    0.1196    0.5000
 3 "v3"                                     0.8236    0.2649    0.5000
 4 "v4"                                     0.8236    0.7351    0.5000
 5 "v5"                                     0.3764    0.8804    0.5000
*Arcs
 2  1 1
 5  1 1
 1  2 1
 4  1 1
 2  3 1
 2  4 1
 5  3 1
 1  3 1
 3  4 1
 1  4 1

.net 파일은 예전에 설명했으니 자세히 설명하지 않겠습니다. 단, 여기서 노드 뒤에 숫자 세개는 네트워크 그림을 그릴때 노드가 그려질 위치입니다. 저 숫자는 레이아웃을 바꿀때마다 계속 바뀌니 신경 안 쓰셔도 됩니다.

.clu 파일 (Partition)
*Vertices 5
3
1
3
3
0

 Partition 파일은 무척 단순합니다. 숫자의 순서는 노드의 순서를 뜻합니다. 즉, 첫번째 노드는 3, 두번째 노드는 1이란 뜻이죠. 그리고 같은 숫자는 해당 노드가 같은 Partition에 속한다는 뜻입니다. 위 파일대로라면 노드가 {v1, v3, v4}, {v2}, {v5} 세 그룹으로 분류된다는 뜻이죠.

.vec 파일 (Vector)
*Vertices 5
0.75000000000000000
0.25000000000000000
0.75000000000000000
0.75000000000000000
0.00000000000000000

Vector 파일도 Partition 파일과 마찬가지 형식입니다. 단, Vector는 분류 정보가 아닌 임의의 어떤 정보를 담고 있다는 점이 다르죠. 여기서는 (들어오는 방향의 연결선 수)/(총 가능한 들어오는 방향의 연결수)를 뜻합니다. 노드가 총 5개니, 들어오는 링크는 최대 4개까지 가능하죠. 따라서 첫번째 값은 3/4=0.75가 됩니다.

꼭 이런 값 말고도 다른 의미의 값을 줄 수도 있습니다. 예를 들어 "v1 노드에 해당하는 사람이 어떤 일을 할 확률이 0.5이다"라고 하면 그냥 Vector 파일에서 해당하는 칸에 0.5라고 써줄 수도 있습니다. (정보에 일관성만 있으면 됩니다.)


자, 이제 위 데이터 파일을 이용해서 네트워크를 그려봅시다.
아래 메뉴를 누르면 네트워크 그림에 Partition과 Vector 정보를 추가할 수 있습니다.

메뉴 > Draw > Draw-Partition-Vector


차이점이 보이시나요?
노드의 색과 크기가 변했는데, 이는 각각 Partition과 Vector의 정보를 이용한 것입니다.
아까 {v1, v3, v4}, {v2}, {v5} 로 분류되었다고 했는데, v1,v3,v4의 색이 빨간 색으로 같은 것을 볼 수 있습니다. v2는 다른 파티션이라 노란색이죠. v5는 점의 크기가 0이라서 보이진 않지만, 크기를 키우면 역시 빨간색도 노란색도 아닌 다른 색으로 되어있을 겁니다.

노드의 크기는 Vector에서 0.75, 0.25... 등의 값에 비례하게 그려져있습니다.

이제 .clu파일과 .vec 파일을 조작하면 어떤 식으로 네트워크가 그려질지 감이 오셨을 겁니다.