آرمان آذرنیک
آرمان آذرنیک
خواندن ۲۱ دقیقه·۱ سال پیش

شبکه‌های پیچیده‌ی پویا (Complex Networks)


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

به نظرتون اینستاگرام، مغز، راه‌های ارتباطی بین شهرها، بازیگران هالیوود، حساب‌های بانکی و نویسندگان مقالات علمی چه شباهتی دارن؟ شاید بگید اصلا ربط این‌ها به هم چیه؟ پس با من همراه باشید تا برای جواب دادن به این سوال شما رو با دنیای علم شبکه (Network Science) آشنا کنم.

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

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

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

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

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

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

معیارهای شبکه‌ها

بالاتر گفتیم که علم شبکه به تحلیل شبکه می‌پردازه و تحلیل شبکه شامل محاسبه کردن یه سری معیارهای شبکه میشه که برخی از این معیارها که ساده‌تر هستن رو توضیح میدم. یکی از این معیارها توضیع درجه (degree distributions)، البته قبل از اون باید مفهوم کلی degree رو بدونین. degree یا درجه‌ی مفهومیه که برای گره‌ها تعریف میشه و به معنای تعداد یال‌هاییه که به هر گره‌ متصله. اگه یال‌ها جهت دار باشن in-degree و out-degree داریم که به ترتیب به معنی تعداد یال‌های وارد شده و خارج شده به هر گره‌ هست.

برای مثال شبکه‌ی اجتماعی اینستاگرام رو در نظر بگیرید، اکثر صفحه‌های کاربران تعداد کمی فالور دارن و تعداد کمی صفحه مانند رونالدو و مسی هستن که تعداد زیادی کاربر دارن. به این نوع توزیع درجه که در اون اکثر گره‌ها تعداد کمی یال دارن و تعداد کمی گره‌ هستن که تعداد خیلی زیادی یال بهشون وصله، توزیع درجه‌ی power-law میگن که داخل شبکه‌هایی که طبیعی نیستن و انسان در ساخت اونا دخالت داره این نوع توزیع درجه خیلی معموله. شکل زیر نمودار توزیع درجه‌ی power-law رو نشون میده که در اون محور افقی تعداد یال‌ها به ازای هر نود (node degree) و محور عمودی احتمال یا تعداد وقوع چنین گرهی با این تعداد یال داخل شبکست.

توزیع درجه power-law
توزیع درجه power-law


به شبکه‌هایی که چنین توزیع در‌جه‌ای رو دارن شبکه‌های مقیاس پذیر (Scale-free) گفته‌ میشه. شبکه‌های اجتماعی مثل توییتر و شبکه‌های همکاری مثل نویسندگان مقالات نمونه‌هایی از شبکه های مقیاس پذیر هستند. در این شبکه‌ها ویژگی پولدارتر شدن پولدارها (rich get richer) وجود داره بدین معنی که گره‌هایی که یال های زیادی دارن، هموراه شانس بیشتری برای اضافه شدن یال های جدید نسبت به گره‌های با یال کمتر دارن.

دسته‌ی دیگه‌ای از معیارهای مهم معیارهای مرکزیت (Centrality Measures) نام دارن که برای گر‌ه‌ها تعریف شده ولی با اندازه‌گیری اون‌ها برای کل گره‌ها و اعمال توابع آماری مثل میانگین گرفتن، معیارهای مرکزیت کل شبکه رو هم می‌تونیم به دست بیاریم. این معیار ها شامل چند نوع هستند که یکی از اون‌ها degree centrality که بالاتر توضیح دادیم، پیدا کردن گره‌هایی که بیشترین تعداد یال‌ متصل رو دارن اهمیت بالا در تحلیل شبکه داره. معیار دیگه‌ی این دسته betweenness centrality و برای اینکه مفهوم اون رو خیلی ساده و ابتدایی (نه علمی) توضیح بدم باید بگم این معیار مشخص میکنه که کدوم گره بیشتر به عنوان دزد سرگردنه عمل می‌کنه و اکثر گره‌ها برای اینکه به هم ارتباط داشته باشن باید از این گره بگذرن. در شکل زیر میتونین ببینین که گره‌ی وسط شبکه که اسم broker یا واسطه داره دارای معیار مرکزیت betweenness بالاییه و تموم گر‌ه‌هی سمت چپ و راست اون برای رسیدن به گر‌ه‌های سمت دیگه ناچارن از اون بگذرن. البته محاسبه‌ی این معیار با در نظر گرفتن کوتاه‌ترین طول مسیر ممکن بین هر دو گره در شبکه انجام شده، بدین صورت که کوتاه ترین مسیر برای تمامی جفت گره‌ها مشخص شده و در نظر میگیریم که هر گره ثالث (گره غیر ابتدایی و انتهایی در کوتاه ترین مسیر) چند بار در این کوتاه‌ترین مسیرها ظاهر شده، هر گره‌ای که در کوتاه‌ترین مسیرهای بیشتری ظاهر شده باشه معیار مرکزیت betweenness بالاتری داره.

