مقدمه ای بر سیستمهای خبره

مقدمه ای بر سیستمهای خبره

 مقدمه ای بر سیستم های خبره

سیستم خبره چیست؟

مقدمه ی آموزش سیستم های خبره و هوش مصنوعی
اولین قدم در حل هر مسئله ای تعریف دامنه یا محدوده آن است.  این نکته همانطور که در مورد روشهای برنامه نویسی متعارف صحت دارد، در مورد هوش مصنوعی نیز درست است. اما به خاطر اسراری که از قبل در مورد هوش مصنوعی ( AI ) وجود داشته، هنوز هم برخی مایلند این عقیده قدیمی را باور کنند که ” هر مسئله ای که تا به حال حل نشده باشد یک مسئله هوش  مصنوعی  است”. تعریف متداول دیگری به این صورت وجود دارد ” هوش مصنوعی کامپیوترها را قادر می سازد که کارهایی شبیه به آنچه در فیلمها دیده می شود انجام دهند”.چنین تفکراتی در دهه ۱۹۷۰ میلادی رواج داشت، یعنی درست زمانی که هوش مصنوعی در مرحله تحقیق بود ولی امروزه مسائل واقعی بسیاری وجود دارند که توسط هوش مصنوعی و کاربردهای تجاری آن قابل حلند.

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

 هوش مصنوعی شامل چندین زیر مجموعه است. زیر مجموعه سیستمهای خبره یکی از موفق ترین راه حلهای تقریبی برای مسائل کلاسیک هوش مصنوعی است. پروفسور فیگن بام از دانشگاه استانفورد یکی از پیشکسوتان تکنولوژی سیستم های خبره، تعریفی در مورد سیستمهای خبره دارد : « … یک برنامه کامپیوتری هوشمند که از دانش و روشهای استنتاج برای حل مسائلی استفاده می کند که به دلیل مشکل بودن، نیاز به تجربه و مهارت انسان » (Feigenbaum 82 ). بنابراین سیستم خبره یک سیستم کامپیوتری است که از قابلیت تصمیم گیری افراد خبره، تقلید می نماید. لغت تقلید به این معناست که سیستم خبره سعی دارد در تمام جنبه ها شبیه فرد خبره عمل  کند. عمل تقلید از شبیه سازی قوی تر است چون در شبیه سازی تنها در بعضی موارد شبیه چیزهای واقعی عمل می شود.

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

سیستمهای خبره یکی از شاخه های هوش مصنوعی است که همچون یک فرد خبره با استفاده وسیع از دانش تخصصی به حل مسائل می پردازد. فرد خبره کسی است که در یک زمینه خاص دارای تجربه و مهارت و در یک کلام خبرگی است. بنابراین فرد خبره دارای دانش یا مهارت خاصی است که برای بیشتر مردم ناشناخته و یا غیر قابل دسترسی است. فرد خبره مسایلی را حل می کند که یا توسط دیگران قابل حل نیست و یا او مؤثرترین ( و البته نه ارزانترین) راه حل را برای آن مسئله ارائه می دهد. وقتی سیستمهای خبره اولین بار در دهه ۱۹۷۰ توسعه یافتند، فقط دارای دانش خبرگی بودند. ولی لغت سیستم خبره امروزه اغلب به هر سیستمی اطلاق می شود که از تکنولوژی سیستم خبره استفاده می کند. این تکنولوژی می تواند شامل زبانهای خاص سیستمهای خبره، برنامه ها و سخت افزارهای طراحی شده برای کمک به توسعه و اجرای سیستمهای خبره باشد.

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

شکل ۲-۱ مفهوم بنیانی یک سیستم خبره مبتنی بر دانش را نشان می دهد. کاربر حقایق (یا وقایع) و یا سایر اطلاعات را به سیستم خبره داده و در پاسخ، تجربه، تخصص و توصیه های عالمانه و در یک کلام خبرگی دریافت می کند. از نظر ساختار داخلی، سیستم خبره از دو بخش اصلی تشکیل می شود. بخش اول پایگاه دانش است. این پایگاه حاوی دانشی است که بخش دوم یعنی موتور استنتاج به کمک آن نتیجه گیری می کند. این نتایج، پاسخ سیستم خبره به سوالات کاربر می باشد.

