اَبا اِباد

نظریه‌ی گراف

نظریه‌ی گراف

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

چیزی که این کمپانی از شما می‌خواهد، مرتبا در حال پیچیده شدن است. اگر تعداد اعضای اینستاگرام مثلا صد نفر باشد، مساله خیلی پیچیده نیست. اما اینستاگرام در سراسر جهان، دو میلیارد و چهارصد میلیون عضو دارد و با فرض اینکه هر فرد، به طور میانگین ۱۵۰ صفحه را دنبال‌ کند، ۳۶۰ میلیارد داده فقط برای دنبال کردن (follow) وجود دارد.

آن کمپانی بعد از اینکه فهمید چه حجم زیادی از داده وجود دارد، سؤالش را جزئی‌تر می‌کند و می‌پرسد می‌خواهم بدانم که بیشتر کسانی که رونالدو و مسی را دنبال می‌کنند، چه نوع صفحاتی را دنبال می‌کنند.

همینطور که من این سوال را از شما می‌پرسم، خودبخود در ذهن شما نقشه‌ی نقاط و خطوطی مانند شکل زیر ایجاد می‌شود. این مساله از جنس مسائل گراف است. در این گراف‌ها می‌توانیم هر نقطه‌ را یک کاربر در نظر بگیریم. هر کاربری که یک صفحه‌ی دیگر را دنبال می‌کند، یک خط از این نقطه به آن نقطه وصل کنیم و یک‌ فلش هم روی خط بگذاریم. مثلا اگر کاربر الف کاربر ب را دنبال کرده است، یک خط از نقطه‌ی الف به نقطه‌ی ب بکشیم و یک فلش نیز در جهت الف به ب بگذاریم.

اگر کاربر ب نیز الف را دنبال می‌کند یا به اصطلاح فالو بک داده است، یک خط از ب به الف بکشیم و یک فلش نیز در این جهت بگذاریم. حالا آن مساله شکل ریاضیاتی گرفته و می‌توانیم با عملیات ریاضی، شروع به حل آن کنیم. در تصویر بالا به هریک از این نقاط، یک گره یا node و به هر یک از خطوط، یک یال یا edge گفته می‌شود.

به شاخه‌ای از ریاضیات که به تحلیل گراف‌ها می‌پردازد، نظریه‌ی گراف یا graph theory گفته می‌شود.

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

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

– اَبا اِباد

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *