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

برچسب: complex network

«بیست سال علم شبکه»

این نوشته ترجمه‌ای تقریبا وفادار از مقاله منتشر شده در Nature News and Views توسط Alessandro Vespignani به مناسبت تولد ۲۰ سالگی شبکه‌های جهان-کوچک است.
این نوشته اشاره‌ی مستقیمی دارد به مقاله منتشر شده در Nature News and Views توسط Alessandro Vespignani به مناسبت تولد ۲۰ سالگی شبکه‌های جهان-کوچک است.

«این ایده که هرکس در دنیا به هرکس دیگری تنها با ۶ درجه جدایی متصل است، ۲۰ سال پیش توسط مدل شبکه‌ «جهان کوچک» توضیح داده شد. چیزی که به نظر می‌رسید کاربرد خاصی داشته باشد تبدیل به یافته‌ای با نتایج فراوان شد.» الساندرو وسپینانی

ماجرا از این‌جا شروع شد که اواخر بهار سال ۱۹۹۸، واتس و استروگتز مقاله‌ای منتشر کردن به اسم «دینامیک جمعی شبکه‌های جهان-کوچک» که در اون مقاله مدلی معرفی شد که «خوشگی» و «فاصله کوتاه بین رئوس» شبکه‌هایی که در زندگی واقعی پیدا میشن رو توصیف می‌کرد. خب، اون اوایل این مدل یه جوری جالب به‌نظر می‌رسید. ولی صرفا به عنوان یک خروجی یا تعمیمی از شبکه‌های منظمی که فیزیک‌دونای آماری و ماده‌چگالی‌ها بهشون عادت داشتن. [در حقیقت تا ۲۰ سال پیش، منظور ما از شبکه توی فیزیک، گراف‌های منظم توری شکلی بودن که بهشون lattice می‌گفتیم و نه network.] اما با گذر زمان، هر چی که دانشمندان رشته‌های مختلفی از این مدل استفاده کردند، پیامد‌های عمیق این مدل بیشتر آشکار شد. به این معنی که درک ما از رفتارهای دینامیکی و گذار فازهایی که توی پدیده‌های روزمره‌ مشاهده می‌کردیم به طور جدی بهتر شد. از فرایندهای واگیری گرفته تا انتشار اطلاعات! به زودی مشخص شد که این مقاله دوران جدیدی از پژوهش رو ایجاد کرده که نهایتا منجر به شکل‌گیری «علم شبکه» به عنوان یک رشته «چندرشته‌ای» شد!

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

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

پروفایل چگونگی تغییر متوسط طول کوتاه‌ترین مسیرین بین دو راس در شبکه‌هایی با تپولوژی متفاوت. نگاره از کتاب علم شبکه باراباشی

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

سازوکار ایجاد یک شبکه جهان کوچک در مدل واتس-استروگتز با اضافه کردن بی‌نظمی به یک شبکه منظم. نگاره برگرفته از مقاله اصلی ۱۹۹۸

می‌دونیم که شبکه‌های منظم، دارای ضریب خوشگی بالایی هستن و شبکه‌های تصادفی دارای خاصیت نزدیک بودن اعضا به هم! چیزی که یک شبکه جهان-کوچک واقعی نیاز داره هر دوی این ویژگی‌هاست! واتس و استروگتز برای این‌که این دوگانگی رو برطرف کنند پیشنهاد مدلی رو دادن که ابتدا یک شبکه منظم با ضریب خوشگی بالا رو ایجاد کنه و بعد از اون، با احتمال p، یال‌ها رو بین رئوس اصطلاحا بُر بزنه! یعنی برای این‌ کار، از یک شبکه منظم، هر یال رو با احتمال p انتخاب می‌کنید و دو سرش رو به رئوس متفاوتی وصل می‌کنید! به این کار اصطلاحا سیم‌بندی گفته می‌شه و اگر این سیم‌بندی به طور تصادفی انجام بشه، اصطلاحا گفته میشه که یال‌های شبکه رو بُر می‌زنیم! بنابراین با تغییر مقدار می‌تونیم شبکه رو از حالت منظم  (p → 0) به حالت تصادفی (p → 1) تبدیل کنیم.

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

وجود میان‌برهای قرمز، به یک شبکه با ضریب‌خوشگی بالا، خاصیت جهان کوچکی می‌بخشد. نگاره از nature

مدل واتس و استروگتز ابتدا به عنوانی مدلی که «شش درجه جدایی» رو توصیف می‌کرد، در نظر گرفته می‌شد. اما در حقیقت مهم‌ترین تاثیرش هموار کردن مسیر مطالعه اثرات ساختار شبکه روی طیف وسیعی از پدیده‌های دینامیکی بود. یک سال پس از انتشار مقاله شبکه‌های جهان-کوچک، آلبرت باراباشی و رِکا آلبرت در مقاله‌ای با عنوان «برآمدگی اثر مقیاسی در شبکه‌های تصادفی» مدلی معروف به مدل شبکه «اتصال ترجیحی‌» رو منتشر کردن که نقش بسیار کلیدی در توسعه پژوهش در نظریه شبکه‌های پیچیده ایفا کرد. در نظریه گراف یا علم شبکه، به تعداد یال‌های متصل به هر راس، درجه اون راس گفته می‌شه و برای شبکه تصادفی، توزیع درجات رئوس، پواسونی هست. ایده مدل باراباشی-آلبرت این بود که توزیع درجات شبکه‌های واقعی، پواسونی نیست بلکه یک توزیع دم‌کلفت (توانی) هست. برای همین باراباشی و آلبرت سازوکاری رو معرفی کردن که به کمکش بشه شبکه‌هایی با توزیع درجات توانی داشت. این که درجات یک شبکه از توزیعی توانی میاد، به معنای وجود پدیده‌هایی نادر ولی مهمه! مثلا تعداد کسانی که توی اینستاگرام بالای ۱۰۰میلیون دنبال‌کننده دارن ۱۰ نفر هست ولی این‌ها افراد سرشناسی هستن! یا مثلا وقتی گفته میشه که در امریکا ۹۹٪ ثروت دست ۱٪ افراد جامعه است، درسته که این ۱٪ تعداد کمی از افراد جامعه امریکا رو تشکیل می‌دن ولی افراد بسیار تاثیرگذاری هستن! از اونجایی که در شبکه‌های جهان-کوچک و شبکه‌هایی که توزیع درجات ناهمگنی دارن طیف وسیعی از گذارفازها و رفتارهای برآمده رو میشه مشاهده کرد، رفته‌رفته دانشمندان زیادی از رشته‌های مختلف به این موضوع علاقمند شدن.

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

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

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

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

در ۲۰امین سالگرد انتشار مقاله واتس و استروگتز، بیتشر از ۱۸۰۰۰ مقاله به این مدل که یکی از نمادهای تپولوژی شبکه‌ است ارجاع دادن. واتس و استروگتز مقاله‌شون رو با این جمله تموم می‌کنن که «امیدواریم که کار ما انگیزه‌بخش مطالعات بیشتر شبکه‌های جهان-کوچک بشه!» شاید در بستر تاریخ، هیچ گزاره‌ای اینقدر پیشگویانه نبوده باشه!

این ویدیو در مورد ظهور علم شبکه است:

یادگیری «سیستم‌های پیچیده» رو از کجا و چه‌طور آغاز کنیم؟!

خیلی وقته که از من پرسیده میشه که اگر بخوایم یادگیری سیستم‌های پیچیده رو شروع کنیم باید چیکار کنیم؟! آیا میشه بیرون از دانشگاه این کار رو انجام داد؟ یا اگر من رشته‌م مثلا کیهان‌شناسی، آمار یا ریاضی هست برام مقدوره که یادبگیرم؟ خب جواب اینه: چرا که نه! اما اینکه یک راه خیلی خاص وجود داشته باشه، راستش وجود نداره. در حقیقت آدم‌های مختلفی به این سوال طی سال‌های گذشته جواب‌های متنوعی دادن؛ مثلا  مارک نیومن یک‌بار در مورد موضوعات مطرح و منابع موجود در Complex Systems: A Survey نوشته. با این حال سعی می‌کنم طرحی برای شروع یادگیری سیستم‌های پیچیده در ادامه ترسیم کنم. از هرگونه نظر، انتقاد یا پیشنهاد از صمیم قلب استقبال می‌کنم، به‌ویژه از طرف متخصصان. راستی  قبل‌تر نوشته‌ای با عنوان «چگونه یک‌ فیزیک‌دان نظری خوب شویم؟» از خِراردوس توفت، نوبلیست، ترجمه کرده بودم.

اخیرا کتابی منتشر شده به اسم «مقدمه‌ای بر نظریه سیستم‌های پیچیده» که برای شروع سیستم‌های پیچیده کتاب بدی نیست. مخصوصا فصل‌های اولش!

کتاب مقدمه‌ای بر نظریه سیستم‌های پیچیده

پیش‌فرض این نوشته اینه که خواننده به حساب دیفرانسیل و انتگرال، معادلات دیفرانسیل و فیزیک پایه مسلط هست و علاقه شدیدی به ورود به حوزه بین‌رشته‌ای داره! اصلی‌ترین پیش‌نیاز برای یادگیری سیستم‌های پیچیده شهامت و حوصله کافی برای ورود به دنیایی تازه و هیجان‌انگیزه! اگر به دنبال کتابی هستین که حس کلی از «سیستم‌های پیچیده» به شما بده نگاه کنید به کتاب «سیری در نظریه پیچیدگی» نوشته ملانی میچل با ترجمه رضا امیر رحیمی.  همین‌طور کورس مقدماتی در Complexity Explorer وجود داره برای این که یک آشنایی کلی از سیستم‌های پیچیده پیدا کنید.

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

۱) جبر خطی و ماتریس‌ها

برای شروع نیاز به مفاهیم‌ و تکنیک‌های جبرخطی دارین. باید بتونید با ماتریس‌ها خوب کار کنید.

  1. کورس جبر خطی Vector and Matrix Algebra by Anthony D. Rhodes
  2. ویدیوهای Essence of linear algebra
  3. کورس و کتاب جبرخطی Gilbert Strang
