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

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

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

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

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

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

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

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

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

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

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

قواعد استنتاج
اگرچه نمودارهای ون از جمله روشهای تصمیم گیری برای قیاسهای صوری محسوب می شوند ولی این نمودارها برای استدلالات پیچیده تر مناسب نیستند، زیرا خواندن این نمودارها مشکل است. قیاس صوری مشکل اساسی تر دیگری دارد و آن این است که فقط بخش کوچکی از عبارات منطقی را می توان به وسیله قیاس صوری بیان کرد. در واقع قیاس صوری طبقه بندی شده فقط شامل عبارات گروه بندی شده I,E,A وO می باشد. منطق گزاره ای، ابزار دیگری را برای توصیف استدلال ارائه می دهد. در حقیقت ما غالبا بدون آنکه بدانیم از منطق گزاره ای استفاده می کنیم. به عنوان مثال استدلال گزاره ای زیر را در نظر بگیرید :
اگر برق باشد، کامپیوتر کار خواهد کرد

برق هست
.. کامپیوتر کار خواهد کرد
می توان این استدلال را با استفاده از حروف انگلیسی به شکل رسمی زیر بیان نمود.
A = برق هست
B = کامپیوتر کار خواهد کرد
بنابراین استدلال فوق را می توان به این صورت نوشت :

استدلالات زیادی به این شکل وجود دارند. صورت کلی نمایش استدلالی از این نوع، به این صورت است :
P → q
P
q
که در آن p و q متغیرهای منطقی بوده و می توانند هر عبارتی را نشان دهند. استفاده از متغیرهای منطقی در منطق گزاره ای این اجازه را به ما می دهد که عباراتی پیچیده تر از چهارچوب عبارت قیاس صوری یعنی I,E,A و O داشته باشیم. این نوع استنتاج در منطق گزاره ای نامهای مختلفی دارد، از جمله : استدلال مستقیم، انتزاع، قانون انفصال و فرض مقدم. توجه کنید که این مثال را به صورت قیاس صوری نیز می توان بیان کرد.
همه کامپیوترها با داشتن برق کار خواهند کرد

این کامپیوتر برق دارد
این کامپیوتر کار خواهد کرد
که نشان می دهد انتزاع یک حالت خاص از قیاس صوری است. قانون انتزاع از اهمیت زیادی برخوردار است زیرا پایه و اساس سیستمهای خبره مبتنی بر قاعده را تشکیل می دهد. گزاره مرکب P →q نشان دهنده یک قاعده است و p نشان دهنده الگویی است که باید بر مقدم منطبق شود تا این قاعده ارضاء گردد. ولی همان طور که در فصل دوم مطرح شد، عبارت شرطی P →q دقیقاً معادل با یک قاعده نیست زیرا عبارت شرطی، یک تعریف منطقی است که توسط جدول درستی تعریف می شود و برای هر عبارت شرطی تعاریف زیادی می تواند وجود داشته باشد.

ما به طور قراردادی برای نشان دادن گزاره های ثابت نظیر ” برق وجود دارد ” از حروف بزرگ مانند C,B,A و … استفاده می کنیم و با حروف کوچک از قبیل r,q,p و … متغیرهای منطقی را نشان می دهیم که می توانند بجای گزاره های ثابت مختلفی قرار بگیرند. توجه داشته باشید که این قرارداد برخلاف قرارداد موجود در پرولوگ است که از حروف بزرگ به عنوان متغیر استفاده می کند.

این شکل قانون انتزاع را می توانیم با متغیرهای منطقی دیگری نیز بنویسیم :

که این شکل نیز همان مفهوم قبلی را دارد.
توصیف دیگری برای شکل فوق می تواند به این صورت باشد :

 

علامت کاما در اینجا برای جدا کردن یک مقدمه از مقدمه دیگر بکار می رود و علامت کاما – نقطه ( سمی کالون) پایان مقدمات را نشان میدهد. اگر چه تا به حال فقط با استدلالاتی سروکار داشته باشیم که دو مقدمه داشته اند، ولی شکل کلی تر یک استدلال به این صورت است :
P1 , P2 , … PNi .. C

هدف p در صورتی ارضاء می شود که همه اهداف فرعی P1 , P2 , … PNi ارضاء شده باشند. یک استدلال مشابه با عبارت فوق را برای قواعد تولید می توان به شکل کلی زیر نوشت :
C1 ^ C2 ^ … CN →A
و به این معناست که اگر همه شروط Ci یک قاعده ارضاء شوند در این صورت اقدام A آن قاعده اجراء خواهد شد. همانطور که قبلا نیز مطرح شد، هر عبارت منطقی به شکل فوق دقیقاً معادل یک قاعده نیست زیرا تعریف منطقی عبارات شرطی دقیقا معادل قاعده تولید نمی باشد. ولی به هر حال این شکل منطقی به فهم قواعد کمک مستقیم و مفیدی خواهد کرد.

عملگرهای منطقی AND و OR در پرولوگ، شکلی متفاوت با شکل متدوال ^ و دارند. علامت کاما بین اهداف فرعی در پرولوگ به معنای ترکیب عطفی ^ است در حالی که ترکیب فصلی، ، با یک سمی کالون ( ؛ ) نشان داده می شود. به عنوان مثال
P : – p1 I p2 .
به این معناست که هدف p در صورتی ارضاء می شوند که p1 یا p2 ارضاء شوند. ترکیبات عطفی و فصلی می توانند با یکدیگر شوند. به عنوان مثال
P : – p1 P2 /. P3 / P4.
به عبارت فوق معادل دو عبارت پرولوگ زیر است :

