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