منطق

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


قدیمی‌ترین روش بازنمایی دانش در کامپیوتر ، منطق است. اما طراحان حرفه‌ای از این روش به ندرت استفاده می‌کنند. روش منطق پایه و اساس بازنمایی دانش است. به طور مثال Prolog زبانی برای بازنمایی منطق است و ارتباط زبان Prolog با سیستم خبره مانند ارتباط زبان اسمبلی با زبان‌های برنامه‌سازی است و تمام زبان‌های بازنمایی در پایین‌ترین سطح ، به منطق می‌رسند همانگونه که زبان‌های برنامه‌سازی در پایین‌ترین سطح ، به اسمبلی می‌رسند ، یعنی مفاهیم پایه را دربرمی‌گیرد.

دو نوع منطق وجود دارد:

1. منطق گزاره‌ای

2. منطق مسندی یا مرتبه اول

منطق گزاره‌ای

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

A = The car will start

در این مثال روشن‌ شدن ماشین با نماد A بازنمایی شده است.

برای استنتاج از جدول درستی استفاده می‌شود. به طور مثال جدول درستی برای عطف B∧A به صورت زیر خواهد بود.

جدول درستی 1.JPG

جدول درستی عمل فصل B∨A به صورت زیر خواهد بود.

جدول درستی 2.JPG

و برای هم‌ارزی داریم B≡A :

جدول درستی 3.JPG

و برای عملگر NOT داریم:

جدول درستی 4.JPG

و برای عملگر IMPLIES یا عملگر آنگاه داریم:

C = A→B ∨ ~A≡B

جدول درستی 5.JPG

حساب مسندی

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

برای استفاده از Constant آنها را با حروف کوچک نمایش می‌دهیم مثل اسم افراد.

نمونه‌ای از مسند:

(like(john,mary

Predicate رابطه بین مفاهیم است در اینجا like مسند یا Predicate است و mary ، john پارامترهای Predicate هستند و همانطورکه مشاهده می‌کنید mary ، john هر دو ثابت هستند زیرا با حروف کوچک شروع شده‌اند.

متغیرها را با حروف بزرگ نمایش می‌دهیم:

(like(X,Y

در این مثال like مسند می‌باشد و پارامترهای آن متغیر هستند زیرا X,Y را با حروف بزرگ نمایش داده‌ایم.

خروجی تابع یک Object است در حالی که خروجی Predicate غلط یا درست False یا True می‌باشد.

Father(jack)=bob

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

like (X,Y) ∧ like (Z,Y) Implies Not like (X,Z)

OR

~likes (X,Z)→Likes(X,Y)∧likes (Z,Y)

اگر X,Y یکدیگر را دوست داشته باشند و Z,Y نیز یکدیگر را دوست داشته باشند نمی‌توان نتیجه گرفت که X,Z نیز یکدیگر را دوست دارند.

مفهوم سور وجودی و سور عمومی

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

همه mary را دوست دارند.

∀ X likes (X,mary)

حداقل یک نفر وجود دارد که mary را دوست داشته باشد.

Ǝ likes (X,mary)

نکته
در Prolog تنها سور عمومی وجود دارد و برای مفهوم سور وجودی نیز با ایجاد یک سری محدودیت به سور عمومی تبدیل می‌کنیم. تبدیل زبان گفتاری و محاوره‌ای به زبان منطق مرتبه اول کار ساده‌ای نیست زیرا زبان گفتاری دارای مرتبه n است و مرتبه منطق مسندی ، یک است.


Modus Ponens

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

مفهوم Modus Ponens همان قیاس است.

IF A is True

AND A → B is True

THEN B is True

اگر A در ست باشد و A → B نیز درست باشد در نتیجه B هم درست است.

Resolution

Resolution یک استراتژی استنتاج است که در سیستم‌های منطقی برای تعیین درستی بیانیه یا حکم (Assertion) استفاده می‌شود. این روش تلاش می‌کند تا تئوری یا هدفی مانند گزاره P را با استفاده از مجموعه‌ای از اصول مرتبط با مساله اثبات نماید. در واقع سعی می‌کند در عمل ثابت کند که P~ نمی‌تواند درست باشد از این رو اثبات با نقیض یا همان برهان خلف نامیده می‌شود. (proof by Refutation) در روند اثبات با این روش عبارت‌های جدیدی ایجاد می‌شود که Resolvent نامیده می‌شود.

Resolution.JPG

در این مثال C∨A یک Resolution است.Resolvent بدست آمده به اصول موجود اضافه می‌شود و این روند ادامه می‌یابد و ...

پرسش: روند ایجاد Resolvent تا چه زمانی ادامه می‌یابد؟

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

B~ و B در مثال بالا. روش Resolution این است که موارد مختلف را گرفته و آنها را ساده نموده تا نتیجه نهایی بدست آید.

مقایسه استنتاج Modus Ponens و Resolution

در M.P داده‌ها از طریق اطلاعات اولیه و فرم آنگاه و جستجو روی این قالب بدست می‌آید. اگر مساله ‌ای الزامات شرطی زیادی داشته باشد این فرآیند باید روی تمام اطلاعات ممکن انجام شود در حالیکه Resolution تمرکز روی هدفی که در جهت اثبات آن است ، دارد و در نتیجه تنها الزاماتی که مرتبط با این هدف یا فرض است ، درنظر می‌گیرد.

کاربرد منطق

یکی از کاربردهای منطق بازنمایی محیط حل مساله برای یک ربات جهت برنامه ریزی یا Planning روبات‌ها می‌باشد. به طورمثال در شکل زیر یک ربات نشان داده شده است.

روبات.JPG

قوانین زیر در مورد ربات بالا در نظر گرفته شده است:

1-Cube(a) cube(b) pyramid(c) sphere(e) hand (hand) table (table)

2- On (a,table) on(b,table) on(d,a) on(c,b) on (e,table)

3-Holding(hand,nothing)

این قوانین محیط حل مساله را تشریح می‌نماید به بیان دیگر یک فریم وضعیت است. Cube نماد مکعب‌ها ، pyramid نماد هرم ، sphere نماد کره ، hand دستگیره یا بازوی ربات‌ها ، table میز است. تابع On برای قرار گرفتن شی‌ای روی شی دیگر استفاده می‌شود و نشان می‌دهد پارامتر اول روی پارامتر دوم قرا دارد. تابع holding برای نمایش شی‌ای که توسط بازوی ربات‌ها برداشته شده است به کار می‌رود. در اینجا بدین معنی است که ربات چیزی را برنداشته است. در این مثال با تغییر موقعیت هر آیتم توابع و مقادیر تغییر کرده و می‌تواند به برنامه‌ریزی یا Planning پرداخته و وضعیت را Trace کند.

حال مفهومی تحت عنوان (put on(b,a تعریف می‌شود که مفهوم آن این است که b را روی a قرار بده.

Hand - holding(b) ∧ clear (a)→put on(b,a))

این قانون بدین معنی است که اگر بازوی روبات‌ها، b را برداشته باشد و روی a خالی است ، می توان b را روی a قرار دهد.