5-2-3-1- حسگرها 67
5-2-3-2- پایگاه دانش عامل68
5-2-3-3- تابع ارزیابی محیط70
5-2-3-3-1- نحوه تشخیص اطلاعات و نگهداری الگوهای recur در جریان داده70
5-2-3-3-2- نحوه استخراج الگوهای recur70
5-2-3-3-3- نحوه بروزرسانی اطلاعات مربوط به الگوهای recur73
5-2-3-3-4- نحوه محاسبه وقوع احتمال وقوع یک الگوی خاص74
5-2-3-4- تابع سودمندی75
5-2-3-5- بخش تصمیمگیری و Planning79
5-2-3-5-1- بخش تصمیمگیری79
5-2-3-5-2- Planning83
5-2-3-6- بخش Action86
5-3- رویکرد پیشنهادی برای فاز دوم مساله87
5-3-1- عاملهای مشتری88
5-3-2- عامل صفحه زرد90
5-3-3- عاملهای دادهکاو91
5-3-3-1- معماری عاملهای دادهکاو92
5-3-3-1-1- تابع BRF94
5-3-3-1-2- تابع Generate Options95
5-3-3-1-3- تابع فیلتر95
5-3-3-1-4- بخش Actions96
5-3-3-1-5- Plan های عامل97
5-3-3-1-5- 1- Plan مربوط به طبقهبندی97
5-3-3-1-5-2- Plan مربوط به تطبیق طبقهبند 98
5-3-3-1-5-3- Plan مربوط به خرید و فروش قواعد با استفاده از مذاکره101
5-4- جمعبندی111
6. فصل ششم – آزمایشات و نتایج113
6-1- مقدمه114
6-2- محیط عملیاتی114
6-3- مجموعه دادههای مورد استفاده116
6-3-1- مجموعه دادههای استاندارد116
6-3-2- مجموعه دادههای واقعی117
6-4- معیارهای ارزیابی و روشهای مورد استفاده برای مقایسه117
6-5- آزمایشات انجام شده118
6-5-1- آزمایشات مربوط به فاز اول119
6-5-2- آزمایشات مربوط به فاز دوم128
6-6- جمعبندی130
7. فصل هفتم- جمعبندی و نتیجهگیری132
فهرست مراجع136
فهرست اشکال
شکل 1-1- معماری BDI در عامل15
شکل 3-1- درخت تحقیق مربوط به طبقهبندی در مبحث دادهکاوی34
شکل 3-2- طبقهبندی مبتنی بر EnsembleError! Bookmark not defined.44
شکل 3-3- چارچوب روش On-Demand47
شکل 3-4- نمایی از سیستم OLIN49
شکل 3-5- پروسه SCALLOP53
شکل 5-1- نمودار ترتیب عملکرد عامل پیشنهادی66
شکل 5-2- معماری عامل پیشنهادی67
شکل 5-3- پنجره نظاره بر روی جریان دادهها68
شکل 5-4- گراف ایجاد شده از روی رشته مفهومها71
شکل 5-5- محل تجمع الگوهای استخراج شده از رشته مفهومها73
شکل 5-6- میزان محاسبه شده احتمالها به ازای مقادیر مختلف K81
شکل 5-7- شبه کد Plan کلی عامل83
شکل 5-8- نسبت واریانس به حاصلضرب 50 متغیر دارای مجموع ثابت85
شکل 5-9- وزن دهی چند داده مختلف86
شکل 5-10- نمایی کلی از سیستم چندعامله ایجاد شده88
شکل 5-11- معماری BDI عامل دادهکاو93
شکل 5-12- بخشی از جریان داده و قواعد استخراج شده از آن99
شکل 5-13- بخشی از جریان داده و قواعد استخراج شده از آن101
شکل 6-1- کد نمونه برای استفاده از بسته نرم افزاری weka115
شکل 6-2- زمان لازم بر حسب میلی ثانیه برای دادههای Stagger 120
شکل 6-3- زمان مصرف شده برای تطبیق طبقهبند120
شکل 6-4- نمودار مربوط به زمان پردازش روشهای مختلف برای دادههای HyperPlan 121
شکل 6-5- زمان مصرف شده برای تطبیق طبقهبند 121
شکل 6-6- نمودار مربوط به زمان پردازش روشهای مختلف برای دادههای Nursery 122
شکل 6-7- زمان مصرف شده برای تطبیق طبقهبند برای دادههای Nursery 122
شکل 6-8- عملکرد روشهای مختلف بر روی مجموعه داده HyperPlan 124
شکل 6-9- نمودار عملکرد روشهای مختلف بر روی مجموعه داده HyperPlan در یک بازه کوچکتر 124
شکل 6-10- نمودار عملکرد روشهای مختلف بر روی مجموعه داده HyperPlan در یک بازه کوچکتر 125
شکل 6-11- زمان مصرف شده برای تطبیق طبقهبند برای دادههای HyperPlan 125
شکل 6-12- عملکرد روشهای مختلف بر روی مجموعه داده Stagger 126
شکل 6-13- زمان مصرف شده برای تطبیق طبقهبند برای دادههای Stagger 126
شکل 6-14- عملکرد روشهای مختلف بر روی مجموعه داده Nursery 127

در این سایت فقط تکه هایی از این مطلب با شماره بندی انتهای صفحه درج می شود که ممکن است هنگام انتقال از فایل ورد به داخل سایت کلمات به هم بریزد یا شکل ها درج نشود

شما می توانید تکه های دیگری از این مطلب را با جستجو در همین سایت بخوانید

ولی برای دانلود فایل اصلی با فرمت ورد حاوی تمامی قسمت ها با منابع کامل

اینجا کلیک کنید

