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

تعریف کنشگر
-----------

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

تعاریف متفاوتی از کنشگر یا عامل هوشمند ارائه شده‌است. بر اساس تعریفی از نیکولا کاسابو یک سیستم هوشمند مصنوعی لازم است که ویژگی‌های زیر را داشته باشد::

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

مزایا :

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

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

نحوه کار کنشگر
--------------

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

کنشگر خودمختار
--------------

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

انواع محیط‌ها
-------------

### قابل مشاهده و غیرقابل مشاهده

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

### قطعی و غیر قطعی

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

### دوره‌ای یا غیر دوره ای

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

### ایستا و پویا

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

### گسسته و پیوسته

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

ساختار کنشگرهای هوشمند
----------------------

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

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

{\displaystyle f:P^{\ast }\rightarrow A}

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

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

معماری
------

(Weiss 2013) چهار کلاس برای معماری عامل ها پیشنهاد می کند :

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

(Russell و Norvig 2003) عامل ها را بر اساس میزان هوشمندی و قابلیت ها به 5 کلاس تقسیم می کند 

1. عامل واکنشی ساده
2. عامل واکنشی مبتنی بر مدل
3. عامل مبتنی بر هدف
4. عامل مبتنی بر سودمندی
5. عامل یادگیرنده

### کلاس ها

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

کنشگرهای واکنشی ساده
--------------------

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

منابع
-----

* مشارکت‌کنندگان ویکی‌پدیا. «Intelligent agent». در *دانشنامهٔ ویکی‌پدیای انگلیسی*، بازبینی‌شده در ۲۰ نوامبر ۲۰۰۹.

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

1. ↑  According to the definition given by (Russell و Norvig 2003، chpt. 2)
2. ↑  Some definitions are examined by (Franklin و Graesser 1996) and (Kasabov 1998).
3. ↑  (Kasabov 1998)
4. ↑  Poole, David; Mackworth, Alan. "1.3 Agents Situated in Environments‣ Chapter 2 Agent Architectures and Hierarchical Control‣ Artificial Intelligence: Foundations of Computational Agents, 2nd Edition". *artint.info*. Retrieved 28 November 2018.
5. ↑  (Russell و Norvig 2003، ص. 33)
6. ↑  (Russell و Norvig 2003، صص. 46–54)