якщо в базі знань існує правило виду
В· "якщо Умова то В",
В· то для отримання відповіді Відп розгляньте Умова
В· якщо питання В можна задавати користувачеві, запитаєте користувача про істинність У
В· якщо в має вигляд В1 і В2, то розгляньте В1, а потім,
якщо В1 хибне, то покладіть Відп рівним "У це брехня", в іншому випадку розгляньте В2 і отримаєте Відп як відповідну комбінацію відповідей на питання В1 і В2 В· якщо В має вигляд В1 або В2, то розгляньте В1, а потім,
якщо В1 істинно, то покладіть Відп рівним "В1 це правда", в іншому випадку розгляньте В2 і отримаєте Oтв як відповідну комбінацію відповідей на питання В1 і В2. Запитання виду
не в
обробляються не так просто, і ми обговоримо їх пізніше.
Формування відповіді на питання "чому"
Питання "чому" виникає в ситуації, коли система просить користувача повідомити їй деяку інформацію, а користувач бажає знати, чому ця інформація необхідна. Припустимо, що система запитує:
а - це правда?
У відповідь користувач може запитати:
чому?
Пояснення в цьому випадку виглядає приблизно так:
Тому, що
Я можу використовувати а,
щоб перевірити за правилом Па, що b, і
Я можу використовувати b,
щоб перевірити за правилом Пb, що з, і
Я можу використовувати з,
щоб перевірити за правилом Пc, що d, і
. . . p align="justify"> Я можу використовувати y,
щоб перевірити за правилом Пy, що z, і-це ваш вихідний питання.
Пояснення - це демонстрація того, як система має намір використовувати інформацію, яку вона хоче отримати від користувача. Наміри системи демонструються у вигляді ланцюжка правил і цілей, що з'єднує цю інформацію з вихідним питанням. br/>В
Рис. 14. 8. Пояснення типу "чому". На питання "Чому вас цікавить поточна мета?" Дається пояснення у вигляді ланцюжка правил і цілей, що з'єднує поточну ціль з вихідним питанням користувача, що знаходиться у верхівці дерева. Цей ланцюжок називається трасою. br/>
Будемо називати такий ланцюжок трасою. Трасу можна собі уявляти як ланцюжок правил, що сполучає в І/АБО-дереві питань поточну мета за метою самого верхнього рівня так, як це показано на рис. 14.8. Таким чином, для формування відповіді на питання "чому" треба рухатися в просторі пошуку від поточної мети вгору аж до самої верхньої мети. Для того, щоб зуміти це зробити, нам доведеться в процесі міркувань зберігати трасу в явному вигляді. p align="justify"> Формування відповіді на питання "як"
Отримавши відповідь на своє питання, користувач можливо захоче побачити, як система прийшла до такого висновку. Один з відповідних способів відповісти на питання "як" - це уявити доказ, тобто ті правила і підцілі, які використовувалися для досягнення отриманого висновку. Це доказ у разі нашої мови запису правил має вигляд вирішального ТА/АБО-дерева. Тому наша машина логічного висновку буде не просто відповідати на питання, відповідний мети самого верхнього рівня - цього нам недостатньо, а видаватиме в якості відповіді вирішальне І/АБО-дерево, складене з імен правил і підцілей. Потім це дерево можна буде відобразити на виході системи в якості пояснення типу "як". Поясненню можна надати зручну для сприйняття форму, якщо кожне піддерево друкувати з належним відступом, наприклад:
питер це хижак
було виведено за прав3 з
питер це ссавець
було виведено за прав 1 з
питер має шерсть
було сказано
і
питер їсть м'ясо
було сказано
15. Міркування, що використовують логічні формули. Міркування з приводу знань
Обчислення предикатів містить правила виведення, застосовні до одним логічним формулам для отримання інших. Особливо важливі правила В«modus ponensВ» (Якщо Х і (Х Y) - теореми, то Y є теорема) і В«узагальненняВ» (Якщо х не пов'язана в теоремі Р, то хР - теорема). Правила виведення породжують деяке безліч формул з примітивних (вихідних, пер...