شکل 6-15- زمان مصرف شده برای تطبیق طبقهبند برای دادههای Nursery 127
شکل 6-16- نمودار نتایج حاصل از طبقهبندی توزیع شده مجموعه داده Nursery 130
فهرست جدولها
جدول 1-1- ویژگیهای یک عامل 11
جدول 3-1- ماتریس حاصل از روش LWClass51
جدول 3-2- مقایسه تکنیکهای ذکر شده54
جدول 5-1- ساختار اطلاعاتی ذخیره شده برای هر مفهوم و الگو69
جدول 5-2- ساختار اطلاعاتی مربوط به وقوع الگوی “CFDA”75
جدول 5-3- نمونه ای از خروجی تابع سودمندی عامل81
جدول 5-4- اطلاعات مورد استفاده برای تخمین سودمندی یک قاعده105
جدول 6-1- دقت طبقهبندی روشهای مختلف128
جدول 6-2- نتایج حاصل از طبقهبندی توزیع شده مجموعه داده Nursery در سه مفهوم مختلف130
فصل اول
معرفی و آشنایی با مفاهیم اولیه
فصل اول
معرفی و آشنایی با مفاهیم اولیه
1-1- مقدمهای بر دادهکاوی

دادهکاوی به معنای یافتن نیمه خودکار الگوهای پنهان موجود در مجموعه دادههای5 موجود میباشد[38]. دادهکاوی از مدلهای تحلیلی ، کلاس بندی و تخمین و برآورد اطلاعات و ارائه نتایج با استفاده از ابزارهای مربوطه بهره می گیرد. میتوان گفت که داده کاوی در جهت کشف اطلاعات پنهان و روابط موجود در بین دادههای فعلی و پیشبینی موارد نامعلوم و یا مشاهده نشده عمل میکند. برای انجام عملیات دادهکاوی لازم است قبلا روی دادههای موجود پیشپردازشهایی انجام گیرد. عمل پیش پردازش اطلاعات خود از دو بخش کاهش اطلاعات و خلاصهسازی و کلیسازی دادهها تشکیل شده است. کاهش اطلاعات عبارت است از تولید یک مجموعه کوچکتر، از دادههای اولیه، که تحت عملیات دادهکاوی نتایج تقریبا یکسانی با نتایج دادهکاوی روی اطلاعات اولیه به دست دهد[38]. پس از انجام عمل کاهش اطلاعات و حذف خصایص غیر مرتبط نوبت به خلاصهسازی و کلیسازی دادهها می رسد. دادههای موجود در بانکهای اطلاعاتی معمولا حاوی اطلاعات در سطوح پایینی هستند، بنابراین خلاصهسازی مجموعه بزرگی از دادهها و ارائه آن به صورت یک مفهوم کلی اهمیت بسیار زیادی دارد. کلیسازی اطلاعات، فرآیندی است که تعداد زیادی از رکوردهای یک بانک اطلاعاتی را به صورت مفهومی در سطح بالاتر ارائه می نماید. خود روشهای دادهکاوی به سه دسته کلی تقسیم میشوند که عبارتند از خوشهبندی، طبقهبندی و کشف قواعد وابستگی. در ادامه هر یک از این روشها را بطور کلی معرفی مینماییم.
1-1-1- خوشهبندی
فرآیند خوشهبندی سعی دارد که یک مجموعه داده را به چندین خوشه تقسیم نماید بطوریکه دادههای قرار گرفته در یک خوشه با یکدیگر شبیه بوده و با دادههای خوشههای دیگر متفاوت باشند. در حال حاضر روشهای متعددی برای خوشهبندی دادهها وجود دارد که بر اساس نوع دادهها، شکل خوشهها، فاصله دادهها و غیره عمل خوشهبندی را انجام میدهند. مهمترین روشهای خوشهبندی در زیر معرفی شدهاند:
* روشهای تقسیمبندی : روشهای خوشهبندی که بروش تقسیم بندی عمل میکنند، دادههای موجود در یک مجموعه داده را به k خوشه تقسیم میکنند، بطوریکه هر خوشه دو خصوصیت زیر را داراست :
o هر خوشه یا گروه حداقل شامل یک داده میباشد.
o هر داده موجود در مجموعه داده دقیقا به یک گروه یا خوشه تعلق دارد.
معیار اصلی در چنین مجموعه دادههایی میزان شباهت دادههای قرار گرفته در هر خوشه میباشد. در حالیکه دادههای قرار گرفته در دو خوشه مختلف از نظر شباهت با یکدیگر فاصله زیادی دارند. مقدار k که بعنوان پارامتر استفاده میگردد، هم میتواند بصورت پویا تعیین گردد و هم اینکه قبل از شروع الگوریتم خوشهبندی مقدار آن مشخص گردد.
* روشهای سلسله مراتبی : روشهای سلسله مراتبی به دو دسته کلی روشهای bottom-up و روشهای top-down تقسیم میگردند. روشهای سلسله مراتبی bottom-up به این صورت عمل میکنند که در شروع هر کدام از دادهها را در یک خوشه جداگانه قرار میدهد و در طول اجرا سعی میکند تا خوشههایی نزدیک به یکدیگر را با هم ادغام نماید. این عمل ادغام تا زمانی که یا تنها یک خوشه داشته باشیم و یا اینکه شرط خاتمه برقرار گردد، ادامه مییابد. روشهای top-down دقیقا بطریقه عکس عمل میکنند، به این طریق که ابتدا تمام دادهها را در یک خوشه قرار میدهد و در هر تکرار از الگوریتم، هر خوشه به خوشههای کوچکتر شکسته میشود و اینکار تا زمانی ادامه مییابد که یا هر کدام از خوشهها تنها شامل یک داده باشند و یا شرط خاتمه الگوریتم برقرار گردد. شرط خاتمه معمولا تعداد کلاستر یا خوشه میباشد.
* روشهای مبتنی بر چگالی : اکثر روشهای خوشهبندی که بروش تقسیمبندی عمل میکنند معمولا از تابع فاصله بعنوان تابع معیار خود بهره میبرند. استفاده از چنین معیاری باعث میگردد که الگوریتم خوشهبندی تنها قادر به ایجاد خوشههایی با اشکال منظم باشد. در صورتیکه اگر خوشههای واقعی در دادهها دارای اشکال غیرمنظمی باشند، این الگوریتمها در خوشهبندی آنها با مشکل مواجه میگردند. برای حل اینگونه مشکلات یکسری از روشها برای خوشهبندی پیشنهاد گردیدهاند که عمل خوشهبندی را بر مبنای چگالی دادهها انجام میدهند. ایده اصلی در این روشها بر این اساس است که خوشهها تا زمانی که دادههای قرار گرفته همسایگی خوشهها از حد معینی بیشتر باشد، رشد میکنند و بزرگ میشوند. چنین روشهایی قادرند خوشههایی با شکلهای نامنظم نیز ایجاد نمایند.
البته دسته دیگری از روشهای خوشهبندی مانند روشهای مبتنی بر گرید، روشهای مبتنی بر مدل و … وجود دارند که میتوانید آنها را در ]38[ مطالعه نمایید.
1-1-2- کشف قواعد وابستگی
بحث قواعد وابستگی به مقوله کشف عناصری یا المانهایی در یک مجموعه داده میپردازد که معمولا با یکدیگر اتفاق میافتند و بعبارتی رخداد آنها بنوعی با یکدیگر ارتباط دارد. بطور کلی هر قاعده یا rule که از این مجموعه داده بدست میآید، دارای شکل کلی بصورت میباشد که نشان میدهد چنانچه الگوی X اتفاق بیفتد، با احتمال بالایی الگوی Y نیز اتفاق خواهد افتاد. برای مطالعه بیشتر در مورد مقوله کشف قواعد وابستگی میتوانید به ]38[ مراجعه نمایید.
1-1-3- طبقهبندی
فرایند طبقهبندی در واقع نوعی یادگیری با ناظر میباشد که در طی دو مرحله انجام میگردد. در مرحله اول مجموعهای از دادهها که در آن هر داده شامل تعدادی خصوصیت دارای مقدار و یک خصوصیت بنام خصوصیت کلاس میباشد، برای ایجاد یک مدل داده بکار میروند که این مدل داده در واقع توصیف کننده مفهوم و خصوصیات مجموعه دادههایی است که این مدل از روی آنها ایجاد شده است. مرحله دوم فرآیند طبقهبندی اعمال یا بکارگیری مدل داده ایجاد شده بر روی دادههایی است که شامل تمام خصوصیات دادههایی که برای ایجاد مدل داده بکار گرفته شدهاند، میباشد، بجز خصوصیت کلاس این مقادیر که هدف از عمل طبقهبندی نیز تخمین مقدار این خصوصیت میباشد.
الگوریتمها و روشهای مختلفی برای طبقهبندی تاکنون پیشنهاد شدهاند که برای مثال میتوان از روشهای طبقهبندی با استفاده از درخت تصمیم، طبقهبندی بیزین، SVM ، طبقهبندی با استفاده از شبکههای عصبی، طبقهبندی مبتنی بر قواعد و … ]56[ نام برد. در اینجا ما قصد نداریم وارد مباحث مربوط به الگوریتمها و روشهای طبقهبندی شویم و تنها روش طبقهبندی مبتنی بر قواعد را بدلیل استفاده از آن در فاز دوم پروژه در اینجا معرفی خواهیم نمود. در صورت نیاز به مطالعه بیشتر میتوانید به فصل ششم مرجع ]38[ مراجعه نمایید.
1-1-3-1- طبقهبندی مبتنی بر قواعد
در این قسمت قصد داریم نگاهی به بحث طبقهبندی مبتنی بر قواعد داشته باشیم. دراین روش مدل ایجاد شده از روی دادهها بصورت مجموعهای از قواعد میباشد. میتوان گفت که هر قاعده بصورت یک قاعده IF P THEN C میباشد که در آن P مجموعهای از شرایط بوده و C نیز مشخص کننده برچسب یک کلاس یا طبقه خاص میباشد. یک قاعده بدست آمده از مجموعه دادههای آموزشی با استفاده از دو معیار coverage و accuracy میتواند ارزیابی گردد. این دو معیار بصورت زیر تعریف میگردند:
(1-1)
(1-2)
که در تعاریف مذکور تعداد دادههایی در مجموعه داده D است که توسط قاعده پوشش داده میشوند. تعداد دادههایی است که توسط قاعده بدرستی طبقهبندی شدهاند. تعداد دادههای موجود در D میباشد.
نکته مهمی باید اینجا به آن اشاره کرد این بحث است که چگونه دادهها توسط این قواعد طبقهبندی میگردند. همانطور که اشاره گردید این قواعد دارای یک قسمت شرط (P) و یک قسمت C هستند. P یک الگو بصورت () میباشد که هر کدام از ها بیان کننده یک محدودیت برای یکی از خصوصیات هستند. اگر خصوصیات دادهای محدودیتهای مذکور قاعدهای را برآورده سازد آنگاه کلاس یا طبقهبند آن داده، کلاس یا طبقهای است که آن قاعده (C) بیان میکند. اما مساله مهمی که اینجا پیش میآید، این مساله است که اگر یک داده در قسمت شرط (P) بیش از یک قاعده صدق کند، آنگاه کدام قاعده را باید انتخاب کرد. بسته به استراتژیهای مختلف این مشکل جوابهای مختلفی میتواند داشته باشد. دو نمونه از مهمترین استراتژیهایی که معمولا برای حل این مشکل بکار میروند، استراتژیهای size ordering و rule ordering میباشند.
در استراتژی size ordering چنانچه یک داده در بیش از یک قاعده صدق کند، قاعدهای برای طبقهبندی داده انتخاب میشود که خصوصیات بیشتری را برای مشخص نمودن کلاس داده تست کرده باشد. در استراتژی rule ordering از پیش قواعد اولویت دهی میشوند و هنگام طبقهبندی قاعده با اولویت بالاتر، مشخص کننده کلاس داده خواهد بود. اولویت دهی به قواعد هم به طرق مختلفی ممکن است انجام گردد. برای مثال ممکن است که ابتدا کلاسها اولویتدهی شوند و قواعد مربوط به هر کلاس نیز با تاثیر پذیری از این اولویت دهی، اولویت بگیرند. اولویت کلاسها نیز ممکن است بر اساس اهمیت کلاس یا تعداد دادههای متعلق به آن کلاس و یا … مشخص گردد. استراتژیهای دیگری نیز در این زمینه وجود دارند که ما در اینجا درباره آنها صحبت نمیکنیم. مساله دیگری که ممکن پیش بیاید این است که یک داده با هیچکدام از قواعد همخوانی نداشته باشد. برای این مساله هم میتوان راهحلهایی ارائه نمود. معمولترین راهحل این است که چنانچه دادهای با هیچیک از قواعد همخوانی نداشت، کلاسی بعنوان کلاس آن داده انتخاب گردد که بیشترین تعداد داده در بین دادهها به آن کلاس تعلق دارد.
مورد دیگری هم که اینجا قابل ذکر است این مطلب است که قواعدی که برای طبقهبندی استفاده میشوند، چگونه ایجاد میگردند. البته ما نمیخواهیم در اینجا وارد جزئیات مربوط به استخراج قواعد از دادهها آموزشی شویم. برای استخراج قواعد از مجموعه دادههای آموزشی معمولا از دستهای از الگوریتمها بنام الگوریتمهای SCA (sequential covering algorithm) استفاده میگردد که این الگوریتمها در هر مرحله یک قاعده را از دادههای آموزشی یادگرفته و دادههایی را که از آن قاعده پیروی میکنند را از مجموعه دادههای آموزشی خود حذف میکنند و با دادههای باقیمانده، کار خود را ادامه میدهند. از نمونه الگوریتمهای معروف SCA میتوان به AQ، CN2 و RIPPER اشاره نمود. البته قابل ذکر است که برای کشف قواعد میتوان از روشهای ایجاد درخت تصمیم و یا کشف قواعد وابستگی نیز استفاده نمود. در درخت تصمیم هر مسیر از ریشه تا یک برگ را میتوان بعنوان قسمت P قاعده در نظر گرفت و کلاسی که برگ مشخص میکند، قسمت C خواهد بود. در مورد نحوه استفاده از روشهای کشف قواعد وابستگی و استفاده از آنها برای طبقهبندی نیز میتوانید به ]10،11[ مراجعه کنید.
1-2- دادهکاوی توزیع شده
دادهکاوی توزیع شده عبارت است از کشف نیمه خودکار الگوهای پنهان موجود در دادهها، در حالتی که دادهها و یا مکانیزمهای استنتاج، به صورت توزیع شده باشند. غیرمتمرکز بودن دادهها بدان معناست که دادهها به صورت توزیع شده بین دو یا چند سایت بوده و هزینه انتقال تمام یا بخشی از دادهها به یک سایت مرکزی، قابل صرفنظر نباشد. توزیع شده بودن مکانیزمهای استنتاج، به معنای لزوم لحاظ کردن هزینه ارتباط بین مکانیزمهای مختلف در حال استخراج دانش میباشد. این توزیع شدگی ممکن است به دلایل مختلفی از جمله ارائه شدن مکانیزم استخراج دانش در قالب یک سرویس اینترنتی و یا صرفا ناشی از توزیع شدگی دادهها باشد. چنین رویکردی به دادهکاوی، برخلاف جهت کلی تحقیقات انجام شده است که به طور عمده به تکنیکهای متمرکز پرداخته و نه فقط بر تمرکز، که بر همگونی و ساختار مسطح (در مقابل ساختار رابطهای) دادههای هدف متکی میباشند. مسائلی نظیر استخراج دانش در حالت عدم دسترسی به تمام دادههای موجود، برقراری ارتباط موثر و بهینه با سایر مکانیزمهای در حال استخراج دانش و نیز تبادل دانش یا اطلاعات میانی به جای اطلاعات خام، فقط تعدادی از مسائل اولیه دادهکاوی توزیع شده با توجه به تعریف آن میباشند. بنابراین، دادهکاوی توزیع شده در عین حال که به عنوان راه حلی کلیدی برای مشکلات اصلی پیش روی دادهکاوی مطرح میباشد، خود سرمنشاء چالشها و مسائل متعددی گردیده است؛ حل مؤثر این مشکلات منجر به استفاده هرچه بیشتر از دادهکاوی و ایجاد امکانات جدید و بهرهبرداری از پتانسیلهای موجود در قلمروهائی خواهد شد که علیرغم نیاز مبرم به دادهکاوی، استفاده بسیار محدودی از آن به عمل میآورند.
بحث دادهکاوی توزیع شده بطور کلی از دو جهت قابل بررسی میباشد. اول حالتی که در آن دادهها بصورت همسان بین پایگاههای مختلف توزیع شدهاند و دادههای هر پایگاه تمام خصوصیات را دارا هستند. در اینحالت دادهها ممکن است ذاتا توزیع شده باشند و یا اینکه دادهها متمرکز بدلایل امنیتی یا … بین پایگاههای مختلف تقسیم شده باشند. اصطلاحا به این حالت تقسیم شدن، تقسیم شده بصورت افقی (Horizontally Partitioned) ]47[ نیز گفته میشود که ما نیز در فاز دوم پروژه گونهای از این نوع توزیع شدگی را خواهیم دید. حالت دوم حالتی است که در آن دادههای موجود در هر پایگاه داده دارای خصوصیتهای مختلف میباشند. معمولا در این موارد دادهها خود بین پایگاههای مختلف تقسیم گردیدهاند و ذاتا توزیع شده نیستند. از اینرو به اینحالت تقسیم شده عمودی (Vertically Partitioned) ]47[ نیز گفته میشود. برای ایجاد ارتباط بین خصوصیتهای مختلفی که در پایگاههای مختلف نگهداری میشوند اما متعلق به یک داده هستند، معمولا یک خصوصیت مشترک که بعنوان شناسه مورد استفاده قرار میگیرد، بین تمام پایگاههای مختلف نگهداری میشود که رکوردهای مختلف را بهم ارتباط میدهد.
در دادهکاوی توزیع شده نیز مساله کشف و استخراج دانش مشابه دادهکاوی عادی در زمینههای خوشهبندی توزیع شده، کشف قواعد وابستگی بصورت توزیع شده و طبقهبندی توزیع شده (که با نام یادگیری توزیع شده طبقهبند هم از آن نام برده میشود) مورد تحقیق و بررسی قرار دارد،. ضمن اینکه در بحث دادهکاوی توزیع شده، مساله مربوط به محرمانگی دادهها (Privacy Preserving) حتما باید مدنظر قرار گیرد. برای مطالعه بیشتر در مورد دادهکاوی توزیع شده میتوانید به مرجع]47[ مراجعه نمایید.
1-3- عاملها و سیستمهای چندعامله
از آنجا که در طول این پایان نامه با مفهوم عامل و سیستمهای چندعامله سرو کار خواهیم داشت، لذا بنظر میرسد ضروری است تا ابتدا با مفهوم عامل و سیستمهای چندعامله بیشتر آشنا شویم و برخی از خصوصیات عامل و سیستمهای چندعامله را که در طول پایان نامه از آنها استفاده خواهیم کرد، را بیان نماییم.
1-3-1- عامل
با توجه به آنکه از این به بعد به طور گستردهای با عاملها سروکار خواهیم داشت، داشتن تعریفی یکنواخت از عامل در طول گزارش ضروری به نظر میرسد. تعاریف متعددی برای عامل وجود دارد که هیچیک دیگری را نقض نمیکند، بلکه رابطه تعاریف موجود با یکدیگر را میتوان یک رابطه مکمل دانست. به بیان دیگر، تعاریف موجود در مورد عامل، تکمیلکننده یکدیگر میباشند.
یک تعریف مختصر و در عین حال نسبتا کامل و در بردارنده خصوصیات مورد نظر ما از عامل به شرح زیر میباشد:
یک سیستم (نرمافزار) کامپیوتری که خودکار بوده و دارای قابلیتهای اجتماعی، توانائی واکنش و برنامهریزی برای آینده میباشد ]69[.
در تعریف فوق، خودکار بودن به معنای انجام عملیات بدون دخالت مستقیم کاربر (انسان)
میباشد. توانائی واکنش، عبارت است از توانائی پاسخ به محیط. بدیهی است که این پاسخ به محیط باید به موقع انجام شود. توانائی برنامهریزی برای آینده، به معنای داشتن هدف است. هدفدار بودن نه یک مفهوم انتزاعی، بلکه به معنای مشاهده رفتار هدفدار از سوی عامل است. در اینجا قصد نداریم یک بحث طولانی را در مورد نکات بسیار زیادی که در تعریف فوق وجود دارد آغاز کنیم اما چند نکته را به ضرورت بیان میکنیم.
اولین مسئلهای که در تعریف فوق حائز اهمیت فراوان میباشد، مسئله رفتار هوشمند است. همانگونه که مشاهده میشود، اثری از مفهوم هوشمندی در تعریف ارائه شده از عامل وجود ندارد؛ حال آنکه در مطالعات و بررسیهای انجام شده روی عامل، هوشمندی از نکات کلیدی است. سوال مطرح در اینجا آن است که آیا ما قصد داریم بدون در نظر گرفتن هوشمندی به بررسی و استفاده از عامل بپردازیم؟ پاسخ این سوال در تعریف ارائه شده وجود دارد: ترکیب صفات خودکار بودن، قابلیت واکنش و برنامهریزی برای آینده، میتواند از یک منظر به عنوان وجود هوش تلقی شود. این امر با توجه به این نکته مهم بیشتر تجلی مییابد که پیادهسازی هیچ یک از سه مورد فوق، به تنهائی، در یک سیستم کامپیوتری، چندان مشکل نیست. در حقیقت سیستمهای کامپیوتری زیادی وجود دارند که خودکار بودن و رفتار صرفا واکنشی، یا خودکار بودن و رفتار برنامهریزی برای آینده را به صورت همزمان دارا میباشند؛ آنچه که میتواند مسئله را پیچیده ساخته و نمادی از هوش باشد، ترکیب صحیح رفتار واکنشی و برنامهریزی برای آینده است؛ کاری که حتی برای انسانها نیز چندان ساده نیست. انتخاب نوع رفتار واکنشی و مقطع زمانی صحیح برای واکنش به محیط، ضروری است. از سوی دیگر، برنامهریزی برای آینده، اقدامی لازم برای پیشرفت و بهبود میباشد. حال یک مسئله مهم، نحوه ترکیب این دو رفتار کلیدی با یکدیگر و دستیابی به یک حالت تعادل مناسب است که در آن، عامل ضمن واکنش مناسب به تغییرات محیط، هدف یا اهداف خود را نیز دنبال مینماید. برای پیادهسازی این رفتار هوشمند، راهحلها و معماریهای مختلفی ارائه شده است، اگرچه تمام این راهحلها، چنین تعریفی را از هوشمندی ندارند.
1-3-1-1- مقایسه عامل با شی]1[
اشیاء در محیط بصورت مجموعهای از صفات و قابلیتها در نظر گرفته میشوند. قابلیت در اشیاء بصورت مجموعهای از اشیاء پایه که توسط اشیاء در همان محیط صورت میگیرند و باعث تغییر وضعیت محیط میگردند تعریف میشود. شی بر روی وضعیت داخلی خودش کنترل دارد و میتوان گفت شی نوعی خود مختاری بر روی وضعیت خودش به نمایش میگذارد. عاملها در واقع اشیاء فعال هستند، یعنی هر عامل دارای یک موجودیت فعال و دارای رشته کنترلی مختص خود است. به عبارت دیگر عامل مستقل از دیگران و بدون نیاز به کنترل توسط عاملهای دیگر و یا انسان قادر به حیات است. اگر عامل بتواند عملی را انجام دهد و عامل دیگری از این عامل بخواهد که این عمل را برایش انجام دهد، عامل در انجام این عمل خود مختار است. شی بر خلاف عامل بر روی رفتار خودش کنترلی ندارد. یعنی اگر شی متد m را برای فراخوانی در اختیار اشیاء دیگر بگذارد ، آنگاه در صورتی که متد از نظر دسترسی عمومی باشد، دیگر شی بر روی اجرای متد کنترلی ندارد. واضح است که متد شیء باید برای اغلب شیء های دیگر در دسترس باشد، زیرا در یک سیستم شیگرا، شیهای تشکیل دهنده سیستم از طریق همکاری با یکدیگر و فراخوانی متدهای یکدیگر باعث انجام اعمال مختلف سیستم میشوند، بنابراین در سیستمهای شیگرا، مرکز تصمیمگیری در ارتباط با انجام یک عمل در شی، فراخوانی کننده متد شی دیگر است، اما در سیستمهای چندعامله این مرکز تصمیمگیری، در عامل دریافت کننده درخواست، برای انجام عمل بخصوص میباشد. همچنین عاملها دارای اشیاء دارای هدف میباشند. در راستای هدفگرا بودن عامل، نیاز به خودمختاری نیز اهمیت دارد بطوری که عاملها با توجه به هدف تعریف شده بدون دخالت عاملهای دیگر به انجام اعمال خود میپردازند. ارتباطات بین اشیاء از طریق فراخوانی توابع که بصورت مجموعه ای از مسئولیتهای از پیش تعریف شده هستند صورت می گیرد، در حالیکه در عاملها ارتباطات از طریق زبانهای ارتباطی است که هیچ مجموعه ای از پیامها و یا موجودیتهای از پیش تعریف شده ای وجود ندارد.
بطور کلی تفاوت بین اشیاء و عاملها را می توان بصورت زیر خلاصه کرد:
* عاملها نسبت به اشیاء خود مختار هستند. عاملها خودشان نسبت به انجام درخواست عامل دیگر تصمیم می گیرند.
* عاملها قابلیت رفتار انعطاف پذیر دارند. در مدل استاندارد شی گرا این قابلیتها در نظر گرفته نمی شود.
* عاملها فعال هستند.
* ارتباطات بین اشیاء از طریق فراخوانی توابع و ارتباطات در عاملها از طریق زبانهای ارتباطی است.
* عاملها هدف گرا هستند.
جدول (1-1): ویژگیهای یک عامل ]1[
ویژگیواژه لاتینتوصیف مختصر ویژگیخودمختاریAutonomyپرداختن به عمل با توجه به هدف تعریف شده بدون فراخوانیموقعیت گراSituated nessوابسته به محیط و شرایط عملیاتیواکنشیReactiveدرک محیط و پاسخ به تغییرات آنکنش گراPro-activeنمایش رفتارهای هدفمند تعریف شدهیادگیریLearningتغییر رفتارها بر اساس تجربیات قبلیصداقتVeracityعدم انتقال اطلاعات نادرستپایداریPersistencyدازای اهداف و فرآیندهای ذاتی از پیش تعریف شدهاجتماعیSocialهمکاری با سایر عاملها در سیستمهای چند عاملههدف گراGoal-orientedتحقق هدف سیستم تا دستیابی به آن بدون فراخوانیاستدلالReasoningقابلیت استدلال در انتخاب عملسازگاریAdaptivityامکان تطابق اعمال یک عامل با اهداف کلی سیستمحرکتMobilityقابلیت انتقال از یک محیط به محیطی دیگرنوع دوستیBenevolenceمصالحه در منافع مرتبط با عاملهای همکارنمایندگیDelegacyقبول انجام عمل در سیستمهای چند عاملهشایستگیCompetencyارزیابی فعالیت انجام شده در تحقق هدف و تقسیم وظایف در صورت لزوماحساس مسئولیتAmenabilityارزیابی تحقق هدف سیستم و ادامه عمل تا تحقق هدفقدرت استدلالDiscourseقابلیت استدلال در انتخاب عمل وابسته به محیطعقلانیتRationalityانجام اعمال منطقی (نه لزوما درست) برای رسیدن به اهداف
1-3-1-2- معماری عاملها
معماری عاملها یک متدولوژی خاص برای ساخت عاملها فرض میشود، بطوریکه معماری بیانگر چگونگی تقسیم عاملها به پیمانه های مختلف و ارتباط بین آنها میباشد. معماری در برگیرنده تکنیکها و الگوریتمهایی است که این متدولوژی را پشتیبانی میکنند. معماریهای مختلفی برای ساخت عاملها پیشنهاد شده است. میدانیم در بررسی عاملها از مواردی که دارای اهمیت است بحث تکنیک مورد استفاده در آنها میباشد که مسائلی نظیر اخذ دانش ، اکتساب دانش و بازنمایی دانش را در بر میگیرد. انتخاب و طراحی معماری مناسب برای عامل به پارامترهای مختلفی وابسته است. حوزه کاربردی، محیطی که عامل در آن عمل میکند، اطلاعات در اختیار عامل ، نیازها و ویژگیهای مورد انتظار از عامل، میزان انعطاف پذیری، تکنولوژی مورد استفاده ، برای پیاده سازی از جمله مهمترین این پارامترها هستند. معماری عامل به مکانیزمی برای برنامهریزی و اجرا، به شکل همزمان هم نیاز خواهد داشت. بدون چنین مکانیزمی عامل یا در حالت برنامهریزی گرفتار خواهد شد و نمیتواند به موقع به رویدادها پاسخ دهد و یا با تمرکز بسیار زیاد بر روی پاسخگویی به رویدادهای محیط نمی تواند رفتار هدفمند از خود نشان دهد. در چنین محیطهایی عامل باید امکان تطبیق دادن رفتار خودش با محیط را نیز داشته باشد. بدون چنین امکانی عامل توانایی انجام درست وظایفش را به تدریج از دست خواهد داد. در محیطهای پویایی که عاملها باید رفتار خود را با عاملهای دیگر هماهنگ کنند، داشتن مکانیزم هماهنگ سازی با حداقل ارتباط یکی دیگر از نیازهای معماری عامل است.
بطور کلی چهار نوع معماری برای چهار گروه از عاملها مطرح شده است:
1. عاملهای منطقی/نمادین: عاملهایی که تصمیمگیریهای آنها بر مبنای استنتاج منطقی است.
2. عاملهای واکنشی: عاملهایی که در آنها فرایند تصمیمگیری بصورت تابع نگاشتی از وضعیت به عمل است.
3. عاملهای BDI : عاملهایی که در آنها تصمیم گیری بر مبنای کار بر روی ساختار دادههایی است که بیانگر باورها و تمایلات و قصدهای عامل است.
4. عاملهای ترکیبی و چند لایه : عاملهایی که تصمیمگیری در آنها از طریق لایههای نرمافزاری مختلف صورت میگیرد که هر لایه کما بیش استدلالهایی درباره محیط خود در سطوح مختلف انتزاع دارد.
در اینجا ما تنها معماری BDI را که در فصلهای آتی با آن سروکار خواهیم داشت معرفی مینماییم. برای مطالعه بقیه موارد میتوانید به ]69[ مراجعه نمایید.
1-3-1-3- معماری BDI
در معماری BDI رسیدن به هدف و انجام عمل از طرف عامل بر اساس نحوه تصمیمگیری انسانها درباره مسائل مختلف زندگی است که هر روزه انجام میدهند]12،13[. انسانها در هر موقعیتی بر اساس باورهایی که از موقعیت خود و دنیای بیرون دارند، به بررسی انتخابهای ممکن (تمایلات) میپردازند و در نهایت یکی از گزینههای ممکن انتخاب میشود تا رسیدن به آن هدف حاصل آید. بعبارت دیگر در این معماری رسیدن به هدف با توجه به مفهوم “استدلال عملی” صورت میگیرد. از دیدگاه فلسفی، استدلال عملی مستلزم دو فعالیت مهم تصمیمگیری در مورد اهداف موردنظر و چگونگی رسیدن به این اهداف میباشد. بحث اول تحت عنوان بررسی و قیاس و بحث دوم نتیجه گیری بر مبنای تحلیل استدلال عملی مطرح است.
یک عامل میتواند تصمیمگیری کند که چه کاری را انجام دهد و چگونه به این کار برسد. در این راستا عامل سعی در فهم انتخابهای مختلف و سپس یکی از آنها را انتخاب میکند. مساله اصلی در استدلال عملی دستیابی به قصدهای صحیح با توجه به تغییرات محیط است. ممکن است قصد در زمانهای مختلف تغییر کند و لذا نیاز به تجدید نظر نمودن قصد خواهد بود. تجدید نظر خود با هزینههایی همراه است. با توجه به موضوع عنوان شده، برای عاملهای BDI تابعی تحت عنوان تابع تبادل نظر در نظر گرفته میشود که به دو جزء تقسیم میگردد. بخش اول ایجاد کننده انتخابهای و بخش دوم فیلتر کردن انتخابها. بخش ایجاد کننده انتخابها بگونهای است که هر عامل مجموعهای از پیشنهادهای مختلف را تولید میکند. اینکار از طریق تابعی بنام Option که باورهای جاری عامل و قصدهای جاری آنرا میگیرد، صورت میپذیرد و بر این اساس مجموعه انتخابها (تمایلات) تعیین میشود. در بخش فیلتر کردن، عامل بین حالتها و پیشنهادهای مختلف، انتخاب انجام داده و برای رسیدن به آنها بتوافق میرسد. بعبارتی از تابعی که فیلتر نامیده میشود برای انتخاب حالتهای مختلف استفاده مینماید. در ادامه نیاز به بازنمایی اهداف/ قصد برای رسیدن به آنها و نیز اعمالی که میتواند انجام بدهد و بازنمایی محیط خواهد داشت. بطوریکه برای رسیدن به هدف برنامهریزی نموده و اینکار بصورت برنامهسازی اتوماتیک صورت میپذیرد. همانگونه که قبلا نیز مطرح شد، معماری BDI بر مبنای استدلال عملی است. در این معماری، تصمیمگیری بر اساس ساختارهای دادهای است که باورها، تمایلات و قصد عامل را بیان میکنند. باورها بیانگر اطلاعات عامل در مورد وضعیتهای جاری بوده و تمایلات مجموعهای است که کانون فعالیت عامل را بیان کرده، بطوریکه همان اهداف ممکن است. انتخاب اهداف نیز همان قصد است. فرآیند استدلال عملی در عامل BDI در شکل (1-1) بصورت تصویری و صوری آورده شده است. با توجه به این شکل، یک معماری BDI شامل هفت جزء میباشد:
* یک تابع بازنگری باورها (brf) که بعنوان ورودی درک عامل را با نگاشت بر روی محیط دریافت نموده و باورهای جاری را بهنگام میسازد.
* پایگاه دانش باورهای جاری که اطلاعات عامل را در محیط جاریاش بیان میکند.
* تابع تولید گزینههای انتخاب (Option) که ورودی آن باورها و قصد عامل بوده و بر اساس آنها انتخابهای ممکن برای عامل را که در واقع همان تمایلات وی است، تعیین میکند. توصیف صوری این تابع بصورت زیر است:
* مجموعهای از گزینههای معتبر که مبین اعمالی است که عامل میتواند انجام دهد.
* Filter : یک تابع فیلتر که ورودی آن عقاید، باورها و قصدهای عامل بوده و خروجی آن بر اساس فرآیند تبادل نظر (قیاس) اهداف (قصد) جدید عامل است:
* مجموعهای از قصدهای جاری که کانون فعالیت عامل را تعیین میکند.
* Execute : تابع انتخاب عمل بر پایه قصد و اهداف فعلی که عملی را که باید انجام شود، تعیین میکند:
1-3-2- سیستمهای چندعامله
سیستمهای چندعامله، زیر حوزهای در حال رشد از هوش مصنوعی است که هدفش فراهم ساختن اصول ساخت سیستمهای پیچیدهای است که شامل چند عامل و ساز و کارهایی برای هماهنگ سازی رفتارهای این عاملها میباشد. چگونگی هماهنگ سازی دانش، اهداف، مهارتها و برنامهریزیهای عاملها برای حل مسائل در این مقوله میگنجد. عاملها در محیط ممکن است در راستای هدفی خاص و مشترک و یا در راستای اهداف خاص و جداگانهای که در تعامل با یکدیگر میباشند، کار کنند. بحث هماهنگی در سیستمهای چندعامله از مباحث اساسی بوده و بدون آن مزایای تعامل و رفتارهای اجتماعی عاملها محو میگردد. از دیدگاه هوش مصنوعی توزیع شده، سیستم چندعامله اجتماعی از عاملهای مستقل برای حل مساله است که هر عامل کلیه خصوصیات مطرح شده را داراست. سیستمهای چندعامله دارای مشخصات زیر هستند]41[ :
* دانش کافی و لازم برای حل یک مساله در یک عامل وجود ندارد.
* کنترل سیستم توزیع شده است(یک سیستم کنترل کلی وجود ندارد.)
* داده ها غیر متمرکز می باشند.
* محاسبات بصورت غیر همزمان صورت می گیرند.
شکل (1-1)- معماری BDI در عامل
سیستمهای چندعامله راهحلهایی را برای مسائل توزیعشده در محیطهای محاسباتی باز و پویا فراهم میآورند، راه حل چنین مسائلی میتواند بر مبنای چندین عامل که توزیعشدگی مساله، وجود چندین نقطه کنترل، چندین دیدگاه یا علائق در حالت رقابت را پوشش دهند، ارائه گردد. علاوه بر این عاملها برای رسیدن به اهداف خود نیاز به تعامل با یکدیگر خواهند داشت. این تعاملات که در سطح دانش صورت میپذیرد، میتواند یک تبادل عقاید ساده، تمایلات، قصدها برای درخواستانجام عمل باشد که لازم است از طریق هماهنگی، همکاری و یا مذاکره برای مدیریت اعمال وابسته بهم صورت گیرد]42[. این تعامل با تعامل در سایر سیستمهای محاسباتی دو تفاوت عمده دارد: اول آنکه تعامل میان عاملها در سطح دانش صورت میگیرد]42،59[. یعنی این تعاملات بر حسب اینکه چه هدفی باید در چه زمانی، توسط چه افرادی دنبال شود بیان میشوند و دوم اینکه چون عاملها موجودیتهایی انعطاف پذیر هستند که در محیطی که تنها بر روی بخشی از آن کنترل دارند عمل میکنند، تعاملات بین آنها نیز باید انعطافپذیرتر باشد. لذا عاملها باید بتوانند درباره محدوده تعاملات خود در زمان اجرا تصمیمگیری داشته و تعاملاتی را که در زمان طراحی نیز دیده نشدهاند، آغاز کنند و یا به آنها پاسخ دهند. تعامل اجتماعی در عاملها بدین معنی است که روابط موجود میان عاملها در حال تکامل میباشد و روابط جدیدی ایجاد میگردد. بدین منظور لازم است تا قوانینی بمنظور شکل دهی به روابط سازمانی و مکانیزمهایی به منظور تضمین انسجام گروهی و ساختارهایی برای مشخص کردن رفتار کلان مجموعهها در نظر گرفته شود. بعبارتی عاملها، تعاملات سطح بالا و روابط سازمانی، مفاهیم اساسی در سیستمهای چندعامله را بوجود میآورند. یک سیستم چند عامله، از اجزای زیر تشکیل شده است:
* یک محیط که در بر گیرنده اجزاء تاثیرگذار در سیستم چند عامله
میباشد. اما لزوما تمام عوامل تاثیرگذار در حالت سیستم چند عامله، درون آن قرار ندارند.
* تعدادی عامل. به طور معمول هیچگونه پیشفرضی در مورد نوع، معماری و تعداد عاملها در یک سیستم چندعامله وجود ندارد. از این جهت میتوان یک سیستم چند عامله را به یک جامعه انسانی تشبیه نمود.
* مجموعهای از اشیاء درون محیط. هیچ پیشفرض اولیهای در مورد این اشیاء نیز وجود ندارد.


دیدگاهتان را بنویسید