عامل هر چیزی است که قادر به درک محیط پیرامون خود از طریق حس گر ها (sensor) و اثر گذاری بر روی محیط از طریق اثر کننده ها (effectors) باشد. عامل انسانی اندام هایی مانند گوش ها ، چشم ها و دیگر ارگان ها برای حس کردن و دست ها ، پاها، بینی و دیگر اندام ها برای اثر گذاری دارد. عامل رباتیک دوربین ها و یابنده های مادون قرمز را به جای حس گر ها و انواع موتور ها را به جای اثر کننده ها جایگزین کرده است. عامل نرم افزاری رشته های بیتی را به عنوان درک محیط و عمل ، کدگذاری می کند.
عامل ها چگونه باید عمل کنند؟
عامل منطقی چیزی است که کار درست انجام می دهد . آشکارا ، این بهتر از آن است که کار نادرست انجام گیرد. اما این چه معنی می دهد؟ به عنوان اولین تخمین می گوییم عمل درست آن است که باعث موفق ترین شدن عامل گردد. اما این بیان مسئله ، تصمیم گیری درباره چگونگی و زمان محاسبه موفقیت عامل را نادیده می گیرد.
معیار کارایی
این واژه را برای چگونگی به کار می بریم. ملاکی که چگونگی و زمان موفقیت یک عامل را تعیین می کند. بنابر این تنها یک معیار ثابت برای تمامی عامل های وجود ندارد.
برای مثال اگر عاملی بخواهد زمینی را تمیز کند معیار هایی چون میزان تمیزی در یک بازه زمانی معیین، مصرف برق و سر و صدای تولید شده در همان بازه زمانی ، تمیز کردن زمین در زمانی کوتاه.
دانش کل و منطق
عامل دانای کل معنی خروجی واقعی اعمال خود را دانسته و بر پایه آن عمل می کند، اما دانش کل در واقعیت غیر ممکن است. برای مثال :
فردی می خواسته از خیابان رد شود . ترافیکی هم نبوده که به او آسیبی برسد. پس منطقی است که از خیابان رد شود. ولی هنگامی که داشته از خیابان رد می شده ، هواپیمایی در همان جا سقوط می کند و او کشته می شود.
آیا می توان گفت که او برای رد شدن از خیابان عملی غیر منطقی انجام داده؟ خیر، چون رد شدن از خیابان اکثرا موفقیت آمیز است و منطقی بودن بر امید موفقیت که درک می شود متمرکز است.
به طور خلاصه آنچه در هر زمانی منطقی است به چهار عامل وابسته است:
معیار کارایی که درجه موفقیت را تعیین می کند.
هر چیزی که تاکنون عامل ادراک نموده است. ما این تاریخچه کامل ادراکه را دنباله ادراکی می نامیم.
آنچه کا عامل درباره محیط می داند.
اعمالی که عامل می تواند صورت دهد.
در مباحث هوش مصنوعی ، عامل هوشمند به موجودی خودمختار گفته میشود که در یک محیط، اطراف خود را شناخته و اعمالی را روی محیط انجام میدهد و کلیه اعمالی که انجام میدهد در جهت نیل به اهدافش میباشد. این سیستمها امکان یادگیری دارند و سپس از دانش اکتسابی خود برای انجام اهداف خود استفاده میکنند. این عاملها ممکن است بسیار ساده یا پیچیده باشند. بطور مثال ماشینهای کوکی که با برخورد به دیوار، راه خود را عوض میکنند نمونهای از عاملهای هوشمند هستند. تعریف عامل: عامل هر چیزی است که میتواند محیطش را از طریق حسگر ها درک کند و بر روی محیطش از طریق عمل کننده ها تاثیر میگذارد و عمل انجام میدهد. یک عامل انسانی دارای حس کننده هایی از قبیل چشم، گوش، لامسه و امثال آن میباشد. و میتوان از دست، پا، صحبت کردن و اعمال ارادی به عنوان عمل کننده ها نام برد. ورودی یک عامل نرمافزاری میتوانند چندین متغیر باشد که مقدار آنها را عامل میخواند سپس بر اساس مکانیزم تصمیم گیری یک تصمیم اخذ میکند و عملگرهای آن میتوانند دستورهای مقداردهی چند متغیر دیگر باشد. به عنوان مثال فرض کنید یک عامل قرار است متغیر x را بخواند و توان دوم آن را حساب کند و در y قرار دهد. این عامل x را میخوانند و سپس توان دوم آن را حساب میکند و در y قرار میدهد. نحوه کار عوامل یک عامل چگونه باید بفهمد که بهترین عمل ممکن چیست؟ عمل درست عملی است که باعث شود عامل موفق ترین باشد. این امر ما را با مساله تصمیم گیری در مورد چگونگی و زمان ارزیابی کردن موفقیت عامل روبرو میکند. اصطلاح میزان کارایی برای موفقیت عامل تعریف میکنیم. گفتنی است که میزان کارایی برای عوامل مختلف متفاوت میباشد. نکته خیلی مهم این است که میزان کارایی یک عامل باید بر اساس محیط تعریف شود. به عنوان مثال فرض کنیم که یک عامل کارش جمع آوری آشغال ها از یک اتاق و دفع آنها باشد، اگر عامل میزان کارایی اش بر حسب اشغال جمع شده تعریف شود آنگاه عامل میتواند آشغال ها را جمع کند و سپس دوباره در اباق بریزد تا بهترین کارایی را کسب کند. اما اگر میزان کارایی بر اساس محیط تعریف شود آنگاه عامل یک بار کار تمیز کردن را انجام میدهد. پس یک عامل محیطش را حس میکند و سپس بر اساس آن تصمیم میگیرد. این مستلزم آن است که با عامل خود مختار و انواع محیط ها آشنا شویم.
عامل خود مختار به عاملی خود مختار میگوییم که تصمیم گیری اش بر اساس ادراکاتش باشد نه بر اساس دانش تزریق شده به آن. در واقع هر چه دانش قبلی یک عامل بیشتر باشد از خودمختاری آن کاهش مییابد و هر چه دانش قبلی کمتر باشد و مکانیزم یادگیری عامل قوی تر باشد، آن عامل خود مختار تر است. انواع محیط ها: قابل مشاهده و غیر قابل مشاهده: اگر عامل به کل محیط دسترسی داشته باشد و بتواند آنرا حس کند میگوییم محیط قابل مشاهده است، در غیر این صورت آنرا غیر قابل مشاهده یا تا حدودی قابل مشاهده مینامیم. مثلا در محیط عامل شطرنج باز کل محیط قابل مشاهده است. طبیعی است که یک مساله با محیط قابل مشاهده برای طراحان عوامل مطلوب تر میباشد. قطعی و غیر قطعی: اگر بتوان حالت بعدی را از حالت فعلی، عمل فعلی و کنشهایی که تا کنون انجام شده به دست بیاوریم، میگوییم که محیط قطعی است. بازهم میتوان از بازی شطرنج برای محیط قطعی مثال زد، چون با محیط فعلی و حرکت فعلی میشود حالت بعدی را به صورت دقیق یافت. قابل توجه است که بدانیم اگر محیط کاملا قابل مشاهده نباشد آنگاه قطعی نخواهد بود. اما اگر با یک حرکت ممکن باشد به چندین حالت برویم محیط غیر قطعی است. دوره ای یا غیر دوره ای: اگر هر دوره از دوره های دیگر مستقل باشد میگوییم محیط دوره ای است. مانند دوره های مختلف در مذاکرات چند عامله. محیط های غیر دوره ای به عنوان محیط های ترتیبی نیز یاد میشوند. ایستا و پویا: اگر محیط در زمان تصمیم گیری عامل تغییر کند آنگاه محیط پویا است. و در غیر آن صورت محیط ایستا است. اما اگر محیط در زمان تصمیم گیری ثابت بماند اما زمان، کارایی عامل را کاهش دهد، محیط را نیمه پویا مینامیم. گسسته و پیوسته: اگر مشاهدات و کنش های مختلف مجزا و تعریف شده باشند، محیط پیوسته است. مانند شطرنج. اما یک عامل بهینه ساز معادلات در محیط پیوسته کار میکند.
ساختار عامل های هوشمند تا کنون در مورد محیط ها و کلیات مربوط به عوامل صحبت کردیم. حال نوبت بررسی ساختارهای مختلف عوامل است. مهم ترین وظیفه ما طراحی برنامه عامل است. برنامه عامل تابعی است که ادراکات را به یک عمل ها نگاشت میکند. معماری عامل ساختاری است که برنامه محاسباتی عامل تر روی آن پیاده سازی میشود. پس در کل معماری از طریق حسگرها ورودی را میگیرد، توسط برنامه تصمیم میگیرد و در نهایت با عملگر ها عمل میکند و روی وحیط تاثیر میگذارد. عامل های واکنشی ساده: در این گونه عوامل سعی بر این است که به ازای هر حالت ممکن در دنیا یک عمل مناسب انجام دهیم. برای این کار میتوانیم حالت محیط را در ستون اول یک جدول قرار دهیم و عمل مربوط به آن را در ستون دوم نکه داری کنیم. به چنین عاملی وابسته به جدول نیز میگویند. و به این جدول، جدول حالت-قانون نیز میگویند. در همان ابتدا مشخص میشود که برای طراحی چنین عاملی محیط باید کاملا قابل مشاهده باشد. مهمترین مشکلی که در راه طراحی این عامل به وجود میآید این است در مسائل دنیای واقعی پر کردن چنین جدولی غیر ممکن است. مثلا برای شطرنج 35100 حالت مختلف برای محیط وجود دارد. حال اگر فرض کنیم توانایی پر کردن جدول را داشته باشیم، آنگاه اولا حافظه لازم را نخواهیم داشت و ثانیا جستجو جهت یافتن جواب زمان زیادی خواهد گرفت. ساختار این عامل در شکل زیر دیده می شود.
در چند پست قبل گفتم که آن چه که در هر زمانی منطقی است به چهار چیز بسته است :
· معیار کارایی که درجه موفقیت را تعیین می کند.
· هر چیزی که تا کنون عامل ادراک نموده است. این تاریخچه ادراکی را دنباله ادراکی می نامیم.
· آن چه که عامل درباره محیط خود می داند.
· اعمالی که عامل می تواند صورت دهد.
این عوامل راهنمای تعریف یک عامل منطقی ایده آل هستند :
«برای هر دنباله ادراکی ممکن ، عامل منطقی ایده آل باید هر کاری را که انتظار می رود باعث حداکثر سازی معیار کارایی می شود، انجام دهد و این عمل بر پایه شواهدی که از طریق دنباله ادراکی آماده شده و هر آنچه که دانش درونی عامل است ، انجام می گردد.»
ابتدا به نظر می رسد که یک عامل منطقی ایده آل می تواند در بعضی موارد نیمه هوشمند ، زیاده روی کند.
مثال : عاملی برای رد شدن از یک خیابان شلوغ ، به خیابان نگاه نمی کند. آن گاه دنباله ي ادراکی او به او نمی گوید که کامیونی با سرعت زیاد در حال نزدیک شدن است . طبق تعریف ، همه چیز برای رد شدن از خیابان درست است.
ولی این تفسیر از دو نظر اشتباه است.
1- منطقی نیست که بدون نگاه کردن از خیابان رد شویم.
2- عامل منطقی واقعی باید نگاه کردن به خیابان برای رد شدن از آن را انتخاب کند. زیرا نگاه کردن به حداکثر سازی کارایی مورد انتظار کمک می کند.
خود مختاری (Autonomy)
مورد دیگری که در تعریف عامل منطقی ایده آل باید لحاظ شود ، بخش دانش درونی است. اگر اعمال عامل ها کاملا بر پایه دانش درونی باشد، چنان چه هیچ توجهی به ادراک خود نکنند ، می گوییم که عامل فاقد خود مختاری است.
مثال : اگر سازنده ي ساعتی پیش بینی کند که صاحب ساعت در چه تاریخی از کالیفرنیا به استرالیا سفر می کند و مکانیزمی در ساعت تعبیه کند که در آن تاریخ 6 ساعت جا به جا شود ، این رفتار به طور عمومی موفقیت عامیز است. اما هوشمندی متعلق به ساعت ساز است.
عاملی که بر مفروضات درونی خود عمل می کند تنها زمانی می تواند موفق باشد که مفروضات درونی او بر قرار باشند و این یعنی فقدان انعطاف پذیری.
مثال : اگر چنین عاملی را که آن را A می نامیم ، برای کار لوله گذاری تعیین کنند و A شامل سه قسمت حفاری ، لوله گذاری و خاکریزی باشد. هنگامی که قسمت لوله گذاری از کار بیافتد ، عامل A به کار خود ادامه می دهد. در نتیجه کاری انجام نمی شود.
عامل هوشمند واقعا خود مختار باید قادر به عمل موفقیت آمیز در دامنه وسیعی از محیط ها باشد و البته باید زمان کافی برای تطبیق نیز به آن داده شود.