betweenness centrality
betweenness centrality


معیار دیگه‌ی دسته‌ی Centralityها، closeness نام داره و به طور ساده گره‌ای که با طی تعداد یال‌های کمتری به بقیه‌ی گر‌ه‌ها برسه، closeness centrality بالاتری داره. برای مثال در شکل زیر گره‌ی مرکزی نسبت به بقیه‌ی گر‌ه ها closeness centrality بالاتری داره.

closeness centrality
closeness centrality


ضریب خوشه بندی

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

خرد جمعی

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

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

در آخر میلگرم با بررسی نامه‌هایی که به دست دوستش در ژاپن رسیده متوجه میشه که اون نامه‌ها به طور میانگین ۶ بار پست شدن تا به دست اون برسن، یعنی افراد مختلف با ایجاد میانگین ۶ یال تونستن جستجوی خودشون رو انجام بدن و به جواب برسن. این آزمایش دو تا نتیجه داشته که یکی از اونا اینه که جهان واقعی انسان‌ها در عین پراکنده بودن و فاصله‌ي زیاد جغرافیایی، خیلی هم بزرگ نیست و افراد مختلف خیلی هم از هم دور نیستن و یال و مسیر‌های کوتاهی بین انسان‌های حتی خیلی دور از هم دیگه‌هم وجود داره، این مورد خودش مفهومی در شبکه‌ها به نام small world یا جهان کوچکه. نتیجه دیگه‌ی این آزمایش هم این بود که گر‌ه‌ها و افراد بدون اینکه دانای کلی وجود داشته باشه که از کلیه‌ی گره‌ها و یال‌ها باخبر باشه با جستوجو در بین خودشون تونستن به هدف برسن.

این شبکه‌های جهان کوچک علاوه بر داشتن متوسط طول مسیر‌های کوتاه بین گر‌ه‌ها، ضریب خوشه‌بندی بالایی هم دارن یعنی هر گره تمایل داره تا با گره‌های مجاورش انجمن تشکیل بده و به اون‌ها متصل بشه.

مقاومت در شبکه‌ها

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

مقاومت شبکه در برخی موارد مثل شبکه‌های توزیع و حمل ونقل و اینترنت مفیده و با تحلیل شبکه و پیدا کردن نقاط ضعف دنبال تقویت مقاومت شبکه هستیم و در برخی موارد مانند شبکه های انتشار بیماری یا شبکه‌های تروریستی مقاومت شبکه مضره و به دنبال کاهش مقاومت شبکه هستیم.

مقاومت شبکه در حالت خرابی تصادفی گره‌ها (مانند خرابی روتر‌ها در شبکه) و یال‌ها (مانند خرابی سیم‌های متصل کننده‌ي روتر‌ها) و یا حمله به گر‌ه‌ها و یال‌ها بررسی میشه که در حالت دوم فرد حمله کننده احتمالا قبلا شبکه رو بررسی کرده و به گر‌ه‌ها و یال‌های آسیب‌پذیر تر حمله می‌کنه که ممکنه گره‌های با درجه‌ی بالاتر، betweenness یا closeness بالاتر باشند.

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

انجمن‌ها

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

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

الگوریتم‌های مختلفی برای شناسایی انجمن‌ها داخل شبکه‌ها وجود داره مثل:

الگوریتم Louvain که پیمانه بندی رو چرخه‌ای تکرار میکنه تا اونو افزایش بده و گره‌ها رو به انجمن ها دسته بندی کنه.

الگوریتم دیگه الگوریتم انتشار برچسبه که گره‌ها رو بر اساس همسایه‌هاشون دسته بندی می‌کنه.

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

مدلسازی شبکه‌ها

برای تولید شبکه‌هایی که با نمونه های دنیای واقعی منطبق باشن تا به حال پژوهش‌های زیادی شده که بعضی از مهم‌ترین اون‌ها عبارتند از:

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

مدل بعدی اسمش واتز-اشتروگاتزه که اونم حاصل کار دو محقق به اسم دانکن واتز و استیون اشتروگاتزه.

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

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

مصورسازی شبکه‌ها

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

