رفتن به نوشته‌ها

برچسب: شبکه

مدل باراباشی-آلبرت و تولید شبکه‌های بی‌مقیاس

در پست قبل در مورد بالانس تئوری یا نظریه توازن صحبت کردیم و نشون دادیم که به کمک یک مدل ساده و ابتدایی می‌تونیم به جوامع، متناسب با نوع رابطه‌ی اعضا با همدیگه، انرژی نسبت بدیم و مقدار این انرژی به ما میگه که جامعه مد نظر در چه وضعیتی از توازن قرار داره.

بنابر بهنجارش، اگر انرژی جامعه‌ ۱- به‌دست بیاد، جامعه کاملا متوازن یا بالانس هست که این در صورتی رخ میده که همه اعضای جامعه دوست همدیگه باشند و یا اینکه جامعه دو قطبی بشه، یعنی جامعه به دو زیر مجموعه تقسیم بشه به نحوی که درون زیرمجوعه‌ها اعضا دوست باشند اما هر عضوی از این زیرمجوعه با اعضای زیرمجوعه‌ی مقابل دشمن باشه. همین‌طور اگر انرژی جامعه بیشتر از ۱- به‌دست بیاد یعنی جامعه نامتوازن‌ هست و هر چقدر که انرژی به ۱+ (کران بالای انرژی بنابر بهنجارش) نزدیک‌تر باشه جامعه نامتوازن‌تر هست که به معنی وجود امکان نزاع و درگیری در بین اعضاست.

طی این پست‌ می‌خوایم ببینیم اگر به یک جامعه با شرایط اولیه مشخص (جمعیت و انرژی اولیه)، عضو جدیدی وارد بشه چه اتفاقی می‌افته. اما قبل از اون اجازه بدید که مدل باراباشی-آلبرت رو معرفی کنیم.

همه‌ی ما گزاره‌های این شکلی رو زیاد شنیدم: «پول، پول میاره» یا «ثروتنمندان، ثروتمندتر میشند و فقرا فقیرتر».  بد نیست بدونید که جامعه‌شناسان به این پدیده می‌گند اثر متیو (Matthew Effect). ماجرا از اینجا شروع میشه که درون شبکه‌هایی مثل وب(www)، اینترنت، شبکه استناد (citation networks) و شبکه‌های اجتماعی  اعضایی وجود دارند که علی‌رغم تعداد کمشون، توجه زیادی از شبکه رو به خودشون معطوف می‌کنند.

توزیع قاون‌توانی، قسمت سبز رنگ ۸۰٪ از شبکه را شامل می‌شود و دم‌دراز زرد رنگ ۲۰٪ باقی‌مونده را.
توزیع قانون‌توانی، قسمت سبز رنگ ۸۰٪ از شبکه را شامل می‌شود و دم‌دراز زرد رنگ ۲۰٪ باقی‌مانده را.

به عنوان مثال در بین تمام سایت‌ها گوگل، ویکی‌پدیا و فیس‌بوک بیشترین بازدیدکننده‌ها و پیوندها رو دارند یا مثلا در جامعه‌ی ما، محمدرضا شجریان، حسین علیزاده و کیهان کلهر  جزو برجسته‌ترین هنرمندان موسیقی سنتی هستند، در مقایسه با جمعیت هنرمندان موسیقی، این افراد تعدادشون کمه. با این‌وجود شهرت و محبوبیشون از همه هنرمندان بیشتره. این شبکه‌ها، شبکه‌های بی‌مقیاس (scale-free) هستند به این معنی که توزیع درجه در این شبکه‌ها با تقریب خوبی از یک الگوی قانون‌توانی(power law) پیروی می‌کنه. این چندتا جمله‌ی سخت که گفتم یعنی اینکه وقتی ما این شبکه‌ها رو با یک گراف نمایش می‌دیم، درجه ‌رئوس متناسب با وارون فراوانی(تعداد) اون رئوس هست . یعنی هرچی راسی درجه‌ش بیشتر باشه (تعداد یال‌های بیشتری بهش متصل بشند) فراوانیش کمتره و هر چقدر درجه راسی کم‌تر باشه فراوانیش بیشتره! همون‌جوری که تعداد سایت‌هایی مثل گوگل تعدادشون خیلی کمه، چون درجه‌شون زیاده.

رشد یک شبکه مطابق با مدل باراباشی-آلبرت که در هر مرحله راس جدید به ۲ راس قبلی وصل می‌شود.

کار آلبرت باراباشی و رکا آلبرت معرفی الگوریتمی بود که قادره چنین شبکه‌هایی رو مدل‌سازی کنه. این الگوریتم صرف‌نظر از تصادفی بودن باید گرافی رو تولید کنه که توزیع درجه‌ رئوسش قانون‌توانی باشه. برای همین اساس این مدل دو چیزه:

۱) رشد: در طی زمان رئوس جدیدی به شبکه اضافه می‌شند.

 ۲) اتصال ترجیحی: رئوس جدید ترجیح می‌دند به رئوسی وصل بشند که درجه‌ی بالاتری دارند.

برای همین این الگوریتم ابتدا یک شبکه متصل (همبند) با m_0 راس ایجاد می‌کنه. بعد از اون، در هر مرحله، راسی اضافه می‌شه و به m \le m_0 راس قبلی وصل میشه. این راس بر اساس درجه‌شون انتخاب می‌شند: یعنی احتمال اینکه راس جدید به iامین راس موجود درگراف وصل بشه برابره با نسبت درجه راس iام به مجموع درجات کل رئوس. این سبب میشه که «هاب» در شبکه به‌وجود بیاد. هاب‌ها رئوسی هستند که درجه‌ شون از بقیه رئوس شبکه بیشتره. (صفحه شجریان در اینستاگرام یک هاب به حساب میاد در بین خواننده‌ها همون‌جوری که گوگل یک هابه در بین سایت‌ها!). يادتون باشه که در مدل باراباشی-آلبرت وزن هر یال ۱ است!

 

بالانس تئوری چی میگه؟! (مقدمه)

این اولین پستیه که قراره در مورد چیزایی حرف بزنم که کسی در موردش زیاد نشنیده و نخونده. یک موضوع جدید و در حال توسعه که به نظرم به شدت جذابه. خب یک سری مشکلات هست توی این پست از جمله اینکه خیلی از عبارت‌ها رو «من» ترجمه کردم و هنوز ترجمه‌ی رسمی براشون ارائه نشده و یا اینکه لااقل هنوز عرف نشدند. ممکنه یک سری ایراد علمی هم وارد بشه که در آینده تصحیحشون می‌کنم. موضوع این پست Balance Theory هست، اما از اونجایی که اگر «نظریه تعادل» ترجمه بشه خیلی‌ها ممکنه در نگاه اول یاد تعادل نش یا نظریه تعادل عمومی بیفتند من به جای واژه‌ی «تعادل» از واژه‌ی «توازن» استفاده می‌کنم تا اطلاع ثانوی! درضمن مدلی که در ادامه مطرح میشه یک مدل ساده و ابتدایی هست، بنابراین احتمالا بعضی از سوال‌های شما رو در حوزه‌ی علوم اجتماعی و/یا علوم سیاسی بی‌جواب میذاره!

خیلی خب، سه‌ نفر رو فرض کنید که می‌تونند دوست یا دشمن همدیگه باشند. همین‌طور دوستی و دشمنی رو متقابل فرض کنید، یعنی اگر کسی رو دوست دارید، اونم شما رو دوست داره. حالا اگر این سه نفر دوست هم باشند، اون موقع همه چیز خوبه و تنشی پیش نمیاد؛ دوست دوست شما، دوست شماست! اصطلاحا میگیم این مجموعه‌ سه نفری در توازن قرار داره و یا اینکه متوازن -balanced- هست. اما اگر از بین این سه نفر دو نفر رابطه‌ی خوبی با همدیگه نداشته باشند اون‌موقع ممکنه تنش پیش بیاد. به عنوان مثال فرض کنید که شما، همسرتون و مادرتون رو دوست دارید با این وجود، متاسفانه، مادرتون و همسرتون رابطه‌ی خوبی با همدیگه ندارند.

 یک شبکه نامتوازن بین آلیس، باب و کرول.دوستی با خط و دشمنی با خط‌چین مشخص شده است.
یک شبکه نامتوازن بین آلیس، باب و کرول.دوستی با خط و دشمنی با خط‌چین مشخص شده است.

اجازه بدید ،از این به بعد، به خاطر راحتی بیشتر از واژه‌های دقیق «دوست» و «دشمن» برای نوع روابط استفاده کنیم و دوستی رو کاملا ۱+ و یا ۱- فرض کنیم. بنابراین شما و همسرتون دوست، شما و مادرتون دوست ولی همسر شما و مادر شما دشمن همدیگه هستند. اینجا توازن از بین میره، به عنوان مثال کافیه شما هدیه‌ای برای مادرتون بخرید، در این صورت همسرتون شاکی میشه و مجبورید شب رو توی کوچه بخوابید! حالا فرض کنید که شما و آرش، هم‌زمان از یکی از همکار/هم‌کلاسی‌هاتون به اسم احسان متنفرید. خب طبق یه قاعده‌ی قدیمی، داشتن دشمن مشترک دوستی میاره و یا اینکه دشمن دشمن شما، دوست شماست. آرش دشمن احسان و احسان دشمن شماست پس طبق این قاعده شما و آرش دوست هستید. این مجموعه هم متوازنه. حالت دیگه که ممکنه پیش بیاد این هست که شما، میثم و سهیل هر سه دشمن همدیگه باشید، خب به وضوح مشخصه که این مجموعه نامتوازن هست؛ هر لحظه ممکنه کسی علیه کسی شورش کنه!

تا اینجا چارچوب بحث ما در مورد توازن مشخص شد. جذابیت این موضوع برای ما دانشمندان (!) زمانی شروع میشه که به فکر مدل‌سازی این چارچوب باشیم. ایده‌ی اصلی این کار توسط هایدر (۱۹۵۸) مطرح شد. مثلثی فرض کنید که هر راسش یکی از سه نفر بالا باشه و ضلعی که هر دو راس رو بهم متصل میکنه رو به عنوان رابطه اون دو راس(نفر) در نظر بگیرید. اگر دو نفر دوست هم باشند، به ضلعی که دو راس متناظر با اون دو نفر رو  متصل میکنه، ۱+ نسبت میدیم و اگر دو نفر دشمن هم باشند به ضلع متصل کننده  ۱-.

اجازه بدید از نظریه‌ی گراف کمک بگیریم. مطابق شکل ما یک گراف کامل با ۳ راس و ۳ یال داریم که رئوس، نماینده‌ی اعضای مجموعه و یال‌ها تعیین کننده نوع رابطه (دوستی یا دشمنی) بین رئوس هستند. با توجه به چارچوب بالا اگر تعداد یال‌های منفی که با خط چین توی شکل زیر مشخص شده‌ند فرد باشند (یکی یا سه‌تا) اون‌موقع گراف ما و یا شبکه ما نامتوازن -unbalanced- خواهد شد.

Screenshot from 2015-08-04 20:26:34
شبکه‌های متوازن و نامتوازن و نوع آرایش آن‌ها

بنابراین مدلی که به عنوان یک «شبکه‌ اجتماعی» برای توصیف روابط بین انسان‌ها و متوازن بودنشون مطرح می‌کنیم این جوری ساخته میشه:

    1. با توجه به افراد،‌سازمان‌ها، کشورها و هرچیزی که روابط دوستی یا دشمنی دارند ما یک گراف کامل از مرتبه تعداد اعضا مشخص می‌کنیم. گراف کامل هست چون که فرض بر اینه که همه‌ی اعضا همدیگه رو می‌شناسند و رابطه دارند. به عنوان مثال به کشورهای عضو سازمان ملل فکر کنید که یا از هم خوششون میاد یا از هم بدشون میاد!
    2. هر یال یا مثبته و یا منفی. هیچ حالت بینابینی وجود نداره.
    3. یک مثلث متوازن (balanced) است اگر و تنها اگر حاصل‌ضرب علامت یال‌های آن مثبت باشه. (اگر تعداد یال‌های منفی فرد باشه: (-,-,- یا -,+,+) اون‌موقع گراف ما و یا شبکه ما نامتوازن خواهد شد.)
      شیوه‌ی قطبیده شدن جهان به دو بلوک شرق و غرب قبل از جنگ‌جهانی اول
      شیوه‌ی قطبیده شدن جهان به دو بلوک شرق و غرب قبل از جنگ‌جهانی اول

خب حالا فرض کنید که ما یک شبکه‌ی مشخص از اعضا و روابطشون داریم:

    • آیا می‌تونیم بگیم که اوضاع این شبکه چقدر متوزانه؟
    • آیا می‌تونیم با در نظر گرفتن شبکه‌ی کشورهای دنیا و روابطشون بگیم آیا ممکنه بین دو کشور صلح برقرار بشه؟ یا اگه بین دو کشور صلح برقرار شد، اون موقع این صلح موضعی (منطقه‌ای) چه اثراتی روی صلح جهانی داره؟ به عبارت دیگه اگه علامت یالی رو در یک شبکه عوض کنیم (رابطه‌ی دو نفر رو از دوستی به دشمنی و یا عکس تبدیل کنیم) اون موقع میشه فهمید برای کل شبکه چه اتفاقی می‌افته؟
  • آیا می‌تونیم پیش‌بینی کنیم در چه شرایطی ممکنه بین هوادارهای دو تیم ورزشی توی ورزشگاه آزادی درگیری و نزاع پیش میاد؟

بله، با تقریب خوبی می‌تونیم همه این‌کارها رو به لطف نظریه‌ی توازن و یا بالانس تئوری انجام بدیم.

اجازه بدید کمی عمیق‌تر بشیم. خیلی راحت اثبات میشه که فقط دو راه برای یک شبکه بزرگ وجود داره که متوازن بشه، یا همه دوست هم بشند (جامعه بهشت بشه!) و یا اینکه شبکه قطبیده بشه، به این معنی که شبکه به دو بلوک تقسیم بشه جوری که داخل هر بلوک اعضا، دوست همدیگه حساب میشند و اعضای بلوک مقابل دشمن! درست مثل زمانی که دنیا به دو بلوک شرق و غرب تقسیم شده بود؛ یه سری این ور دوست هم بودند، یه سری هم اون‌ور، بعد این‌وری‌ها نمی‌خواستند سر به تن اون‌وری‌ها باشه!

خب پس وقتی ما یک شبکه داریم که در یکی از این دو حالت نیست یعنی متوازن یا بالانس نیست. سوال مهم اینه که خب اگر بخواهیم که شبکه رو بالانس یا متوازن کنیم چه کار باید انجام بدیم؟ یک راه پیشنهادی این هست که یک یال رو به صورت تصادفی انتخاب کنیم و علامتش رو عوض کنیم و بعدش ببینیم برای سیستم چه اتفاقی می‌افته. به عبارت دیگه اگر بعد از عوض کردن اون یال، تعداد مثلث‌های متوازن در کل شبکه زیاد بشه یعنی اینکه ما تونستیم شبکه رو به یک حالت متوازن‌تر هدایت کنیم، ولی اگر با عوض کردن علامت یالی تعداد مثلث‌های متوازن شبکه کم بشه یعنی عدم‌توازن رو توی شبکه بالا بردیم.

از اون‌جایی که ما فیزیک‌پیشه هستیم، اجازه بدید با رویکرد انرژی به قضیه نگاه کنیم؛ با توجه‌ به پیش‌فرض‌های ما، انرژی شبکه باید متناسب باشه با تعداد مثلث‌های نامتوازن منهای تعداد مثلث‌های متوازن موجود درشبکه:

CodeCogsEqn_001
معادله انرژی برای یک شبکه اجتماعی

 

CodeCogsEqn
اگر دو راس دوست باشند به یال بین آن دو ۱+ نسبت می‌دهیم و اگر دشمن باشند ۱-

 

نمودار انرژی برای شبکه‌هایی با (A) سه راس و (B) چهار راس
نمودار انرژی برای شبکه‌هایی با (A) سه راس و (B) چهار راس

n تعداد کل رئوس است و به خاطر بهنجارش (Normalization) تفاضل انرژی‌ها رو بر تعداد کل مثلث‌های شبکه تقسیم کردیم تا انرژی هنجار به واحد بشه! بنابراین بیشترین مقدار انرژی ۱ و کم‌ترین مقدار ۱- خواهد شد. وجود منفی هم به این خاطر هست که هرچی انرژی کم‌تر باشه (منفی‌تر) سیستم متوازن‌تره. خب بیاید با استفاده از این رابطه نمودار انرژی رو برای دو تا شبکه‌ی کوچیک، یکی با ۳ راس و دیگری با ۴ راس بکشیم:

نمودار A انرژی یک شبکه یا ۳ راس رو نشون میده که ساده‌ترین شبکه برای بررسی هست. بنابراین انرژی شبکه یا ۱ (نامتوزان) و یا ۱- (متوازن) هست. عددی که بالای هر مثلث نوشته شده فراوانی هر کدوم هست (مثلا اینکه یک یال خط‌چین باشه سه حالت داره، بدیهیه!)

نمودار B انرژی یک شبکه‌ی با ۴ راس رو نشون میده. خب توی این شبکه علاوه بر حالات قبل، انرژی صفر هم مشاهده میشه. طبیعیه که ما توی این شبکه می‌تونیم از بالا به پایین بیایم و شبکه رو متوازن کنیم. برای این کار کافیه علامت یکی از یال‌ها رو عوض کنیم و به وضعیت پایدارتر برسیم. خب این سوال مطرح میشه که:

  • آیا توی هر شبکه‌ای ممکنه با عوض کردن علامت یک یال، به یک شبکه‌ی متوازن‌تر رسید؟
Screenshot from 2015-08-04 22:06:50
وجود حالت‌های مسدود (jammed state)

متاسفانه در مورد شبکه‌های بزرگ(تعداد راس بیشتر) حالت‌هایی در سیستم وجود داره که به Jammed States و یا به قول استیون استروگاتز Strict Jammed States معروف هستند. این حالت‌ها چیزی نیستند جزو کمینه‌های نسبی انرژی. به این معنی که انرژی این‌حالت‌ها از تمام حالت‌های ممکن که با تغییر علامت یک یال در دسترس هستند، کمتر هست. بنابراین در حالت‌های jammed یا مسدود، امکان این‌که تنها با تعویض علامت یک یال به یک حالت متوازن‌تر رفت، وجود نداره. به عبارت دیگه انرژی حالت‌های مسدود کوچکتر یا مساوی انرژی حالت‌های مجاور هست.

نکته‌ای که وجود داره اینه که حالت‌های مسدود نمی‌تونند هر مقدار انرژی اختیار کنند. در حقیقت این‌حالت‌ها حداکثر می‌تونند انرژی صفر داشته باشند (کران بالای انرژی حالت‌های مسدود صفر است). اثبات این موضوع خیلی سرراسته: هر یالی در یک حالت مسدود متعلق به مثلث‌های متوازنی هست که تعدادشون برابر با تعداد مثلث‌های نامتوازنه، چون در غیر این صورت علامت اون یال باید عوض بشه که این در تناقض با تعریف حالت مسدوده! بنابراین در شبکه‌های نسبتا بزرگ حالت‌های مسدودی وجود که انرژی این‌ حالت‌ها حداکثر صفر هست.

یک گراف Paley با ۱۳ راس،‌ به شیوه‌ی اتصال رئوس دقت کنید.
یک گراف Paley با ۱۳ راس،‌ به شیوه‌ی اتصال رئوس دقت کنید.

ویژگی جالبی در مورد حالت‌های مسدود با انرژی صفر وجود داره؛ یال‌های مثبت در این حالت‌ها عضو یال‌های گراف Paley هستند. گراف Paley گرافی هست که تعداد رئوسش (q) یک عدد اول به شکل q=4k+1 هست. هر دو راس در این گراف درصورتی وصل هستند که تفاضل شماره اون دو راس یک عدد مربع کامل باشه به پیمانه‌ی q. این گراف‌ها خیلی خوشگل‌ هستند و قیافه‌ی متقارنی دارند. می‌تونید تعدادی از این گراف‌ها رو این‌جا ببینید.

 اگر دوست دارید به یک حالت مسدود با انرژی U=0 برسید:

    1. به یال‌هایی از شبکه که عضو گراف Paley هستند «+» نسبت دهید.به سایر یال‌ها (یال‌هایی که عضو شبکه (گراف کامل) هستند ولی عضو گراف Paley نیستند) «-» نسبت دهید.
    2. یک راس جدید به شبکه اضافه کنید (وسط شبکه!). هم اکنون شبکه شما q+1 راس دارد.
    3. راس جدید را به q راس قبلی وصل کنید و به یال‌های بین این راس و سایر رئوس «-» نسبت دهید.

با این روش شما می‌تونید یک حالت مسدود با انرژی صفر بسازید که q+1 راس داره.

فکر کنم برای مقدمه کافی باشه!

  1. The Energy Landscape of Social Balance
  2. Dynamics of Social Balance on Networks
  3. STRUCTURAL BALANCE: A GENERALIZATION OF HEIDER’S THEORY’
  4. Social Balance on Networks: The Dynamics of Friendship and Enmity
  5. Statistical physics of balance theory
سخنرانی استیون استروگتز در مورد نظریه توازن