سیستمهای مبتنی بر دانش کارا طوری طراحی شده اند که بتواند به عنوان یک دستیار هوشمند برای افراد خبره عمل کنند. این دستیاران هوشمند به وسیله تکنولوژی سیستمهای خبره طراحی شده اند و دلیل این کار، امکان بسط دانش آنها در آینده می باشد. هر چه دانش بیشتری به یک سیستم دستیار هوشمند اضافه شود، بیشتر شبیه به یک فرد خبره عمل می کند. توسعه یک سیستم دستیار هوشمند می تواند مرحله مهمی در ایجاد یک سیستم خبره کامل باشد. بعلاوه یک دستیار هوشمند می تواند با سرعت بخشیدن به حل مسئله، وقت فرد خبره را آزاد کند. معلمین هوشمند یکی دیگر از کاربردهای هوش مصنوعی هستند. بر خلاف سیستمهای قدیمی آموزش به کمک کامپیوتر، سیستمهای جدید می توانند بسته به زمینه و مفهوم، آموزش یا راهنمایی ارائه دهند (Giarratano 91a).

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

دانش یک فرد خبر درباره حل یک مساله خاص، حوزه دانش فرد خبره نامیده می شود.

طراحی سیستمهای خبره

انتخاب مسئله مناسب

قبل از اینکه شما یک سیستم خبره بسازید باید یک مسئله مناسب انتخاب کنید. مانند هر پروژه نرم افزاری، قبل از اینکه خود را درگیر تعهدات زیادی نسبت به افراد، منابع و زمان برای یک سیستم خبره پیشنهادی نماییم، باید بعضی ملاحظات کلی را در نظر داشته باشیم. هر چند این ملاحظات کلی در مدیریت پروژه هر برنامه معمولی نیز وجود دارد ولی باید به منظور پاسخگویی به نیازهای خاص سیستمهای خبره، آنها را اختصاصی کرد. نوعی نگرش اجمالی و از  بالا به مدیریت ایجاد سیستم خبره در شکل ۶-۱ نشان داده شده است. سه مرحله کلی که در شکل ۱-۶ نشان داده شده دارای ملاحظات تخصصی تری هستند که در بخش ۳-۶ بحث شده است. همچنین برخی ملاحظات تخصصی تر به صورت پرسش و پاسخ مطرح خواهند گردید تا به صورت یک مجموعه راهنماییها برای پروژه های سیستمهای خبره در آیند.

انتخاب الگوی مناسب

چرا ما یک سیستم خبره می سازیم؟

عواید سیستم

سیستم خبره چه عوایدی دارد؟

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

ابزارها

چه ابزارهایی برای ساخت سیستم در دسترس داریم؟

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

این ارتقا، فقط به ابزارهای نرم افزاری محدود نمی شود. بسیاری از ابزارهای دارای جدیدترین فن آوریها که در اواسط دهه ۱۹۸۰ فقط بر روی ماشینهای لیسپ ۰۰۰/۵۰ دلاری کار می کرد بعدها برای اجرا بر روی ریز کامپیوترها و ریزپردازنده های سفارشی بازنویسی گردید. این موضوع باعث شد قیمت سخت افزارهای بکار گیرنده این ابزارها بسیار کاهش یابد. بهترین راهنمایی برای انتخاب ابزار، بررسی مقالات روز و گفتگو با سازندگان سیستمهای خبره است.

هزینه

این کار چه میزان هزینه در برخواهد داشت؟

هزینه ساخت یک سیستم خبره بستگی به افراد، منابع و زمان تخصیص یافته برای ساخت آن دارد. علاوه بر سخت افزار و نرم افزار لازم برای اجرای یک ابزار سیستم خبره، ممکن است هزینه قابل توجهی نیز صرف آموزش آن شود. اگر پرسنل شما در خصوص کار با یک ابزار، کم تجربه یا بی تجربه باشند، آموزش آنها پر هزینه خواهد بود. به عنوان مثال آموزش یک ابزار سیستم خبره که دربردارنده آخرین تکنولوژی است ممکن است ۲۵۰۰ دلار در هفته برای هر نفر هزینه در بر داشته باشد.

مراحل ایجاد یک سیستم خبره

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

مدیریت پروژه

انتظار می رود مدیریت پروژه، موارد ذیل را تأمین نماید. در حقیقت مدیریت پروژه، خود یکی از موضوعات مورد نظر طراحات سیستمها خبره بوده است.

مدیریت فعالیتها  
برنامه ریزی – تعریف فعالیتها

– تعیین اولویت فعالیتها

– احتیاجات منابع

– اهداف شاخص میانی

– مدت فعالیتها

– مسئولیتها

– تعیین زمانهای شروع و پایان

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

– نظارت بر عملکرد پروژه

– برنامه های تحلیل، زمان بندیها و فعالیتهای ثبت شده

مدیریت پیکره بندی محصول  
مدیریت محصول – مدیریت نسخه های مختلف محصول

– مدیریت تغییرات پیشنهادی و انجام ارزشیابی

– تخصیص پرسنل برای انجام تغییرات

– نصب نسخه های جدید محصول

مدیریت منابع

تخمین منابع مورد نیاز

منابع در دسترس

تعیین مسئولیتها برای استفاده بهینه از منابع

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

فعالیتهای لازم برای ایجاد یک سیستم خبره، آن دسته از وظایفند که برای ساخت سیستم لازمند. شکل ۲-۶ یک نگرش سطح بالا از فعالیتهای لازم برای ساخت سیستم را نشان می دهد که شامل مراحلی است که سیستم باید از آنها عبور کند.

مسئله تحویل

سیستم چگونه تحویل داده خواهد شد؟

با این که استفاده از کامپیوترهای (اندازه متوسط) مدرن بسیار آسان بوده و زمان تحویل را نیز کاهش می دهد، ولی اغلب تحویل سیستم بر روی چنین کامپیوترهیی بسیار هزینه بر است. از این گذشته، هزینه نگهداری سالانه نیز این هزینه را به طور قابل توجهی افزایش می دهد.

بسته به تعداد سیستمهای خبره ای که در صف تحویل قرار دارند، مسئله تحویل سیستمهای ساخته شده ممکن است به یک مشکل جدی بدل شود. به همین دلیل مسئله تحویل باید در اولین مرحله ایجاد سیستم مورد نظر قرار گیرد.

حالت ایده آل آن است که سیستم خبره تحویل شده را بتوان روی سخت افزار استاندارد اجرا نمود. ولی بعضی ابزارهای سیستم خبره به یک ریزپردازنده LISP خاص نیاز دارند که هزینه را تا حد زیادی افزایش می دهد.

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

نگهداری و تکامل

چگونه سیستم تکامل یافته و از آن نگهداری می شود؟

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

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

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

خطاها در مراحل ایجاد

همان طور که شکل ۳-۶ نشان می دهد، خطاهای عمده ای که احتمالا در ایجاد سیستم خبره رخ می دهد. با تشخیص مرحله ای که احتمال بروز آن خطا بیشتر است دسته بندی می شود. این خطاها شامل موارد زیر هستند.

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

در پروژه هایی که ماموریت حساسی به عهده دارند و زندگی یا اموال افراد در خطر است، ممکن است لازم باشد از یک رویه رسمی برای تصدیق دانش فرد خبره استفاده شود. یکی از روشهای موفقیت آمیزی که ناسا برای پروازهای فضایی بکار برد استفاده از کمیته فنی پرواز بود که به طور منظم، راه حل مسائل و روشهای تحلیلی بکار رفته در ایجاد راه حلها را مورد بازنگری قرار می داد (Culbert 87). کمیته های فنی از کاربران سیستم، افراد خبره در زمینه های مستقل از هم، سازندگان سیستم و مدیران تشکیل می شود تا همه زمینه های ایجاد سیستم به طور موثر پوشش داده شود.

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

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

خطای معنایی. خطای معنایی زمانی رخ می دهد که مفهوم دانش به درستی منتقل نمی شود. به عنوان یک مثال بسیار ساده فرض کنید یک فرد خبره می گوید «شما می توانید آتش را با آب خاموش کنید.» و مهندس دانش این گونه تعبیر می کند که «آتش سوزیها را می توان با آب مهار کرد.» خطای معنایی زمانی روی می دهد که یا مهندس دانش تعبیر نادرستی از پاسخ فرد خبره داشته باشد و یا فرد خبره، سوال مهندس دانش را به درستی تعبیر نکند و یا هر دوی این موارد.

خطای شکلی. خطاهای شکلی و یا دستور زبانی ساد هستند و زمانی روی می دهد که قاعده یا واقعیت به شکل نادرستی وارد شود. ابزارهای سیستم خبره باید این خطاها را شناسایی کرده و پیغامی مناسب به کاربر ارائه دهند. سایر خطاهایی که در مرحله ساخت پایگاه دانش روی می دهند نتیجه خطاهای موجود در منبع دانش هستند که در مراحل قبلی آشکار نشده اند.

خطاهای موتور استنتاج. مانند هر قسمتی از یک نرم افزار، موتور استنتاج نیز ممکن است دچار خطا شود. اولین باری که یک ابزار سیستم خبره جهت استفاده عمومی آماده می شود باید کلیه خطاهای عمومی آن برطرف شده باشد. ولی گاه خطاهایی وجود دارند که فقط در شرایطی بسیار نادر بروز می کنند که به عنوان مثال قرار گرفتن ۱۵۹ قاعده در دستور کار از آن جمله است. ممکن است بعضی خطاها بسیار ظریف باشند و فقط در تطبیق خاصی از قواعد با واقعیات بروز کنند. به طور کلی خطاهای موتور استنتاج ممکن است در تطبیق قواعد با واقعیات، رفع تناقض و اجرای فعالیتها روی دهند. اگر این خطاها به طور پیوسته رخ ندهند تشخیص آنها بسیار دشوار است. وقتی از ابزار سیستم خبره برای مأموریتهای حساس استفاده می کنید باید مشخص کنید که ابزار چگونه معتبر می شود.

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

خطاهای زنجیره استنتاج. این خطاها ممکن است در اثر عواملی همچون دانش آمیخته با خطا، خطاهای معنایی، خطاهای موتور استنتاج، تخصیص اولویت نادرست به قواعد و ارتباطات برنامه ریزی نشده بین قواعد بروز کنند. خطاهای پیچیده تر در زنجیره های استنتاج مربوط به عم قطعیت قواعد و شواهد، انتشار عدم قطعیت در زنجیره استنتاج و عدم یکنواختی هستند.

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

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

مهندسی نرم افزار و سیستمهای خبره

در قسمت قبل درباره ملاحظات کلی در بکارگیری سیستم خبره بحث کردیم. حال اجازه بدهید با یک دیدگاه فنی تر یعنی با دیدگاه مهندس دانش که سیستم را ساخته است مراحل ساخت سیستم خبر را مرور نماییم.

وقتی سیستم خبره از مرحله تحقیق بیرون آمد، لازم است سطح کیفیت نرم افزار به سطح استاندارد نرم افزارهای معمولی ارتقاء یابد. متدولوژی پذیرفته شده برای ایجاد نرم افزارهای کیفی در حد استانداردهای تجاری، صنعتی و دولتی، مهندسی نرم افزار است.

پیروی از استانداردهای مناسب برای ایجاد یک محصول از اهمیت زیادی برخوردار است در غیر این صورت احتمالا محصول کیفیت خوبی نخواهد داشت. در حال حاضر سیستمهای خبره را باید محصولی مانند سایر محصولات نرم افزاری نظیر پردازشگر لغات، برنامه پرداخت حقوق، بازیهای کامپیوتری و غیره در نظر گرفت.

با این وجود تفاوت مشهودی بین مأوریت سیستمهای خبره و سایر محصولات مصرفی نظیر پردازشگر لغات و بازیهای ویدئویی وجود دارد. معمولا تکنولوژی سیستمهای خبره وظیفه دارد دانش و خبرگی را برای موقعیتهای سطح بالا و احتمالا خطرناک که زندگی و اموال افراد در خطر است تهیه کند. این مأموریت حساسی است که در قسمت قبلی نیز به آن اشاره شد.

این مأمویت های حساس و بحرانی با مأموریت ساده پردازشگر لغات و برنامه های ویدئویی یعنی افزایش کارایی و تفریح کردن تفاوت بسیار زیادی دارد. زندگی هیچ انسانی نمی تواند به سیستمهای خبره، سیستمهایی با توان عملکرد بالا هستند که باید کیفیت بسیار خوبی داشته باشند در غیر این صورت با اشکالات زیادی رو به رو خواهند شد. همان طور که در شکل ۴-۶ نشان می دهد مهندسی نرم افزار روشهایی برای ساخت نرم افزار کیفی ارائه می دهد.

تشریح کلمه کیفیت به صورت کلی دشوار است زیرا این کلمه برای افراد معانی گوناگونی دارد. یکی از تعاریف کیفیت این است که آن را به صورت مشخصه های لازم یا مطلوبیک شی تعریف کنیم که در مقیاسهای خاصی تعیین شده است. کلمه شی در اینجا به معنای هر نوع سخت افزار یا نرم افزار یا محصولات نرم افزاری است. مشخصه ها و مقادیر آنها شاخص نامیده می شوند زیرا از آنها برای اندازه گیری اشیاء استفاده می شود. به عنوان مثال، قابلیت اطمینان اندازه گیری شده یک دیسک درایو، شاخصی برای کیفیت آن است. یکی از معیارهای این مشخصه، متوسط زمان بین خرابی (MTBF) درایوهاست. MTBF یک درایو قابل اطمینان، حدود ۱۰۰۰ ساعت است، در حالی که برای یک درایو غیر قابل اطمینان ممکن است حدود ۱۰۰ ساعت باشد.

جدول ۱-۶ فهرستی از چند شاخص ارائه داده است که ممکن است در ارزیابی کیفیت یک سیستم خبره کاربرد داشته باشند. این شاخصها فقط جنبه راهنما دارند زیرا یک سیستم خبره مخصوص ممکن است برخی از این شاخصها یا شاخصهای دیگری داشته باشد. در هر حال بهتر است که فهرستی از شاخصهای لازم تهیه شود تا از آن بتوان در تشریح کیفیت استفاده کرد.

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

چرخه حیات سیستم خبره

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

هزینه های نگهداری

