پرش به محتوا

مدل سازی مبتنی بر عامل

ویکی‎کتاب، کتابخانهٔ آزاد

شبيه‌سازی مبتنی بر عامل روشی است که طی سال‌های گذشته در حوزه علوم اجتماعی مورد توجه قرار گرفته است. در اين کاربرد، عامل‌ها افراد موجود در يک جامعه با ويژگی‌های مورد نظر را مدل‌سازی می‌کنند. سپس فاکتورهايی وارد سيستم شده و تاثير آنها در رفتارهای عامل‌ها و يا رفتار سطح کلان جامعه بررسی می‌شود.

امروزه عامل های هوشمند بطور وسیعی در پروژه های عملیاتی و تحقیقاتی مورد استفاده قرار می گیرند. موسسات و شرکت هایی مانند IBM، دایملر کراسلر، وزارت دفاع آمریکا و ناسا بطور موفقیت آمیزی از سیستم های مبتنی بر عامل استفاده می کنند و بکارگیری عامل ها رفته رفته به یک موضوع حیاتی در فرآیندهای توزیع شده و غیر متمرکز تبدیل شده است. تمامی این تلاش ها را می توان به ۴ گروه زیر طبقه بندی کرد.

1. حل گروهی مسائل و هوش مصنوعی توزیع شده(Distributed Artificial Intelligent):

هوش مصنوعی توزیع شده بیشتر بر جنبه اجتماعی عامل ها متمرکز است و علاقمند است تا بتواند از طریق همکای مؤثر گروهی از عامل ها مسائل را حل کند و فعالیت های آنها را با یکدیگر هماهنگ نماید. برخی از این کاربرد ها عبارتند از: کنترل ترافیک هوایی، مدیریت شبکه های ارتباطی، سفینه های فضایی، مدیریت حمل و نقل و کنترل خط تولید.

2. واسط کاربر(User Interface):

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

3. عامل های اطلاعاتی و سیستم های اطلاعاتی جمعی(Cooperative Information System):

عامل اطلاعاتی به یک یا چند منبع اطلاعاتی دسترسی دارد و می توانداطلاعات موجود در این منابع را جهت پاسخگویی به سؤالات دیگر کاربران و یا عامل های اطلاعاتی دیگر، جمع آوری و دست کاری نماید. یک شبکه اطلاعاتی جمعی، از منابع سنتی مانند فایل و پایگاه داده و یا سایر عامل های اطلاعاتی تشکیل می شود.

4. عامل های واقع نما(Believable Agent):

میتوان از عامل ها در سینما، بازیهای کامپیوتری،واقعیت مجازی و شبیه سازی واقعی استفاده کرد. بدین منظور عامل باید دارای حس باشد و بصورت مسطح و بدون شخصیت توصیف نشود، بلکه به گونه ای عمل کند که با درک ما مطابقت داشته وبتواند رفتارهای انسانی را درک کند. عامل ها همچنین در اواسطدهه ۱۹۹۰ واردصنعت و تجارتشدند. مثل: بهینه سازی زنجیره تولید، مدیریت منابع،مدل کردن رفتار مصرف کننده، پردازش توزیع شده، مدیریت نیرو، مدیریت سرمایه گذاری تحلیل پیامدها، تأثیرات مخرب سلاح های میکروبی و سیستم ایمنی.

تعریف عامل(Agent):

یک Agent نوع سادۀ دیگری ازانتزاع (Abstraction) نرم افزاریست. یک شیئ یک انتزاع سطح بالاست که متد ها و شناسه هایی از یک جزء نرم افزاری را توصیف می کند.

به هر حال یک Agent یک انتزاع نرم افزاری بسیار بالا تر است که روشی قوی و راحت برای توصیف یک موجودیت نرم افزاری پیچیده را فراهم می کند. Agent یک سیستم کامپیوتری مبتنی بر نرم افزار است که در یک محیط قرار گرفته (Situated) و قادر به فعالیت های خود مختار (Autonomous) در آن محیط برای رسیدن به اهدافش است.

واقع شده (Situated): یعنی عامل ها کاملاً درون محیط خاصی موجود هستند، آنرا درک می کنند و بر روی محیط اثر گذاشته و محیط نیز بر روی آنها اثر میگذارد.

خود مختاری (Autonomy): یعنی توانایی عمل کردن بدون مداخله انسان یا سیستم های دیگر. به عبارت دیگر خود بر روی رفتارهایشان تصمیم میگیرند.

سایر خصوصیات عامل ها:

کنش گرایی (Proactive): یعنی عامل می تواند بدون هیچ تحریک خارجی عمل نماید.
واکنش پذیری ( Reactive): یعنی عامل قادر است به تغییرات محیط پاسخ دهد.
توانایی جمعی(Social Ability): یعنی عامل ها می توانند در یک سیستم MAS با دیگر عامل ها ارتباط بر قرار کرده و مذاکره کنند.
یادگیری (Learning): یعنی عامل ها قادر به یادگیری اند.

