کارگزار هوشمند

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو


کنشگر هوشمند یا کارگزار هوشمند (به انگلیسی: Intelligent agent)، در مبحث هوش مصنوعی به موجودی گفته می‌شود که در یک محیط، اطراف خود را شناخته و اعمالی را روی محیط انجام می‌دهد و کلیه اعمالی که انجام می‌دهد در جهت نیل به اهدافش می‌باشد. این سیستم‌ها امکان یادگیری دارند و سپس از دانش اکتسابی خود برای انجام اهداف خود استفاده می‌کنند. این کنشگر‌ها ممکن است بسیار ساده یا پیچیده باشند. بطور مثال ماشین‌های کوکی که با برخورد به دیوار، راه خود را عوض می‌کنند نمونه‌ای از کنشگر‌های هوشمند هستند.

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


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


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


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


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

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