در یک تعریف کلی میتوان گفت سیستم های خبره یا Expert System، برنامههای کامپیوتری هستند که نحوه تفکر یک متخصص در یک زمینه خاص را شبیهسازی میکنند. در واقع این نرمافزارها، الگوهای منطقیای را که یک متخصص بر اساس آنها تصمیمگیری میکند، شناسایی مینمایند و سپس بر اساس آن الگوها، مانند انسانها تصمیمگیری میکنند.
یکی از اهداف هوش مصنوعی، فهم هوش انسانی با شبیهسازی آن توسط برنامههای کامپیوتری است. البته بدیهی است که “هوش” را میتوان به بسیاری از مهارتهای مبتنی بر فهم، از جمله توانایی تصمیمگیری، یادگیری و فهم زبان تعمیم داد و از اینرو واژهای کلی محسوب میشود.
حل مسئله بوسیله سیستم های خبره
بیشتر دستاوردهای هوش مصنوعی در زمینه تصمیمگیری و حل مسئله بوده است که اصلیترین موضوع سیستمهای خبره را شامل میشوند. به آن نوع از برنامههای هوش مصنوعی که به سطحی از خبرگی میرسند که میتوانند به جای یک متخصص در یک زمینه خاص تصمیمگیری کنند، Expert Systems یا سیستمهای خبره گفته میشود. این سیستمها برنامههایی هستند که پایگاه دانش آنها انباشته از اطلاعاتی است که انسانها هنگام تصمیمگیری درباره یک موضوع خاص، براساس آنها تصمیم میگیرند. روی این موضوع باید تأکید کرد که هیچیک از سیستمهای خبرهای که تاکنون طراحی و برنامهنویسی شدهاند، همهمنظوره نبودهاند و تنها در یک زمینه محدود قادر به شبیهسازی فرآیند تصمیمگیری انسان هستند.
به محدوده اطلاعاتی از الگوهای خِبرگی انسان که به یک سیستم خبره منتقل میشود Task Domain گفته میشود. این محدوده، سطح خبرگی یک سیستم خبره را مشخص میکند و نشان میدهد که آن سیستم خبره برای چه کارهایی طراحی شده است. سیستم خبره با این Task ها یا وظایف میتواند کارهایی چون برنامهریزی، زمانبندی، و طراحی را در یک حیطه تعریف شده انجام دهد.
به روند ساخت یک سیستم خبره، Knowledge Engineering یا مهندسی دانش گفته میشود. یک مهندس دانش باید اطمینان حاصل کند که سیستم خبره طراحی شده، تمام دانش مورد نیاز برای حل یک مسئله را دارد. طبیعتاً در غیراینصورت، تصمیمهای سیستم خبره قابل اطمینان نخواهند بود.
ساختار یک سیستم خبره
هر سیستم خبره از دو بخش مجزا ساخته شده است: پایگاه دانش و موتور تصمیمگیری.
پایگاه دانش یک سیستم خبره از هر دو نوع دانش مبتنی بر حقایق (Factual) و نیز دانش غیرقطعی (Heuristic) استفاده میکند. Factual Knowledge، دانش حقیقی یا قطعی نوعی از دانش است که میتوان آن را در حیطههای مختلف به اشتراک گذاشت و تعمیم داد؛ چراکه درستی آن قطعی است.
در سوی دیگر، Heuristic knowledge قرار دارد که غیرقطعیتر و بیشتر مبتنی بر برداشتهای شخصی است. هرچه حدسها یا دانش هیورستیک یک سیستم خبره بهتر باشد، سطح خبرگی آن بیشتر خواهد بود و در شرایط ویژه، تصمیمات بهتری اتخاذ خواهد کرد.
دانش مبتنی بر ساختار Heuristic در سیستمهای خبره اهمیت زیادی دارد این نوع دانش میتواند به تسریع فرآیند حل یک مسئله کمک کند .
البته یک مشکل عمده در ارتباط با به کارگیری دانشHeuristic آن است که نمیتوان در حل همه مسائل از این نوع دانش استفاده کرد. به عنوان نمونه، نمودار (شکل ۱) به خوبی نشان میدهد که جلوگیری از حمل سموم خطرناک از طریق خطوط هوایی با استفاده از روش Heuristic امکانپذیر نیست.
اطلاعات این بخش از سیستم خبره از طریق مصاحبه با افراد متخصص در این زمینه تامین میشود. مهندس دانش یا مصاحبهکننده، پس از سازماندهی اطلاعات جمعآوریشده از متخصصان یا مصاحبه شوندگان، آنها را به قوانین قابل فهم برای کامپیوتر به صورت (If-Then) موسوم به قوانین ساخت (Production Rules) تبدیل میکند.
موتور تصمیمگیری سیستم خبره را قادر میکند با استفاده از قوانین پایگاه دانش، پروسه تصمیمگیری را انجام دهد. برای نمونه، اگر پایگاه دانش قوانینی به صورت زیر داشته باشد:
- دفتر ماهنامه شبکه در تهران قرار دارد.
- تهران در ایران قرار دارد.
سیستم خبره میتواند به قانون زیر برسد:
- دفتر ماهنامه شبکه در ایران قرار دارد.
استفاده از منطق فازی
موضوع مهم دیگر در ارتباط با سیستمهای خبره، پیوند و ارتباط آن با دیگر شاخههای هوش مصنوعی است. به بیان روشنتر، برخی از سیستمهای خبره از Fuzzy Logic یا منطق فازی استفاده میکنند. در منطق غیرفازی تنها دو ارزش درست (True) یا نادرست (False) وجود دارد. چنین منطقی نمیتواند چندان کامل باشد؛ چراکه فهم و پروسه تصمیمگیری انسانها در بسیاری از موارد، کاملا قطعی نیست و بسته به زمان و مکان آن، تا حدودی درست یا تا حدودی نادرست است. در خلال سالهای ۱۹۲۰ و ۱۹۳۰، Jan Lukasiewicz فیلسوف لهستانی منطقی را مطرح کرد که در آن ارزش یک قانون میتواند بیشتر از دو مقدار ۰ و ۱ یا درست و نادرست باشد. سپس پروفسور لطفیزاده نشان داد که منطق Lukasiewicz را میتوان به صورت “درجه درستی” مطرح کرد. یعنی به جای اینکه بگوییم: “این منطق درست است یا نادرست؟” بگوییم: “این منطق چقدر درست یا چقدر نادرست است؟”
از منطق فازی در مواردی استفاده میشود که با مفاهیم مبهمی چون “سنگینی”، “سرما”، “ارتفاع” و از این قبیل مواجه شویم. این پرسش را در نظر بگیرید : “وزن یک شیء ۵۰۰ کیلوگرم است، آیا این شیء سنگین است؟” چنین سوالی یک سوال مبهم محسوب میشود؛ چراکه این سوال مطرح میشود که “از چه نظر سنگین؟” اگر برای حمل توسط یک انسان بگوییم، بله سنگین است. اگر برای حمل توسط یک اتومبیل مطرح شود، کمی سنگین است، ولی اگر برای حمل توسط یک هواپیما مطرح شود سنگین نیست.
در اینجاست که با استفاده از منطق فازی میتوان یک درجه درستی برای چنین پرسشی در نظر گرفت و بسته به شرایط گفت که این شیء کمی سنگین است. یعنی در چنین مواردی گفتن اینکه این شیء سنگین نیست
(False) یا سنگین است (True) پاسخ دقیقی نیست.
مزایا و محدودیتهای سیستمهای خبره
دستاورد سیستم های خبره را میتوان صرفهجویی در هزینهها و نیز تصمیمگیریهای بهتر و دقیقتر و بسیاری موارد تخصصیتر دیگر عنوان کرد. استفاده از سیستمهای خبره برای شرکتها میتواند صرفهجویی به همراه داشته باشد.
در زمینه تصمیمگیری نیز گاهی میتوان در شرایط پیچیده، با بهرهگیری از چنین سیستمهایی تصمیمهای بهتری اتخاذ کرد و جنبههای پیچیدهای را در مدت زمان بسیار کمی مورد بررسی قرار داد که تحلیل آنها به روزها زمان نیاز دارد.
مزایای سیستمهای خبره را میتوان به صورت زیر دستهبندی کرد:
- افزایش قابلیت دسترسی: تجربیات بسیاری از طریق کامپیوتر دراختیار قرار میگیرد و به طور سادهتر میتوان گفت یک سیستم خبره،تولید انبوه تجربیات است.
- کاهشهزینه: هزینهکسبتجربهبرایکاربربهطورزیادیکاهشمییابد.
- کاهش خطر: سیستم خبره میتواند در محیطهایی که ممکن استبرای انسان سخت و خطرناک باشد نیز بکار رود.
- دائمی بودن: سیستمهای خبره دائمی و پایدار هستند. بعبارتی مانندانسانها نمیمیرند و فنا ناپذیرند.
- تجربیات چندگانه: یک سیستم خبره میتواند مجموع تجربیات وآگاهیهای چندین فرد خبره باشد.
- افزایش قابلیت اطمینان: سیستمهای خبره هیچ وقت خسته وبیمار نمیشوند، اعتصاب نمیکنند و یا علیه مدیرشان توطئه نمیکنند، درصورتی که اغلب در افراد خبره چنین حالاتی پدید میآید.
- قدرت تبیین (Explanation): یک سیستم خبره میتواند مسیر و مراحلاستدلالی منتهی شده به نتیجهگیری را تشریح نماید. اما افراد خبره اغلباوقات بدلایل مختلف (خستگی، عدم تمایل و…) نمیتوانند این عمل رادر زمانهای تصمیمگیری انجام دهند. این قابلیت، اطمینان شما را در موردصحیح بودن تصمیمگیری افزایش میدهد.
- پاسخدهیسریع: سیستمهایخبره،سریعودراسرعوقتجوابمیدهند.
- پاسخدهی در همه حالات: در مواقع اضطراری و مورد نیاز،ممکن است یک فرد خبره بخاطر فشار روحی و یا عوامل دیگر، صحیحتصمیمگیری نکند ولی سیستم خبره این معایب را ندارد.
- پایگاه تجربه: سیستم خبره میتواند همانند یک پایگاه تجربهعمل کند وانبوهی از تجربیات را در دسترس قرار دهد.
- آموزش کاربر: سیستم خبره میتواند همانند یک خودآموز هوش(Intelligent Tutor) عمل کند. بدین صورت که مثالهایی را به سیستم خبرهمیدهند و روش استدلال سیستم را از آن میخواهند.
- سهولت انتقال دانش: یکی از مهمترین مزایای سیستم خبره،سهولت انتقال آن به مکانهای جغرافیایی گوناگون است. این امر برایتوسعهکشورهاییکه استطاعت خرید دانش متخصصانراندارند،مهماست.
محدودیت های سیستم های خبره
از سوی دیگر، بهکارگیری سیستمهای خبره محدودیتهای خاصی دارد. به عنوان نمونه، این سیستمها نسبت به آنچه انجام میدهند، هیچ “حسی” ندارند. چنین سیستمهایی نمیتوانند خبرگی خود را به گسترههای وسیعتری تعمیم دهند؛ چراکه تنها برای یک منظور خاص طراحی شدهاند و پایگاه دانش آنها از دانش متخصصان آن حوزه نشات گرفته و از اینرو محدود است.
چنین سیستمهایی از آنجا که توسط دانش متخصصان تغذیه اطلاعاتی شدهاند، در صورت بروز برخی موارد پیشبینی نشده، نمیتوانند شرایط جدید را به درستی تجزیه و تحلیل نمایند.
کاربرد سیستمهای خبره
از سیستمهای خبره در بسیاری از حیطهها از جمله برنامهریزیهای تجاری، سیستمهای امنیتی، اکتشافات نفت و معادن، مهندسی ژنتیک، طراحی و ساخت اتومبیل، طراحی لنز دوربین و زمانبندی برنامه پروازهای خطوط هوایی استفاده میشود. دو نمونه از کاربردهای این سیستمها در ادامه توضیح دادهشدهاند.
- طراحی و زمانبندی
سیستمهایی که در این زمینه مورد استفاده قرار میگیرند، چندین هدف پیچیده و تعاملی را مورد بررسی قرار میدهند تا جوانب کار را روشن کنند و به اهداف مورد نظر دست یابند یا بهترین گزینه را پیشنهاد دهند. بهترین مثال از این مورد، زمانبندی پروازهای خطوط هوایی، کارمندان و گیتهای یک شرکت حمل و نقل هوایی است.
●تصمیمگیریهای مالی
صنعت خدمات مالی یکی از بزرگترین کاربران سیستمهای خبره است. نرمافزارهای پیشنهاددهنده نوعی از سیستمهای خبره هستند که به عنوان مشاور بانکداران عمل میکنند. برای نمونه، با بررسی شرایط یک شرکت متقاضی وام از یک بانک تعیین میکند که آیا پرداخت این وام به شرکت برای بانک مورد نظر صرفه اقتصادی دارد یا نه. همچنین شرکتهای بیمه برای بررسی میزان خطرپذیری و هزینههای موارد مختلف، از این سیستمها استفاده میکنند.
معرفی چند سیستم خبره مشهور
از نخستین سیستمهای خبره میتوان به Dendral اشاره کرد که در سال ۱۹۶۵ توسط Edward Feigenbaum و Joshun Lederberg پژوهشگران هوش مصنوعی در دانشگاه استنفورد ساخته شد.
وظیفه این برنامه کامپیوتری، تحلیلهای شیمیایی بود. ماده مورد آزمایش میتوانست ترکیبی پیچیده از کربن، هیدروژن و نیتروژن باشد. Dendral میتوانست با بررسی آرایش و اطلاعات مربوط به یک ماده، ساختار مولکولی آن را شبیهسازی کند. کارکرد این نرمافزار چنان خوب بود که میتوانست با یک متخصص رقابت کند.
از دیگر سیستمهای خبره مشهور میتوان به MYCIN اشاره کرد که در سال ۱۹۷۲ در استنفورد طراحی شد. MYCIN برنامهای بود که کار آن تشخیص عفونتهای خونی با بررسی اطلاعات به دست آمده از شرایط جسمی بیمار و نیز نتیجه آزمایشهای او بود.
برنامه به گونهای طراحی شده بود که در صورت نیاز به اطلاعات بیشتر، با پرسشهایی آنها را درخواست میکرد تا تصمیمگیری بهتری انجام دهد؛ پرسشهایی چون “آیا بیمار اخیرا دچار سوختگی شده است؟” (برای تشخیص اینکه آیا عفونت خونی از سوختگی نشات گرفته یا نه. MYCIN ( گاه میتوانست نتایج آزمایش را نیز از پیش حدس بزند.
سیستم های خبره دیگر در این زمینه Centaur بود که کار آن بررسی آزمایشهای تنفسی و تشخیص بیماریهای ریوی بود.
یکی از پیشروان توسعه و کاربرد سیستمهای خبره، سازمانهای فضایی هستند که برای مشاوره و نیز بررسی شرایط پیچیده و صرفهجویی در زمان و هزینه چنین تحلیلهایی به این سیستمها روی آوردهاند.
Marshall Space Flight Center) MSFC) یکی از مراکز وابسته به سازمان فضایی ناسا از سال ۱۹۹۴ در زمینه توسعه نرمافزارهای هوشمند کار میکند که هدف آن تخمین کمّ و کیف تجهیزات و لوازم مورد نیاز برای حمل به فضا است.
این برنامههای کامپیوتری با پیشنهاد راهکارهایی در این زمینه از بار کاری کارمندان بخشهایی چون ISS (ایستگاه فضایی بین المللی) میکاهند و به گونهای طراحی شدهاند که مدیریتپذیرند و بسته به شرایط مختلف، قابل تعریف هستند.
مرکز فضایی MSFC، توسط فناوری ویژه خود موسوم به ۲G به ایجاد برنامههای ویژه کنترل هوشمندانه و سیستمهای مانیتورینگ خطایاب میپردازد. این فناوری را میتوان هم در سیستمهای لینوکسی و هم در سیستمهای سرور مبتنی بر ویندوز مورد استفاده قرار داد .
و در پایان …
آنچه در نهایت میتوان گفت آن است که یکی از مزیتهای سیستم های خبره این است که میتوانند در کنار متخصصان انسانی مورد استفاده قرار بگیرند که ماحصل آن تصمیمی مبتنی بر تخصص انسانی و دقت ماشینی است. این فناوری از دید تجاری نیز برای توسعهدهندگان آن سودآور است.
هماکنون شرکتهای بسیاری به فروش سیستمهای خبره و پشتیبانی از مشتریان محصولات خود میپردازند. درآمد یک شرکت کوچک فعال در زمینه فروش چنین محصولاتی میتواند سالانه بالغ بر پنج تا بیست میلیون دلار باشد. بازار فروش و پشتیبانی سیستمهای خبره در سراسر جهان نیز سالانه به صدها میلیون دلار میرسد.