HW 3. Random Network

과제의 목적

과제 내용

평가 기준

사전 정의

표기법

이 과제의 목표는 Erdős–Rényi random network의 $G(n,p)$ 모형을 구현하는 것. Erdős–Rényi random network에 따르면, $G(n,p)$에서는 서로 다른 모든 node 쌍에 대해 확률 $p$로 독립적으로 link를 생성함.

이 과제에서는 $G(n,p)$ 방식으로 구현할 것이므로, 기대 평균 degree는 $(n-1)p \approx np$가 될 것

[1단계] Network를 array(adjacency matrix, 인접행렬)로 작성하기

Adjacency matrix $A$는 node 사이의 연결 여부를 0과 1로 표현한 행렬이다.

1.1. 먼저 5개의 node로 구성된 작은 네트워크를 직접 만들어 확인한다.

1.2. 이번에는 ER random network를 만들어보자. (ER random network의 조건 설정하기)

본 실험에서는 다음 조건으로 $G(n,p)$ 네트워크를 생성한다.

한 node는 자신을 제외한 999개의 node 각각과 0.01의 확률로 연결된다. 따라서 기대 평균 degree는 $(n-1)p=999 \times 0.01=9.99$이다.

1.3. 무작위 숫자 만들기.

난수로 1000x1000 행렬 만들고

1.4. 그 행렬을 확률 p를 활용해서 0과 1로 변환하기

3번에서 만든 랜덤 숫자로 구성된 행렬을 실제 네트워크의 '연결 여부'로 바꾸기

왜 random < p이면 연결 확률이 p가 될까?

1.5. 방향 없는 네트워크니까, 대칭 행렬을 만들어야 함. -> 행렬의 위쪽 절반만 사용하기

현재는 행렬의 각 칸마다 별개의 랜덤 숫자를 뽑았으므로, [0,1]과 [1,0]이 서로 다른 값일 수 있음. $A_{ij}$=$A_{ji}$가 되도록 해주기.

1.6. 행렬에서 위쪽 연결을 아래쪽에도 복사하기

1.7. 만들어진 adjacency matrix 검증하기

(참고: 과제 평가 기준에 있는 "대칭, 대각 0")

[2단계] Degree (차수) 계산하기

2.1. Degree란?

Degree = node $i$에 연결된 link의 수. (한 노드가 가지고 있는 link의 개수)

Adjacency matrix에서 $A_{ij}=1$이라면, node $i$와 node $j$가 연결되어 있다.
따라서 node $i$의 degree: adjacency matrix의 $i$번째 행에 있는 값을 모두 더한 값.

$$ k_i=\sum_{j=1}^{n} A_{ij} $$

모든 node의 degree를 계산하려면: adjacency matrix의 각 행을 합하기.

2.2. 작은 예시에서 degree 계산해보기 (1.1에서 만든 작은 행렬)

2.3. 실제 ER network의 degree 계산하기 (1.1-1.6에서 만든 adjacency matrix의 degree 계산)

$n=1000$, $p=0.01$로 생성한 adjacency matrix $A$의 각 행을 합하여 모든 node의 degree를 계산한다.

2.4. 특정 node의 degree를 직접 확인하기

방금 계산한 degree가 실제 adjacency matrix의 행과 일치하는지 확인해보기.

2.5. 각 node의 degree를 계산했으니, 전체 네트워크의 최소, 최대, 평균 degree 확인하기

무방향 네트워크에서는 link 하나가 두 node의 degree를 각각 1씩 증가시킴.
예를 들어서 node 0과 node 1을 연결하는 link 하나가 있다면:

-> 따라서 모든 degree의 합 = link 수 x 2.
$$ \sum_{i=1}^{n}k_i=2L $$

-> 이를 node 수 $n$으로 나누면: 실제 네트워크의 평균 degree.

$$ \bar{k}=\frac{2L}{n} $$

2.7. 평균 degree도 검증하기

[3단계] Degree Distribution (차수 분포) 그리기.

3.1. Degree 별 node 수 계산하기

