اکرم امراه‌نژاد

آشنایی با Multi Agent System

اکرم امراه‌نژاد

این محتوا بدون نظارت تیم سکان آکادمی تولید شده و صرفاً نظرات شخصی اکرم امراه‌نژاد می‌باشد.

MAS مخفف عبارت Multi Agent System و به معنای سیستم‌های چندعاملی است و برای اینکه بتوانیم به دیدگاه مناسبی نسبت به سیستم‌های چندعاملی برسیم بایستی به دو سؤال مهم در ارتباط با آن‌ها پاسخ دهیم:

- مزیت و برتری این تکنولوژی نسبت به تکنولوژی‌های مشابه و قبلی چیست؟

- در چه کاربردهایی می‌توان از آن استفاده کرد؟

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

در بسیاری از موارد برای طراحی سیستم‌ها نیازمند سیستم‌های چندعاملی هستیم و به عنوان مثال در برای مدل‌سازی افراد یا سازمان‌هایی که اهداف مختلف و احتمالاً متناقض دارند و برای نشان دادن تعاملات و ارتباطات آن‌ها نیازمند استفاده از سیستم‌های چندعاملی هستیم.

یکی از نمونه‌های چنین کاربردهایی را می‌توان در طراحی سیستمی برای مدیریت دو سازمان همکار (حتی رقیب!) با اهداف و اطلاعات سازمانی متفاوت بیان کرد. مسلماً برای طراحی این سیستم مدیریت هیچ‌کدام از دو سازمان مایل نخواهند بود که اطلاعات خود را در اختیار طراح سیستم سازمان همکار (رقیب) قرار دهند با این حال شاید بتوان برای طراحی چنین سیستمی (که شامل تنها دو سازمان است) یکسری قرارداد تنظیم کرد اما با افزایش تعداد سازمان‌ها، بهترین سولوشن برای مدل‌سازی چنین سیستم‌هایی استفاده از سیستم‌های چندعاملی است.

کاربرد دیگری که برای به اصطلاح Multi Agent System  می‌توان نام برد در مواردی است که سیستم قابلیت تقسیم به یکسری اصطلاحاً Sub System مستقل را دارا است در چنین مواردی می‌توان به ازای هر یک از سیستم‌های زیرشاخه یک به اصطلاح Agent (عامل) در نظر گرفت که عامل‌ها با هم و به صورت موازی کار مدنظر را پیش برند.

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

- افزایش قابلیت اصطلاحاً Tolerance یا مقاومت سیستم در برابر خطا و همچنین قابلیت اعتماد سیستم به دلیل تعدد عامل‌ها و موازی کار کردن آن‌ها

- افزایش قابلیت انعطاف و توانایی گسترش سیستم به دلیل سادگی در اضافه کردن عامل‌های جدید به سیستم

- کاهش هزینه پیاده‌سازی سیستم

- قابلیت استفاده مجدد از عامل‌ها در کاربردهای مشابه

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

در واقع کاربر تعیین می‌کند تا این عامل‌ها با سایر عامل‌ها ارتباط برقرار کرده و مذاکره کنند به‌علاوه هر یک از عامل‌ها می‌توانند در صورت نیاز و به منظور انجام وظایف خود به دیتابیس‌های مختلفی دسترسی پیدا کنند.

علاوه بر استفاده در اینترنت، کاربرد دیگری که برای سیستم‌های چندعاملی می‌توان عنوان کرد، سیستم کنترل ترافیک است که سیستم‌های چندعاملی به دلیل ویژگی‌هایی که دارند، برای مدیریت ترافیک گزینه مناسبی به شمار می‌روند. از مهم‌ترین مشخصات سیستم کنترل ترافیک می‌توان به موارد زیر اشاره نمود:

- توزیع جغرافیایی گستردۀ مسئله

- پویا بودن سیستم ترافیک

- نیاز به برقراری ارتباط بین سیستم‌های زیرشاخۀ مختلف

تمام این ویژگی‌ها منجر بدین شده است تا سیستم‌های به اصطلاح Multi Agent گزینه‌ای مناسب برای کنترل ترافیک در سطح شهرها باشند که ان‌شاء‌الله در مقالات آینده بیشتر به این موضوع خواهیم پرداخت.

ایدهٔ خود را در سکان‌پلاس بنویسید!

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
کاربر میهمان
کاربر میهمانمن یک کاربر مهمان هستم
۱۳۹۷/۰۸/۱۲
ممنون از نویسنده ولی
وقتی رو موضوعی تسلط ندارین و از روی علاقه چندتا سرچی کردین یکم مطالب جسته گریخته نوشتین لطفا انتشار ندین خاننده رو گنگ تر میکنین ممنون
حسین قربانی
حسین قربانی
۱۳۹۷/۰۴/۲۳
خانم امراه نژاد عزیز
سلام
1- ممنون از مطلبی که زحمت کشیدید و منتشر کردید.
2- عنوان مطلب " آشنایی با سیستم های چند عاملی" بود که موضوع برای بنده آشنا نبود و تصمیم گرفتم مقاله شما رو مطالعه کنم، منتها (شاید تنها برای بنده) خیلی گنگ بود و خواندن مقاله شما بر سوالات آدم اضافه می‌کرد و در نهایت مجبور شدم، در موردش گوگل کنم. بدون حتی یک تعریف از MAS ، آیا آشنایی حاصل می‌شود؟
وقتی مجبور به جستجو شدم، مفهوم موضوع کمی برای من روشن شد منتها کماکان سوالاتی برای من باقی ماند که با اجازه مطرح می‌کنم، شاید کسی هم باشد که مثل من در این موضوع از بیخ تعطیل باشه و نیازمند پاسخگویی به سوالاتش باشد.
وقتی از سیستم های چند عاملی صحبت می‌کنیم، خیلی ساده قرار است یک مسئله حل شود، ما دو شیوه حل کلی داریم، یا تمام کار را به یک سیستم، یک فرد، یک مدیریت و خلاصه یک agent بسپاریم، یا به خاطر وسعت کار، هزینه کار و غیره آن را به چند سیستم، فرد، مدیر یا چند agent بسپاریم. مثلاً آدم یک مغز داره، تصمیم گیری و مدیریت بدن ما به صورت کامل با همین یک عامل هست و خلاص. البته که برای ما چنین چیزی کفایت می‌کنه منتها برای موجودی مثل هشت پا این طور نیست، شبکه عصبی پیچیده‌ای که در طول دستهاش ادامه داره و گاهی خود دستها جداگانه و بسته به شرایطی خودشون تصمیم می‌گیرند که چه کار کنند، فکر کنم تو رنگ عوض کردن خودمختار باشند (مطمئن نیستم). در واقع آدم نمونه بازر یک سیستم تک عاملی و هشت پا نمونه سیستم چند عاملی است.
این چیزی بود که من از جستجوهام فهمیدم، منتها سوالی که برام پیش اومده این هست که، خوب این تقسیم بندی اصلاً برای چی هست؟ واقعا چرا باید به عنوان یک شاخه یا رشته جداگانه بهش بپردازیم و توجه به این رشته جداگانه قراره چه مشکلی از ما رو حل کنه؟
ممنون از شما و موفق باشید
morteza.ghorba
morteza.ghorba
۱۳۹۷/۰۴/۱۸
ممنون 🤗
کاربر میهمان
کاربر میهمانمن یک کاربر مهمان هستم
۱۳۹۷/۰۴/۱۳
سلام اموزش های فریم ورک های را هم قرار میدهید؟ مثل JADE java Agent development Environment