با این تعاریف می توان گفت که یک عامل یک ربات نرم افزاریست که دردنیای کامپیوتر زندگی و فعالیت می کند.


مفاهیم

[ویرایش]

سیستم‌های چندعاملی چیست؟

[ویرایش]

سیستم چندعاملی (Multi Agent Systems) یا به اختصار MAS روش نوینی برای حل مسائل و پیاده‌سازی پروژه‌های نرم‌افزاری رایانه‌ای است.

سیستم‌های مبتنی بر عامل

[ویرایش]

سیستم‌های مبتنی بر عامل، پردازش موازی را آسان کرده و به راحتی موازی می‌شوند. منظور از پردازش موازی این است که به جای انجام یک پروژه با محاسبات زیاد و پردازش‌های سنگین توسط یک پردازشگر، همان پروژه را به پردازش‌‌های کوچکتر با حجم محاسبات کمتر شکسته و آن را توسط چندین عامل انجام دهیم. مثلاً میزی را تصور کنید که برای بلند کردنش به 100 نیوتن نیرو احتیاج داریم، حال می‌توانیم آن را توسط یک نفر که توانایی اعمال 100 نیوتن نیرو را دارد، بلند کنیم و هم میتوانیم این کار را به کمک چهار نفر که هر کدام 25 نیوتن نیرو به اشتراک می‌گذارند، انجام دهیم. در نتیجه، هزینه‌ها در چنین سیستمی پایین می‌آید و نیازی به صرف هزینه های کلان جهت ایجاد امکان پردازش سنگین برای یک عامل نیست. در این صورت، چندین عامل با قدرت پردازشی کمتر همان کار را حتی سریع‌تر انجام می‌دهند.

البته این نوع سیستم‌ها به نوبه خود معایبی نیز دارند که استفاده از آنها را محدود می‌کند. مهمترین عیب این سیستم‌ها، کندی در کار طراحی و موازی‌سازی آنهااست که به نتیجه رساندن پروژه را به تعویق می‌اندازد.


تعریف سیستم چندعاملی

[ویرایش]

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

بدین ترتیب تعریف دیگری که برای عامل می‌توان داشت این است که یک عامل یک برنامه کامپیوتری‌ است که در بعضی محیط‌ها قادر به انجام کارهای خودمختار یا به اصطلاح autonomous است.

در دسته‌بندی ساده‌ای از عامل‌ها می‌توان به دو نوع عامل اشاره کرد، یکی عامل‌های ساده و کم‌اهمیت‌ تر (Trivial Agents) که مثال ساده آن، ترموستات‌ است و دوم عامل‌ هوشمند (Intelligent Agents ) که در واقع همان برنامه کامپیوتری‌ است که در بعضی محیط‌ها قادر به انجام اعمال خودمختار و انعطاف‌پذیر است.

تعریف (Etzioni and Weld 1995) :

يک عامل بايد دارای مشخصات زير باشد:

• خودمختاری

• عامل، رفتار خود را از راه های زیر کنترل می کند:

• هدفگرايی

• هماهنگی

• انعطاف پذيری

• خودآغازی

• تداوم زمانی

• شخصيت

• توانايی برقراری ارتباط

• تطبيق پذيری

• قابليت تحرک

تعریف (Hayes-Roth 1995) :

سیستمهای هوشمند بطور پیوسته در حال انجام سه عمل می باشند: ادراک شرایط پویا در محیط، عمل به منظور تاثیر بر شرایط در محیط و استدلال برای تفسیر ادراکات، حل مسایل، استنتاج و تعیین اعمال.

تعریف (Wooldridge and Jennings 1995) :

عامل یک سیستم کامپیوتری است که ویژگی های زیر را دارا می باشد:

خود مختاری: عامل ها بدون مداخله مستقیم انسانها یا دیگران عمل می کنند و نوعی کنترل بر اعمال و حالات داخلی خود دارند.

اجتماعی بودن: عاملها با عاملهای دیگر (و شاید انسانها) از طریق نوعی زبان ارتباطی فعل و انفعال می کنند.

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

کنش گرایی: عامل‌ها در پاسخ به محیط خود رفتار هدف گرا نشان می دهند.

تعریف (Franklin and Graesser 1997) :

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

تعریف (Weiss 1999) :

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

سیستم چندعاملی

[ویرایش]

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

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

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

دو مسئله کلیدی در طراحی سیستم چندعاملی

[ویرایش]

دو مسئله کلیدی که در طراحی سیستم‌های چندعاملی مطرح است: اول طراحی عامل و دوم طراحی محیطی برای عملکرد و ارتباط میان عامل‌ها. در طراحی عامل، چگونگی ساخت عاملی که قادر به انجام کارهای مستقل و اعمال خودمختار باشد مدنظر است.

به گونه‌ای که بتواند کارهایی که بر عمده‌اش گذاشته‌ایم را با موفقیت انجام دهد. در طراحی اجتماع یا محیط عامل‌ها، نکته اساسی این است که چگونه عامل‌هایی طراحی کنیم که قادر به برقراری ارتباط با یکدیگر باشند.

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