Degree가 몇인 노드가 몇 개씩 있는지 세보자.

3.2. Degree 별 확률 계산하기.

3.3. 방금 생성한 네트워크의 결과 그리기.

이론 분포 X

3.4. 왜 Binomial distribution과 비교해봐야 할까?

$G(n,p)$ 모형에서 한 node는 자신을 제외한 $n-1$개의 node 각각과 독립적으로 확률 $p$로 연결된다.

따라서 한 node의 degree $K$는 Binomial distribution을 따름.

$$ K \sim \mathrm{Binomial}(n-1,p) $$

Degree가 $k$일 이론적 확률:

$$ P(K=k) = \binom{n-1}{k} p^k(1-p)^{n-1-k} $$

이 분포의 기대값:

$$ E[K]=(n-1)p $$

3.5. Binomial과 Poisson 확률 계산하기

3.6. 왜 binomial과 poisson을 둘다 계산한건가?

-> ER 네트워크의 degree는 원래 정확히는 Binomial distribution을 따르지만, n이 크고 p가 작으면 Binomial이 Poisson distribution과 거의 똑같아져서 Poisson으로 대신 표현할 수 있기 때문.

$n$이 크고 $p$가 작을 때, Binomial distribution은 평균이 $\lambda=(n-1)p$ 인 Poisson distribution으로 근사할 수 있다.
즉, $ \mathrm{Binomial}(n-1,p)\approx \mathrm{Poisson}(\lambda)$

본 실험에서는 $n=1000$, $p=0.01$이므로, $\lambda=(1000-1)\times0.01=9.99$ 가 됨.

원논문의 표기에서는 이 평균 degree($\lambda$)가 $2c$에 해당하고, 따라서 본 실험의 $\lambda=(n-1)p$는 원논문의 $2c$와 대응함.

즉, $2c$ ⟷ $(n−1)p \approx np$

3.7 Simulation, Binomial, Poisson을 같은 그래프에 그려서 비교해보기

3.8. $n$, $p$ 조건을 바꿔 비교하기 (1)

평균 degree ($n$-1)$p$를 10으로 고정하고

-> 평균 연결 수는 유지하면서, node 수가 커질 때 분포가 어떻게 달라지는지 확인하기.

3.8. $n$, $p$ 조건을 바꿔 비교하기 (2)

degree = (n-1)p이니까, n을 1000으로 고정하고 p를 바꾸면

-> node 수를 유지하면, p가 2배가 될 때 평균 degree도 커짐(거의 2배)
-> $p$가 커지면서 degree distribution의 중심과 봉우리가 오른쪽으로 이동하는지 확인하기

[4단계] 해석하고 Barabasi scale-free network와 비교하기

TO-DO

4.1. ER random network와 Barabasi scale-free network가 각각 어떻게 생겼나

ER network 분포 그리기 & 결과 해석

Barabasi scale-free network 분포 그리기 & 결과 해석

4.1.1. BA Network 생성해서 node/link/degree를 확인해보기

4.1.2. ER과 BA 수치 비교

4.1.3. ER과 BA의 degree distribution 계산하기

4.1.4. ER과 BA의 degree distribution 그리기

4.1.5. 결과 해석

ER network의 degree distribution

BA network의 degree distribution

결론

4.2. 두 분포의 모양이 왜 다른가

ER network: Random network

-> 그 결과: 평균 주변에 node가 집중된 종 모양의 degree distribution, 뚜렷한 hub 없음

BA network: Growth + Preferential attachment

-> 그 결과: 낮은 degree에 node가 많이 몰리고, 오른쪽으로 긴 꼬리를 가진 분포
(평균 연결 수가 같아도, link가 누구에게 배분되는지가 다르기 때문에 degree distribution의 모양이 달라짐)

4.3. 실제 사회 네트워크는 어느 쪽에 가까운가? (근거와 함께)

ER보다는 BA의 특징에 더 가까운 경우가 많음

그러나 실제 사회의 연결은 사회적 요인에도 영향을 받기 때문에, 완전히 BA와 같지는 않음