علیرضا صفافرد
علیرضا صفافرد
خواندن ۲۱ دقیقه·۲ سال پیش

شبکه پیچیده پویا چیست؟

علم شبکه و شبکه پیچیده پویا چیست؟

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

ویژگی‌های منحصر به فرد گراف‌ها که ما در این علم مورد بررسی قرار میدهیم به شرح زیر هستند:

توزیع درجه:

به عنوان مثال ما در دنیای واقعی گراف‌هایی را مشاهده می‌کنیم که با توجه به اینکه تعداد یال ها بسیار کم هست تعدادی از راس‌های گراف هستند که درجه بسیار زیادی دارند و بقیه افراد بیشتر به این راس ها اتصال دارند توزیع درجه ها به صورت نمایی شکل می گیرند.به عنوان مثال در اینستاگرام تعداد کمی از افراد بالای ۱ میلیون دنبال کننده دارند و تعداد زیادی آدم هستند که زیر ۱۰۰۰ کاربر دارند یعنی اصلا قدرت به صورت نرمال توزیع نشده است.

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

این پارامتر یک عدد هست بین ۰ تا ۱ که هر چقدر بالاتر باشد یعنی گراف ما می تواند به دسته های جدا از هم تبدیل شود. به عنوان مثال در شبکه اجتماعی facebook افراد در گروهای مختلفی عضو هستند و با افراد موجود در هر گروه دوست می شوند. اگر ما گراف دوستی موجود در facebook را نمایش بدهیم افراد خیلی از دوستانشون داخل یک گروه هستند و کمتر با افراد بیرون گروه‌هایی که دوست دارند دوست هستند.

ضریب نزدیکی (closeness):

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


ضریب بینی (betweenness):

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

یا در شبکه تلفن ثابت اگر چند مرکز خاص تخریب شود ممکن هست کل ارتباط تلفنی بین استانی به مشکل بخورد و افراد نتواند ارتباط برقرار بکنند

این ویژگی های بالا بسیار ویژگی های جالبی هستند و تحلیل‌های بسیاری بر پایه این ویژگی‌ها در مقالات و مجلات ذکر می شود.

ضریب رتبه صفحه (page rank):

پیج‌رنک یا رتبه صفحه، به الگوریتمی گفته می‌شود که بر پایه آن موتورهای جستجو، صفحات وبی که به هدف جستجوگر نزدیکترند را در رده‌های بالاتری نسبت به دیگران قرار می‌دهد. الگوریتم Page Rank اولین بار در سال ۱۹۹۸ توسط Larry Page و Sergey Brin در دانشگاه استنفرد ارائه شده است. با این روش کاربرانی که کلمه ویژه‌ای را جستجو می‌کنند می‌توانند ابتدا صفحات وبی را ببینند که هم به خواسته آن‌ها نزدیکتر است و هم بازدید بیشتری داشته‌است.

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

کوچیکی جهان :

یکی از ویژگی های جالب گراف‌های واقعی small-word هستش که به طور اختصار در ادامه توضیح خواهیم داد. برای توضیح این مورد باید چند نکته از گراف ها بیان شود. همان طور که می دانید قطر گراف تعریفش به این صورت است که شما یک گراف مدنظر خود بیاورید کوتاه ترین فاصله بین هر دو راس را مد نظر بگیرید بیشترین مقدار فاصله بین این مجموعه را می گویم قطر گراف.

حالا اگر قطر گراف عددی در حدود Log(n) باشد می توانیم بگویم آن گراف ویژگی small-word را دارد. این ویژگی در زمانی جالب می شود که تعداد یال های موجود در گراف حدودا برابر تعداد راس ها هست یعنی تعداد یال های موجود در گراف بسیار کمتر از انتظار ما هست ولی گراف ما قطر بسیار کوچیکی دارد. برای اینکه این ویژگی را بیشتر متوجه شوید و کمی هیجان زده بشوید یکی از آزمایشات ملموس بر پایه این ویژگی را بیان می کنم که در سال ۱۹۶۷ توسط Stanley Milgram انجام شده است آزمایش به این صورت هست که آقای Milgram تعدادی پاکت نامه ایجاد کرد و داخل آنها مقداری پول قرار داد و یک آدرس جغرافیایی بر روی آنها نوشته بود و این نامه ها را به دوستان خود داد و گفت این نامه ها را به مقصد برسانید به این صورت که اگر مقصد را می شناسید برسانید بدستشان و اگر نمیشناسید بدهید به دوست دیگرتون که فکر می کنین نزدیک به آن محل هست و در انتها تمام نامه ها را جمع آوری کرد و چند نکته جالب بدست آورد اول از همه اینکه تعدادی از این نامه ها به مقصد رسیده بودند ( بدون اینکه افراد دید کاملی نسبت به گراف دوستی داشته باشند توانستند نامه را برسانند) دوم اینکه این نامه ها با ۶ بار دست به دست شدن به مقصد رسیدند و این نشان میدهد که جهان بسیار کوچک هست یعنی ما شاید با تعداد انگشت شماری واسطه بتوانیم یک پیام را به دست سناتور آمریکا برسانیم!!!! این نکته بسیار جالب هست که در عین بزرگی جهان چقدر به واسطه ارتباطات جهان کوچک شده است. این نکته هم حائزه اهمیت هست که هر کسی شاید ۱۰۰ دوست یا حداکثر ۵۰۰ دوست داشته باشد و این میزان درجه بسیار گم هست در تعداد کل آدم های موجود در کره زمین

اگر گراف ما یک گراف واقعی باشد یکی از ویژگی‌های جالبی که در آن شکل میگرد سرچ کردن و جستجو کردن در گراف است . در گراف های عادی ما زمانی که دنبال یک راس میگردیم از الگوریتم های کلاسیکی استفاده می کنیم مانند BFS یا DFS اما این مدل گشتن در گراف ها بسیار زمان بر هست و ما بدون توجه به ویژگی های گراف این الگوریتم ها را اجرا می کنیم تا به جواب برسیم در اصل این الگوریتم ها همواره جواب را پیدا می کنند و شما می توانید هر مدل گرافی را به آنها بدهید اما الگوریتم سرچ کردن در گراف های واقعی بسیار متفاوت هست و اصلا با مدل کلاسیک جلو نمیروند الگوریتم هایی که مطرح شدند دو مدل هستند مدلی که ما مدنظر داریم decentral search هستش این مدل سرچ به این منظور هستش که شما بدون داشتن دانشی درباره کل گراف از یک راس رندم شروع می کنین و سعی می کنید به گره هدف نزدیک تر شوید چون میدانیم قطر گراف مضربی از log(n) می باشد پس انتظار میرود اگر خوب حرکت کنیم به log(n) ما به مقصد خود برسیم. درباره این مدل سرچ چندین مدل بیان شده است شاید بتوانیم بگویم الگوریتم page rank به نوعی برپایه این مدل الگوریتم ها سوار هست. این الگوریتم ها هزینه جستجو در شبکه را به شدت کاهش داده اند و سرعت پاسخ را بیشتر کرده اند.

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

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

تحلیل ترافیک:

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

تحلیل شبکه برق رسانی کشور:

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


تحلیل شبکه توزیع یک محصول:

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

سیستم پیشنهادی :

این کاربرد علم شبکه بسیار جنجال برانگیز است شما فرض کنید رئیس شرکت دیجیکالا هستید و تمام خرید‌های یک نفر به نام A را دارید و خریدهای بقیه افراد را هم دارید شما می توانید یک گراف ایجاد کنید به این صورت که افرادی که کالای مشترکی تا به حال خرید کردند به هم دیگر یال داشته باشند فرض کنید فرض A تور ماهی گیری خریده و فرد B هم همینطور در این صورت یک یال ما از A به B وصل می کنیم. این گراف که ما الان ایجاد کردیم را می توانیم تحلیل های ویژه ای را انجام دهیم و خرید یا نیاز آتی مشتری ها را متوجه شویم و به آنها از جلوتر پیشنهاد بدهیم. به این صورت که اگر ما الگوریتم community را بر این گراف اعمال کنیم می توانیم به افراد داخل یک گروه پیشنهاد های مشابه با افراد دیگر گروه را بدهیم یا خرید هایی که در یک گروه زیاد انجام شده است را به بقیه افراد داخل گروه که آن وسیله را نخریده اند پیشنهاد بدهیم. با این کار فروش ما به شدت زیاد می شود. البته ما می توانیم موج نیاز‌های جدید مردم یک کشور را هم در این مدل گراف ها تحلیل کنیم و به نتایج جالبی برسیم به عنوان مثال ما اگر ببینیم خرید لپ تاب افزایش پیدا کرده است می توانیم بگویم که در آینده نیاز به خرید هارد یا حافظه زیاد خواهد شد پس ما به عنوان تامین کننده به سراغ وارد کردن حافظه به ایران خواهیم رفت زیرا موج حرکت خرید مردم را تشخیص داده‌ایم.

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


ابزارهای مناسب برای تحلیل شبکه؟

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

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

نرم افزار gephi بسیار جالب هست برای بحث نمایش دادن گراف و نمایش نموداری این نرم افزار opensource هست و شما می توانید به راحتی آن را ادامه بدهید با زبان برنامه نویسی java هم این برنامه توسعه یافته است. شما به کمک این نرم افزار می توانید گراف خود را به نمایش بگذارید و از ابزار‌های اولیه که در نرم افزار قرارداده شده است استفاده کنید و در ادامه در صورت نیاز این نرم افزار را توسعه بدهید. البته این نرم افزار برای گراف های بزرگ و نمایش آن اصلا مطلوب نیست و بسیار به مشکل می‌خورد.

فرمت فایل های خروجی برای گفی:

  • CSV
  • PAJEK NET
  • GUESS GDF
  • GEXF(Graph Exchange XML Format)
  • GRAPHML
  • EXCEL SPREADSHEET
  • SVG
  • PDF
  • PNG


ابزار دیگری که می توانیم نام ببریم نرم افزار cytoscape هستش این نرم افزار نسبت به دو نرم افزار دیگر از اهمیت کمتری برخوردار هستش. و بهتر هست برای ترسیم شبکه بین پروتئین ها و یا ژن ها استفاده کنید. این نرم افزار هم opensurce هست و قابلیت توسعه برای شما دارد.اگرچه Cytoscape در ابتدا برای تحقیقات بیولوژیکی طراحی شده بود، اما اکنون یک پلت فرم کلی برای تجزیه و تحلیل شبکه پیچیده و تجسم و نمایش گراف ها است. این نرم افزار در بخش توسعه یک ویژگی جالبی که قرار داده است ویژگی open API هست. این ویژگی باعث می شود شما نرم افزار خود را توسعه بدهید و در انتها از طریق API این دو نرم افزار را به یکدیگر متصل کنید به طور معمول این ویژگی را در نرم افزارها قرار میدهند تا اتصال بین ماژول‌ها بهتر شود.


کاربردهای نوین علم شبکه چیست؟

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

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


کاربردهای هوش مصنوعی در علم شبکه:

یکی از کاربرد های اصلی هوش مصنوعی این هست که ما یک مدلی از شبکه ایجاد کنیم یعنی یک مدلی که رفتاری مشابه با گراف اصلی باشد امّا خود گراف نباشد. برای اینکه این موضوع را بهتر متوجه شوید بزارید چند روش مدلینگ پایه را توضیح بدهم تا سختی کار را متوجه شوید. در سال ۱۹۶۰ دانشمندی به نام Erdos مدلی ارائه دادند که در این مدل تعداد روس گراف برابر با گراف اصلی هست و هر یالی به احتمال p وجود دارد یا وجود ندارد شاید می توانیم بگویم این گراف یک گراف رندم هست و خواص گراف های رندم را در دل خود دارد. بعدها که ویژگی های گراف های واقعی مطرح شد متوجه نواقص این مدل شدند و مدل watts-strogatz مطرح شد در این مدل ویژگی small-word اضافه شد و گرافی جدید ایجاد که کمی بحث کردن راجب این مدل گراف از حوصله این مطلب خارج هست لذا پیشنهاد می کنم لینک ساخت گراف را مشاهده کنید اگر علاقه‌مند هستید. این مدل یک p و یک n که نماد تعداد راس‌های گراف هست را نمایش میدهد. این مدل هم مشکلاتی داشت به عنوان مثال برای شبکه instagram اصلا خوب نبود زیرا در گراف اینستاگرام یک سری از راس ها هستند که درجه بسیار زیادی دارند ولی بقیه راس ها درجه کمی دارند و این اصلا مدل مطلوبی نیست برای این مدل گراف های واقعی لذا مدل جدیدی ظهور کرد به نام Barabási–Albert این مدل خاصیت ایجاد راس های با مرکزیت بالا را ایجاد کرد در دل خودش و نحوه ساخت این مدل گراف کمی پیچیده هست که در لینک قبلی توضیح داده شده است. این مدل یکی از مشکلات جدی که دارد این هست که اگر تعداد راس‌ها بسیار زیاد باشد ممکن هست زمان زیادی طول بکشد تا گراف ساخته شود و بسیار کند هست. زیرا به صورت بازگشتی و مرحله ای گراف ساخته می شود. لذا پس از این مدل های دیگری نیز ظهور کردند که ویژگی‌های دیگر شبکه‌های واقعی را مدنظر گرفتند به عنوان مثال شما فرض کنین گراف موجود بین مولکول یخ را می خواهید مدل کنین اگر دیده باشید این مدل گراف ها یک ساختار تکرار شوندگی دارند یعنی اگر یک دونه برف را در زیر میکروسکوپ مشاهده کنیم مانند یک ستاره می بینم و اگر بیشتر زوم کنیم همین مدل را خواهیم دید به عبارت بهتر می توانیم بگویم یک ساختار گرافی در حال تکرار هست در کل گراف و به نوعی زیر گراف‌ها ساختاری شبیه به گراف بزرگتر را دارند یا مثال بهتری بخواهیم بزنیم اگر گراف اینستاگرام را به صورت جهانی بررسی کنیم تعدادی از افراد هستند که influencer instagram هستند و اگر ما گراف را کوچکتر بکنیم و فقط زیر گراف ایران را هم بررسی کنیم تعدادی از افراد influencer instagram هستند و این نشان میدهد که یک ساختار یا یک مدل ویژگی در حال تکرار شدن می باشد. این ویژگی را به اصطلاح می گویند خاصیت Fractal. این ویژگی در گراف های قبلی وجود نداشت البته نکته دیگری که در مدل های قبلی وجود نداشته این هست که یک یالی از بین برود یا به مرور زمان حذف شود یعنی ما این رفتار را زیاد در شبکه‌های اجتماعی می بینیم به عنوان مثال شما در اینستاگرام یک نفر را unfollow می کنین این یعنی یال بین شما دو نفر حذف شده است. این ویژگی طول عمر برای یال ها هم در مدل های قبلی توضیح داده نشده اند. لذا مدل‌ها به مرور زمان پیچیده‌تر شدند و ویژگی های بیشتری را تحت پوشش قرار دادند به عنوان مثال مدل copying model ایجاد شدند که ویژگی community را در گراف‌ها ایجاد کرده است و مدل بعدی که آمده است forest fire ایجاد شد که این ویژگی بسیار آپدیت شدند در آن مطرح هست و اینکه طول عمر رشد یک گراف را مدنظر دارد به این صورت که قطر گراف در این مدل گراف به مرور زمان کاهش پیدا می کند. بعد از این مدل Kronecker مطرح شده که این مدل ویژگی fractal را بسیار مورد نظر قرار داده است البته این مدل مشکلات خاص خود دارد به عنوان مثال شما فقط گراف هایی می توانید بسازید که تعداد راس‌های موجود در آن توانی از ۲ باشد تا الگوریتم آن کار کند. این مدل کمی پیچیدگی های ریاضی هم دارد که پیشنهاد می کنم در مورد آن سرچ کنین و مطالب مرتبط به آن را پیدا کنید. با توجه به تمام این مدل هایی که بیان شدند در سال های بعد مدل‌هایی آمدند که ترکیبی از مدل‌های گفته شده بودند و ضرایب مخلوط کردن این مدل ها بسیار مرحله مدل کردن را پیچیده کرده بود و این پیچیدگی به مرور زیادتر از حالات عادی شد و حتی رگرسیون خطی هم برای تنظیم این ضرایب جوابگو نبود. بعد از این رویکرد جدیدی شکل گرفت که هوش مصنوعی را وارد مبحث مدلینگ کرد. برای این موضوع یک پارامتر تعریف شد به که بیان میکرد چقدر دو گراف از نظر ویژگی نسبت به هم شبیه هم هستند و چقدر این دو گراف از هم دیگر فاصله دارند یک شبکه عصبی ساخته می شد که کارش ایجاد گرافی بود که کمترین فاصله را با گراف اصلی ایجاد کند اما برای این مدل هم ما باید ویژگی های گراف را استخراج می کردیم اما بعد از این با به وجود آمدن deep learning دیگر ما ویژگی های گراف را معلوم نمی کردیم بلکه صرفا گراف را به عنوان ورودی به برنامه میدادیم و هوش مصنوعی ما یک گرافی مشابه گراف اصلی برای ما ایجاد میکرد و کار بسیار راحت تر از قبل شد و به طور کلی دیگر مدل های گذشته منسوخ شدند و جدیدتر ها از این مدل استفاده می شود.


چند مثال از کاربردهای نوین شبکه های پیچیده

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

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

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



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