logo

길버트 모델 📂그래프이론

길버트 모델

정의 1 2

쉬운 정의

심플 네트워크의 링크가 각각 독립적으로 확률 p[0,1]p \in [0,1] 에 따라 연결되는 랜덤 네트워크길버트 모델gilbert model Gn,p\mathbb{G}_{n,p} 라 한다.

어려운 정의

확률 공간 (Ω,F,P)( \Omega , \mathcal{F} , P) 이 주어져 있고, nn 개의 라벨링 된labeled 노드를 가진 네트워크의 프로퍼티 2(n2)2(n2)2^{\binom{n}{2}} \subseteq 2^{\binom{n}{2}} 가 주어져 있다고 하자. 링크의 수 0m(n2)0 \le m \le \binom{n}{2} 에 대해 다음의 확률질량함수를 가지는 F\mathcal{F}-가측 함수 Gn,p:Ω2(n2)\mathbb{G}_{n,p} : \Omega \to 2^{\binom{n}{2}}길버트 모델이라 한다. P(Gn,p=G)=pm(1p)(n2)m,GGn,m2(n2) P \left( \mathbb{G}_{n,p} = G \right) = p^{m} \left( 1 - p \right)^{\binom{n}{2} - m} \qquad , \forall G \in \mathscr{G}_{n,m} \subset 2^{\binom{n}{2}}

설명

길버트 모델은 에르되시-레니 모델 (ER 모델)과 더불어 정말 많은 문헌에서 언급되나 말만 ER 모델이고 실제로는 길버트 모델을 사용하는 경우가 아주, 아주 많다. 두 모델의 차이점이 없는 것은 아니다. 아니 사실 파고들어보면 아예 두꺼운 책 한권이 나올 정도로 다른 모델이지만, 특히 응용 네트워크 이론의 맥락에선 이 둘을 구분하지 않고 ER 모델로 퉁치는 경향이 극심하다. 잘 쓰는 표현은 아니지만, 확률분포가 이항분포이라는 센스에서 이항 랜덤 네트워크binomial Random Network라 부를 수도 있다.

Gn,p\mathbb{G}_{n,p} 는 대략 m=(n2)pn2p2\displaystyle m = \binom{n}{2} p \approx {{ n^{2} p } \over { 2 }} 개만큼의 링크를 가지고 있을 것으로 기대된다. ER 모델이 얄짤없이 정확히 mm 개의 링크를 가진 것과 달리 길버트 모델은 네트워크의 덩치에 계수 pp 로 정비례할 뿐 링크의 수가 정해져 있지는 않다.

정의는 어렵게 적어놨으니 어려워 보이지만 알고리즘을 읽어보면 사실 간단하다. 길버트 모델로 네트워크를 샘플링하는 알고리즘은 다음과 같다.

알고리즘

Input

노드의 수 nNn \in \mathbb{N} 과 링크 확률 p(0,1)p \in \left( 0, 1 \right) 이 주어져 있다고 하자.


Step 1. 초기화

nn 개의 노드를 가진 널 그래프 GG 를 만든다.


Step 2. 베르누이 시행

for i=1,,ni = 1 , \cdots , n
  for j=1,,nj = 1 , \cdots , n
    if iji \ne j
      pp 의 확률로 다음과 같이 네트워크 GG 에 링크 ijij 를 추가한다.GG+ijG \gets G + ij


Output

노드가 nn 개고 링크가 mn2p/2m \approx n^{2} p / 2 개 정도 있는 심플 그래프 G2(n2)G \in 2^{\binom{n}{2}} 를 얻는다.

성질

  • [1]: 길버트 모델 Gn,p\mathbb{G}_{n,p} 에서 샘플링한 네트워크의 링크 수가 정확히 mm 이어야하면 Gn,m\mathbb{G}_{n,m} 에서 샘플링한 것과 같다.
  • [2] 차수의 분포: λ=np\lambda = npnn \to \infty 일 때 각 노드의 차수는 푸아송분포 Poi(np)\displaystyle \text{Poi} \left( np \right) 로 분포수렴한다. P(degv=k)eλλkk!,λnp P \left( \deg v = k \right) \to {{ e^{-\lambda} \lambda^{k} } \over { k! }} \qquad , \lambda \approx np

증명

[1]

에르되시-레니 모델: 다음과 같은 확률 질량 함수를 가지는 랜덤 그래프에르되시-레니 그래프erdős–Rényi graph Gn,m\mathbb{G}_{n,m} 이라 한다. P(Gn,m=G)=((n2)m)1,GGn,m P \left( \mathbb{G}_{n,m} = G \right) = \binom{\binom{n}{2}}{m}^{-1} \qquad , \forall G \in \mathscr{G}_{n,m}

Claim: 임의의 G0Gn,mG_{0} \in \mathscr{G}_{n,m} 를 생각했을 때 다음을 보이면 된다. P(Gn,p=G0Gn,pGn,m)=((n2)m)1 P \left( \mathbb{G}_{n,p} = G_{0} | \mathbb{G}_{n,p} \in \mathscr{G}_{n,m} \right) = \binom{\binom{n}{2}}{m}^{-1}


