عامل هوشمند

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

اگرچه این مفهوم قدمت زیادی در ادبیات پژوهشی و علمی هوش مصنوعی داشته است، ولی در سال 2025 گمانه زنی هایی مبنی بر تناسب این مفهوم (یا گفتمان) برای نمایندگی موج دوم کاربردی سازی هوش مصنوعی (بعد از موج اول که مربوط به چت باتها بود) وجود دارد.

همان طور که "برنامه های کاربردی" بر روی "پلتفرم های رایانشی (مانند سیستم های عامل رایانه ها و گوشی ها)" یک تحول اکوسیستمی ایجاد نمودند (و یک فضا از پیچیدگی مثبت برای امکانات، راهکارها، نوآوری ها و کاربردها را رقم زدند)، می توان برآورد نمود که **عامل های هوشمند** (چه در فضای مجازی-سایبری و چه در فضای فیزیکی-سایبری) بتوانند یک تحول اکوسیستمی (و ایجاد یک فضا از پیچیدگی مثبت) را رقم بزنند. به دیگر سخن، با یک موج از تحول عامل‏گرا (هم در فضای مجازی-سایبری و هم فضای فیزیکی-سایبری) روبرو خواهیم بود.
 
## تعریف کنشگر
کنشگر هر چیزی است که می‌تواند محیطش را از طریق حسگرها درک کند و بر روی محیطش از طریق عمل‌کننده‌ها تأثیر گذارد. یک کنشگر انسانی دارای حس‌کننده‌هایی از قبیل چشم، گوش، لامسه و امثال آن می‌باشد؛ و می‌توان از دست، پا، صحبت کردن و اعمال ارادی به عنوان عمل‌کننده‌ها نام برد. ورودی یک کنشگر نرم‌افزاری می‌توانند چندین متغیر باشد که مقدار آن‌ها را کنشگر می‌خواند سپس بر اساس مکانیزم تصمیم‌گیری یک تصمیم اخذ می‌کند و عملگرهای آن می‌توانند دستورهای مقداردهی چند متغیر دیگر باشد. به عنوان مثال فرض کنید یک کنشگر قرار است متغیر x را بخواند و توان دوم آن را حساب کند و در y قرار دهد. این کنشگر x را می‌خوانند و سپس توان دوم آن را حساب می‌کند و در y قرار می‌دهد.

تعاریف متفاوتی از کنشگر یا عامل هوشمند ارائه شده‌است. بر اساس تعریفی از نیکولا کاسابو یک سیستم هوشمند مصنوعی لازم است که ویژگی‌های زیر را داشته باشد::
* تطبیق قوانین جدید حل مسئله به‌صورت تدریجی
* انطباق آنلاین و در زمان بلادرنگ
* توانایی تجزیه و تحلیل خود از لحاظ رفتار خطا و موفقیت را دارد.
* یادگیری و بهبود از طریق تعامل با محیط (تجسم)
* یادگیری سریع از مقادیر زیادی از داده‌های حجیم
* باید مبتنی بر حافظهٔ ذخیره‌سازی نمونه و دارای قابلیت‌های بازیابی اطلاعات باشد
* دارای پارامترهایی جهت ارائه حافظه‌های کوتاه و بلند مدت، سن، فراموشی و غیره باشد.

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

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

## انواع محیط‌ها
### قابل مشاهده و غیرقابل مشاهده
اگر کنشگر به کل محیط دسترسی داشته باشد و بتواند آن را حس کند می‌گوییم محیط قابل مشاهده است، در غیر این صورت آن را غیرقابل مشاهده یا تا حدودی قابل مشاهده می‌نامیم. مثلاً در محیط کنشگر شطرنج باز کل محیط قابل مشاهده است. طبیعی است که یک مسئله با محیط قابل مشاهده برای طراحان کنشگرها مطلوب تر می‌باشد.

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

### دوره‌ای یا غیر دوره ای
اگر هر دوره از دوره‌های دیگر مستقل باشد می‌گوییم محیط دوره‌ای است. مانند دوره‌های مختلف در مذاکرات چند کنشگره. محیط‌های غیر دوره‌ای به عنوان محیط‌های ترتیبی نیز یاد می‌شوند.

### ایستا و پویا
اگر محیط در زمان تصمیم‌گیری کنشگر تغییر کند آنگاه محیط پویا است؛ و در غیر آن صورت محیط ایستا است. اما اگر محیط در زمان تصمیم‌گیری ثابت بماند اما زمان، کارایی کنشگر را کاهش دهد، محیط را نیمه پویا می‌نامیم.

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

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

برنامه یک عامل ساده می‌تواند به عنوان یک تابع ریاضی f (به نام "تابع عامل ") تعریف شود که هر دنباله از ادراکات ممکن را به یک دنباله از کنش‌های ممکن (که عامل قادر به انجام آنها است)، یا به یک ضریب (به عنوان المان بازخوردی) عملکرد یا ثابت می‌نگارد::

f : P^\ast \rightarrow A

برنامه عامل، در عوض، هر ادراک ممکن را به یک عمل می‌نگارد.

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

## معماری
 چهار کلاس برای معماری عامل ها پیشنهاد می کند :

* عوامل مبتنی بر منطق – که در آن تصمیم گیری در مورد اینکه چه اقداماتی انجام شود از طریق استنتاج های منطقی انجام می شود;
* عامل واکنشی – که در آن تصمیم گیری ها به‌صورت یک فرم ساده از نگاشت مستقیم از وضعیت به کنش انجام می شود;
* عامل باور-میل-قصد – که در آن تصمیم گیری وابسته به ساختارهای داده ای که نمایانگر باور، میل و قصد عامل است، انجام می شودː؛
* معماری لایه ای – که در آن تصمیم گیری از طریق لایه های نرم افزاری مختلف انجام می شود که هر لایه در سطوح مختلف از انتزاع کم و بیش صریحا در مورد محیط استدلال می کنند.

 عامل ها را بر اساس میزان هوشمندی و قابلیت ها به 5 کلاس تقسیم می کند 

# عامل واکنشی ساده
# عامل واکنشی مبتنی بر مدل
# عامل مبتنی بر هدف
# عامل مبتنی بر سودمندی
# عامل یادگیرنده

### کلاس ها

## کنشگرهای واکنشی ساده
در این گونه کنشگرها سعی بر این است که به ازای هر حالت ممکن در دنیا یک عمل مناسب انجام دهیم. برای این کار می‌توانیم حالت محیط را در ستون اول یک جدول قرار دهیم و عمل مربوط به آن را در ستون دوم نکه داری کنیم. به چنین کنشگری وابسته به جدول نیز می‌گویند؛ و به این جدول، جدول حالت-قانون نیز می‌گویند. در همان ابتدا مشخص می‌شود که برای طراحی چنین کنشگری محیط باید کاملاً قابل مشاهده باشد. مهم‌ترین مشکلی که در راه طراحی این کنشگر به وجود می‌آید این است در مسائل دنیای واقعی پر کردن چنین جدولی غیرممکن است. مثلاً برای شطرنج ۳۵۱۰۰ حالت مختلف برای محیط وجود دارد. حال اگر فرض کنیم توانایی پر کردن جدول را داشته باشیم، آنگاه اولاً حافظه (رایانه) لازم را نخواهیم داشت و ثانیاً جستجو جهت یافتن جواب زمان زیادی خواهد گرفت. ساختار این کنشگر در شکل زیر دیده می‌شود.

↔== منابع ==

* 

Artificial Intelligence, A Modern Approach, Russel & Norvige, Printice Hall, 2003, 2nd edition

رده:هوش مصنوعی
رده:ویکی‌سازی رباتیک
رده:هنر هوش مصنوعی