Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C/C++로 이해하는 Barabási-Albert 그래프: 스케일 프리 네트워크 모델의 원리

바라바시-알버트(BA) 모델이란?

바라바시-알버트(Barabási-Albert, BA) 모델은 스케일 프리(scale-free) 네트워크를 생성하기 위해 제안된 여러 모델 중 하나로 널리 다루어집니다. 이 모델은 성장(growth)우선적 연결(preferential attachment)이라는 두 가지 핵심 개념을 결합한 것이 특징입니다. 이 두 개념은 실제 세계의 다양한 네트워크에서 광범위하게 관찰됩니다.

1. 성장(Growth)

성장이란 네트워크를 구성하는 노드(node)의 수가 시간이 지남에 따라 계속 증가한다는 의미입니다. 즉, 네트워크는 정적인 상태로 머무르지 않고 새로운 노드가 끊임없이 추가되며 확장됩니다.

2. 우선적 연결(Preferential Attachment)

우선적 연결이란 이미 많은 연결(링크)을 가진 노드일수록 새로운 링크를 받을 확률이 더 높아진다는 원리입니다. 다시 말해, 차수(degree)가 높은 노드일수록 네트워크에 새롭게 추가되는 링크를 붙잡거나 가로채는 능력이 강해집니다.

소셜 네트워크로 이해하는 우선적 연결

우선적 연결 개념은 사람들을 연결하는 소셜 네트워크의 관점에서 생각하면 직관적으로 이해할 수 있습니다. 이 경우, X에서 Y로 향하는 링크는 X라는 사람이 Y라는 사람을 "알고 있다" 또는 "친분이 있다"는 것을 의미합니다.

링크가 많이 연결된 노드는 인맥이 넓은 유명 인사를 나타낸다고 볼 수 있습니다. 새로운 사람이 커뮤니티에 처음 들어왔을 때, 그 사람은 상대적으로 무명인 사람보다 눈에 잘 띄는 유명 인사 중 한 명과 먼저 친분을 맺을 가능성이 훨씬 높습니다. 이것이 바로 우선적 연결이 작동하는 방식입니다.

월드 와이드 웹에서의 BA 모델

BA 모델은 월드 와이드 웹(World Wide Web)에 대한 다음과 같은 가정을 바탕으로 제안되었습니다. 웹에서 새로 생성되는 페이지들은 거의 아무도 모르는 페이지보다 야후(Yahoo), 구글(Google)처럼 매우 잘 알려진 대형 사이트, 즉 허브(hub)에 우선적으로 링크를 건다는 것입니다.

만약 누군가 기존에 존재하는 링크를 무작위로 선택하여 새로 링크할 페이지를 고른다면, 특정 페이지가 선택될 확률은 해당 페이지의 차수(연결 수)에 비례하게 됩니다. 이러한 메커니즘이 반복되면서 자연스럽게 허브 노드가 형성됩니다.

BA 모델 그래프 시각화

아래 이미지는 우선적 연결 모델을 따르는 50개의 노드로 구성된 BA 모델 그래프를 보여줍니다.

C/C++로 이해하는 Barabási-Albert 그래프: 스케일 프리 네트워크 모델의 원리


위 그래프를 살펴보면, 연결이 많은 노드일수록 더 많은 새로운 링크를 흡수하며 네트워크 전체가 "부익부 빈익빈(rich get richer, poor get poorer)" 논리를 완벽하게 만족하는 것을 확인할 수 있습니다. 이러한 특성 덕분에 BA 모델은 소셜 네트워크, 웹 그래프, 인용 네트워크 등 현실 세계의 스케일 프리 네트워크를 모델링하는 데 폭넓게 활용되고 있습니다.