یک شبکه‌ی ساده و ابتدیی
یک شبکه‌ی ساده و ابتدیی


این شبکه رو میشه به اشکال مختلف قابل درک برای برنامه مدلسازی کرد. یکی از روش‌های مدل سازی ماتریس مجاورته، که در اون به ازای هر گره یه سطر و یه ستون داریم و اگه از گره‌ای به گر‌ه‌ی دیگه یالی داشته بشیم، در محل تلاقی سطر و ستون اون گر‌ه‌ها عدد ۱ و در غیر این صورت عدد ۰ نوشته میشه. اگه یال‌ها بدون جهت باشن ماتریس متقارن میشه و اگه یال‌ها وزن داشته باشن میشه به جای ۱، وزن یال نوشته میشه. برای مثال ماتریس مجاورت شکل بالا به صورت زیر میشه:

ماتریس مجاورت
ماتریس مجاورت


روش دیگه‌ی نمایش شبکه، لیست یال‌هاست. در این روش به ازای هر یال یه سطر که گره‌ی ابتدایی و انتهایی یال رو نشون میده. لیست‌ یال‌های شبکه‌ی قبلی به صورت زیر میشه:

لیست یال‌ها
لیست یال‌ها


روش مرسوم دیگه لیست مجاورته که در اون به ازای هر گره‌ یه سطر داریم و گر‌ه‌هایی که به اون وصل میشن رو جلوش می‌نویسیم. شکل زیر لیست مجاورت مثال قبلیه:

لیست مجاورت
لیست مجاورت


ابزار‌های تحلیل شبکه‌ها

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

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

ابزار به شدت پر استفاده‌ی بعدی NetworkX که یه کتابخونه‌ی منبع باز برای زبان برنامه نویسی پایتونه و باهاش میتونین کد دلخواهتون رو برای تحلیل و مدلسازی شبکه و الگوریتم‌هاش بنویسید.

کتابخونه igraph‌ که برای زبان‌های برنامه نویسی زیادی مثل C و C++ و R و پایتون وجود داره هم خیلی کاربردیه و الگوریتم‌های تحلیل شبکه‌ی زیادی مثل الگوریتم‌های تشخیص انجمن رو از پیش آماده داره

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

افزونه‌ی NodeXL که برای نرم‌افزار Microsoft Excel ارائه شده هم قابلیت مصورسازی و تحلیل شبکه‌ رو داره و به کاربر اجازه‌ی وارد کردن داده‌ها با فرمت‌های مختلف و از منابع مختلف رو میده.

کاربردهای علم شبکه

علم شبکه کاربردهای خیلی زیادی داره که برخی از کاربردهای جالب اون عبارتنداز :

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

۲- تحلیل همه‌ گیری و شیوع بیماری‌ها: امروزه دیگه هممون به دلیل بیماری کرونا میدونیم همه‌گیری چیه و چقدر میتونه خطرناک باشه، هنوزم که هنوزه سر منشا به وجود اومدن این بیماری اختلاف هست.

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

۳- سیستم‌های پیشنهادگر: اگه تا به حال از سایت‌های خرید آنلاین مثل دیجی کالا خرید کرده باشید، موقع مشاهده یا سفارش یه کالا دیدید که کالاهای دیگه‌ای رو هم بهتون پیشنهاد می‌کنه که شاید خیلی هم ربطی به کالای فعلی که دارید می‌بینید نداشته باشه! این پیشنهاد از کجا میاد؟ هر خریداری که تعدادی کالا سفارش میده، سیستم در پشت صحنه یه گراف دو قسمتی (bipartite) به شکل زیر از افراد و خرید‌هاشون میسازه

گراف دو قسمتی
گراف دو قسمتی


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

در این گراف افرادی که کالای مشترکی رو خریداری کردن با یال به هم وصل میشن و مثلا کالاهایی که گره‌ی آبی کمرنگ خریده به بقیه گره‌ها هم پیشنهاد میشن.

۴- شبکه‌های تحلیل قدرت و تاثیر‌گذاری: به وسیله‌ی تحلیل علم شبکه و با یافتن گره‌ها یا انجمن‌های تاثیر گذار و رهبر و کلیدی در شبکه‌، می‌توان بر رفتار گره‌ها، انتخاب‌های آن‌ها و روند اطلاعات در شبکه تاثیر گذاشت. گره‌های مهم با اندازه‌گیری معیارهای مرکزیت (Centrality) در شبکه شناسایی شده و با کنترل کردن آن‌ها می‌توان در شبکه اثر گذاشت. فرض کنید میخوایم یه محصول رو داخل شبکه‌ی اینستاگرام تبلیغ کنیم، به جای اینکه هزینه‌ی زیادی رو صرف تبلیغ کالا داخل صفحه‌های زیادی کنیم، با شناسایی گره‌ها و صفحات مهم اینستاگرام مانند اینفوئنسرها، وظیفه تبلیغ کالا رو فقط به اون‌ها می‌سپریم.