당연하지만 Gn,p\mathbb{G}_{n,p} 가 정확히 G0G_{0} 인 것보다는 Gn,pGn,m\mathbb{G}_{n,p} \in \mathscr{G}_{n,m} 일 가능성, 그러니까 길버트 모델로 샘플링했는데 링크가 다 합쳐서 mm 개일 가능성이 더 크다. 이를 사건으로 나타내보면 {Gn,p=G0}{Gn,pGn,m}    {Gn,p=G0}{Gn,pGn,m}={Gn,p=G0}() \begin{align*} \left\{ \mathbb{G}_{n,p} = G_{0} \right\} & \subset \left\{ \mathbb{G}_{n,p} \in \mathscr{G}_{n,m} \right\} \\ \implies \left\{ \mathbb{G}_{n,p} = G_{0} \right\} & \cap \left\{ \mathbb{G}_{n,p} \in \mathscr{G}_{n,m} \right\} = \left\{ \mathbb{G}_{n,p} = G_{0} \right\} \qquad \cdots (\star) \end{align*} 이다. 여기서 각각의 확률을 계산해보면 P(Gn,p=G0)=pm(1p)(n2)m\displaystyle P \left( \mathbb{G}_{n,p} = G_{0} \right) = p^{m} \left( 1 - p \right)^{\binom{n}{2} - m} 이므로 P(Gn,pGn,m)=P(GGn,m{Gn,p=G})=GGn,mP(Gn,p=G)=((n2)m)pm(1p)(n2)m \begin{align*} & P \left( \mathbb{G}_{n,p} \in \mathscr{G}_{n,m} \right) \\ =& P \left( \bigcup_{G \in \mathscr{G}_{n,m}} \left\{ \mathbb{G}_{n,p} = G \right\} \right) \\ =& \sum_{G \in \mathscr{G}_{n,m}} P \left( \mathbb{G}_{n,p} = G \right) \\ =& \binom{\binom{n}{2}}{m} p^{m} \left( 1 - p \right)^{\binom{n}{2} - m} \end{align*} 이다. 이제 조건부 확률을 계산해보면 P(Gn,p=G0Gn,pGn,m)=P(Gn,p=G0Gn,pGn,m)P(Gn,pGn,m)=P(Gn,p=G0)P(Gn,pGn,m)()=pm(1p)(n2)m((n2)m)pm(1p)(n2)m=((n2)m)1 \begin{align*} P \left( \mathbb{G}_{n,p} = G_{0} | \mathbb{G}_{n,p} \in \mathscr{G}_{n,m} \right) =& {{ P \left( \mathbb{G}_{n,p} = G_{0} \land \mathbb{G}_{n,p} \in \mathscr{G}_{n,m} \right) } \over { P \left( \mathbb{G}_{n,p} \in \mathscr{G}_{n,m} \right) }} \\ =& {{ P \left( \mathbb{G}_{n,p} = G_{0} \right) } \over { P \left( \mathbb{G}_{n,p} \in \mathscr{G}_{n,m} \right) }} & \because (\star) \\ =& {{ p^{m} \left( 1 - p \right)^{\binom{n}{2} - m} } \over { \binom{\binom{n}{2}}{m} p^{m} \left( 1 - p \right)^{\binom{n}{2} - m} }} \\ =& \binom{\binom{n}{2}}{m}^{-1} \end{align*} 을 보일 수 있다. 여기서 \land논리곱이다.

[2]

nn 개의 노드를 가지고 각 노드가 연결될 확률 pp 가 주어져 있고 노드의 차수는 나머지 (n1)(n-1) 개의 다른 노드와 연결되었느냐 연결되지 않느냐에 달려 있으므로, 이항분포 B(n1,p)B(n-1,p) 를 따르게 된다. 수식으로 깔끔하게 적어보면 다음과 같다. P(degv=k)=(n1k)pk(1p)n1k P \left( \deg v = k \right) = \binom{n-1}{k} p^{k} \left( 1 - p \right)^{n-1-k}

이항분포의 극한분포로써의 푸아송분포: XnB(n,p)X_{n} \sim B(n,p)이라고 하자.

λnp\lambda \approx np 이면 XnDPoi(λ) X_{n} \overset{D}{\to} \text{Poi} (\lambda)

위 보조정리에 따라 충분히 큰 길버트 네트워크의 노드의 차수는 푸아송 분포를 따른다.

시각화

다음은 n=50n = 50, p=12%p = 12\% 일 때 샘플링한 ER 네트워크와 그 노드의 차수들의 히스토그램이다.

plot_G_np.pnghistogram_G_np.png

코드

줄리아Graphs, GraphRecipes 패키지를 사용한 코드다.

cd(@__DIR__); pwd()

@time using Graphs
@time using Plots
@time using GraphRecipes

n = 50
G_np = erdos_renyi(n, 6/n, seed = 0)
plot_G_np = graphplot(G_np, title = "n = 50, p = 12%", curves=false, size = (300,300), node_weights = degree(G_np).^2,
 node_shape = :rect, nodecolor = :black, nodestrokealpha = 0.5, edgecolor = :black)
png(plot_G_np, "plot_G_np.png")
histogram_G_np = histogram(degree(G_np), title = "Histogram of Degree",
 color = :black, alpha = 0.8, label = :none, size = (300,300))
png(histogram_G_np, "histogram_G_np.png")

일반화


  1. Gilbert. (1959). Random Graphs ↩︎

  2. Frieze. (2015). Introduction to Random Graphs: p3. ↩︎