سیستمهای چند عامله (Multi Agent Systems )

September 29, 2007 12:03 AM

با طرح تعاری�?ی در مورد عاملها (Agents)  در این نوشته می خواهم نگاهی به سیستمهای چند عامله ،  Multi Agent System،  داشته باشم.  بسیاری از  سیستم های تجاری اولیه عامل را برای هد�? جستجو مورد است�?اده قرار دادند . در این سیستم ها عاملهای من�?رد به مراکز معینی متصل می شدند ، اطلاعات لازم را جمع آوری می کردند و در نهایت به نزد کاربر درخواست کننده بر می گشتند. به عبارت دیگر عاملها یک کار ان�?رادی  داشتند و در مقیاس بسیار کمی – اگر بود – با عاملهای دیگر تعامل داشتند. این روش باوجودیکه کاربردهای زیاد خاص خود را دارد نمی تواند به تنهایی یک اجتماع یا یک سازمان ایجاد کند که بتواند نیازهای دیگر کاربران را برآورده سازد . در عوض در محیط های انسانی ما یک شبکه از ا�?راد را داریم که برای منظورهای مختل�? با یکدیگر در تعامل می باشند. بدین ترتیب برای ایجاد یک جامعه از عاملها نه تنها نیاز است که بین آنها ارتباط برقرار کرد بلکه عاملها باید بتوانند با یکدیگر هماهنگ هم باشند. این هماهنگی می تواند جنبه های مختل�? همکاری و یا رقابتی داشته باشد. این جوامع، سیستمهای چند عامله (MAS) نامیده می شوند.
به عبارت دیگر "یک سیستم چند عامله یک  پیاده سازی با تاکید بر همکاری از برنامه ها (عاملها) است که با یکدیگر هماهنگ شده اند برای رسیدن به همگرایی روی  پاسخ یک یا چند وظی�?ه"

سیستم های چند عامله، سیستم هایی هستند که از جمع شدن عاملهای هماهنگ شده با هم و روابط بین آنها تشکیل شده اند. در این سیستم هر کس وظی�?ه خود را می داند و می داند که چه زمانی با دیگری باید ارتباط برقرار کند.
برخی دلایل منطقی وجودی سیستم های چند عامله عبارتند از:
- یک عامل می تواند همه چیز را بسازد اما عاملهای چاق (!) باعث بروز نارسایی هایی در سرعت ، قابلیت اطمینان ، قابلیت نگهداری و نظایر آن می شوند. (به عبارت دیگر عامل همه کاره وجود ندارد.) تقسیم کارکرد ها بین عاملهای مختل�? مزایای واحدبندی شدن ، قابلیت انعطا�? ، قابلیت تغییرپذیری و قابلیت توسعه را �?راهم می سازد.
- دانش های تخصصی اغلب از یک عامل بدست نمی آیند (به عبارت دیگر عامل عالم مطلق وجود ندارد ) دانشی که در بین منابع (عاملهای) مختل�? گسترده شده است می تواند در هنگام نیاز در یک دیدگاه بسیار کاملتر جمع گردد.
- کاربردهایی که به محاسبات توزیع شده نیاز دارند بهتر توسط MAS حمایت می شوند. در اینجا عاملها می توانند به صورت مول�?ه های خودمختار ریز شده ای طراحی شوند که به صورت موازی عمل می کنند. پردازش همزمان و حل مساله می تواند برای بسیاری از مسائل که تاکنون به صورت خطی حل می شدند راه حل های مناسب تری ارائه کند. بدین ترتیب �?ن آوری عاملها نهایی ترین حد را در �?ن آوری مول�?ه های توزیع شده �?راهم می سازد.
- MAS برای کاربردهایی که ذات توزیع شده و غیر همگن دارند مانند تجارت الکترونیک و نظایر آن مناسب ترین گزینه است. در این گونه محیط ها , عاملها می توانند مستقل از یکدیگر و توسط توسعه دهندگان مختل�? طراحی و تولید شوند و با وضع قوانین تعامل با یکدیگر هماهنگ گردند واهدا�? طراحی را برآورده سازند.
همانطور که ملاحظه می کنید با طرح سیستم های چند عامله، به بحث هوش مصنوعی توزیع شده و شبیه سازی دنیای واقع در تولید سیستمهای اطلاعاتی و نرم ا�?زاری، نزدیک تر شدیم.
باز هم در این مورد خواهم نوشت...
همین!

Ali Vahed | 12:03 AM | Comment(s)(5)

