انواع عامل های هوشمند

  • شماره مطلب : 4
  • دسته بندی : هوش مصنوعی
  • عنوان : انواع عامل های هوشمند
  • نویسنده : NetBoss
  • پیش نیاز : مطلب شماره 3 از مجموعه هوش مصنوعی
  • بیشتر بخوانید:
  1. ساختار عامل های هوشمند
  2. عامل هوشمند چیست
  3. تعاریف اولیه هوش مصنوعی

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

  • عامل های واکنشی ساده
  • عامل هایی که خود را با محیط اطراف وقف میدهند
  • عامل های هدف گرا
  • عامل های مبتنی بر سودمندی (کاربردی)

برای توضیح 4 گروه بالا قصد طرح یک مثال را داریم. در واقع در ادامه با ذکر مثالی نشان خواهیم داد که هر کدام از چهار گروه فوق با چه روش و استراتژی اقدام به حل این مسئله خواهد کرد.

ویژگی های یک راننده از دیدگاه انواع عامل های هوشمند
از دیدگاه انواع عامل های هوشمند، یک راننده رباتیک باید از چه ویژگی هایی برخوردار باشد ؟

شرح مثال خودروی هوشمند

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

 در کتاب راسل از این مثال با عنوان یک رمان با پایان باز یاد شده که در نوع خود جالب و قابل تامل است! در واقع در چنین مثالی مجموعه ی بی نهایتی از رخداد ها مسئله را تحت تاثیر خود قرار میدهد.

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

عامل های واکنشی ساده

فرض کنید که این گونه از عامل ها در واقع همان جداول ساده مورد بحث در مطلب شماره دو و سه باشند. با این فرض قطعا واضح است که در مثال فوق ساخت یک جدول ضمنی که بتواند ما را از مشاهدات به واکنش های مناسب هدایت کند ناممکن و غیر عملی میباشد! بگذارید برای اثبات ناکارآمد بودن جدول یک نمونه مشکل را مرور کنیم. ورودی یک دوربین ماشین نرخی برابر با 50 مگابایت بر ثانیه خواهد داشت! یا به تعبیری 25 فریم بر ثانیه برای یک تصویر 1000 در 1000 پیکسل که هر کدام دارای 8 بیت اطلاعات رنگ و 8 بیت اطلاعات شدت نور میباشند! پس با این حساب ظرفیت جدولی که تنها بتواند یک ساعت از ورودی دوربین را در خود نگاه دارد معادل عدد 2 به توان ِ (60*60*50M) خواهد بود!

با این حال با ایجاد تغییراتی در دیدگاهمان نسبت به جدول خواهیم دید که بکارگیری از یک جدول در مواقعی میتواند بسیار سودمند و کاربردی باشد!  فرض کنید که اندازه جدولمان را کوچک و آن را به محدوده کوچک و مشخصی از اتفاقات محدود کنیم. برای مثال در جدول برای مشاهده روشن شدن چراغ ترمز خودوری جلویی واکنش آغاز عملیات ترمز در نظر گرفته شده باشد! در این صورت استفاده از این جدول بسیار مفید خواهد بود! به زبان دیگر راننده با وقوع شرایط روشن شدن چراغ ترمز ماشین جلویی یک واکنش سریع و نسبتا ساده را آغاز خواهذد کرد. اصطلاحا به توضیحات بالا قوانین ِ شرایط-واکنش میگویند.

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

 

  • Function SIMPLE-REFLEX-AGENT(Precept) returns action
  • Static: rules, a set of condition-action rules
  • State <— lNTERPRET-lNPUT(Precept)
  • Rule <- RULE-MATCH(State, rules)
  • Action <- RULE-ACTION[Rule]
  • return action

عامل هایی که خود را با محیط اطراف وقف میدهند

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

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

آیا برای رفع مشکل رشد و تغییرات محیط اطراف که در طول زمان با آنها روبرو هستیم راه حلی برای ارائه به ذهن شما میرسد؟ آن عده از دوستان که به عامل واکنشی ساده علاقه دارند تلاش میکنند تا با این پیشنهاد که حالت دوم را نیز به جدول نگاشت اضافه کنیم مشکل را رفع کنند در صورتی که این کار اشتباه است! با این کار در واقع به خانه اول بازگشته ایم و نهایتا برای حل مسائل پیچیده خود مجبور به ساخت جدولی خواهیم شد که عملا قادر به پیاده سازی آن نخواهیم بود! در اینجاست که ممکن است با خود زمزمه کنید که ای کاش عاملی داشتیم که میتوانست دانش شرایط-واکنش خود را بروز رسانی نماید. در این صورت مشکلات بدون دخالت و تغییر در اصل موضوع به خودی خود حل میشدند. این در واقع مفهوم عامل هایی است که خود را با محیط اطراف وقف میدهند. برای طراحی چنین عامل هایی به فهم و پیاده سازی دو دانش نیازمندیم.

  • اول آنکه عامل باید بداند که محیط اطراف چگونه رشد و تغییر میکند.
  • دوم آنکه عامل باید از نتیجه تغییرات ناشی از واکنش خود بر محیط آگاه باشد.

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

