پیاده سازی سیستم های خبره

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

برای پیاده سازی سیستم‌های خبره:

1- ابزار(Tools)

2- زبان(Language)

3- پوسته(Shell)

وجود دارد.

پیاده سازی سیتم خبره.JPG

ابزار

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

زبان

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

مثال: زبان‌هایی مانند Lisp،Prolog،C برای ایجاد سیستم خبره استفاده می‌شوند.

پوسته

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

به طور مثال سیستم خبره پزشکی MYCIN ، سیستم خبره‌ای برای تشخیص بیماری مننژیت می‌باشد. حال اگر این سیستم فاقد دانش تشخیص بیماری خاص باشد به یک Shell تبدی می‌شود که آن را Empty MYCIN یا E-MYCIN می‌نامند که اگر دانش بیماری دیگری در آن قرار داده شود، سیستمی برای تشخیص بیماری دیگری خواهد بود.

الگوهای برنامه‌نویسی

زبان‌های رویه‌ای(procedural)

در این زبان‌ها باید روند و چگونگی کار برای سیستم بیان شود تا سیستم ساخته شود.

زبان‌هایی همچون Pascal,C زبان‌های رویه‌ای محسوب می‌شوند.

زبان‌های غیر رویه‌ای(Non-procedural)

زبان‌های توصیفی(Declarative)

در این زبان‌ها تعریف صورت مسئله در سیستم، منجر به حل مسئله می‌گردد.

  • مبتنی بر منطق مانندProlog
  • مبتنی بر قاعده مانند CLIPS
  • مبتنی بر فریم مانند Protoje

مثالی برای بیان قابلیت‌های زبان توصیفی

فرض کنید گراف ساده‌ای به صورت زیر داریم:

Graph.JPG

پرسش گراف بالا در زبان C چگونه کد می‌شود؟

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

همین گراف در زبان توصیفی نظیر Prolog ، به صورت زیر تعریف می‌شود.

َArc(a,b)

Arc(b,c)

Arc(c,b)

Path(x,y) if arc(x,y)

Path(x,y) if arc(x,z) && Path(z,y)

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

زبان‌های غیرتوصیفی(Non-descriptive)

  • شبکه‌های عصبی و سیستم‌های استقرایی: این زبان‌ها از یک سری نمونه و جزییات به کلیات می‌رسند. به بیان دیگر این زبان‌ها قابلیت تعمیم دارند.