عامل نرم‌افزاری

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


مقدمه[ویرایش]

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

تعریف عامل:[ویرایش]

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

عامل نرم‌افزاری[ویرایش]

قسمتی از یک نرم‌افزار است که به منظور کمک به یک کاربر یا نرم‌افزاری دیگر در چارچوب روابط واسطه‌ی کار می‌کنند. یک عامل انسانی دارای چشم، گوش و.. به عنوان حسگر و دست و پا و.. به عنوان عملگر است. یک عامل نرم‌افزاریkeystroke ، File Contents و Network Packets را به عنوان ورودی حسگر و از طریقdisplaying on the screen، writing files و Network Packetsبر محیط عمل می‌کند.

چند مثال از عامل‌ها[ویرایش]

در این قسمت چند مثال از agentها را ذکر می کنیم تا در حین آن نحوه کمک رسانی آن‌ها به کاربران را توضیح دهیم:

  • Agentهای خریدار: این نرم‌افزارها به کاربران اینترنتی در پیدا کردن محصولات و خدمات مورد نیازشان کمک می‌کنند. به طور مثال زمانی که فردی برای خرید محصولی به سایت eBay می‌رود، در پایین صفحه لیستی از محصولات است که دیگر خریدارانی که به دنبال آن محصول بودند، به آن‌ها نیز توجه داشته اند. انجام این عمل به این دلیل است که اعتقاد بر این است که سلیقهٔ کاربران به صورت نسبی به هم شبیه است و آنها به دنبال محصولات مشابهی هستند. به این تکنولوژی که با کمک agentها امکان پذیر است، collaborative filtering می‌گویند.
  • Agentهای کاربر: این agentها به منظور انجام کارهای کاربر به طور اتوماتیک به وجود آمده اند. مثلاً بعضی از این agentها ایمیل‌های کاربران را با توجه به نوع درخواستشان طبقه بندی و مرتب می‌کنند. (مثلاً agent ی به نام newshub) یا بعضی دیگر از این agentها به طور اتوماتیک با کمک اطلاعات ذخیره شدهٔ کاربر، فرم‌های اینترنتی را پر می‌کنند. (مثلاً Agent ی به نام Form Filler bot)
  • Agentهای مراقبتی و نظارتی: این agentها برای نظارت و تهیهٔ گزارش از نحوهٔ عملکرد یکی از تجهیزات که معمولاً سیستم‌های کامپیوتری هستند به کار می‌رود. به طور مثال agent هایی که سطح موجودی کارخانه‌ها را ثبت می‌کنند، بر روی قیمت‌های رقبا نظارت می‌کنند و یا بر روند بازار بورس ناظر هستند و گزارش‌هایی به کاربران می‌دهند.
  • Agentهای داده کاوی: این agent که یکی از پرکاربردترین Agent هاست که از فناوری اطلاعات استفاده می‌کند تا روندها و الگوهای مختلف را از روی منابع متعدد اطلاعات کشف کند. کاربر با استفاده از این agentها می‌تواند داده‌های موجود را به شیوهٔ مورد نظرش مرتب کند تا هر اطلاعاتی که می خواهد بیابد. مثالی از این نوع agent ها، Agent هایی هستند که شرایط بازار را دائماً بررسی می‌کنند و آن شرایط را به کاربر یا کارخانه گزارش می‌دهند تا کاربر یا کارخانه بتواند با توجه به آن‌ها تصمیمات صحیح بگیرد.
  • Agentهای هوشمند
  • Agentهای مربوط به موتورهای جستجو

ویژگی‌های عامل ها:[ویرایش]

Software agentها برای اولین بار با هدف ایجاد شیوه‌ای راحت و مطمئن برای انجام خودکار کارهایی به نیابت از کاربر بوجود آمد. تعاریف بسیاری از agentها شده است که تمامی آنها شامل خصوصیات زیر هستند:

  • ماندگاری: انجام مستمر وظایف محول شده و گرفتن تصمیمات مربوط به این که چه زمانی باید عکس العمل نشان دهد.
  • خودکار بودن: انجام خودکار عملیات فوق: انتخاب وظایف، تخصیص میزان اهمیت (prioritization)، رفتار هدف مدارانه، تصمیم گیری بدون دخالت انسان.
  • توانایی‌های اجتماعی: داشتن قدرت کار کردن دست جمعی و برقراری ارتباط و انجام همکاری با سایرین در هنگام انجام یک مسئولیت.
  • واکنش پذیری: داشتن توانایی درک نسبی مفاهیمی که برای آن‌ها کار می‌کنند و واکنش می‌دهند.
  • Proactive : هدفمند و با قصد مشخص است و صرفاً در مقابل محیط واکنش‌های ساده نشان نمی‌دهد.
  • Co-operation: بتواند با سایر عامل‌ها برای رسیدن به یک هدف مشخص همکاری کند، به طوری که شکست یا موفقیت عامل به این رابطه بستگی داشته باشد.
  • Learning -Adaptive :رفتار خود را بر اساس تجربیات پیشین تغییر دهد.
  • Mobility: از یک محیط( محتوای اجرایی) به محیط دیگری برود
  • Flexible: اعمال عامل مکتوب نیست.
  • Character : یک شخصیت قابل باور و حالت احساسی

تقسیم بندی عامل‌های نرم‌افزاری:[ویرایش]

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

  • The Tasks They Perform
  • The Locations of the Agent
  • The Nature of the intelligence
  • The Characteristics that cited above.
  • Their Control Architecture
  • The Range and Effectiveness of Their action
  • The Range of Sensitivity of their senses
  • و ...

تقسیم بندی عامل ها را بر اساس سه ویژگی : Cooperate,Learn ,Autonomous[ویرایش]

  • 1- Interface Agent:

این عامل‌ها کار را با تأکید بر یادگیری و خودمختاری انجام می‌دهند. عامل در اینجا عملی را که توسط کاربر انجام میشود را مشاهده می‌کند و سعی می‌کند راه‌های جدید را یاد بگیرد و سپس سعی می‌کند راه‌های بهتر برای انجام همان کار را پیشنهاد کند. این عاملها، کار خود را از طریق 4 راه انجام می‌دهند: 1- از طریق مشاهده و تقلید از کاربر 2- از طریق دریافت بازخورهای مثبت و منفی از کاربر 3- دریافت دستورالعملهای صریح از کاربر 4- با درخواست advice از دیگر عامل‌ها

  • 2-Collaborative Agents : هدف از کاربرد این عامل‌ها رسیدن به بالاترین اثر کلی از طریق بکارگیری تک تک اعضا است. هوش مصنوعی توزیع شده که زیرمجموعه‌ای از هوش مصنوعی است مربوط به مسائلی است که برای آن‌ها یک حل‌کننده‌ی مسئله کافی نیست، بلکه نیاز به همکاری بین موجودیت‌های مستقل حل مسئله می‌باشد.
  • 3- Information Agents

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

  • 4-Reactive Agents

یک گروه ویژه از عامل‌ها هستند که دارای مدل‌های سمبلیک و درونی از محیط نیستند، بلکه به صورت محرک- پاسخ عمل می‌کنند.

  • 5-Hybrid Agents

عاملهایی که سرشت آن‌ها ترکیبی از 2 یا چند عامل است.

  • 6-Mobile Agents

یک عامل نرم‌افزاری زمانی یک Mobile Agent است که توانایی مهاجرت از یک host به host در یک محیط شبکه ناهمگون را داشته باشد.

منابع[ویرایش]

‎1-http://en.wikipedia.org/wiki/Software_agent

2-S.Franklin, and A.Grasser. “Is it and agent or just o program? A Taxonomy for Autonomous Agents”.In Proceedings of the Third International Workshop On Agents Theories, Architecture and Language,Springer-Verlag,1996.

3-Russell,Stuart J. and Peter Norvng. “Artificial Intelligence: A modern Approach”. Englewood Cliffs, NJ: Prentice Hall,1995. 4-H.Qusay. “Software Agents: Characteristics and Classification”.