عامل های هدف گرا

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

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

برای مثال فرض کنید که راننده هوشمند قصد دارد تا مسیری را از میان خیابان های تو در تو یک شهر بزرگ برای رسیدن به مقصد  انتخاب نماید. (Google Map یک مثال کاربردی آن میباشد) آیا این کار به سادگی انتخاب یک واکنش خواهد بود؟! نکته ی مهمی که باید به آن توجه داشت این است که در عامل های هدف گرا مکانیزم تصمیم گیری شباهتی به مکانیزم استراتژی واکنشی ساده ندارد. در این عامل ها باید همواره به این دو سوال جواب داد.

  • اگر من این واکنش را انجام دهم چه اتفاقی (اتفاقات ناشی از یک واکنش) خواهد افتاد؟
  • آیا انجام این واکنش (ها) مرا به هدف میرساند؟

در عامل های واکنشی ساده هیچ گاه چنین سوالاتی به صورت ضمنی مطرح نمیشوند زیرا به علت وضوح مسئله و شرایط پیش آماده، واکنش کاملا واضح و قطعی خواهد بود. همانطور که پیشتر نیز گفتیم به آنها وضعیت شرایط-واکنش میگویند. در واقع در این عامل ها برای شرایط خاص، واکنش های خاصی توسط طراح برنامه نویسی شده است. (مثال ترمز). بر اساس کتاب راسل عامل های هدف گرا در عین انعطاف پذیری بالا در شرایط گوناگون، از بازدهی پایینی برخوردارند. این موضوع را میتوانید شخصا در مطالبی که در مورد روش های جستجو بحث خواهیم کرد بررسی و قضاوت نمایید.

عامل های مبتنی بر سودمندی

گاهی اوقات تنها رسیدن به هدف نیست که در افزایش بازدهی عامل هوشمند موثر است. برای مثال فرض کنید میخواهیم از تهران به چالوس سفر کنیم. برای این سفر انتخاب های متعددی میتواند توسط راننده هوشمند انجام شود. اگر قرار باشد راننده هوشمند در محاسبات خود تنها به رسین به هدف توجه کند ممکن است در طول سفر خود از زاهدان عبور نماییم! دلیل این اتفاق کاملا واضح است. در این مسئله برای عامل هیچ اهمیتی ندارد که کدام مسیر را انتخاب نماید! تنها موردی که برای عامل اهمپیت دارد رسیدن به هدف است! بدین ترتیب در این مثال سفر 5 ساعته ما به 50 ساعت افزایش پیدا خواهد کرد و عملا هوشمندی عامل مورد نظر شکست خورده و فاقد ارزش میباشد. (در مطالبی که مرتبط با الگورتیم های جستجوی هدف میباشند این مشکل را به وضوح مشاهده خواهید کرد.) پس میتوان نتیجه گیری نمود که  در مسئله فوق عواملی جز هدف وجود دارند که در استراتژی انتخاب واکنش ها تتاثیر چشم گیری میگذارند. اگر بخواهیم خیلی ساده عامل های مبتنی بر سودمندی را تعریف نماییم میتوانیم بگوییم اگر دو عامل داشته باشیم که برای حل یک مسئله یکسان دو مجموعه واکنش را به عنوان خروجی بازگردانند (دو راه حل متفاوت) بطوری یکی از این دو مجموعه بر دیگری برتری داشته و ترجیح داده شود (هزینه ی کمتری داشته باشد) میگوییم سودمندی یک عامل از دیگری بیشتر است. در کتاب راسل مفهوم سودمندی را فانکشنی دانسته که میتواند وضعیت عامل را به یک عدد حقیقی نسبت داده که این عدد نشان دهنده میزان کسب موفقیت توسط عامل میباشد. استفاده از چنین عاملی در دوحالت باعث گرفتن تصمیم عاقلانه در زمان رخ دادن مشکل بین اهداف میشود.

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

 

 

3 Comments

Add a Comment

Your email address will not be published. Required fields are marked *

Copy Protected by Chetan's WP-Copyprotect.