نگاهی به تعاری? رایج در مورد عامل ها (Agents)

August 6, 2007 03:43 PM

امروزه بکارگیری هوش مصنوعی (AI:Artificial Intelligence) در سیستمهای تجاری امری مرسوم و پرکاربرد است (هر چند در ایران هنوز این مساله به شکلی جدی مطرح نشده ، اما نمونه هایی مشاهده می شود).   عاملهای هوشمند (IA:Inteligent Agent) نیز  به عنوان یک جزء از  هوش مصنوعی توزیع شده، باعث شده است که در شبکه ها و یا رویداد های مربوط به گروه های ا?راد، است?اده از عاملها و عاملهای هوشمند رواج بیشتری نسبت به سایر موارد داشته باشد، به شکلی که امروزه بحث مهندسی نرم ا?زاری مبتنی بر عامل ها (Agent Based Software Engineering) و روشهای تجزیه تحلیل، چارچوب های برنامه سازی و محیط های توسعه آن بیشتر مورد توجه قرار گر?ته است. در ادامه در سلسله مطالبی، به تعری? مبانی این گونه جدید از مهندسی نرم ا?زار خواهم پرداخت. علی الحساب در این نوشته نگاهی بیاندازید به تعاری? "عامل" از دیدگاه های مختل?.
در ?رهنگ لغات  Agent چنین معنی می شود : "?اعل ، نماینده ، گماشته ، وکیل ، مامور ، عامل ، مباشر، واسطه ، پیشکار ، امین و کارگزار ". بدین ترتیب به عنوان یک تعری? پایه می توان Agent   را کسی دانست که به جای شخص یا چیز دیگری عمل می کند.
یک عامل دارای خصوصیات مختل?ی است ؛ داشتن برخی از این خصوصیات برای یک عامل اجباری و بقیه اختیاری است. از جمله خصوصیات اجباری می توان به خواص autonomous (خودمختار بودن) ، interactive (دارای عمل متقابل بودن)  و reactive (واکنش دار بودن ) می باشد. از جمله خصوصیات اختیاری می توان به خواص mobility (متحرک بودن ) ، intelligence (هوش ) و trustworthiness (قابلیت اعتماد) اشاره کرد. این خصوصیات  عبارتند از :

-خودمختار بودن (Autonomous) : بتواند بدون دخالت یک محرک خارجی کارکند و تاحدی با است?اده از تجربه های شخصی بر حالات درونی و ر?تارهای خود کنترل داشته باشد.
-دارای عمل متقابل بودن (Interactive) : با محیط و سایر عامل ها رابطه داشته باشد.
-سازگاری (Adaptive) : قابلیت پاسخگویی به محیط یا سایر عامل ها در درجات مختل? (بیشترین سازگاری زمانی است که عامل اجازه داشته باشد ر?تار خود را بر اساس تجربیاتش تغییر دهد).
-اجتماعی بودن (Sociable) : با سایر عامل های دوست یا همکار تعامل خوب، دوستانه و اجتماعی داشته باشد.
-متحرک بودن (Mobile) : بتواند از یک محیط به یک محیط دیگر برود.
-وکالت (Proxy) : بتواند به عنوان وکیل شخص یا چیز دیگر عمل کند. بدین شکل که مطابق میل ان ر?تار کند. یا مسؤولیت های آن را قبول کند و یا برای بدست آوردن منا?ع او تلاش کند.
-کنشگرا ((Proactive: هد?مند و با قصد مشخص، به عبارت دیگر صر?ا در مقابل محیط واکنش های ساده نمی کند.
-هوشمند (Intelligent) : حالتها با دانشهایی شکل رسمی گر?ته (مانند اعتقادات ، اهدا? ، برنامه ها و ?رضیات ) و عامل با سایر عاملها با یک زبان سمبولیک تعامل می کند.
-منطقی (Rational) : قابلیت آم را داشته باشد که کاری را بر اساس اهدا? داخلی خود انجام دهد که وی را به این اهدا? نزدیک سازد.
-غیرقابل پیش بینی (Unpredictable) : بتواند به نوعی ر?تار کند که کاملا قابل پیش بینی نباشد حتی اگر شرایط آغازین کار کاملا شناخته شده باشد. به عبارت دیگر بتواند به طور غیرقطعی ر?تار کند.
-پیوسته زمانی (Temporally Continuous) : ?رآیند اجرای پیوسته ای داشته باشد.
-شخصیت (Character) : شخصیت و احساس قابل باوری داشته باشد.
-ش?ا? و قابل حساب (Transparent and Accountable) : به اندازه کا?ی ش?ا? باشد و در موقع نیاز گزارش ?عالیت های خود را ثبت کند .
-هماهنگ (Coordinative) : بتواند ?عالیتهایی را با سایر عاملها در یک محیط مشترک انجام دهد . این ?عالیت ها اغلب در قالب یک برنامه، جریان کار و یا یک مکانیسم دیگر مدیریت پردازش ها هماهنگ شده اند.
-همکاری (Cooperative) : بتواند با سایر عاملها برای رسیدن به یک هد? مشخص هماهنگ عمل کند به طوری که شکست یا مو?قیت عامل به این رابطه وابسته باشد. (م?هموم Collaboration نیز م?هومی نزدیک به این رابطه دارد.)
-رقابت (Competitive) : با سایر عاملهای دیگر چنان هماهنگ باشد که مو?قیت یک عامل سبب شکست دیگری باشد . (مخال? همکاری)
-نیرومند (Rugged) : بتواند با خطاها و یا اطلاعات ناقص ر?تار محکم و درستی داشته باشد.
-پقابل اعتماد (Trustworthy) : به قوانین موجود و?ادار بوده، راستگو باشد.
-....

در منابع مختل? بسته به دیدگاه نویسنده تعاری? مختل?ی برای عامل ارائه شده است در زیر به برخی از این تعاری? اشاره می کنم:

عامل Mubot : "لغت عامل برای نشان داده دو م?هوم متعامد به کار می رود. اولین م?هوم قابلیت اجرای خودکار عامل می باشد و دومین م?هوم قابلیت انجام دادن تصمیم گیری های مبتی بر دامنه است ."
عامل AIMA : "یک عامل چیزی است که می تواند محیط را از طریق حسگر هایش درک کند و با کمک عملگرهایش بر روی محیط تاثیر بگذارد."
عامل Maes : "عامل خودکار یک سیستم محاسباتی است که در یک محیط پیچیده پویا ساکن است. در این محیط به صورت خودکار حس می کند و بر اساس آن عمل می کند و بدین ترتیب اهدا?ی که بر اساس آن طراحی شده است را محقق می سازد."
عامل KidSim : "عامل بدین صورت تعری? می شود : یک موجودیت نرم ا?زار پایدار که برای یک هد? خاص در نظر گر?ته شده است. پایداری عامل را از زیربرنامه ها متمایز می سازد؛ عاملها نظرات خاص خود را در مورد انجام یک عمل دارند . هد? خاص آنها را از سایر برنامه های چند کاره جدا می سازد؛ عاملها بسیار کوچک ترند. "
عامل Hayes-Roth : "عاملهای هوشمند به طور پیوسته سه عمل را انجام می دهند: استنباط شرایط پویا در محیط ، استدلال برای ت?سیر این استنباط ها، حل مساله، ترسیم نتیجه گیری ها و تعیین اعمال ."
عامل IBM : "عاملهای هوشمند موجودیت های نرم ا?زاری هستند که یک سری عملیات را به عنوان نماینده یک کاربر یا یک برنامه دیگر و با درجه خاصی از استقلال یا خودمختاری برعهده دارند و برای انجام چنین کاری بخشی از دانش و یا نمایش اهدا? و امیال کاربر را به کار می گیرند."
عامل Wooldridge : " سیستم کامپیوتری مبتنی بر سخت ا?زار و یا به طور معمول تر نرم ا?زاری که مشخصات زیر را داشته باشد :
• خودمختاری : عامل بدون دخالت مستقیم انسان و یا دیگران عمل می کند و تا حدودی بر عملکرد و حالات درونی خود کنترل دارد.
•قابلیت اجتماعی : عاملها با سایر عاملها (وحتی انسانها) بوسیله انواع زبانهای ارتباطی عاملها در تعامل می باشند.
•واکنشپذیری : عامل محیط خود را درک می کند (ممکن است یک کلمه باشد ، یک کاربر از طریق یک واسط کاربری باشد، مجموعه ای از عاملهای دیگر باشد ویا ترکیبی از همه اینها ) و به موقع در مقابل تغییرات اعمال شده در آن واکنش نشان می دهد.
•Pro-activeness: عاملها تنها به واسطه پاسخ به محیط عمل نمی کنند بلکه خود می توانند به واسطه اهدا? خود آغاز گر یک عمل باشند. "

عامل SodaBot : "عامل های نرم ا?زاری ، برنامه هایی هستند که در یک گ?تگو شرکت می کنند ، مذاکره می کنند و تبادل اطلاعات را هماهنگ می کنند. "
عامل Brustoloni : "عاملهای خودمختار سیستمهایی هستند که می توانند در دنیای واقعی خودمختار و هد?مند عمل کند. "
عامل Jennings : "يك عامل يك سيستم كامپيوتري كپسوله است كه در يك محيط قرار دارد و قادر به انجام عمليات خودكار و قابل انعطا? در اين محيط براي رسيدن به اهدا? طراحي آن مي باشد."
تعری? اخیر تعری?ی است که در عین سادگی به نظر می رسد نمایانگر مشخصات اصلی یک عامل است . در مطلب مرتبط بعدی به تعاری? سیستمهای چند عامله (Multi Agent System ) خواهم پرداخت.
همین!

Ali Vahed | 03:43 PM | Comment(s)(0)

مذاکره ( Negotiation)

April 20, 2005 02:47 AM

چندی است در صدر اخبار روز ایران بحث بحران در است?اده ایران از انرژی اتمی مطرح است. در ماههای اخیر هم بحث مذاکره با اروپا در این زمینه مطرح است.  چند روز پیش هم در صحبت های وزیر امور خارجه صحبت از توانایی های مذاکره کننده ایرانی در این مذاکرات بود که موجب برتری ایران شده بود به نحوی که ایران در قبال دادن برخی امتیازات دارد امتیازات دیگری به دست می آورد.

اما این مطلب چه ربطی به ?نآوری اطلاعات و ارتباطات دارد!!؟ هیچ!

ربطش آنست که دو سال پیش تحقیقی نسبتا م?صل داشتم در زمینه مذاکره بین عاملها (Agent Negotiation). آن روز ها برایم خیلی مهم بود که تعری?ی جامع و مانع برای "مذاکره" پیدا کنم. تعاری? زیر تلاش هایی در این زمینه است. تعاری?ی که تعری? مذاکره را از یک مکالمه ساده دور می کنند و به یک چانه زنی  نزدیک تر می کنند.
در تعري? مذاكره آمده است:
 ? نوعي از تصميم گيري كه در آن دو يا چند طر? مشتركا و با هد? رسيدن به يك اجماع به دنبال يك راه حل احتمالی مي گردند“
بدین ترتیب،  دلیل اینکه یک مذاکره ات?اق می ا?تد چنین بیان شده است :
"مذاکره به یکی از دو دلیل ذیل رخ می دهد :
1-برای ایجاد چیز جدیدی که هیچکدام از طر?ین نمی توانند آن را به تنهایی بسازند.
2-برای حل مساله یا مشاجره بین طر?ین"

با این تعاری? عمومی از مذاکره می توان مذاکره را با توجه به دیدگاههای مختل? تعری? نمود :
-در تئوری بازیهاو حراجها : در این تئوری مذاکره را معادل معامله در نظر گر?ته اند و آن را چنین تعری? می کنند : "بوسیله معامله ما مذاکره بین دو یا چند طر? را در مورد یک همکاری احتمالی را در نظر می گیریم که شامل مبادله ، استخدام .... و نظایر آن می شود "

-در تحلیل های تصمیم گیری و مذاکره : یک تعری? در این دیدگاه چنین است :" مذاکره نوعی تصمیم گیری است که دو یا چند عامل به صورت ?عال که خود نمی توانند به صورت مستقل تصمیم بگیرند ، در آن شرکت دارند و بنابراین باید بپذیرند که روی این تصمیم با یکدیگر مصالحه کنند."
در این دیدگاه مشخصات عمومی یک مذاکره چنین آمده است:
1-در مذاکره دو یا چند طر? شرکت می کنند. این طر?ین می توانند ا?راد مستقل، گروهها و با سازمانها باشند.
2-بین علاقه های دو یا چند طر? یک تضاد وجود دارد. بدین معنی که چیزی که یکی می خواهد لزوما جیزی نیست که دیگری نیز بخواهد و طر?ین بایستی به دنبال راه حلی بگردند که این تضاد را برطر? کنند.
3- طر?ین مذاکره می کنند چون آنها ?کر می کنند می توانند از شکلی از تاثیر است?اده کنند تا معامله بهتری نسبت به زمانی که به سادگی هر چیزی که طر? مقابل داوطلبانه به آنها می دهد، قبول کنند، داشته باشند.
4-طر?ین مذاکره حداقل برای یک لحظه ترجیح می دهند که دنبال یک توا?ق جستجو کنند تا اینکه آشکار مبارزه کنند، تسلیم طر? مقابل شوند، به طور همیشگی قرار داد را ?سخ کنند، یا بحث خود را به حدی بالاتری از اقتدار خود برای حل آن ببرند. مذاکره زمانی رخ می دهد که هیچ سیستم و هیچ مجموعه قواعد یا روالهای مشخص ثابت برای ر?ع اختلا? وجود نداشته باشد.
5-زمانی که مذاکره می کنیم ما ?رض می کنیم که می دهیم و می گیریم.
6-مذاکره مو?ق شامل مدیریت نامحسوسها به همان خوبی محسوسات است (برای مثال قیمت یا عبارات توا?ق)"

-تحقیقات سیستم های اطلاعاتی : و در این دیدگاه : "?رآیند مذاکره می تواند در شکل های زیادی صورت گیرد، از یک معامله غیرساختیا?ته بین دو طر? تا یک محیط بازار سریع از مبادلات سهام تا تمامی روال های حراج"

همچنین تعری? دیگری که محدود به عاملهای خودمختار نرم ا?زاری است ارائه شده است :"مذاکره در تجارت الکترونیک به عنوان پردازشی تعری? می شود که دو یا چند طر? به صورت چندجانبه و با است?اده از تکنیک ها و ابزارهای تجارت الکترونیک برای بدست آوردن سود متقابل به داد و ستد منابع می پردازند. [...] پردازشی که در آن دو عامل نرم ا?زاری هوشمند روی یک راه حل به صورت الکترونیکی مذاکره می کنند و سپس نتیجه را برای مدیر خود آماده می کنند."

-تحقیقات هوش مصنوعی :به جز تعری?ی که در ابتدا آورده شد، تعری? دیگری که تمرکز به "مذاکره خودکار " در زمینه هوش مصنوعی توزیع شده دارد چنین است : "در مذاکره خودکار ، عاملهای محاسباتی قراردادهایی را به عنوان نمایند طر?ین دنیای واقعی خود پیدا و آماده می کنند. این خودکاری زمان مذاکره انسانی را ذخیره می کند و عاملهای محاسباتی اغلب در داد وستد های ترکیبی و با تنظیمات پیچیده سوق الجیشی بهتر عمل می کنند."

و نیز در یک چشم انداز تکاملی محاسباتی :"مذاکره یک ?رآیند جستجو است . برای مثال دو بازیکن ، معامله جامع را می توان به شکل دو مذاکره کننده که مشترکا یک ?ضای چندبعدی را جستجو می کنند و سپس روی یک نقطه یکتا در ?ضا توا?ق می کنند مشاهده کرد. "

-‌ سيستم هاي چند عامله : و بدین ترتیب می توان در این دیدگاه مذاکره را چنین تعری? کرد : ?مذاكره پردازشي است كه گروهي از عامل ها در يك موضوع مشخص به يك توا?ق قابل قبول براي همه دست يابند“.

مذاكره همواره به عنوان يكي از بخش هاي اساسي سيستم هاي چند عامله اي (Multi Agent System) كه شامل عامل هاي خودمختار ، تصميم گيرنده و داراي منا?ع شخصي مي باشند مطرح مي شود و با توجه به تعري? هر مساله، طراحي روشي كارا براي مذاكره بين عاملها در آن اهميت ويژه اي دارد.
همانگونه که در داد و ستدها، قراردادها و روابط انسانی (نظیر آنچه در مذاکرات اتمی ایران مشهود است) مذاکره مهم ، حساس و پیچیده است، در سیستمهای چند عامله نیز این مطلب به همین گونه است.
حال سوالی که برای خودم پیش آمد این بود که آیا نمی توان در آغاز مذاکرات انسانی، با است?اده از عاملهای هوشمند و یادگیر، مذاکره را شبیه سازی کرد تا بتوان استراتژی خود را آزمود، به نحوی که در مذاکره اصلی بتوان بیشترین سود را کسب کرد؟ .....

بازهم در زمینه سیستمهای هوشمند و مذاکره بین عاملها خواهم نوشت. امیدوارم نتیجه حداقل برای خودم همین باشد که مطالعاتم را در این زمینه را مرور کنم.

همین!

Ali Vahed | 02:47 AM | Comment(s)(2)