
- •4.1. Знання і деякі підходи до їх подання
- •4.2. Вербально-дедуктивне визначення знань
- •4.3. Експертні системи
- •4.4. Дані та знання
- •4.5. Зв'язки між інформаційними одиницями
- •4.6. Проблема винятків
- •4.7. Властивості знань
- •4.8. Неоднорідність знань. Області і рівні знань
- •4.9. База знань як об'єднання простіших одиниць
- •4.10. Бінарні предикати і тріада
- •4.11. Проблема неточних і неповних знань
- •5Л. Визначення та класифікація семантичних мереж
- •5.2. Семантичні мережі в пам'ті людини
- •5.3. Трирівнева архітектура семантичних мереж
- •5.4. Асиміляція нових знань на основі семантичних мереж
- •5.5. Різні способи задання семантичних мереж
- •5.6. Логічне виведення на семантичних мережах
- •5.7. Процедурні і роздалені семантичні мережі
- •Фрейми та слоти: базові поняття
- •Конкретизація, ієрархія та наслідуваніїя фреймів
- •6.3. Поповнення первинних описів на основі фреймових моделей
- •0.10 * (Кількість_уроків - 1)), (Коли, _ ), (Хто,_),
- •0.10 * (Кількість_уроків - 1)), (Коли, вчора), (Хто, Петро),
- •6.4. Мережі подібностей і відмінностей
- •6.5. Фрейми та об'єктно-орієнтоване програмування
- •6.6. Поняття про мову uml
- •7Л. Логічні побудови та логічні моделі
- •7.2. Короткий вступ до числення предикатів
- •7.3. Фразова форма запису логічних формул
- •7.4. Аналіз і доведення теорем
- •7.5. Побудова теорії певної області знань
- •7.6. Від формальної логіки до логічного програмування
- •Будь-який терм зіставляється сам з собою. Наприклад, дві фрази
- •Різні константи не зіставляються одна з одною, тому фрази
- •Змінна може бути замінена константою або іншим термом. Так, фрази
- •7.7. Мова Пролог і логічне програмування
- •7.8. Основні ідеї Прологу
- •7.9. Як працює Пролог
- •8.1. Характеристика продукіцйиих моделей
- •8.2. Продукції та мережі виведення
- •8.3. Типова схема роботи експертної системи на базі продукцій
- •8.4. Пряме та зворотне виведення
- •8.5. Типові дисципліїш виконання продукцій
- •8.6. Основні стратегії вирішешія конфліктів у продукіцйііих системах
7.4. Аналіз і доведення теорем
Тепер, коли ми знаємо, як зводити формули числення предикатів до певної стандартної форми, ми повинні дізнатися, що з ними робити, як і де їх можна застосувати. Цілком очевидно, що, маючи набір тверджень, варто дослідити, які наслідки з них випливають. Нагадаємо, що твердження, які ми вважаємо істинними, називають аксіомами та гіпотезами, а ті твердження, що з них випливають,— теоремами.
У цьому розділі ми розглянемо на неформальному рівні процес автоматичного доведення теорем. Як уже зазначалося раніше, звістка про те, що цифрові комп'ютери можуть автоматично доводити теореми, у 60-ті роки спричинила бурхливий сплеск ентузіазму. Перші спроби знайти загальний алгоритм для вирішення задачі автоматизації дедуктивних побудов простежуються в роботах Лейбніца, Пеано, Гільберта. Центральне місце серед сучасних методів автоматичного доведення теорем займає метод резолюцій, запропонований Дж. Робінсоном у 1965 р. Використання цього методу виявилося ефективнішим, ніж класичне виведення на основі modus ponens.
Оскільки числення предикатів є алгоритмічно нерозв'язним, метод резолюцій дозволяє встановити, що деяка формула є теоремою, якщо вона насправді є теоремою. Для формул, що не є теоремами, метод резолюцій може працювати нескінченно довго. Саме на цій основі з'явилися ідеї, на яких базуються мови логічного програмування. Одним з фундаментальних проривів того часу було відкриття Дж. Робінсоном принципу аналізу та його застосування до автоматичного доведення теорем. Аналіз — це правило висновків, як одне твердження може випливати з іншого. Використовуючи аналітичний принцип, ми можемо на основі аксіом довести теореми стандартним шляхом з наших аксіом. Ми тільки маємо вирішити, до яких тверджень їх застосувати, і відповідний висновок дістанемо автоматично.
Аналіз розроблено і для роботи з формулами у фразовій формі. Маючи дві фрази, що пов'язані відповідним чином, він створить нову фразу, що буде наслідком перших двох. Основна ідея — це те, що якщо одна й та сама часткова формула зустрічається у правій частині однієї структури і в лівій частині іншої, то фраза отримується з'єднанням двох фраз з вилученням дубльованих формул, які з них випливають.
Наприклад:
з
злий (Іван);
сумний (іван):-робочий_день (сьогодні), йде_дощ (сьогодні).
та
неприємно (Іван):- злий (Іван), стомлений (Іван). випливає
сумний (Іван)',
неприємно (іван):-робочий_день (сьогодні), йде_дощ (сьогодні), стомлений (Іван).
Це виведення можна інтерпретувати так. Із тверджень "якщо сьогодні будень і йде дощ, то Іван сумний або злий " та "коли Іван злий та стомлений, тоді йому неприємно " можна вивести твердження "якщо сьогодні робочий_день, або йде дощ, або Іван стомився, тоді він сумний і йому неприємно
Але насправді не все так просто.
По-перше, набагато складніше, коли фрази містять змінні. У такому разі виведення включає додаткову операцію, яка здійснює "затвердження" змінних до такого випадку, коли формули можна вважати ідентичними. Наше друге спрощення — це те, що в загальному аналізі дозволяється кіль
ком літералам справа відповідати кільком літералам зліва. Але може так трапитися, що лише один літерал вибрано з кожного пункту. Поглянемо на приклад зі змінними:
студент (fl (Х))\ професор (X):-. професор (Y):- поважати (fl (У), У). поважати (Z, іван):-студент (Z).
Перші дві фрази задають формулу "якщо всі студенти поважають одну людину, то це — професор Третя фраза передає твердження, що всі студенти поважають Івана. Аналіз (7.2) і (7.3) приводить (через "поважати") до:
професор (іван):-студент (fl (Іван))
(У в (7.2) зв'язано з "Іван" в (7.3) та Zв (7.3) зв'язано з/7 (У) в (7.2)). Тому ми можемо аналізувати (7.1) і (7.4), що дасть нам
професор (Іван); професор (Іван):-.
Це рівнозначно факту: Іван — професор.
У формальному визначенні аналізу процес "спрощення", яким ми тут скористались, називається уніфікацією. Даний набір часткових формул може бути уніфікованим, якщо їх можна підігнати під одну. Далі ми побачимо, що уніфікація та відповідність — це одне й те саме.
Існує така можливість, що ми маємо змогу продовжувати дії аналізу відносно гіпотез і спостерігати, чи не отримаємо потрібний результат. На жаль, ми не можемо цього гарантувати, навіть якщо те твердження, в якому ми зацікавлені, і справді випливає з тих, що маємо. Наприклад, у попередньому прикладі ми не можемо отримати окремий пункт "професор (Іван)", хоча це і логічно. Чи не означає це, що аналіз не є достатньо ефективним засобом для наших цілей? Але це не так. Ми можемо переорієнтувати наші зусилля таким чином, щоб аналіз гарантовано міг вирішувати наші задачі, якщо це взагалі можливо.
Важливою властивістю аналізу є те, що якщо набір пунктів непослідовний, то аналіз зможе отримати з них лише порожній пункт
Набір формул є непослідовним, якщо не існує можливостей інтерпретації предикатів, константних символів і символів функцій, що дозволило б швидко виразити твердження. Порожній пункт є логічним вираженням помилковості і репрезентує твердження, яке не може бути вірним. Отже, аналіз може нам сказати, коли наші формули неправильні, отримуючи цей доказ суперечності.
(7.4)
пунктів А1, А2, ..., An, і задачу показу, що вони непослідовні, тоді ми не знатимемо, що мається на увазі: коли ~ А1 випливає з А2, A3, А4, .. .An, чи коли ~ А2 випливає з А1,АЗ, ...,Ап, чи коли - A3 випливає з А1, А 2, А4, ...,Ап і т. д. Важливо наголосити, яка фраза є цільовим твердженням, оскільки перед аналізом усі пункти рівні.
У прикладі про професора Івана, легко побачити, як можна отримати пусту фразу, якщо ми додамо твердження:
кочастина МОДЕЛІ ПОДАННЯ ЗНАНЬ II І МЕТОДИ 1
ЛОГІЧНОГО ВИВЕДЕННЯ 1
Розділ 4 1
ЗНАННЯ ЯК ІНФОРМАЦІЙНА ОСНОВА ІНТЕЛЕКТУАЛЬНИХ СИСТЕМ 1
Розділ 5 13
СЕМАНТИЧНІ МЕРЕЖІ 13
Розділ 6 23
ФРЕЙМОВІ МОДЕЛІ 23
Розділ 7 31
ЛОГТЧНІ МОДЕЛІ ТА МЕТОД РЕЗОЛЮЦІЙ 31
Розділ 8 57
ПРОДУКЦІЙНІ МОДЕЛІ 57
Аналіз (7.6) і (7.7) дає нам:
Отже, аналіз довів, що Іван є професором.
Завершеність аналізу означає, що, якщо факти випливають з наших гіпотез, ми можемо довести їх вірність через використання аналізу. Коли ми говоримо, що аналіз зможе отримати пусту фразу, ми маємо на увазі, що існує послідовність дій (кожна з яких включає аксіоми чи фрази, виведені в попередніх діях), які закінчуються виведенням специфічної фрази. Хоча аналіз і дозволяє нам отримувати наслідки з двох фраз, але він ніяк не вказує на те, де шукати наступні відповідності. Звичайно, якщо ми маємо багато гіпотез, то буде і багато варіантів. І кожна з виведених фраз збільшуватиме цю кількість. Більшість з варіантів будуть невірними, і якщо ми не будемо уважними, то витратимо безліч часу на обробку невірних варіантів. Можемо навіть просто не знайти вірного варіанта.
Було запропоновано чимало вдосконалень до процесу аналізу з даного приводу. Розглянемо деякі з них. Наприклад, удосконалення для випадку фраз Хорна. Нагадаємо, що фраза Хорна має не більше одного позитивного літерала. Тобто можуть існувати два типи фраз Хорна: з одним позитивним літерал ом або без жодного позитивного літерала. Ось їх приклади: молодий_спеціаліст (X):- вища_освіта (X), знання_іноз_мови (X). :- молодий_спеціаліст (X).
Насправді, коли ми уявляємо множину фраз Хорна (включаючи цільові твердження), то вони всі, крім однієї, мають бути повними. Будь-яка теорема, виражена через хорнівські фрази, може бути доведена лише тоді, коли вона містить тільки одну неповну фразу. Оскільки ми самі вирішуємо, які фрази є метою, ми можемо вважати метою неповну фразу, а всі інші — гіпотезами. Це має природну причину. По-перше, легко побачити, що має бути принаймні одна неповна фраза, щоб задача мала розв'язок. Це випливає з того, що результатом аналізу двох повних хорнівських фраз завжди є повна фраза. По-друге, якщо існує кілька неповних фраз у наших аксіомах, то доведення аналізом отримання пустої фрази потребує лише однієї з них.
Спробуємо сформулювати наведені вище міркування у формалізовані- шому вигляді.
Згідно з [179] доведенням теореми називається отримання відповіді на запитання: чи випливає логічна формула В із заданого набору формул {Fv ..., FJ. Це еквівалентно доведенню загальнозначимості формули Fv ..., Fn В або суперечливості формули (Fv ..., Fn) ~ В. З практичних міркувань зручніше доводити суперечливість формули (F{, ..., Fn) ~ В, тобто йдеться по суті про доведення "від супротивного".