۵- کاربردهای شبیه سازی: برخی مواقع نیاز به پیشبینی در شبکه‌های واقعی داریم که با آزمایش واقعی به دلایل مختلفی امکان پذیر نیست. مثلا در یک کشور رییس جمهور قصد تغییر نرخ بهره بانکی، مالیات، نرخ حامل‌های انرژی، یارانه و ... را داشته اما نیاز دارد مقدار بهینه‌ی ‌آن‌ها را با توجه با بازخورد و واکنش افراد و بنگاه‌های اقتصادی دریابد. طبعیتا نمی‌توان در چنین موردی ریسک نموده و یا حتی مدتی به صورت آزمایشی این موارد را تغییر داد زیرا اشتباه در آن‌ها هزینه‌ي بالایی به دنبال خواهد داشت. در چنین مواردی شبکه‌ی اقتصادی و رفتار افراد و بنگاه‌ها در این شبکه شبیه‌سازی شده و تاثیر تغییرات در شبکه مورد بررسی قرار می‌گیرد.

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

۶- مدل سازی شبکه بیولوژیکی:علم شبکه در شبکه های برهمکنش پروتئین-پروتئین یا شبکه های تنظیم کننده ژن کاربرد زیاد داشته و با تجزیه و تحلیل این شبکه های پیچیده، ما بینشی در مورد فرآیندهای سلولی، مکانیسم های بیماری و پویایی تکاملی به دست می آوریم. علم شبکه در شناسایی بازیگران کلیدی، شناسایی ماژول های کاربردی، و پیش بینی تعاملات جدید، کمک به پیشرفت در پزشکی و بیوانفورماتیک کمک می کند.

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

۸- شبکه‌های مالی: روابط بین مؤسسات مالی؛ مثل بانک‌ها، شرکت‌های سرمایه‌گذاری و بورس اوراق بهادار رو مدلسازی کرده و تجزیه‌‌و‌تحلیل این شبکه‌ها به درک مخاطرات ، اثرات انتشار و ثبات سیستم‌های مالی کمک می‌کنه و شناسایی بازیگران یا مؤسسات کلیدی که می‌تونن تأثیر قابل‌توجهی بر کل سیستم مالی داشته باشن مثل سرمایه‌گذاران اصلی، نهنگ‌های بازارهای مالی و خط دهنده‌ها.

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

مدل سازی تراکنش
مدل سازی تراکنش


با تحلیل این شبکه و محاسبه‌ی معیارها، همچین با اعمال الگوریتم‌های مختلفی مانند الگوریتم‌های تشخیص انجمن میشه دسته‌ها و گروه‌های مختلف افراد داخل شبکه رو جدا کرد و با اعمال الگوریتم‌های یادگیری ماشین مانند الگوریتم‌های نظارت نشده برای شناسایی ناهنجاری، میشه گروه‌هایی که تراکنش‌های غیر عادی دارن رو شناسایی کرد. همچنین با اعمال الگوریتم های یادگیری ماشین نظارت شده میشه تراکنش‌های غیرعادی رو شناسایی کرد.

نتیجه گیری

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

اگر شما با خوندن این مطلب به این علم علاقه‌مند شدید پیشنهاد میکنم منابع زیر رو هم مطالعه کنین:

Barabási, A.L., 2013. Network science. Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences, 371(1987), p.20120375.

Easley, D. and Kleinberg, J., 2010. Networks, crowds, and markets: Reasoning about a highly connected world. Cambridge university press.

Newman, M.E., 2003. The structure and function of complex networks. SIAM review, 45(2), pp.167-256.

Girvan, M. and Newman, M.E., 2002. Community structure in social and biological networks. Proceedings of the national academy of sciences, 99(12), pp.7821-7826.

Barabási, A.L. and Albert, R., 1999. Emergence of scaling in random networks. science, 286(5439), pp.509-512.

Newman, M., 2018. Networks. Oxford university press.

Albert, R. and Barabási, A.L., 2002. Statistical mechanics of complex networks. Reviews of modern physics, 74(1), p.47.






شبکه‌های پیچیده‌ی پویاnetwork sciencecomplex networksشبکه‌های اجتماعیحمل نقل
شاید از این پست‌ها خوشتان بیاید