P : – P3 / P4
به طور کلی اگر همه مقدمات و نتیجه نوعی طرح یا شما ( Shemata ) باشند آنگاه استدلال
P1 / P2 / … PN. C
از لحاظ ظاهری یک استدلال قیاسی معتبر است، اگر و فقط اگر عبارت زیر

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

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

نیز متغیر است زیرا می توان آن را به صورت یک گزاره همیشه درست بیان کرد :

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

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

p→q q P
T T T T T
T F F F T
T F T T F
T F T F F
اگر چه این روش برای تعیین استدلالات معتبر و صحیح، جواب می دهد ولی لازم است که هر سطح از جدول مقادیر درستی جداگانه بررسی شود. اگر تعداد مقدمات N باشد، تعداد سطرها ۲N خواهد بود و بنابراین با افزایش تعداد مقدمات تعداد سطرها بسیار بیشتر خواهد شد. بعنوان مثال برای پنج مقدمه لازم است ۳۲ سطر بررسی شود. در حالیکه برای ۱۰ مقدمه به بررسی ۱۰۲۴ سطر نیاز است. یک راه کوتاه تر برای تعیین صحت یک استدلال این است که فقط آن سطرهایی از جدول مقادیر درستی را در نظر بگیریم که در آنها همه مقدمات صحیح هستند. تعریف هم ارز یک استدلال معتبر بیانگر این است که این استدلال، معتبر و صحیح است اگر و فقط اگر نتیجه هر یک از این سطرها صحیح باشد. بنابراین صحت نتیجه مستقیما توسط مقدمات تعیین می شود. در مورد قانون انتزاع، مقدمه P→q و مقدمه P در سطر اول به طور همزمان صحیح هستند و بنابراین نتیجه نیز به این صورت است. از این رو قانون انتزاع یک استدلال معتبر است. اگر سطر دیگری وجود می داشت که در آن مقدمات همگی درست بودند و در همان سطر، نتیجه نادرست بود، در این صورت استدلال مورد نظر معتبر نبود.

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

نتیجه
q مقدمه q p
p p→q
T T T T T
F T F F T
T F T T F

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

و جدول ۶-۳ جدول درستی خلاصه شده آن است.
توجه کنید که این استدلال، معتبر نیست. اگر چه سطر اول نشان می دهد که اگر همه مقدمات صحیح باشند، نتیجه نیز صحیح است ولی در سطر سوم در حالیکه همه مقدمات صحیح هستند نتیجه نادرست است. لذا این استدلال تنها معیار صحیح بودن یک استدلال را دارا نیست. اگر چه بسیاری از برنامه نویسان تمایل دارند که استدلالاتی از این دست، صحیح باشند ولی منطق ( و تجربه ) ثابت می کند که این استدلال نا معتبر بوده و یا یک سفسطه است. این استدلال سفسطه آمیز جزیی، سفسطه در گفتار نامیده می شود.
جدول ۶-۳ جدول درستی (کوتاه شده ) برای ؛ q , p→q
نتیجه
p مقدمه q p
q p→q
T T T T T
T F F F T
F T T T F
F F T F F
به عنوان یک مثال دیگر استدلال کلی زیر را در نظر بگیرید :

این استدلال معتبر است زیرا جدول ۷-۳ نشان می دهد که نتیجه فقط وقتی صحیح است که مقدمات صحیح باشند.
جدول ۷-۳ جدول درستی (کوتاه شده ) برای ؛ , p→q
نتیجه

مقدمات q p
q p→q
F F T T T
F T F F T
T F T T F
T T T F F
این استدلال خاص، نامهای مختلفی دارد از جمله : استدلال غیر مستقیم، قانون رفع مولفه و قانون عکس نقیض. بعضا قانون انتزاع ( Modus Ponens ) و قانون رفع مولفه ( Modus Tollens )، را قواعد استنتاج و یا قوانین استنتاج می نامند. جدول ۸-۳ برخی قوانین استنتاج را نشان می دهد.
کلمه لاتین Modus به معنای ” راه ” است، Ponere به معنای ” اثبات کردن ” و Tollere به معنای ” نفی کردن ” می باشد. نام حقیقی قانون انتزاع و معنای ادبی آنها در جدول ۹-۳ آمده است. قانون انتزاع و قانون رفع مولفه، نام کوتاهی برای دو نوع اول در این جدول هستند ( Stebbing 50 ) شماره قواعد استنتاج در این جدول همان شماره های بکار رفته در جدول ۸-۳ است.

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

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

حال اجازه دهیدکه این گزاره ها را به این صورت تعریف کنیم.
C = قیمت تراشه افزایش می یابد
Y = ین افزایش می یابد

D = دلار کاهش می یابد
از بخش ۱۲-۲ این مطلب را به خاطر دارید که عبارت شرطی را به اینصورت هم می توان معنی کرد ” P ، فقط اگر q . ” گزاره ای نظیر ” قیمت ین فقط وقتی افزایش می یابد که دلار کاهش یافته باشد ” همین معنی را دارد و می توان آن را به صورت
C→Y نشان داد. بنابراین استدلال فوق به این شکل است.

مقدمه دوم، شکل جالبی دارد که می توانیم با یک تغییر در رابطه شرطی، آن را به صورتی کوتاهتر نشان دهیم. رابطه شرطی P→q چندین شکل مختلف دارد که عبارتند از عکس، نقیض و عکس نقیض. این اشکال مختلف به همراه رابطه شرطی در جدول ۱۰-۳ آمده اند.