تکنیک های زنجیره ای

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


کاربرد قانون Modus Ponens در زنجیره استنتاج

کاربرد قانون modus ponens.JPG

در E1 ،state0 نتیجه می‌دهد E2 و E2 نتیجه می‌دهد E3 ، حال مفهوم E1 در state1 آمده است که دمای بالای 39 درجه است و E2 دمای بالای بیمار است و E3 توصیه 2 تا آسپرین است. این روند را روند استنتاج پیشرو می‌گویند.

زنجیره پیشرو(Forward Chainig)

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

زنجیره پیشرو.JPG

Rule1:

if the patient has a sore throat

AND we suspect a Bacterial Infection

THEN we believe the patient has strep throat

اگر بیمار گلودرد داشته باشد و ما به عفونت باکتریایی مظنون باشیم.

ما گمان به گلودرد میکروبی می‌بریم.

Rule2:

if the patient's tempreture is>37

THEN patient has a fever

اگر دمای بدن بیمار بالای 37 درجه است . بیمار تب دارد.

Rule3:

if the patient has been sick over a month

AND the patient has a fever

THEN we suspect a Bacterial Infection

اگر بیمار بیشتر از یک ماه بیمار باشد و بیمار تب نیز داشته باشد.

ما به گلودرد عفونی مظنون خواهیم شد.

Rule4:

if the patient has a fever

THEN the patient can't go out on a date

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

Rule5:

IF the patient can't go out on a date

THEN the patient should stay home and read a book

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

زنجیره پسرو(Backward Chaining)

زنجیره‌های پیشرو و پسرو هردو از استنتاج Modus Ponens استفاده می‌کنند. زنجیره پسرو استراتژی است که تلاش می‌کند تا فرضیه‌ای را با جمع‌آوری اطلاعات مرتبط اثبات نماید. در پایگاه دانش ، قوانینی به نام قوانین اولیه وجود دارد؛ قوانین Primitive یا اولیه ، قانونی است که توسط هیچ قانون دیگری نتیجه نشده است و به عبارت دیگر در روند استنتاج هنگامی که به این قوانین رسیدیم با مشاهده و بررسی حافظه کاری ؛ به پایان می‌رسد.

در شکل زیر زنجیره پسرو برای بیماری Strep Throat بررسی می‌شود:

زنجیره پسرو.JPG

در شکل بالا با دنبال کردن اعداد throat Infection signs (علایم گلودرد) به Red throat (تورم گلو) می‌رسیم. پس اگر گلو متورم و قرمز باشد به مرحله بالا برمی‌گردد و نتیجه را ok می‌کند. در این بخش Red throat یک قانون اولیه یا Primitive است چون بعد از آن چیزی چک نمی‌شود.

در این مثال پزشک فرض می‌کند که بیمار به بیماری Strep Throat مبتلاست . سپس به دنبال علایم عفونت می‌گردد و با دیدن تورم و قرمزی گلو علایم را مشاهده کرده است و فرض اثبات شده است.

در روش Backward حدسی زده می‌شود و با توجه به قانون‌های موجود به دنبال داده‌هایی می‌گردد که سبب اثبات درستی حدس‌ها شود. با مطالعه نمودار از پایین به بالا هر کدام از موارد یک Rule می‌باشد. به طور مثال قرمزی و تورم گلو یک علامت برای عفونت است و اگر علامت عفونت مشاهده شود می‌تواند بخاطر بیماری Strep Throat باشد.

پس مطالعه از بالا به پایین (از ریشه به سمت برگ‌ها) روند استنتاج Backward می‌باشد و از پایین به بالا(از برگ‌ها به سمت ریشه) نمایانگر Ruleها می‌باشد.

از بالا به پایین نمودار گویای این موضوع است که اگر کسی بیماری گلودرد داشته باشد که می‌تواند منشا باکتریایی یا عفونی داشته باشد. اگر منشا عفونی داشته باشد ، گلو متورم می‌شود و اگر باکتریایی باشد می‌بایست سه علامت Stain Grampos و morphology coccus و growth Chains را داشته باشد.

ممکن است این روش جندین روش را اثبات نماید . در اینگونه سیستم‌ها مجموعه اهدافی موجود است که باید تک تک به اثبات برسند.

پرسش:اگر مجموعه‌ای از اهداف داشته باشیم ، روش Forward مناسب‌تر است یا Backward؟

جواب:روش Backward مناسب‌تر است ؛ به علت اینکه روند از هدف به فرض مطمئن‌تر و مقرون به صرفه‌تر می‌باشد و نیازی به پیمودن مسیرهای اضافی برای رسیدن به هدف نیست.

حال اگر سیستم دارای چند هدف باشد بهتر است این اهداف متناسب با قوانین ، اهداف Module بندی شود تا روند استنتاج با کارایی و سرعت بیشتری انجام شود . این ماژول بندی باعث می‌شود تا سیستم سوال و جواب‌های مرتبط‌تری را بپرسد.

کاربر هوشمند(Intelligent User)

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