این کتاب با نگاهی جدید به مکانیک کلاسیک، به موضوعات مورد نیاز برای سیستم‌های پیچیده می‌پردازد.

۲) مکانیک کلاسیک

بخش زیادی از سیستم‌های پیچیده توسط فیزیک‌دانان توسعه داده شده، پس باید با ادبیات ابتدایی فیزیک آشنا بشید!

  1. کورس مکانیک کلاسیک لنرد ساسکیند
  2. کتاب Introduction to Modern Dynamics – Chaos, Networks, Space and Time – David D. Nolte

۳) آمار، احتمال و فرایندهای تصادفی

ایده‌های اصلی آمار و احتمال رو باید بدونید. یعنی هرکسی که در دنیای امروز زندگی می‌‌کنه باید بدونه!

  1. کتاب An Introduction to Random Vibrations, Spectral & Wavelet Analysis by D. E. Newland
  2. کتاب Probability Theory: The Logic of Science by E. T. Jaynes
  3. جزوه فرایندهای تصادفی دکتر کریمی‌پور

۴) فرکتال‌ها و مفاهیم مقیاسی

  1. مقدمه‌ای بر هندسه فرکتالی: ویدیو
  2. کتاب Scale: The Universal Laws of Growth, Innovation, Sustainability, and the Pace of Life in Organisms, Cities, Economies, and Companies by Geoffrey West
  3. کورس Fractals and Scaling by David Feldman
  4. این ویدیو رو ببینید:

۵) فیزیک آماری و پدیده‌های بحرانی

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

  1. کورس مکانیک آماری لنرد ساسکیند
  2. کورس و کتاب فیزیک آماری ذرات، مهران کاردر
  3. کتاب Statistical Mechanics Entropy, Order Parameters, and Complexity by James P. Sethna
  4. کورس کوتاه  Introduction to Renormalization by Simon DeDeo
  5. کتاب Lectures On Phase Transitions And The Renormalization Group by Nigel Goldenfeld
  6. کتاب David Tong: Lectures on Kinetic Theory

    کتاب دینامیک غیرخطی و آشوب استیون استروگتز به همراه ویدیوهای کلاس درسش یکی از بهترین منابع یادگیری دینامیک غیرخطی است.

۶) دینامیک غیرخطی و آشوب

  1. کورس Introduction to Dynamical Systems and Chaos by David Feldman
  2. کورس و کتاب Nonlinear Dynamics and Chaos by Steven H. Strogatz
  3. کورس Nonlinear Dynamics: Mathematical and Computational Approaches by Liz Bradley

۷) شبکه‌ها (علم شبکه)

  1. ویدیو «ظهور علم شبکه»
  2. مقاله مروری The shortest path to complex networks by S. N. Dorogovtsev and J. F. F. Mendes
  3. این ۴ ویدیو رو ببینند.
  4. کتاب علم شبکه باراباشی
  5. کتاب Networks: An Introduction by Mark Newman
  6. این ویدیو رو ببینید:

۸) روش‌ها و تکنیک‌های محاسباتی و شبیه‌سازی

  1. کورس پایتون برای همه
  2. کورس پایتون برای پژوهش
  3. کتاب Monte Carlo Simulation in Statistical Physics: An Introduction by Kurt Binder, Dieter W. Heermann
  4. کتاب Complex Network Analysis in Python by Dmitry Zinoviev
  5. کورس Introduction to Agent-Based Modeling by William Rand

۹)  نظریه اطلاعات و محاسبه

Self-contained, precise. Numerous examples and exercises make it a valuable teaching book
Builds a bridge between physics of glasses and computer science problems
  1. کورس Introduction to Computation Theory by Josh Grochow
  2. مقاله مروری A Mini-Introduction To Information Theory by Edward Witten
  3. کتاب Information, Physics, and Computation by Marc Mézard and Andrea Montanari

۱۰) نظریه بازی‌‌ها

  1. کورس Game Theory I – Static Games by Justin Grana
  2. کورس Game Theory II- Dynamic Games by Justin Grana
  3. کتاب Strategy: An Introduction to Game Theory by Joel Watson

۱۱) یادگیری ماشین

  1. کورس Matrix Methods in Data Analysis, Signal Processing, and Machine Learning – Gilbert Strang
  2. کورس Fundamentals of Machine Learning by Brendan Tracey and Artemy Kolchinsky
  3. مقاله مروری A high-bias, low-variance introduction to Machine Learning for physicists
  4. ویدیو Bayesian Inference by Peter Green

به طور کلی، دوره‌های آموزشی Complexity Explorer رو دنبال کنید. موسسه سن‌تافه (سانتافه!)  یک کورس مقدماتی روی پیچیدگی داره. همین‌طور پیشنهاد می‌کنم عضو کانال Complex Systems Studies در تلگرام بشین. فراموش نکنید که اینترنت پره از منابع خوب برای یادگیری ولی چیزی که کمه، همت! در آخر دیدن این ویدیو رو با زیرنویس فارسی پیشنهاد می‌کنم: