PDA

نسخه کامل مشاهده نسخه کامل : معرفي سيستم‌هاي چندعاملي



ghazal_ak
02-03-2008, 19:12
سيستم چندعاملي (Multi Agent Systems) يا به اختصار MAS روش نويني براي حل مسائل و پياده‌سازي پروژه‌هاي نرم‌افزاري رايانه‌اي است.
با اينكه زمان زيادي از پيدايش اين گونه سيستم‌ها نمي‌گذرد ولي استفاده از روش‌هاي طراحي بر اساس عامل يكي از موفق‌ترين راه‌حل‌هاي موجود بوده و حاصل اين شيوه طراحي يعني سيستم‌ حل مسائل به صورت توزيع‌شده از بهترين سيستم‌ها به شمار مي‌آيد و به عنوان ابزار جديدي براي حل انواع فرآيندهاي انساني شناخته مي‌شود.
اين نوع سيستم‌ها نسبت به سيستم‌هاي معمولي و تك‌عاملي، مزاياي زيادي دارند؛ از جمله اينكه در اكثر شرايط كار مي‌كنند. به اين معنا كه چون مغز متفكر واحد ندارند و تصميم‌گيري در آنها به صورت توزيع‌شده است، چنانچه حتي بخشي از آنها نيز از كار بيفتد باز هم به كار خود ادامه مي‌دهند.
همچنين اين نوع سيستم‌ها براي محيط‌هايي با مقياس وسيع(Large Scale) و محيط‌هاي ناشناخته نيز گزينه مناسبي نسبت به سيستم‌هاي تك‌عاملي به شمار مي‌آيند.
سيستم‌هاي مبتني بر عامل، پردازش موازي را آسان كرده و به راحتي موازي مي‌شوند. منظور از پردازش موازي اين است كه به جاي انجام يك پروژه با محاسبات زياد و پردازش‌هاي سنگين توسط يك پردازشگر، همان پروژه را به پردازش‌‌هاي كوچكتر با حجم محاسبات كمتر شكسته و آن را توسط چندين عامل انجام دهيم. مثلاً ميزي را تصور كنيد كه براي بلند كردنش به 100 نيوتن نيرو احتياج داريم،
حال هم مي‌توانيم آن را توسط يك نفر كه توانايي اعمال 100 نيوتن نيرو را دارد، بلند كنيم و هم اين كار را به كمك چهار نفر كه هر كدام 25 نيوتن نيرو به اشتراك مي‌گذارند، انجام دهيم. در نتيجه، هزينه‌ها در چنين سيستمي پايين مي‌آيد و نيازي به صرف هزينه كلان جهت ايجاد امكان پردازش سنگين براي يك عامل نيست.
در اين صورت، چندين عامل با قدرت پردازشي كمتر همان كار را حتي سريع‌تر انجام مي‌دهند. البته اين نوع سيستم‌ها به نوبه خود معايبي نيز دارند كه استفاده از آنها را محدود مي‌كند. مهمترين عيب اين سيستم‌ها، كندي اندك در كار طراحي آنها و موازي‌سازي است كه به نتيجه رساندن پروژه را به تعويق مي‌اندازد.

تعريف سيستم چندعاملي
قبل از تعريف سيستم مبتني بر چندعامل، لازم است ابتدا خود عامل را معرفي كنيم. عامل يا agent يك سيستم كامپيوتري‌ است كه قادر به انجام اعمال مستقل و خودكار از طرف كاربر يا صاحب خود است. نكته اصلي در مورد عامل‌ها، خودمختاري آنهاست، به اين معنا كه عامل‌ها قادرند به طور مستقل عمل كنند و كنترلي روي حالات داخلي خود داشته باشند.
بدين ترتيب تعريف ديگري كه براي عامل مي‌توان داشت اين است كه يك عامل يك برنامه كامپيوتري‌ است كه در بعضي محيط‌ها قادر به انجام كارهاي خودمختار يا به اصطلاح autonomous است.
در دسته‌بندي ساده‌اي از عامل‌ها مي‌توان به دو نوع عامل اشاره كرد، يكي عامل‌هاي ساده و كم‌اهميت‌تر (Trivial Agents) كه مثال ساده آن، ترموستات‌ها هستند و دوم عامل‌هاي هوشمند (Intelligent Agents ) كه در واقع همان برنامه كامپيوتري‌ است كه در بعضي محيط‌ها قادر به انجام اعمال خودمختار و انعطاف‌پذير است.
در اينجا منظور از انعطاف‌پذير، انجام اعمال واكنش‌دار (داراي عكس‌العمل) و پيش‌بيني يك واكنش و انجام زودتر عمل مناسب است.
به عنوان اولين تعريف براي يك سيستم چندعاملي مي‌توان گفت: سيستم چندعاملي به سيستمي گفته مي‌شود كه از تعدادي عامل (agent) تشكيل‌شده‌ است. اين عامل‌ها هر كدام به نوبه خود فعل و انفعالات داخلي داشته و در محيط خارج نيز با يكديگر ارتباط دارند.
در بيشتر موارد، عامل، با داشتن اطلاعات خاص و محرك‌هاي مختلف، از طرف كاربر عمل مي‌كند و در واقع يك عامل، مي‌تواند نماينده‌اي از طرف انسان باشد كه در محيط‌هاي مجازي مانند او به تصميم‌گيري و انجام كارهاي مختلف مي‌پردازد.
براي داشتن ارتباطات داخلي موفق بين عامل‌ها، آنها نياز دارند كه با يكديگر همكاري كنند، هماهنگ باشند و مذاكره دوطرفه داشته باشند. درست به همان اندازه كه انسان‌ها در ارتباطات روزانه خود با هم ارتباط دارند و به مذاكره و داد و ستد مي‌پردازند.

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


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


دو مثال از كاربرد سيستم‌هاي چندعاملي
مثالي از كاربرد عامل‌ها كنترل سفينه فضايي (Aircraft control) است. وقتي يك كاوشگر فضايي (سفينه فضايي) براي انجام كارهاي تحقيقاتي به فضا يا به كرات ديگر عزيمت مي‌كند، يك سفر طولاني‌مدت در پيش دارد.
از زماني كه اين سفينه و گروه تحقيقاتي، پرواز خود را از سطح كره زمين آغاز مي‌كند يك تيم زميني با تعداد افراد زياد لازم است تا به طور مدام مراحل پيشرفت و حركت سفينه را دنبال و بررسي كنند و در مورد حوادث غيرمنتظره كه ممكن است براي سفينه پيش‌آيد تصميم بگيرند.
اين امر بسيار پرهزينه است و اگر نياز به تصميم‌گيري فوري و ضروري داشته ‌باشد كارايي چنداني ندارد. به همين دليل سازمان‌هاي هوايي و فضايي مانند NASA به طور جدي مشغول تحقيق و بررسي روي امكان ساخت كاوشگري فضايي هستند كه بيشتر خودكار باشد تا بتوانند تنها در مواقع ضروري تصميمات فوري را به صورت بهينه بگيرند و به نظارت كنترلي و مراقبت 24ساعته از روي زمين نياز نداشته باشند.
اين امر يك افسانه يا داستان نيست و مهندسين NASA مشغول بررسي و ساخت چنين سفينه‌اي بر اساس سيستم چندعاملي هستند. طبق اطلاعات موجود و خواص سيستم‌هاي چندعاملي، براي دستيابي به اين هدف عامل‌ها ابزار بسيار مناسبي شناخته شده‌اند.
مثال ديگري از كاربرد عامل‌ها، جست‌وجوي اينترنت است كه توسط عامل‌هاي اينترنتي انجام مي‌شود. جست‌وجو در اينترنت براي يافتن جواب يك سئوال خاص، مي‌تواند پروسه طولاني و خسته‌كننده‌اي باشد. بنابراين چرا اين اجازه را به برنامه‌هاي كامپيوتري- عامل- ندهيم كه عمل جست‌وجو را براي ما انجام دهند.
به عنوان مثال، مي‌توان سئوال يا مسئله‌اي را به يك عامل داد كه پاسخ آن نيازمند تركيبي از اطلاعات اينترنتي‌ است و لازم است كه منابع مختلفي در وب جست‌وجو شود. اين عمل به راحتي مي‌تواند توسط برنامه تحت وبي كه ما مي‌نويسيم و عاملي كه بر روي اينترنت ايجاد مي‌كنيم، انجام شود.

عامل‌ها و سيستم‌هاي خبره (Expert Systems)
سئوالي كه مطرح مي‌شود اين است كه آيا عامل‌ها همان سيستم خبره هستند ولي با نامي متفاوت؟ ابتدا ببينيم سيستم خبره چيست؟ سيستم خبره، يك برنامه كامپيوتري است كه عمليات مربوط به تصميم‌گيري و استدلال و اظهار نظر در رابطه با يك موضوع را با تركيبي از اطلاعات، تعقل و دانش و همچنين با در دست داشتن دانش و تجربه يك متخصص انجام مي‌دهد و بر اين اساس، وظيفه حل مشكلات يا ارائه مشاوره را بر عهده دارد.
سيستم‌هاي خبره به طور معمول بدون بدنه و ساختاري بيروني هستند كه در يك زمينه خاصي متخصص و يا به اصطلاح خبره مي‌شوند. براي مثال سيستم MYCIN نمونه‌اي از يك سيستم خبره است كه مطالب زيادي درباره بيماري‌هاي خوني انسان‌ها مي‌داند. در اين سيستم، اطلاعات بسيار وسيعي در مورد بيماري‌ها و امراض خوني به فرم يك سري قاعده و دستورات ذخيره شده كه مي‌تواند با گرفتن مشخصات بيمار و شرايط موجود، نوع بيماري را تشخيص دهد. يك پزشك به راحتي مي‌تواند با دادن واقعيت‌هاي موجود به سيستم، توصيه‌هاي تخصصي و در اكثر مواقع قابل‌اعتمادي را از اين ماشين دريافت كند.
تفاوت اصلي سيستم‌هاي خبره با سيستم‌هاي چندعاملي را مي‌توان در دو مورد زير بيان كرد:
1- عامل‌ها در محيطي قرار مي‌گيرند كه مي‌توانند روي آن تاثيرگذار باشند و از آن تاثير بپذيرند؛ در حالي كه عملكرد سيستم‌هاي خبره مانند MYCIN كاملاً مستقل از محيط بوده و از دنياي اطراف آگاه نيست و اطلاعات به دست آمده از سيستم خبره مبتني بر پايگاه دانش‌اش و سئوالاتي است كه از كاربر مي‌پرسد.
2- عامل به عنوان نماينده‌اي از طرف كاربر، عملي را انجام مي‌دهد ولي سيستم خبره مانند MYCIN هيچ عملي در محيط يا روي بيمار انجام نمي‌دهد.
يك سيستم خبره به جاي انجام عمليات رياضي و استدلال، بر پايه دانش انساني تعقل مي‌كند. در اين روش، دانش در لفاف يك زبان مخصوص، درون برنامه نگهداري مي‌شود كه به عنوان پايگاه دانش سيستم خبره شناخته مي‌شود. پس به زباني ساده، يك سيستم خبره را مي‌توان به صورت زير تعريف كرد:
سيستم خبره يك برنامه كامپيوتري است كه با استفاده از پايگاه دانش و موتور استنتاج يا نتيجه‌گيري خود، دانش و تجربه لازم در مورد يك موضوع مشخص را در كنار دريافت اطلاعات در مورد مسئله يا موقعيت كنوني (كه مربوط به دانش خودش است) به كار مي‌گيرد و تصميم‌گيري يا نتيجه‌گيري درستي را كه از يك انسان خبره انتظار مي‌رود، انجام مي‌دهد.
در حالي كه عامل يك سيستم كامپيوتري است كه قادر به انجام اعمال مستقل و اتوماتيك از طرف كاربر يا صاحب خود است.
پس با مقايسه تعاريف و نحوه عمل و طراحي هر كدام متوجه مي‌شويم كه اين دو سيستم متفاوت‌اند و نبايد آنها را درهم آميخت.

عامل‌هاي هوشمند و هوش مصنوعي (AI)
سئوالي كه در مورد سيستم‌هاي چندعاملي و هوش مصنوعي به ذهن مي‌آيد اين است كه آيا طراحي سيستم‌هاي چندعاملي همان پروژه‌هاي مطرح در هوش مصنوعي است؟ آيا ساختن يك عامل تماماً همان موضوعات مورد بحث در هوش مصنوعي نيست؟
در جواب بايد گفت، هدف هوش مصنوعي، ساختن سيستم‌هاي هوشمندي است كه بتوانند به خوبي زبان طبيعي را بفهمند، احساس را درك كنند و قادر به استفاده از حواس پنج‌گانه انساني بوده، داراي فكر خلاق باشند و غيره... كه كار بسيار مشكلي است. پس آيا ساخت يك عامل توسط الگوريتم‌هاي هوش مصنوعي كه بتواند همه اين كارها را انجام دهد، نيازمند حل همه اين الگوريتم‌ها نيست؟ مسلماً جواب مثبت است.
ولي ما در هنگام ساخت يك عامل، به طور ساده سيستمي مي‌خواهيم كه بتواند در يك محيط محدود عمل مناسب و درست را انتخاب كرده و انجام دهد. بنابراين براي ساخت يك عامل ما ملزم به حل همه مسائل موجود در هوش مصنوعي نيستيم.
همانطور كه گفته شد با وجود عمر كم سيستم‌هاي مبتني بر چندعامل، به دليل قابليت بالا در موازي‌سازي، روش طراحي براساس عامل و حل مسائل به صورت توزيع‌شده جزء موفق‌ترين روش‌هاي حل مسئله است و اين سيستم‌ها ابزار بسيار بديعي براي شبيه‌سازي كامپيوتري فراهم آورده‌اند كه مي‌تواند نور اميدي براي روشن شدن انواع مسائل مربوط به انسان و زندگي او باشد.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Saman-Rs
02-03-2008, 22:44
ممنون ، واقعا مفيد بود