برای نرم افزارهای معمولی، معمولا ۶۰ تا ۸۰ درصد کل هزینه نرم افزار مربوط به هزینه نگهداری است که حدود ۲ تا ۴ برابر هزینه ایجاد سیستم است. اگر چه هنوز به دلیل جدید بودن سیستمهای خبره، اطلاعات کمی درباره نگهداری آنها در دست است ولی احتمالا برای سیستمهای خبره ارقام فوق صادق نیستند. اگر برنامه های معمولی با الگوریتم های شناخته شده نیاز به چنین هزینه زیادی جهت نگهداری دارند احتمالا سیستمهای خبره نیاز به هزینه بیشتری خواهند داشت زیرا این سیستمها مبتنی بر دانش تجربی و هیوریستیکها هستند. سیستمهای خبره ای که حجم بالایی از استنتاجها را در شرایط عدم اطمینان انجام می دهند هزینه نگهداری و ارتقاء بالاتری را می طلبند.

مدل آبشاری

برای نرم افزارهای معمولی، مدلهای چرخه حیات متعددی ایجاد شده است. مدل آبشاری کلاسیک، مدل اصلی چرخه حیات است که در شکل ۵-۶ نمایش داده شده است. این مدل برای برنامه نویسان نرم افزارهای معمولی بسیار آشنا است. در مدل آبشاری هر مرحله با یک فعالیت تصدیق و اعتبارسنجی (V&V) پایان می یابد تا مشکلات آن مرحله به حداقل برسد. همچنین دقت کنید که پیکانها فقط یک مرحله به جلو یا عقب می روند. این موضوع سبب می شود تا ایجاد دوباره سیستم بین دو مرحله مجاور، حداقل هزینه را در برداشته باشد در حالیکه ایجاد دوباره سیستم طی چند مرحله هزینه بالاتری در پی خواهد داشت.

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

۱) بعد از این کار چه کاری باید انجام شود؟

۲) مرحله بعد طی چه مدت زمانی انجام می شود؟

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

روشهای خاص برای انجام یک مرحله نظیر

برنامه ریزی

احتیاجات

کسب دانش

آزمونها

نمایش محصول هر مرحله

مستندسازی

کد نویسی

نمودارها

مدل کدنویسی و اصلاح

تاکنون مدلهای پردازش بسیاری برای ایجاد نرم افزار مورد استفاده قرار گرفته اند. اولین مدل، مدل غیر معروف کدنویسی و اصلاح است که در آن ابتدا کدنویسی صورت می گیرد و سپس در صورتی که درست عمل نکند اصلاح می شود (Boehm 88). این روشی است که برنامه نویسان کم تجربه هم برای برنامه های متداول و هم برای سیستمهای خبره در پیش می گیرند.

از سال ۱۹۷۰ نقایص روش کدنویسی و اصلاح بخوبی مشهود شده بود و لذا مدل آبشاری برای ارائه یک روش سیستماتیک پدید آمد. این روش به ویژه برای پروژه های بزرگ مفید بود. ولی روش آبشاری نیز با مشکلاتی همراه بود زیرا در این مدل فرض می شود که همه اطلاعات لازم برای یک مرحله وجود دارد. اغلب مواقع در عمل این مکان وجود ندارد که بتوان یک بخش خاص را به طور کامل نوشت مگر اینکه قبلا یک نمونه آزمایشی از سیستم ساخته شده باشد. این موضوع موجب پدیدار شدن مفهوم جدیدی شد: «آن را دوبار انجام دهید.» یعنی در ابتدا با ساخت یک نمونه، احتیاجات را مشخص کرده و سپس سیستم اصلی را بسازید.

مدل افزایشی

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

مزیت اصلی این روش آن است که «افزایش قابلیتهای عملکردی» در مدل افزایشی را بسیار راحت تر از«محصول هر مرحله» در مدل آبشاری می توان مورد آزمون، تصدیق و اعتبارسنجی قرار داد. فرد خبره می تواند به جای یک اعتبارسنجی کامل و کلی در انتهای کار، هر افزایش عملکرد را بلافاصله مورد آزمون، تصدیق و اعتبارسنجی قرار دهد. این امر هزینه تصحیحهای کلی را در سیستم کاهش می دهد. در اصل مدل افزایشی شبیه به نمونه سازی سریع و پیوسته است که کل مراحل ایجاد سیستم را در بر می گیرد. بر خلاف روش «آن را دوبار انجام دهید» که برای تعیین احتیاجات سریعا یک نمونه از مراحل اولیه می سازد، در این روش نمونه متکامل شونده بنوعی همان سیستم مورد نظر ماست.

مدل مارپیچی

همان طور که شکل ۶-۶ نشان می دهد مدل افزایشی را می توان به صورت تعدیلی از یک مدل مارپیچی متداول تجسم کرد. در هر حلقه مارپیچ، توانایی های عملکردی جدیدی به سیستم اضافه می شود. آخرین نقطه که «سیستم تحویل شده» نام دارد عملا پایان مارپیچ نیست. بلکه با شروع نگهداری و ارتقاء سیستم یک مارپیچ جدید شروع می شود. این مارپیچ را می توان اصلاح کرد تا مراحل کلی کسب دانش، کدنویسی، ارزشیابی و برنامه ریزی به طور دقیق تر مشخص شوند.

یک مدل چرخه حیات تفصیلی

یکی دیگر از مدلهای چرخه حیات که در تعدادی از پروژه های سیستم خبره به طور موفقیت آمیز بکار گرفته شده مدل خطی است که در شکل ۷-۶ نشان داده شده و توسط بوچلر تدوین شده است (Bochsler 88). این چرخه حیات شامل چندین مرحله از برنامه ریزی تا ارزیابی سیستم است و نحوه ایجاد سیستم را بگونه ای تشریح می کند که تواناییهای عملکردی سیستم مورد ارزیابی قرار گیرند. سپس چرخه حیات همان مراحل برنامه ریزی تا ارزیابی سیستم را تکرار می کند تا وقتی که سیستم برای استفاده عادی تحویل شود. پس از آن چرخه حیات برای نگهداری و تکمیل سیستم مورد استفاده قرار می گیرد. اگرچه در شکل به صراحت نشان داده نشده ولی مراحل تصدیق و اعتبارسنجی به موازات سایر مراحل انجام می شود. برای حفظ کیفیت سیستم خبره به جای برطرف کردن اشکالات به محض بروز، آنها را در مراحل متوالی پیگیری می نمایند. پریدن از روی یک یا چند مرحله حتی برای برطرف کردن یک اشکال کوچک به کیفیت کل سیستم صدمه می زند.

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

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

طراحی

هدف از مرحله طراحی، تهیه یک برنامه کاری رسمی برای ایجاد سیستم خبره است. برنامه کاری عبارت است از مجموعه ای از مستندات که برای راهنمایی و ارزشیابی ایجاد سیستم بکار می رود. جدول ۲-۶ وظایف این مرحله را نشان می دهد.

مهمترین وظیفه در چرخه حیات امکان سنجی پروژه است. این ارزیابی باید به سوالات مربوط به ارزشمند بودن پروژه جواب داده و همچنین مناسب بودن سیستم خبره را برای انجام کار مشخص کند. پاسخ این دو سوال تعیین می کند که پروژه با استفاده از روش سیستمهای خبره انجام خواهد شد یا خیر. در تشخیص امکان سنجی پروژه عوامل بسیاری در نظر گرفته می شوند. همان طور که در بخش ۱-۶ مطرح شد این عوامل شامل انتخاب دامنه مناسب برای سیستم خبره، هزینه، عایدی و موارد دیگر هستند.

جدول ۲-۶ وظایف مرحله طراحی

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

تعریف دانش

هدف از مرحله تعریف دانش این است که احتیاجات سیستم خبره به دانش تعریف شوند. مرحله تعریف دانش شامل دو وظیفه اصلی به شرح زیر است:

شناسایی و انتخاب منابع دانش.

کسب دانش و تحلیل و استخراج آن

هر یک از این دو وظیفه اصلی از چند وظیفه دیگر تشکیل شده اند، جدول ۳-۶ وظایف مربوط به شناسایی و انتخاب منابع را شرح داده است.

وظیفه هدف
شناسائی منابع بدون در نظر گرفتن امکان دسترسی مشخص شود که چه منابعی از دانش وجود دارد.
اهمیت منابع فهرست اولویت بندی شده منابع دانش بر اساس اهمیتی که برای ایجاد سیستم دارند.
دسترسی به منبع فهرست منابع دانش که بر اساس میزان دسترسی مرتب شده است. کتابها و سایر مستندات معمولا بیش از افراد خبره در دسترس هستند.
انتخاب منبع انتخاب منبع دانش بر اساس میزان اهمیت و دسترسی.

وظایف مربوط به کسب دانش و تحلیل و استخراج آن در جدول ۴-۶ تشریح شده اند.

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

جدول ۴-۶ وظایف مربوط به کسب دانش و تحلیل و استخراج آن

وظیفه هدف
استراتژی کسب دانش مشخص می کند که چگونه به کمک مصاحبه با فرد خبره، خواندن مستندات، استقراء، قاعده، شبکه های مجموعه های اطلاعاتی و غیره می توان به کسب دانش پرداخت.
تعیین اجزای دانش بدست آوردن دانش مورد نظر از منابعی که در این دوره از چرخه حیات مفید بوده اند.
سیستم طبقه بندی دانش طبقه بندی و سازمان دهی دانش برای کمک به فرد مجری سیستم جهت تصدیق و درک دانش. در صورت امکان از گروههای سلسله مراتبی استفاده شود.
طرح تفصیلی عملکردها قابلیتهای عملکردی سیستم به تفصیل مشخص می شود. این سطح از کار به مراتب فنی تر است در حالیکه طرح عملکردی اولیه در سطح مدیریت قرار داشته است.
جریان کنترل اولیه مراحل عمومی اجرای سیستم خبره را شرح می دهد. این فازها مربوط به گروههایی منطقی از قواعد هستند که در قالب گروههایی فعال یا غیر فعال می شوند تا جریان اجرای سیستم کنترل شود.
دستورالعمل اولیه کاربر سیستم را از دیدگاه کاربر شرح می دهد. (کاری که اغلب فراموش می شود ولی از جمله کارهای اساسی سیستم است) بسیار ضروری است که در جریان ساخت سیستم هرچه زودتر از کاربران بازخوری دریافت شود. اگر آنها از سیستم استفاده نکنند آن سیستم ارزشی ندارد.
مشخصات احتیاجات تعریف دقیق هدف سیستم، سیستم خبره با استفاده از این احتیاجات مورد تایید قرار خواهد گرفت.
بستر دانش سطح دانش برای سیستم تعریف می شود. حال هر تغییری باید با درخواست رسمی انجام شود. در حال حاضر دانش سطح بالا برای مرحله بعدی طراحی دانش کافی و مناسب است.

طراحی دانش

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

تعریف دانش

طرح تفصیلی

جدول ۵-۶ وظایف مربوط به تعریف دانش را تشریح کرده است.

درباره ساختار داخلی وقایع که در جدول ۵-۶ مطرح شده مراجعه به متون مربوط به نرم افزار CLIPS ضروری است. ایده اصلی تعیین ساختار وقایع، انطباق با سبک مناسب است. به عنوان مثال یک واقعیت مثل «۱۰» به تنهایی چندان معنی دار نیست. «۱۰» به تنهایی چه چیز را نشان می دهد؟ اگر اطلاعات بیشتری همراه این واقعیت باشد مثلا «قیمت ۱۰» و یا جمله کاملتر باشد مثل «قیمت طلا ۱۰» در آن صورت معنی دار خواهد بود. توجه کنید که این نحوه بیان «واقعیت» به صورت سه تایی شیء – مشخصه – ارزش متداول بوده، و بنابراین خواندن و درک آن برای مردم آسان است. CLIPS از چنین ساختاری برای قواعد و همچنین اشیاء پشتیبانی می کند.

جدول ۵-۶ وظایف تعریف دانش

وظیفه هدف
نمایش دانش مشخص می کند که دانش چگونه در قالب قواعد، چارچوبها و یا منطق نشان داده می شود و این بستگی به نوع ابزار سیستم خبره دارد که از سیستم پشتیبانی می کند.
ساختار کنترلی تفصیلی سه ساختار کنترلی عمومی را مشخص می کند (۱) اگر سیستم در کدهای رویه ای احاطه شده چگونه می توان آنرا فرخوانی کرد (۲) کنترل گروههایی از قواعد مرتبط در داخل یک سیستم اجرائی (۳) ساختارهای کنترلی فراسطحی برای قواعد.
ساختار واقعیتهای داخلی ساختار درونی وقایع را به یک روش منطقی برای کمک به درک آنها و ایجاد یک سبک مناسب مشخص می کند.
ارتباط مقدماتی با کاربر نحوه ارتباط اولیه با کاربر را تعیین می کند. از کاربران درباره نحوه ارتباط بازخورهایی گرفته می شود.
برنامه آزمون اولیه مشخص می کند که چگونه کدها مورد آزمایش قرار می گیرند. داده های آزمون، برگزارکنندگان آزمون و چگونگی تحلیل نتایج تعریف می شوند.

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

جدول ۶-۶ وظایف طراحی تفصیلی دانش

وظیفه هدف
ساختار طراحی مشخص می کند که چگونه دانش به صورتی منطقی در پایگاه دانش سازمان دهی می شود و در پایگاه دانش چه چیزی وجود دارد.
استراتژی اجرا مشخص می کند که چگونه سیستم اجرا می شود.
جزئیات ارتباط با کاربر پس از دریافت بازخور از کاربر در مرحله ارتباط مقدماتی با کاربر جزئیات ارتباط با کاربر مشخص می شود.
مشخصات طراحی و گزارش دهی مستند کردن طراحی
برنامه آزمون تفصیلی مشخص می کند که چگونه کدها به دقت مورد آزمون و بررسی قرار می گیرند.

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

جدول ۷-۶ وظایف کدنویسی و آزمون

وظیفه هدف
کد نویسی اجرای برنامه نویسی
آزمونها آزمون برنامه ها با استفاده از داده های آزمون، مجریان آزمون و رویه های تحلیل آزمون
فهرست منابع تولید کد منابع به طور مستند و واضح
راهنمای کاربر ایجاد یک راهنمای کاری برای کاربر به گونه ای که کاربر و فرد خبره بتوانند به سیستم بازخور ارائه دهند.
راهنمای نصب سیستم و بکارگیری آن مستندسازی نصب سیستم و بکارگیری آن برای کاربران
مستندات تشریح سیستم مستندات کلی سیستم برای عملیات، محدویتها و مسائل

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

تصدیق بر دانش

هدف از مرحله تصدیق دانش، تعیین درستی، کامل بودن و سازگاری سیستم است. این مرحله به دو وظیفه اصلی تقسیم می شود.

آزمونهای رسمی

تحلیل آزمون

جدول ۸-۶ وظایف مربوط به آزمون رسمی را در مرحله تصدیق دانش تشریح می کند.

جدول ۸-۶ وظایف آزمون رسمی در مرحله بررسی دانش

وظیفه هدف
رویه های آزمون رویه های آزمون رسمی را اجرا می کند.
گزارشهای آزمون نتایج آزمون را مستند می کند.

جدول ۹-۶ وظایف تحلیل آزمون را نشان می دهد.

جدول ۹-۶ وظایف تحلیل آزمون

وظیفه هدف
ارزیابی نتایج نتایج آزمونها را تجزیه و تحلیل می نماید.
پیشنهادها پیشنهادها و نتایج آزمونها را مستند می کند.

در مرحله تحلیل آزمون مشکلات عمده زیر پیگیری می شود.

پاسخهای نادرس

پاسخهای ناقص

پاسخهای غیر منطقی و ناسازگار

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

ارزیابی سیستم

همان طور که در جدول۱۰-۶ تشریح شده، مرحله نهایی ایجاد سیستم در چرخه حیات، مرحله ارزیابی سیستم است. هدف این مرحله جمع بندی آموخته ها و پیشنهادات برای بهبود و تصحیح عملکرد سیستم است.

جدول ۱۰-۶ وظایف مرحله ارزیابی سیستم

وظیفه هدف
ارزیابی نتایج نتایج آزمونها و تصدیق جمع بندی می شود.
پیشنهادها هرگونه تغییری در سیستم را پیشنهاد می کند.
اعتبارسنجی اگر سیستم با توجه به نیازهای کاربر و احتیاجات درست عمل می کند معتبر خواهد بود.
گزارش بین کار یا نهایی اگر سیستم تکمیل شده باشد گزارش نهایی منتشر می شود در غیر این صورت یک گزارش بین کار منتشر خواهد شد.

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

خلاصه

در این فصل ما یک روش مهندسی نرم افزار را برای ساخت سیستمهای خبره مطرح کردیم. حال که از تکنولوژی سیستمهای خبره برای حل مسائل دنیای واقعی استفاده می شود، سیستمهای خبره باید از کیفیت مناسبی برخوردار باشند. عوامل متعددی باید در طراحی یک سیستم خبره در نظر گرفته شود که انتخاب مسئله، هزینه و عایدی از آن جمله اند. برای ساخت یک سیستم موفق باید جنبه های مدیریتی و فنی مورد نظر قرار گیرند.

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

مسائل

۱-۶ یک سیستم مبتنی بر دانش ساده را برای تشخیص خرابیهای یک اتومبیل در نظر بگیرید. مراحل مختلف مدل خطی را برای این سیستم پیشنهادی تشریح کنید. (لازم نیست حتما بر حسب وظایف شرح شوند). فرض کنید افراد زیادی روی ا ین پروژه کار می کنند و فعالیتهای آنها هماهنگ است. هر فرض دیگری که در نظر می گیرید توضیح دهید.

۲-۶ گزارشی برای یک ابزار خودکار جهت اعتبارسنجی پایگاه دانش نظیر EVA بنویسید (Stachowitz 87). تمام مشکلاتی که این ابزار می تواند آشکار کند و نیز محدودیتهای آن را فهرست کنید.

۳-۶ با در نظر گرفتن دو حالت (الف) توسعه یک پروژه بزرگ (مقداری زیاد مجری) و (ب) توسعه یک پروژه کوچک (و یک نفر مجری)، تفاوتها و تغییراتی که در بکارگیری مدل خطی برای این دو حالت وجود دارد را بیان کنید.

بیشتر مطالعه کنید:

https://en.wikipedia.org/wiki/Expert_system

http://onlinelibrary.wiley.com/journal/10.1111/(ISSN)1468-0394

هوش مصنوعی چیست؟

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *