تو این کار، تلاش کردم که با یه شبیه سازی انتشار آلودگی توی شبکه، یه تخمینهایی از انتشار کرونا به دست بیارم و بررسی کنم که آیا واقعا لازمه شهرها رو قرنطینه کنیم؟ دورکاری چه تاثیری میتونه داشته باشه و ...
وقتی من شروع به نوشتن این مطلب کردم، هنوز به این بیماری، اپیدمی گفته میشد. طبق تعریف، به رخداد شیوع سریع بیماری عفونی به تعداد زیادی از افراد در یک جمعیت خاص در یک دوره زمانی کوتاه، معمولاً دو هفته یا کمتر، اپیدمی گفته میشود. ولی امروزه، طبق اعلام سازمان جهانی بهداشت (WHO)، کووید۱۹، پاندمی است. پاندمی نوعی از همهگیری یک بیماری گفته میشود که از مرز چند قاره فراتر رفته باشد. در طول تاریخ چند پاندمی رخ دادهاست که از مشهورترین آنها میتوان به آبله و سل و وبا اشاره کرد. یکی از فجیعترین پاندمیها بیماری مرگ سیاه بود که در سده چهاردهم، ۷۵ تا ۲۰۰ میلیون نفر را کشت. پیش از کرونا، یکی از پاندمیها در دوران معاصر، دنیاگیری ۲۰۰۹ آنفلوانزای خوکی بود.
طبق تجربههای گذشته و بررسی دادههای اخیر، در این موقعیت، سرعت همهگیری ویروس نمایی است: در ابتدا آهسته و سپس به سرعت. این اتفاق در طی چند روز آینده خواهد افتاد. شاید یک یا دو هفته. وقتی این اتفاق رخ میدهد، با توجه به شرایط ممکن است سیستم خدمات درمانی شما از پای بیایند، شهروندان شما در راهروها درمان خواهند شد، پرستاران و دکترانی که در سیستم خدمات درمانی خسته خواهند شد. بعضی از اونها میمیرند. آنها مجبور هستند تصمیم بگیرند که به کدام بیمار اکسیژن وصل شود و کدام بمیرد.
تنها راه جلوگیری از این اتفاقات رعایت فاصله اجتماعی از همین امروز است. فردا نه، همین امروز.
تعداد موارد مبتلا به ویروس به صورت نمایی رشد پیدا کرد تا زمانی که چین تونست اون رو محدود نگه داره. اما بعد از اون، ویروس به بیرون از چین راه پیدا کرد و الان کرونا یک ویروس فراگیر در سطح جهان هستش که هیچکس نمیتونه اون رو متوقف کنه.
حالا ما در ادامه میخواهیم به کمک شبیهسازی، اولا یک مدلی ارائه بدیم که دینامیک انتشار این ویروس در جامعه رو توصیف کنیم، سپس عوامل موثر بر کنترل یا همهگیری را بررسی کنیم.
در قدم اول، یه شبکهی مستقل از مقیاس میسازیم. گراف این شبکه اینجوریه که یه هستهی اولیه داره که همه با هم همسایه هستن. هر عضو جدیدی که وارد میشه، با تعداد m تا راس به صورت تصادفی همسایه میشه، با این شرط که هر چقدر یه راس همسایههای بیشتری داشته باشه، احتمال همسایگی با اون راس بیشتر میشه. قبلا دیدهایم که این شکل از شبکهها، برای مدلسازی دستهی عظیمی از شبکهها از قبیل ارتباطات انسانها در شبکههای اجتماعی و خطوط هوایی، تا وابستگیهای نرمافزارها به هم و برهمکنش پروتئین-پروتئین مورد استفاده قرار میگیرند.
حالا، این همسایگی رو من تو این شبکه، ارتباط روزانه تعریف کردم. اینجوری، آدمای معروف شبکه همیشه معروفتر میشن. مثالشم اینجوری ببینید، یه نفر که میاد تو یه محلهی جدید، احتمال خیلی زیاد با بقالی ارتباط داره، احتمال کمتری با کتابفروشی محله و دیگه خیلی کم با همسایهی خونه بقلی. این m یکی از پارامتراییه که برامون مهمه.
خب، یه n هم داریم که تعداد اعضای شبکه است.
دوتا پارامتر دیگه هم داریم که خوبه که کنترلشون کنیم. یکی a، تعداد روزیه که طول میکشه یه عضو بعد بیماری از سیستم خارج بشه. حالا یا درمان، یا مرگ یا "قرنطینه". اون یکی هم b، احتمال اینکه یکی تو ارتباط با فردی که بیماری داره و هنوز از سیستم خارج نشده، بیمار بشه.
بعد باید انتشار بیماری رو مدل کنیم. کاری که من انجام میدم، اینه که اول کار، همیشه ۱۰ نفر بیمار هستن. تا زمانی که هر کدوم از این آدمها از شبکه خارج نشدن، (توی a روز اولیه از ابتلا) برای هر کدوم از همسایههای این آدمها، روزی یک بار یک عدد تصادفی تولید میکنیم و اگر این عدد از b کوچیکتر بود، اون آدم مبتلا میشه. بعد a روز هم هر فرد مبتلا از سیستم خارج میشه. یعنی بعد یه مدتی، جمعیت داخل شبکه واقعا کمتر از جمعیت اولیه است، و ممکنه یه نفر یا یه گروه کاملا ایزوله شن، به این معنی که با هیچ عضوی خارج از جمع خودشون ارتباط خواهند داشت.
پس پارامترهای ما شدن اینها:
فعلا هم تا قسمتهای پایانی، با صد هزار نفر عضو کار میکنم. همیشه هم اول کار فقط ۱۰ نفر بیمار هستند.
با فرض اینکه فردی بعد از رهایی از بیماری، دوباره مریض نشه، در چنین مدلی شکل تعداد افراد بیمار در گذر زمان چنین چیزیه، کم و کیفش با توجه به پارامترها تغییر میکنه، ولی در مجموع همیشه چنین نموداری خواهیم داشت:
یک شروع اولیهی سرد، به دنبالش یک رشد نمایی، رسیدن به یک قلهی جدی، و بعد منفی شدن شیب رشد بیماری در جامعه. این به این معنیه که اگه چیزی عوض نشه، بیماری فقط به این خاطر از بین میره که دیگه کسی نیست که اون رو بیمار کنه، حالا یا مردم خارج شدن، یا شبکه تیکه تیکه شده و یه قسمتایی با بقیه ارتباط ندارن. یعنی اگه جهشی پیدا بشه که کسایی که خارج شدن دوباره مبتلا بشن، به جز مرگ فعلا راه خاصی نیست.
در ادامه، اثر پارامترهای مختلف رو بررسی میکنیم:
برای دیدن اثر تعداد تعاملات، احتمال انتشار رو ۱ درصد و زمان خروج از سیستم رو ۵ روز در نظر میگیرم.
همینجوری که میبینید، با این اعداد، کافیه هر فرد، روزی سراغ بیشتر از ۵ نفر بره. بعد اون دیگه تعداد بیمارها یهو زیاد میشه. عدد ۵ هم تو این مشخصات، نقطهی تغییر فاز بیماری به اپیدمیه.
تعداد روزهایی هم که طول میکشه بیماری از سیستم خارج بشه رو هم تخمین میزنیم. دیده میشه که اون هم با تعداد ارتباطات رابطهی خطی داره.
شناسایی سریعتر بیماران و خارج کردن اونا از جامعه، میتونه این تغییر فاز رو عقب بندازه.
حالا، با احتمال انتشار احتمال ۱ درصد و تعداد ارتباطات ۴، زمان خروج از سیستم رو تغییر میدیم.
نتایج واقعا تکان دهنده است. با این شرایط، اگه بیمار ۱۴ روز تو جامعه باشه و شکل ارتباطیش رو تغییر نده، ۶۰٪ جامعه بیمار میشن و ۲۵۰ روز جامعه درگیر این اپیدمیه.
هر چقدر زودتر تشخیص بدیم و هر چقدر زودتر خودمون رو از جامعه جدا کنیم، ابعاد این فاجعه کمتر و کمتر میشه.
حالا رعایت مسائل بهداشتی چه تاثیری داره؟ اگه احتمال انتقال رو زیاد کنیم چطوری میشه؟
این قسمت دیگه کاملا دست خودمونه، اینکه چقدر حواسمون هست که به موقع اقدامهایی که اینور اونور میبینیم برای پیشگیری رو چقدر جدی بگیریم.
کافیه این درصد انتقال بشه ۵ درصد. تقریبا کل جامعه بیمار میشن، یک سال اپیدمی ادامه داره و با احتساب ۲٪ مرگ و میر .... .
حالا یه مسالهی دیگه رو میخوایم بررسی کنیم. اندازهی شهر چه تاثیری تو داستان داره؟ اگه ویروس تو قم باشه یا تو تهران، فرقی میکنه؟
شرایط رو اینجوری ببینیم، احتمال انتقال ۱٪ ، تعداد تعاملات ۴ و بیماری ۷ روز هست.
از نمودارهای بالا چی میفهمیم؟
درک من از نمودار اینه که اگه با شرایط یکسان، دو تا شهر مبتلا باشن، جدا کردن شهرها شاید تعداد مبتلایان رو تغییر جدی نده، ولی، زمانی که لازمه تا بیماری کنترل بشه رو کاهش میده. این رو بذارید در کنار این مساله که اگر ما خروج و ورود یک شهر رو ببندیم، ممکنه که بیماری به یه سری شهرها سرایت نکنه.
کنترل این مدل اپیدمیها نیاز به همکاری همگانی داره، فقط به کمک همه که میتونیم جلوی یه فاجعه رو بگیریم.
کدهایی که من برای این مساله زدم رو میتونید اینجا پیدا کنید. حالت های مختلف رو امتحان کنید و اگر چیز جالبی دیدید حتما به من هم بگید. شبیه سازی با زبان C++ ، و آنالیز و کشیدن نمودارها، با Python بوده.