بیگ‌گراف‌های دنیای واقعی رو چجوری بسازیم؟

Fall Back

تا حالا به این فکر کردی اگه بخوایم تموم خیابون‌ها، ساختمون‌ها و مناطقی که تو دنیا هستن رو یه جوری منظم و مرتب داخل یه سامانه دیجیتالی بریزیم، چجوری باید این کار رو انجام بدیم؟ خب، این مقاله دقیقاً سر همون موضوعه و میخوام برات ساده و خودمونی توضیحش بدم!

ایده کلی اینه که همه دنیا رو – از کلانشهرها گرفته تا کوچیک‌ترین کوچه‌ها و ساختمون‌ها – به شکلی تو یه ساختار سلسله‌مراتبی (یعنی مثل یه درخت که شاخه‌هاش تقسیم میشن به زیرشاخه‌های کوچیک‌تر) سازماندهی کنیم. اینجا منظور از hierarchical space-partitioning tree همون درختی هست که محیط رو به قطعه‌های کوچیک و کوچیک‌تر تقسیم می‌کنه تا راحت‌تر بشه باهاش کار کرد.

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

نتیجه، چی میشه؟ قراره از همه این داده‌ها، یه ساختار جدید بسازن به اسم bigraph. بیگ‌گراف در واقع یه مدلیه که می‌تونه ارتباط همزمان دوتا نوع اجزا رو نشون بده؛ یعنی مثلاً هم ساختمون‌ها و هم خیابون‌ها رو با هم توی یه گراف بزرگ نشون میده و ارتباط بینشون رو هم ثبت می‌کنه. جالب‌تر اینجاست که انگار یه جور دوقلوی دیجیتالی (Digital Twin) واسه دنیای واقعی می‌سازه – یعنی یه کپی دیجیتال که تموم جزئیات و اتصالات دنیا رو تو خودش داره.

اما فقط تئوری نیست! تو این پروژه یه ابزار کاربردی هم ساختن که با زبون OCaml نوشته شده (OCaml هم یه زبان برنامه‌نویسی تخصصیه که برای کارای تحلیلی پیچیده و ریاضیات خیلی بدرد می‌خوره). اگه کنجکاوی کدتاش رو ببینی، تو گیت‌هاب روی این آدرس هست: https://github.com/royangkr/bigraph-of-the-world .

این ابزار می‌تونه بیگ‌گراف هر منطقه‌ای از دنیا رو بسازه؛ فرقی نداره تهران باشه یا یه روستای کوچیک تو هند یا حتی یه جزیره وسط اقیانوس! خلاصه، هرجایی داده‌ی OpenStreetMap داشته باشه، بیگ‌گراف‌ش قابل ساختنه.

از همه جذاب‌تر اینه که کلی نوآوری الگوریتمی هم بوده! یعنی کسایی که قبلاً می‌خواستن بیگ‌گراف‌های خیلی بزرگ بسازن، با کلی مشکل کندی و سنگینی سیستم مواجه می‌شدن. تو این کار، الگوریتم‌های ابزار بهینه شده تا اینقدر سریع بشه که تا ۹۷ برابر نسبت به قبل سرعت گرفته! (یعنی اگه قبلاً ساختن بیگ‌گراف یه کشور چند ساعت طول می‌کشید، الان ممکنه تو چند دقیقه کار راه بیفته.)

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

منبع: +