نرم افزار های مدل سازی عامل بنیان – مقایسه
مقایسه نرم افزار های مدل سازی عامل بنیان
کدام نرم افزار برای مدلسازی و شبیه سازی عامل بنیان مناسب است؟ آیا میتوانم هیبریدی هم مدلسازی کنم؟
مقدمه
با گسترش کامپیوترها و زبان های برنامه نویسی از یک سو، و گسترش مدلسازی و شبیه سازی های کامپیوتری از سوی دیگر، نرم افزار ها و زبان های برنامه نویسی مختلفی توسعه یافته اند. در کنار آن، با گسترش مدلسازی عامل بنیان، پلتفرم های مختلفی منتشر شده اند. این پلتفرمها هر کدام خصوصیات و ویژگی های مختلف و یکسانی دارند و ممکن است محققان از آن اطلاع نداشته باشند. به ویژه برای دانشجویان و افرادی که تازه به این روش شناسی روی آورده اند، انتخاب پلتفرم مناسب، دشوار است. برخی از آنها کاملا نیاز به کدنویسی دارند و برخی با رابط های گرافیکی، مدلسازی را کاربرپسند کرده اند. در این مقاله، به خصوصیات پلتفرم های مهم و متداول در حوزه مدلسازی عامل بنیان می پردازیم. این بررسی شامل مباحث تخصصی رشته نرم افزار نمی باشد و یک بررسی عمومی و مورد نیاز برای استفاده از آنها در مدلسازی عامل بنیان است.
پلتفرم ها
نت لوگو
سیستم برنامه نویسی NetLogo (ویلنسکی، 1999) در اصل برای دانشجویان مدارس (عالی) طراحی شده است و هنوز هم، به ویژه در ایالات متحده، در تدریس علوم با مفهوم شبیهسازی استفاده میشود. سرچشمه NetLogo از آنجایی است که در ساخت سیستم NetLogo برای استفاده و درک آسان آن توجه زیادی شده است. واقعیت این است که NetLogo به ویژه برای توسعه مدلهای عامل بنیان مناسب است،. نویسندگان آن را به عنوان یک “محیط مدلسازی برنامهریزی چندعاملی[1]” توصیف میکنند.
NetLogo دارای سه بخش است:
- یک ویرایشگر کد برای نوشتن برنامه
- یک رابط که کنترلهای اجرای برنامهها و هر طیفی از نمودارها، نقشهها و دیگر خروجیها را نشان میدهد تا آنچه که این برنامه انجام میدهد را نمایش دهد.
- ویرایشگر اسناد و مدارک که میتواند برای توصیف برنامه و آنچه که در انجام آن در نظر گرفته شده است، مورد استفاده قرار گیرد.
هر یک از اینها مستقل هستند؛ بنابراین، برای مثال، شما برنامهای که شخص دیگری نحوه انجام کار آن را نوشته و مشاهده کرده است را بدون نگاه کردن به کد آن، اجرا میکنید.NetLogo همراه با یک کتابخانه بزرگ از مدلهای نمونه از پیش ساخته شده از فیزیک، شیمی، جغرافیا و رشتههای دیگر، و همچنین اقتصاد نصب میشود، و تلاش بر این است که راه خوبی برای شروع آشنایی با آن باشد.
نت لوگو می تواند به راحتی در اینترنت منتشر و حتی اجرا شود. وبسایت http://www.netlogoweb.org/launch#Load این امکان را به شما می دهد تا مدل ساخته شده خود را آپلود کرده و به صورت آنلاین اجرا کنید. همچنین شما می توانید مدل ساخته شده خود در نرم افزار را به صورت خروجی html دریافت کرده و در وبسایت شخصی خود پیاده سازی کنید.
NetLogo را میتوان ازhttp://ccl.northwestern.edu/netlogo/ دریافت کرد. این نرمافزار منبع باز و رایگان است و بر روی سیستم عامل ویندوز، مک و سیستمهای یونیکس تقریباً یکسان کار میکند.
ماسون
MASON یک هسته کتابخانه شبیهسازی مبتنی بر عامل سریع در جاوا است که برای پایهای برای شبیهسازیهای بزرگ جاوا با هدف سفارشی طراحی شده است، و همچنین برای بسیاری از نیازهای شبیهسازی سبک وزن، عملکردی بیش از اندازه کافی ارائه میکند. MASON شامل یک کتابخانه مدل و یک مجموعه اختیاری از ابزارهای تجسم به صورت دو بعدی و سه بعدی است.
MASON دارای برنامه های افزودنی زیادی است، به ویژه Distributed MASON برای استقرار ابر و خوشه و GeoMason که GIS را اضافه می کند. بسیاری از پیشرفتهای اخیر در MASON و GeoMASON، از جمله توسعه Distributed MASON، توسط NSF Grant 1727303 تامین شده است.
MASON توسط شان لوک، گابریل کاتالین بالان، کیت سالیوان و لیویو پانایت و با کمک کلودیو سیوفی-رویلا، شان پاوس، دانیل کوبریچ، جوی هریسون، دیو فریلان، انزل خان، ریون راسل و آنکور دسای طراحی شد.
Mason را میتوان از https://cs.gmu.edu/~eclab/projects/mason/ دریافت کرد. این نرمافزار منبع باز است. ولی نصب و پیاده سازی آن، کمی دشوار است. این نرم افزار کاملا مبتنی بر زبان برنامه نویسی جاوا است.
در این لینک، یک راهنما برای نصب نرم افزار گفته شده است:
https://github.com/eclab/mason/tree/master/mason
Repast
جعبه ابزار شبیهسازی عامل متخلخل بازگشتی (Repast) ) یک جعبه ابزار شبیهسازی و مدلسازی مبتنی بر عامل، رایگان و متنباز، کراس پلتفرم، پرکاربرد است. دارای چندین پیاده سازی در چندین زبان (North، Collier & Vos 2006) و ویژگی های تطبیقی داخلی است، مانند الگوریتم های ژنتیک و رگرسیون.
Repast Suite یک خانواده از پلتفرمهای مدلسازی و شبیهسازی مبتنی بر عامل پیشرفته، رایگان و منبع باز است که بیش از 20 سال است که در حال توسعه مداوم بودهاند:
- Repast Simphony10.0 که در 22 دسامبر 2022 منتشر شد، یک جعبه ابزار مدل سازی مبتنی بر جاوا بسیار تعاملی و آسان برای یادگیری است که برای استفاده در ایستگاه های کاری و خوشه های محاسباتی کوچک طراحی شده است.
- Repast for High Performance Computing3.1 که در 21 اکتبر 2021 منتشر شد، یک جعبه ابزار مدل سازی مبتنی بر عامل توزیع شده مبتنی بر C++ ناب و متمرکز است که برای استفاده در خوشه های محاسباتی بزرگ و ابررایانه ها طراحی شده است.
- Repast for Python1.1 که در 2 مارس 2023 منتشر شد، جدیدترین عضو مجموعه Repast از مجموعه ابزارهای ABM است. این یک جعبه ابزار مدلسازی مبتنی بر عامل توزیعشده مبتنی بر پایتون است که هدف آن فراهم کردن راهپیمایی آسانتر برای محققان از جوامع علمی مختلف برای استفاده از روشهای ABM توزیعشده در مقیاس بزرگ است.
Repast یکی از چندین جعبه ابزار مدل سازی عامل است که در دسترس است. Repast مفاهیم بسیاری را از جعبه ابزار مدل سازی مبتنی بر عامل Swarm [1] به عاریت گرفته است. Repast از Swarm متمایز است زیرا Repast چندین پیاده سازی خالص در چندین زبان و ویژگی های انطباقی داخلی مانند الگوریتم های ژنتیک و رگرسیون دارد. برای بررسی Swarm، Repast و سایر ابزارهای مدلسازی عامل، به نظرسنجی سال 2002 توسط Serenko و Detlor، نظرسنجی 2002 توسط Gilbert و Bankes و بررسی جعبه ابزار 2003 توسط Tobias و Hofmann مراجعه کنید.
Repast یک جعبه ابزار متن باز رایگان است که در ابتدا توسط Salach، Collier، Howe، North و دیگران توسعه داده شد [5]. Repast در دانشگاه شیکاگو ایجاد شد. متعاقباً توسط سازمان هایی مانند آزمایشگاه ملی آرگون نگهداری می شود. Repast اکنون توسط سازمان غیرانتفاعی Repast برای معماری و توسعه (ROAD) مدیریت می شود. ROAD توسط هیئت مدیره ای هدایت می شود که شامل اعضای طیف گسترده ای از سازمان های دولتی، دانشگاهی و صنعتی است. سیستم Repast، شامل کد منبع، مستقیماً از وب در دسترس است.
Repast به دنبال حمایت از توسعه مدلهای بسیار انعطافپذیر از عوامل اجتماعی زنده است، اما تنها به مدلسازی موجودات اجتماعی زنده محدود نمیشود. از صفحه اصلی ROAD:
” هدف ما با Repast این است که فراتر از بازنمایی عامل ها به عنوان موجودیت های گسسته و مستقل حرکت کنیم و به نفع دیدگاهی نسبت به بازیگران اجتماعی به عنوان نفوذپذیر، در هم تنیده و متقابل تعریف شوند. با انگیزه های آبشاری و نوترکیب. ما در نظر داریم از مدلسازی سیستمهای اعتقادی، عوامل، سازمانها و نهادها به عنوان ساختارهای اجتماعی بازگشتی حمایت کنیم.”
در قلب خود، Repast toolkit نسخه 3 را می توان به عنوان مشخصاتی برای خدمات یا توابع مدل سازی مبتنی بر عامل در نظر گرفت. سه پیاده سازی مشخص از این مشخصات مفهومی وجود دارد. طبیعتاً همه این نسخهها دارای همان خدمات اصلی هستند که سیستم Repast را تشکیل میدهند. پیاده سازی ها در پلتفرم زیربنایی و زبان های توسعه مدل متفاوت هستند. سه پیاده سازی عبارتند از Repast برای جاوا (Repast J)، Repast برای چارچوب Microsoft.Net (Repast.Net) و Repast برای Python Scripting (Repast Py). Repast J پیاده سازی مرجعی است که خدمات اصلی را تعریف می کند. به طور کلی توصیه می شود که به دلیل رابط بصری، مدل های پایه را می توان در پایتون با استفاده از Repast Py نوشت و مدل های پیشرفته را در جاوا با Repast J یا در سی شارپ با Repast .Net نوشت.
Repast 3 دارای ویژگی های مختلفی از جمله موارد زیر است:
- Repast شامل انواع الگوها و نمونه های عامل است. با این حال، جعبه ابزار به کاربران انعطاف کاملی در مورد چگونگی مشخص کردن خصوصیات و رفتارهای عامل ها می دهد.
- Repast کاملاً شی گرا است.
- Repast شامل یک زمانبندی رویداد گسسته کاملاً همزمان است. این زمانبندی از عملیات رویدادهای گسسته متوالی و موازی پشتیبانی می کند.
- Repast ابزارهای ثبت نتایج شبیه سازی داخلی و نمودارسازی را ارائه می دهد.
- Repast چارچوب شبیه سازی مونت کارلو را خودکار کرده است.
- Repast طیف وسیعی از محیطها و تجسمهای عامل دو بعدی را ارائه میکند.
- Repast به کاربران اجازه می دهد تا به صورت پویا به ویژگی های عامل، معادلات رفتاری عامل و ویژگی های مدل در زمان اجرا دسترسی داشته باشند و آن ها را اصلاح کنند.
- Repast شامل کتابخانه هایی برای الگوریتم های ژنتیک، شبکه های عصبی، تولید اعداد تصادفی و ریاضیات تخصصی است.
- Repast شامل مدل سازی سیستم دینامیک (system dynamics) داخلی است.
- Repast دارای ابزارهای پشتیبانی مدل سازی شبکه های اجتماعی است.
- Repast از سیستم های اطلاعات جغرافیایی (GIS) یکپارچه پشتیبانی می کند.
- Repast به طور کامل در زبان های مختلف از جمله جاوا و سی شارپ پیاده سازی شده است.
- مدلهای Repast را میتوان در بسیاری از زبانها از جمله Java، C#، Managed C++، Visual Basic.Net، Managed Lisp، Managed Prolog و Python اسکریپت توسعه داد.
- Repast تقریباً در تمام پلتفرمهای محاسباتی مدرن از جمله Windows، Mac OS و Linux در دسترس است. پشتیبانی پلتفرم شامل رایانه های شخصی و خوشه های محاسبات علمی در مقیاس بزرگ است.
Repast را میتوان از https://repast.github.io/ دریافت کرد. این نرمافزار منبع باز و رایگان است و بر روی سیستم عامل ویندوز، مک و سیستمهای یونیکس تقریباً یکسان کار میکند.
Anylogic
نرمافزار AnyLogic هم دارای زبان مدلسازی به صورت گرافیکی است و هم میتوان با استفاده از زبان Java مدل شبیهسازی را توسعه داد. استفاده از جاوا این امکان را به کاربران میدهد تا بدون حد و مرز با استفاده از کدهای جاوا مدل شبیهسازی سامانه مورد نظر خود را به صورت کاملاً منعطف بسازند.
همچنین با استفاده از نرمافزار AnyLogic میتوان مدل را به صورت Java Applet ایجاد کرد که بر روی هر مرورگر (Browser) استانداردی مانند IE, FireFox و… اجرا شود. این قابلیت این امکان را به مدلساز میدهد تا مدل ساخته شده از سامانه مورد نظر را به راحتی بر روی اینترنت به اشتراک بگذارد. همچنین در ارائه مدل در مکانهایی که نرمافزار نصب نیست نیز کاربرد بسیار زیادی داشته و مدلسازی به راحتی میتواند مدل شبیهسازی که به صورت Java Applet درآمدهاست را توسط مرورگرهای استاندارد نمایش دهد.
مدلهای شبیهسازی در نرمافزار AnyLogic میتواند برپایه سه رویکرد شبیهسازی اصلی یعنی شبیهسازی گسسته پیشامد (DES)، سامانههای پویا (SD) و عامل بنیان (AB) ساخته شود.
شبیهسازی گسسته پیشامد و مدلسازی سامانههای پویا رویکردهای سنتی در زمینه شبیهسازی هستند؛ ولی رویکرد شبیهسازی عامل بنیان (AB) یک رویکرد جدید است. از لحاظ تکنیکی، سامانههای پویا برای فرایندهای پیوسته مورد استفاده قرار میگیرد. شبیهسازی گسسته پیشامد نیز همانطور که از نامش نیز مشخص است برای شبیهسازی سامانههای گسسته کاربرد دارد. شبیهسازی عامل بنیان نیز در سامانههای گسسته مورد استفاده قرار میگیرد.
انی لاجیک اخیرا یک سامانه ابری را برای اجرا و به اشتراک گذاری مدل ها، ایجاد کرده است. در این فضای ابری، کاربران می توانند مدل های خود را بسازند و آنها را اجرا کنند. همچنین امکان اتصال مدل های ساخته شده در نرم افزار و فضای ابری می باشد. لینک فضای ابری: https://cloud.anylogic.com/
Anylogic را میتوان از https://www.anylogic.com دریافت کرد. این نرمافزار در دو نسخه رایگان (PLE) و تجاری منتشر شده است و بر روی سیستم عامل ویندوز، مک و سیستمهای یونیکس تقریباً یکسان کار میکند.
پایتون (Mesa)
Mesa به کاربران اجازه می دهد تا به سرعت مدل های مبتنی بر عامل را با استفاده از اجزای اصلی داخلی (مانند شبکه های فضایی و زمانبندی عامل) یا پیاده سازی های سفارشی ایجاد کنند. آنها را با استفاده از یک رابط مبتنی بر مرورگر تجسم کنید. و نتایج آنها را با استفاده از ابزارهای تجزیه و تحلیل داده پایتون تجزیه و تحلیل کنید. هدف آن این است که همتای مبتنی بر پایتون 3 برای NetLogo، Repast یا MASON باشد.
ویژگی ها:
- اجزای مدولار
- تجسم مبتنی بر مرورگر
- ابزارهای داخلی برای تجزیه و تحلیل
Mesa یک چارچوب مدولار برای ساخت، تجزیه و تحلیل و تجسم مدلهای مبتنی بر عامل است.
مدلهای مبتنی بر عامل، شبیهسازیهای رایانهای هستند که شامل چندین نهاد (عاملها) است که بر اساس رفتار برنامهریزیشدهشان با یکدیگر عمل میکنند و در تعامل هستند. عاملها می توانند برای نشان دادن سلول های زنده، حیوانات، انسان های منفرد، حتی کل سازمان ها یا موجودیت های انتزاعی استفاده شوند. گاهی اوقات، ممکن است درک درستی از نحوه رفتار اجزای منفرد یک سیستم داشته باشیم و بخواهیم ببینیم که چه رفتارها و اثراتی در سطح سیستم از تعامل آنها پدیدار می شود. مواقع دیگر، ممکن است ایده خوبی از نحوه رفتار کلی سیستم داشته باشیم و بخواهیم بفهمیم که چه رفتارهای فردی آن را توضیح می دهد. یا ممکن است بخواهیم ببینیم چگونه میتوان نمایندگان را به همکاری یا رقابت مؤثرتر وادار کرد. یا ممکن است بخواهیم یک اسباب بازی جالب با نقاط کوچک رنگارنگ بسازیم.
ماژول های مسا
Mesa مدولار است، به این معنی که اجزای مدلسازی، تجزیه و تحلیل و مصورسازی آن جدا نگه داشته میشوند اما در نظر گرفته شده که با هم کار کنند. ماژول ها به سه دسته دسته بندی می شوند:
- مدلسازی: ماژولهایی که برای ساختن خود مدلها استفاده میشوند: کلاسهای مدل و عامل، زمانبندی برای تعیین ترتیبی که عاملها در آن عمل میکنند، و فضایی برای حرکت آنها.
- تجزیه و تحلیل: ابزارهایی برای جمع آوری داده های تولید شده از مدل شما، یا اجرای چندین بار آن با مقادیر پارامترهای مختلف.
- مصورسازی (Visualization): کلاس هایی برای ایجاد و راه اندازی یک مصورسازی مدل تعاملی، با استفاده از یک سرور با رابط جاوا اسکریپت.
اکثر مدل ها از یک کلاس برای نمایش خود مدل تشکیل شده اند. یک کلاس (یا بیشتر) برای نمایندگان؛ یک زمانبندی برای مدیریت زمان (به چه ترتیبی عوامل عمل می کنند)، و احتمالاً فضایی برای سکونت و حرکت عوامل. این ها در ماژول های مدل سازی Mesa پیاده سازی می شوند:
- Model
- Agent
این کتابخانه به صورت رایگان از طریق لینک https://mesa.readthedocs.io/en/stable/ در دسترس است. همچنین می توان به راحتی با دستور ” pip install mesa ” در ترمینال یا CMD سیستم عامل و پس از نصب پایتون نسخه 3، آن را نصب کرد.
[1] multi‐agent programmable modelling environment