Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
системи штучного інтелекту.doc
Скачиваний:
34
Добавлен:
07.02.2016
Размер:
2.56 Mб
Скачать

4 Аналіз і доведення теорем

Тепер, коли ми знаємо, як зводити формули числення предикатів до певної стандартної форми, ми повинні дізнатися, що з ними робити, як і де їх можна застосувати. Цілком очевидно, що, маючи набір тверджень, варто дослідити, які наслідки т

з них випливають. Нагадаємо, що твердження, які ми вважаемо істинними, називають 8Кс|омами та гіпотезами, а тІ твердження, що з них випливають,— теоремами.

У цьому розділі ми' розглянемо на неформальному рівні процес автоматичного jQOBefleHJHe_TeopeM. Як уже зазначалося раніше, звістка про те, що цифрові комп'ютери можуть автоматично доводити теореми, у 60-ті роки спричинила бурхливий сплеск ентузіазму. Перші спроби знайти загальний алгоритм для вирішення задачі автоматизації дедуктивних побудов простежуються в роботах Лейбнща, Пеано, Пльберта. Центральне місце серед сучасних методів автоматичного доведення теорем займає метод резолюцій, запропонований Дж. Робінсоном у 1965 p. Використання цього методу виявилося ефективнішим, ніж класичне виведення на осно-ві modus ponens,

Оскільки числення предикатів є алгоритмічно нерозв'язним, метод ре-юлюцій дозволяє встановити, що деяка формула є теоремою, якщо вона насправді є'теорембїоГ Для формул, що не є теоремами, метод резолюцій може працювати нескінченно довго.

Саме на цій основі з'явилися ідеї, на яких базуються мови логічного програмування. Одним з фундаментальних проривів того часу було відкриття Дж. Робінсоном принципу аналізута його застосування до автоматичного доведення теорем. Аналіз — це правило висновків, як одне твердження може випливати з Іншого. Використовуючи аналітичний принцип, ми можемо на основі аксіом довести теореми стандартним шляхом з наших аксіом. Ми тільки маємо вирішити, до яких тверджень їх застосувати, \ відповідний висновокдістанемо автоматично.

Аналіз розроблено і для роботи з формулами у фразовій форм). Маючи дві фрази, що пов'язані відповідним чином, він створить нову фразу, що буде наслідком перших двох.-Основна Ідея — це те, що якщо одна й та сама часткова формула зустрічається у правІй частині однієї структури I в лівш частині Іншої. то фраза отримується з'єднанням двох фраз з вилученням дубльованих формул,які з них випливають.Наприклад: 1 злий (ман)',

сумний (hOHli>o6o4u0_день (сьогодні), йдг_дощ (сьогодні), та неприемно (Нюн):- злиО (Іван), стомлений (hoH). випливає сутий (Іван);

неприємно (Іван):іюбочий_день (сьогодні), йде_дощ (сьогодні), стомлений (Іван),

Це виведення можна Інтерпретувати так. Із тверджень "якщо сьогодні будень I йде дощ, то Ьан сумниО або злий " та "коли Іван злий та стомлений, тодІ йому неприємно " можна вивести твердження "якщо сьогодні робочий^день, або йде дощ, або Іван стомився, тодІ вІн сумний I йому неприємно ",

Але насправді не все так просто.

По-перше, набагато складніше, коли фрази містять змінні. У такому ра-и виведення вкдочае дод^т^ову операціїо, яка здІйснює "затвердження" змінних до такого випадку" коли формули можна вважати ідентичними. Наше друге спрощення це те, що в загальному аналізі дозволяється кшь-ком літералам справа відповідати кільком літералам зліва. Але може так трапитися, що лише один лІтерал вибрано з кожного пункту. Поглянемо на прикладзІ змінними:

йтешямшши 1

• будь-яка інформаційна одиниця задається вербально, тобто у формі, наближеній 19

'** <w,. 31

малодий^спецюлкт (X):- ешщаосвіта Щ знання^Нюз^моши (X). 53

Ш0ЩШШШ 57

L(c,0 60

Щ (7.2) зв'язано з "Іван" e (7.3) та 2 в (7.3) зв'язано зщ (У) в (7.2)). Тому ми можемо аналізувати (7.1) і (7.4), що дасть нам професор (Іван); професор (Іван):-.

Це рівнозначно факту: Іван — професор.

У формальному визначенні аналізу процес "спрощення", яким ми тут скористались, називається унІфІкоцІею. Даний набір часткових формул може буги уніфікованим, якщо ix можна підігнати пЩ одну. Далі ми побачимо, що уніфікація та відповідність — це одне й те саме.

Існує така можливість, що ми маємо змогу продовжувати дії аналізу відносно гіпотез і спостерігати, чи не отримаємо потрібний результат. На жаль, ми не можемо цього гарантувати, навітьякщотелвердження, в якому ми зацІкавлен{, і справді випливає зтих, що маємо. Наприклад у полередньомупрйкладі ми неможемо отримати окремий пункт "професор (Іван) ", хоча це і логічно. Чи не означає це, що аналіз не є достатньо ефективним засобомдля наших цілей? Але це не так. Ми можемо переорієнтувати наші

Сшммміммпійиммм ( 'тмН М. зусилля таким чином, щоб аналіз гарантовано міг вирішувати наші задачі, якщо це взагалі можливо.

Важливою властивістю аналізу t та, що якщо набір пунктів непослідовний, то аналіз зможе отримати s них лише порожній пункт

Набір формул є непослідовним, якщо на існує можливостей інтерпретації предикатів, константних символів і символів функцій, що дозволило б швидко виразити твердження. Порожній пункт є логічним вираженням помилковості I релрезентуе твердження, яке не може бути вірним. Отже, аналіз може нам сказати, коли наші формули неправильні, отримуючи цейдоказ суперечності.

Яким чином ця властивість може нам допомогти? Якщо наші гіпотези послідовні, нам потрібно лише додати до них факти заперечення того, що ми хочемо довести, і аналіз видасть нам пусту фразу, якщо наші твердження випливають з гіпотез. Ми нвзиватимемо_пункти, які ми додаємо до гіпотез, цільоаими твердженнями. Зауважте, що цільовІ твердження нічим не відрізняються від гіпотез — це такі самі фрази. Отже, якщо ми маємо набІр.пунктівАУ,А2,..., An, I задачу показу, що вони непослідовні, тоді ми не шитим'емо, що мається на увазі: коли ~ A1 випливає з A2, АЗ, A4, ...An, чи коли~ A2 випливає з Al,A3, ...,An, чи коли ~A3 випливає з A l,A2, A4, ...,An I I. д. Важливо наголосити, яка фраза є цільовим твердженням, оскільки перед аналізом усі пункти рівні У прикладі про професора Івана, легко побачити, як можна отримати густу фразу, якщо ми додамо твердження:

йтешямшши 1

• будь-яка інформаційна одиниця задається вербально, тобто у формі, наближеній 19

'** <w,. 31

малодий^спецюлкт (X):- ешщаосвіта Щ знання^Нюз^моши (X). 53

Ш0ЩШШШ 57

L(c,0 60

Отже, аналіз довів, що Іван є професором.

Завершеність аналізу означає, що, якщо факти випливають з наших гіпотез, ми можемо довести їх вірність через використання аналізу. Коли ми говоримо, що аналіз зможе отримати пусту фразу, ми маємо на увазі, що існує послідовність дій (кожна з яких включає аксіоми чи фрази, виведені в попередніх діях), які закінчуються виведенням специфічної фрази. Хоча аналіз I дозволяє нам отримувати наслщки з двох фраз, але вж ніяк нєг вка-Іуг на те, де шукати наступні відповідності. Звичайно, якщо ми маємо 6a-, гато гіпотез, то^удеТбагатб варіантів. I кожна з виведених фраз збільшу-нагиме цю кількість. Більшість з варіантів будуть невірними, і якщо ми не будемо уважними, то витратимо безліч часу на обробку невірних варіан-Іііі. Можемо навіть просто не знайти вірного варіанта.

Було запропоновано чимало вдосконалень до процесу аналізу з даного приводу. Розглянемо деякі з них. Наприклад, удосконалення для випадку фраз Хорна. Нагадаємо, що фраза Хорна має не більше одного позитивного лггерала. Тобто можуть існувати два типи фраз Хорна: з одним позитивнимлІтералом або без жодного позитивноголперала. Ось їх приклади:Сиетнт Btyworo іятмипу. Cypom HLXl

малодий^спецюлкт (X):- ешщаосвіта Щ знання^Нюз^моши (X).

:■ мвлодой^спецЬлкт (X).

НаспраадІ, коли ми уявляємо множину фраз Хорна (включаючи цЩьові Цкрдження), то аоми вр1е крйя однієї, мають бути повними. Будь^яка теорема, виражена через кормівсакї фрааи, може бути доведена лише тоді, копи вона містить тІЛьки одну негіЬвйу фразу. Оскільки ми самі вирішуємо, які фрази e метою, ми можемо вважати метою неповну фразу, а всі Інші ~ I Іпотезами. Це мае природну причину. Пр-перше, легко побачити, що має бути принаймні одна неповна фраза> щоб задача мала розв'язок. Це аипл*иас з того, що результатом аналізу двох повних хорнівських фраз завжди є повна фріза. По-друге, якщо Існує кЩька неповних фраз у наших аксіомах, то доведення аналізом отримання пустої фрази потребує лише однІєї з них.

Спробуємо сформулювати наведені вище міркування у формалІзованІ-шому •игляді.

ЗгЩно з (179]доведенням теореми називається отримання відповіді на запитання: чи випливає логічна формула В із заданого набору формул {F,, *.., FJ. Це еквівалентно доведенню загальнозначимості формули F,, ..., Fn В або суперечливості формули (P^ ,.., Fn) % в. 3 практичних міркувань зручніше доводити суперечливість формули (F,,..., FH) ~ в, тобто йдеться no cyrl про доведення ||® супротивного".

  1. Побудова теорП певної області знань.

Побудова теорІЇ певної області знань включає [ 172] дослідження структури цієї області і вибір позначень, що характеризують особливості даної структури. Потім будується множина вірно побудованих формул (ВПФ) для опису цієї структури. Множина ВПФ є теорією цієї області знань, в якій кожна ВПФ — аксіома.

ДослЩження області знань включає відокремлення вагомих суггєвос-тей з цієї області. Дану множину називають "область інтерпретації". Далі визначаються найважливіші функції над елементами області Інтерпретації, якщо такі існують, I значимі відношення між елементами області інтерпретації. По закінченні значимі відношення оформлюються синтаксично у вигляді аксіом.

ПЩфункцією розумітимемо відображення п елементів з області інтерпретації Ще л — арність функції) на один з елементів цієї області.

Нехай областю дослідження є службові стосунки між людьми у певній фірмі. Областю інтерпретації буде така множина людей:

(Іван; Ігор, підлеглий Івана; Петро, підлеглий Івана; Микола, друг Петра). На цій області можна виокремити унарну функцію "друг". Наприклад,

друг (Петра) —> Микола.

Відношенням називають відображення п елементів із області Інтерпретування на елемент множини (Істина, хибність). У нашому прикладі можна виокремити бінарне віДношення "підлеглий". Так, підлеглий (Івана, Ігор) матиме значення "істина", а підлеглий (Ігор, Микола) набуде значення "хибність". Якщо на певному конкретному наборі аргументів відношення буде істинним, тоді кажуть, що відношення справджується.

Після фіксації області інтерпретування переходять до вибору позначень елементів

Свтшя шпушяп тпл»кіу С^иіНМ

області: констаит, функцій, відношень. іідмПимо, що функція сама no собі мє може матм значення — його може мати тільки конкретне використання функції. АкмогКмі можна смааатм I про відношення.

Проілюструємо це иа такому прикладі.

Спочатку виберемо позначення для констант і присвоїмо їм значення, ямі відповідають елементам області Інтерпретації.

Значенням о буде /еон.

Значенням Ь буде підлеглий Івана Ігор.

Значенням c буде підлеглий Іоана Петро.

Функцію "друе" позначимо/, тоді семантика цієї функції визначиться: Значенням/(с) буде Микола.

Якщо позначимо через P введене нами відношення *ntoneeauQ*, тоді його семантика виражатиме:

Значенням P (о, Ь) буде Істина.

Значенням P (Ь, а) буде Істина.

Значенням P (c, а) буде Істина.

Значенням P (о, c) буде Істина.

Значенням P (Ь, c) буде хибнкть.

Значенням P (c, Ь) буде хибнкть.

Значенням P (b,f(c)) буде хибність.

Значенням P Ще), Ь) буде хибність.

Значенням P (a,f(c)) буде хибність.

Значенням P ff(c), d) буде хибність.

Значенням P (c, /(c)) буде хибність.

Значенням P СЦе), c) буде хибність.

3 даних атомарних формул маємо можливість будувати ВПФ.

Інтерпретація, яка робить ВПФ Істиною, називається моделлю цієї ВПФ. Аналогічно визначається і модель теорії. Про ВПФ, або теорію, яка набуває значення "істина" хоча б на одній інтерпретації, кажуть, що вона задовільна. Якщо ВПФ, або теорія, c хибною на всіх інтерпретаціях, тодІ її називають незадовільною або непослідовною.

Підведемо деякі підсумки побудови бази знань певної предметної області. Вони будуть сформульовані у вигляді такихдосить загальних принципів.

  1. Необхідно визначити предметні змінні, предметні константи і предикати, якими описуватиметься база знань. Цей процес має досить неформальний характер і часто вимагає значної винахідливості. Кожний проектувальник повинен ретельно продумати концептуальну структуру бази знань і вибрати з кількох можливих варіантів най- оптимальніший.

  2. Базу знань часто вдається побудувати без явного виписування пре-нексної нормальної форми; якщо ж це викликає ускладнення, слід застосувати відповідні тотожні перетворення.

  3. База знань описується як кон'юнкція деяких тверджень, якІ вважаються істинними; твердження може бути явним фактом або правилом виведення.

Систем* оітучного i*nueny. Сурова H.V1

  1. Факти мдаюгься позитивним або негативним літералом, який не містить мммних.

  2. Правила виведення задаються фразами Хорна; передумови імплікації задаються мегативниммлітералами, а наслідок — позитивними.

  3. Квантори існування усуваються шляхом введення констант і функ-г цій Сколема.

  4. Після усунення кванторів існування механічно усуваються квантори узагальнення.

  5. Після побудови формалізованої бази знань можна здійснювати логічне виведення на основі методу резолюцій.

Наведемо приклад. Нехай маємо такий неформальний опис: УсІ студенти люблять відвідувати лекції. Деякі студенти люблять морозиво. Іванов e студент, але нелюбить морозива.

Можна ааести, наприклад, такі предикати та предметні константи:

L (к у) ~ хлюбнть у,

S (x)Jc e студентом.

А — предметна константа, яка означає "вЩаідування лекцій";

/ — предметна константа, яка відповідає Іванову;

Qпредметна константа, яка означає морозиво.

Отримуємо базу знань:

Vr(-JWv2(*4))

3rPM*Zfr0)

SU)

~L(t<n

Усунення кванторів I розподіл кон'юнкції приводитьдо такої бази знань:

-St*)vLte&

V -r:/v SM

l(c.Q)

S(i)

& Тут c константа Сколема. '

  1. ВідформальноїлогІкидологічного програмування

Як ми вже зазначали, в логіцІ предикатів існують методи доведення того, буде чи нІ конкретна ВПФ наслідкомдеякоїтеорії. Природно виникає бажання автоматизувати таке доведення за допомогою числення предикатів У більшості підходів до цієї проблеми використовується процедура спростування. Розглянемо її основні ідеї.

3 визначення тотожної істинності і непослідовності можна дійти висновку, що ВПФ буде тотожно Істинною тоді і тільки тоді, коли внесення в теорію заперечення даної ВПФ перетворить цю теорію на непослідовну.

Теорія буде непослідовною, якщо в ній можливо вивести протиріччя такого вигляду:А * ~А-

Для будь^кої системи логічного програмування характерною є та обставина, що для виконання програми (побудови виведення результату) використовується вмонтована система автоматичного пошуку. Як вже зазначалося, механізм пошуку логічного висновку бере свій початок від методу резолюцій Робінсона. Описане в п. 7.4 правило резолюци виведення логічного висновку можна уточнити таким чином. Дві фрази можуть резольву- вати між собою, якщо одне з ним має позитивний, в друга *~* негативний літерал і одним I тим самим позначенням предиката тв однаковою кількістю аргументів, і якщо аргументи обох літералів можуть бутн уніфіковані (погоджені).

Розглянемо дві фрази спеціального вигляду:

.P (о) ~~ заключення без умови I ~ P (aJ умова без заключеиня. Нагадммо, що наявність цих двох фраз в одній теорії в протиріччям. Якщо вони резольаують між собою, тодІ отримана резольвента називається порожньою фразою

Якщо при резолюції двох фраз, що входять до складу теорії, отримується порожня фраза, тодІ теорія буде непослідовною.

Розглянемо формальніше застосування принципу резолюції та уніфікації. Спочатку розглянемо варіант вживання правила резолюції для атомарних формул, які не мктять змінних, але можуть набувати значень "Істинність" або "хибнкть" (фактично ~ для висловлювань). Кажуть, що дві фрази містять контрарму пару атомарних формул (або просто коитрариу пару), якщо одна з них включає деяку атомарну формулу без заперечення, а інша — ту саму формулу пІд знаком заперечення

ДвІ фрази, що містять контрарну пару, можуть бути резольвовані

одна з Іншою, I результатом резолюції (резольвентою) є диз’юнкція лІтералІв, якІ залишаються в обох фразахпІсля викреслення контрарноі m пари.

Наприклад нехай ми маємо фрази:

~AvA/

PvL,

де M і L — диз'юнкцІЇ довільної кількості атомарних формул. Фрази є pe- зольвованими, і резольвента має виглядМуС

Це правило було запропоновано Девісом I Патнемом. Воно стає очевиднішим, якщо переписати його в термінах імплікацій (спробуйте зробити це самостійно).

Дж. Робінсон розширив правило Девіса I Патнема на випадок, коли аргументами атомарних формул можуть бути змінні, константи і взагалі довільні терми. Основна ідея полягає у підстановці до атомарних формул, що входять до контрарної пари, термів замість змінних, поки набори аргументів обох формул не стануть однаковими (не будуть унІфІкованІ). Відповідна підстановка називається уніфікатором.

Слід зауважити, що змінну не можна замінювати на терм, який містить ту саму змінну. 3 Іншого боку, фрази теорії є незалежними між собою. Тому перед застосуванням методу резолюцій рекомендується перейменувати змінні так, щоб кожна змінна зустрічалася не більше ніж й одній фразі теорії.

Формальніше, результатом підстановки°"ІЇАи- -*A) до фрази М(записується мс)е фраза, утворена з M заміною змінних x, на терми t? Зверніть увагу: терми можна підставляти лише замість змінних (не замість константі).

Підстановка а називається уніфікатором для множини виразів {M,, ...,..., MLi

якщом'“"^'-'Ч°

Уніфікатор ст для множини виразів {M,, ..., М„] називається найбЬіьш загальним уніфікатором, якщо для будь-якого уніфікатора 0 цієї множини існує така підстановка X,

щоОявлятиме собоюкомпозицію п/дстановокаІ X.

Композицією Постановок° “ щ| -.V*.)11 “ ІЩ Щрі на

зивається підстановка{,,Ux'- - - '^- Ш |4 ^* з якої викресленівсі ?,A/x,, якщо^"'>,'*й^т“’ихв **" - -^1-

Тепер можна сформулювати загальне правило резолюцій.

Дві фрази, що містять контрарну пару, можуть бути резольвовані одна з іншою, якщо літерали, що входять до контрарної пари, можуть бути уніфіковані, тобто якщо для нихіснує найбільш загальний уніфікатор а. Результатом резолюції є диз'юнкція літералів, які залишаються в обох фразах після викреслення контрарної пари, причомудоцихлітералів повинен бути застосований уніфікатор а.

Існують формальні алгоритми, які дозволяють отримувати найбільш загальний уніфікатор [121, 272, 320]. Але у більшості випадків достатньо деяких неформальних простих правил, подІбних до тих, що були сформульовані в [172].

1. Будь-який терм зіставляється сам з собою. Наприклад, дві фрази

P(*)v~Q{b,c\

Q(b, c)v~X (b,C)

є резольвовані, I резольвента записується якя^ v ~ ^ <>' *

P(a)v~Q(b,c\

2 0(c,c)v~*(b,c) p|3Hf константи не зіставляються одна з одною, тому

фрази

не є резольвованими.

  1. Змінна може бути замінена константою або іншим термом. Так, фрази

P(a)v~Q(a, b),

Ш0ЩШШШ

резольвується, при цьому змінна x зіставляється з константою о, змінна у — з константою Ь. У резольвенті^^'^'^змІннІ замінені на константи, з якими вони зіставлялися.

якщо в процесі виведення утворилися фрази P (a) та ~ P (a), їх резолюцією c пустий диз'юнкт (тотожна хибність, позначається 0). Саме виведення пустого диз'юнкта I означає суперечливість теорії.

Тепер можна сформулювати алгоритм автоматичного доведення теорем на основі методу резолюцій. Нагадаємо, що йдеться про перевірку істинності будь-якого твердження в рамках Існуючої системи знань.

Застосовується метод доведення "від супротивного". При перевірці утворюється деяка пробна теорія, що утворюється шляхом додавання заперечення нового твердження до вже Існуючих (сама база знань при цьому вважається несуперечливою). Послідовно застосовується правило резо-ІІІоцїї, I утворені резольвенти додаються до пробної теорії. Якщо при цьому врешті утворюється пуста фраза, то твердження, яке перевіряється, істинне.

Фундаментальною властивістю методу резолюцій є його повнота. ВідЧІІжідна теорема формулюється так {129J: множина диз'юнктІв S суперечлива тоді і тільки тоді, коли з неї можна вивести пустий диз'юнкт.

Системи штуїиою інтелекту. С^юи llM

Як уже зазначалося, логіка предикатів першого порядку не є розв'язною. Тому для множини диз'юнктів, яка не є суперечливою, процедура, що грунтується на методі резолюцій, може працювати нескінченно довго.

Наведемо ще приклади застосування методу резолюції.

Приклад 7.1.

Нехай дано такий набір фраз: вовк Тсть м'ясо,

тварини, якІТдять м'ясо, ехижаками.

Потрібно довести, що: вовк є хижаком.

Введемо предикати G (x, у), який означає "x їсть у" і Q (x), який означає "x є хижаком“. Далі введемо предметні константи: W— вовк; M — м'ясо.

ТодІ маємо базу знань:

GfiN,M)

~G(x,M)vQ (x)

Потрібно довести формулу Q (IV).

Крок 1. Утворюємо пробну теорію та додаємо до неї заперечення;

йтешямшши 1

• будь-яка інформаційна одиниця задається вербально, тобто у формі, наближеній 19

'** <w,. 31

малодий^спецюлкт (X):- ешщаосвіта Щ знання^Нюз^моши (X). 53

Ш0ЩШШШ 57

L(c,0 60

~G(W,M) (7.11)

Крок 3. Внаслідок резолюції (7.8) I (7.11) утворюється пуста фраза. Це означає суперечливість пробноТ теорІЇ та Істинність твердження, яке перевіряється.

Приклад 7.2:

Нехай дана база знань, що складається з фраз: Володимир є сином Костянтина, Костянтин є сином Олега та правил:

Якщо x є сином у, то x є нащадком у,

Якщо x e нащадком у, а у e нащадком z, то x є нащадком z.

Необхідно довести, що:

Володимир єнащадком Олега.

Введемо предметні константи V— Володимир, К— Костянтин, 0 — Олег і предикати: S (x, у) — x є сином у; N(x,y) — x e нащадком у.

Крок 1. Утворюємо пробну теорію шляхом додавання заперечення твердження, що перевіряється:

(7.tt)

(7.U)(7.14)

(7Л5)

SlKK)

syc.0)

-Jfr>)vA4*.W ~N(x,'y) v-H0>. *) vMCr. x)

~ШР) (7.16)

Крон 2. Застосовуємо резолюцію до (7.16) I (7.15); при цьомухзІставляється з V, a z

-jO:

S(KX)

S(K,0)

~Sfay)vN(x,y)

~ЩйШ v '$Щ Ш ****• *>

-N(V.O)

-N(K,y)v-NU>.0) (7.17)

Крок 3. Застосовуємо резолюцію до (7.14) і (7.17); в результаті до теорії додається

твердження

~J(K.r)v~A4K.0) (7.18)

Крок4. Застосовуємо резолюціюдо (7.14) і (7.18);додається твердження -S(Ky)v~S0>.O) (7.19)

Крон 5. Застосовуємо резолюціюдо (7.19) і (7.12); у зіставляється з K:

-SlK.O) (7.20)

Крок 6. УрезультатІ резолюції (7.13) I (7.20) утворюється порожня фраза. Висновок: твердження, що перевіряється, є Істинним.

Приклад 7.3.

Повернемосядо бази знань, що складається з фраз:

Ус! студенти люблять відвідувати лекції.

ДеякІстудентилюблять морозиво.

Іванов є студент, але не любить морозива.

Ми ввелитакі предикати та предметнІ константи:

L(x У) — *любить у.

S(x) x є студентом.

А предметна константа; яка означає "відвідування лекцій";

/ — предметна константа, яка відповідає Іванову;

Q — предметна константа, яка означає морозиво.

База знань має вигляд:

^' S (x) v L (x, А)

S(c)

L(c,0

S(1)

~L(I,Q). Спробуємо довести, що деякі люди, якІ люблять морозиво, люблять і відвідувати лекції. Остання фраза запишеться у вигляді 3xv /1 fo Д) & і /x, 0). її заперечення має вигляд

Системи штучного іііів,тскту Суром RM

Vx: (~ L (x, A) v ~ L (x, 0). Позбувшися квантора узагальнення, отримуємо фразу ~ L (x, A)v~ L(KQ).

Подальші резолюції здійснюються звичайним чином. Спробуйте виконати ix самостійно.

У літературі також вживаються такі терміни, як лІнІйна I вхідна резолюції. Пояснимо їх застосування.

Метод резолюцій є перебіркою процедурою. Якщо спробувати безпосередньо застосовувати метод резолюцій у тому вигляді, в якому вІн був сформульований, то для великих баз знань вІн породжуватиме значну кількість безперспективних резолюцій і тому виявляється досить неефективним. Для запобігання "експоненційного вибуху" були запропоновані ефективніші модифікації [129]: семантична резолюція, лок-резолюцІя, лІнІйна резолюція. Суть цих модифікацій полягає у введенні тих чи інших критеріїв, за якими відбираються диз'юнкти, що беруть участь у черговій резолюції. Зазначені модифікації в цілому не усувають бектрекінгового перебору, але дозволяють Істотно скоротити цей перебір і роблять метод резолюцій цілком придатним для практичного застосування.

Для даноїмножини диз'юнктівSI початкового диз'юнкта лІнІй-

I ним шиееденням диз'юнкта Сп називається [129,272] послідовність

Co, Cl,.,., См, де

1 1) для I = 0,1,..., п -1 диз'юнкт C,+\ являє собою резольвенту диз'юнк­та СІ (який називається центральним диз'юнктом) I Всякий нази­вається боковим диз'юнктом), при цьому:

t 2) будь-який боковий диз'юнкт В, або належить S, або є C) для < деякого У </•

Лінійна резолюція є повною.

Важливим варіантом лінійної резолюції є так звана вхідна резолюція, для якої за бокові диз'юнкти беруться тіїїьки диз'юнкти з множини S. Вхідна резолюція є простою та ефективною, I саме вона лежить в основі механізмулогІчного виведення, що реалізовано в мові Пролог.

У загальному випадку вхідна резолюція не є повною. Але повнота вхідної резолюції гарантується, якщо обмежитися тількихорнІвськими диз'юнктами.

Нарешті, видається зручним такий неформальний опис лінійної, зокрема вхідної, резолюції [172].

Алгоритм доведення теорем на основі методу резолюцій повинен бути сфокусований на наслідках внесення до пробної теорІЇ нових резольвент. Це досягається за допомогою таких двох правил:

  • у першІй резолюції слід використовувати щойно додане заперечення твердження, яке перевіряється;

  • кожна наступна резолюція повинна використовувати попередній результат.

  1. Мова Пролог і логічне програмування

Розглянемо відповідність між численням предикатів і Прологом [26]. Як ми вже бачили, деякі фрази виглядають точно так, як фрази Прологу, а інші дещо інакше.

Зокрема, запитання Прологу:

?-ЛІ,Л2,........ ...,An означає точно те саме, що й неповна хорнІвська фраза:

:-A\A2, .J\n.

Система виведення Прологу базується на засобах аналізу хорнІвських фраз Конкретна стратегія, яку використовує ця мова, є формою аналізу постійного входу. Коли застосовується дана стратегія, вибір, що з чим аналізувати, проводиться за таким принципом.

Починаємо з цільового твердження та аналізуємо його разом з однією з аксІом. Отриману фразу знову аналізуємо з однією з аксіом і т. д. Ми завжди аналізуємо лише щойно отриману фразу разом з однією з первинних хорнІвських фраз. У Пролозі щойно отриману фразу можна розглядати як послідовність цІлей, що мають бути досягнуті. Все починається із запитання і закінчується (бажано) пустою фразою. На кожному кроці побудови виведення ми знаходимо фразу, початок якої збігається з однією з цілей зв'язуємо потрібні змінні, обираємо мету, яка збігається, І додаємо зміст зв'язаної фрази до набору цілей, що мають бути досягнуті.

Наприклад, вЩ:

;- мати (Іван, X), мати (X, T). та

мати (U, У):-батько (U, V), жінка (V). переходимо до

:- батько (Іван, X), жінка (X), мати (X, У).

Насправді стратегія доведення у Пролозі ще більш обмежена, ніж просто аналіз лінійного входу, В цьому прикладі ми вирішили звести перший літерал у цільовому пункті, але могли вибрати й інший.

В арго також наголосити, як Пролог вишукує альтернативні фрази для досягнення тІєї самої мети. В основному Пролог використовує стратегію пошуку "в глибину" частіше нІж "в ширину". Тобто, вІн оперує лише з од-імсю альтернативою одночасно, вважаючи цей вибір вІрним, доки fte буде доведено зворотне. Для кожної мети він вибирає фрази в затвердженій no-l Імдовності I звертається до наступних лише після доведення невірності попередніх. Альтернативною до цІєТ стратегії e стратегія пошуку "в ширину", до якої Пролог звертається пізніше. Вона має перевагу в тому, що за-оезпечує перебір yclx варіантів, у той часян пошук "в глибину" може легко зупинитись у глухому куті. 3 Іншого боку пошук "в глибину" дозволяє перевіряти варіанти до кінця I є простішим в оперуванні, до того ж займає менше ресурсів комп'ютера.

I, нарешті, кІлька'слІв про те, в яких випадках у Пролозі відповідність двох фраз може відрізнятись від класичного аналізу. Більшість варіантів Прологу дозволить вам досягнути такої мети: рівність (X, X).

? —рівність ff(Y), Y).

I тобто дасть змогу умові відповзати складовій частині самої себе, тобто ма-Іиме МІСЦЄ рекурсивний ВИКЛИК. У цьому прикладі /(У) зрівнюється 3 7, Щ0 CTOfrb всередині/УХУ)), яке Тіеретворюється Ha f(f(f(Y))) і т. д. Пролог дозволить вам надрукувати і запустити таку програму, але навряд чи ви отримаєте відповідь. Згідноз правилами уніфікації такІ випадки не повинні траплятись. Ось чим відрізняєтьсяСистеми штучного інтелекту. Cypoee llM. поведінка Прологу. В деяких версіях З'ЯВИТЬСЯ попередження, що такого робити не можна, але оскільки такІ випадки трапляються рідко, то більшість розробників програми випускали цю можливість.

Програмування на Пролозі має декларативну основу: ми повідомля-ємо про істинні твердження (аксіоми) і просимо перевірити істинність Інших тверджень (теорем). Ідея того, що програмування має бути саме Таким, виникла давно і привела до розробки практичної можливості логічного програмування — створення мов логічного програмування. I Переваги логічного програмування полягаютьутому, що програми лег­ше прочитати, I вони не міститимуть описів того, як потрібно виконува-І и дії, скорішетам буде описано, як виглядатиме рішення. Тим більше, якщо програма схожа на інструкцію по досягненню мети, то в ній легше виявити дефекти. Ми будемо бачити, що робить програма, а не як вона цс робить.

  1. Основні Ідеї Прологу

Спочатку коротко підсумуємо викладені роздуми. Отже, програма на Пролозі може складатись з набору фактів разом з набором умов, яким має задовольняти розв'язок, і комп'ютер має сам вивести рішення з даних фактів. Такий підаЩ до програмування називається логічним програму-і ванням. Пролог опирається на формальну логіку так само, як FORTRAN,BASIC базуються на арифметиці та простій алгебрі. Для виконання завдань Пролог використовує техніку, розроблену для доведення теорем у логіці.

Пролог e дуже різнобічною мовою. Зауважимо, що Пролог можна застосовувати для програмування всіх видів алгоритмів, не тільки для тих, для яких він був спеціально створений. Використання Прологу не пов'язане з якимось одним класом алгоритмів, логікою програми чи форматом файлів. Тому Пролог не менш потужний, ніж Pascai,Ca6o C++, а у багатьох аспектах навіть потужніший. Доцільність його застосування, очевидно, має визначатися конкретною ситуацією.

Перші повідомлення про Пролог з'явились на початку 70-х років. Він належить до класу логічних мов програмування, основні ідеї розробки яких запропонували P. Ковальські 1 П. Хейс. Перший Інтерпретатор Прологу був розроблений у Марселі (Франція) під керівництвом А. Колмерое в 1973 p. Наступна версія, виконана Д.Уореном — Единбурзька реалізація Прологу на машині DEC-10 — перевела Пролог і разом з ним логічне програмування з площини теоретичних досліджень у площину практичного програмування, зробила його корисним інструментом для вирішення різних задач штучного інтелекту.

Для Прологу характерним є 1 той факт, що програміст повинен мислити в термінах цілей. Що під цим розуміється? На відміну від традиційних мов програмування, Пролог вимагає від програміста змінити форму мислення по написанню програм. Прологівська програма являє собою набір визначень ситуацій і формулювань задач замість того, щоб детально описувати варіанти рішень цих задач. Основою Прологу є обмежений, але на диво потужний і гнучкий набір програмних механізмів, який включає: зіставлення зразків, задання структур даних типу дерева та автоматичне повернення. Назва "Пролог" утворилась як скорочення від "програмування в термінах логіки". Отже, "Пролог" можна віднести до мов програмування, які будуються на описовому або декларативномупідході до програмування.

Можна виокремити два рівні характеристики прологівської програми: декларативний і процедурний. Перший з них визначає, яким повинен бути результат роботи програми, за допомогою відношень. Другий — як цей результат був отриманий I як/ з відношень реально оброблялись. Прологчгистеми значну частину процедурних деталей виконують самостійно, без втручання програміста. Останній, таким чином, може більше уваги прцд/ляти декларативному аспекту програми, не відволікаючись на органі- зацію процесу обчислень, якщо його не хвилює питання ефективності цих обчислень.

Спочатку Пролог належав до теоретичних мов програмування I в основному використовувався як Інструментарій у наукових дослідженнях. На це впливало і те, що довгий час учені Із США не сприймали його переваг для вирішення задач штучного /нгелекту.Дж. Mалпас пояснює цей факттим, що, по-перше, серед учених США сильними залишались лісповські традиції (мова Лісп створена в Массачусетському технологічному інституті) I, по-друге, — попереднє знайомство з мовою логічного типу Мікропленнер було невдалим. Остання реалізовувалася дуже неефективно. Та зі створенням швидких Інтерпретаторів і компіляторів Пролог посів почесне місце не тільки серед

найвживанІших мов вирішення задач штучного Інтелекту, а й серед мов, які використовуються спеціалістами в галузях реля-цшних баз даних, програмної інженерП задання знань, експертних системах і багатьох Інших.

Резюмуючи сказане, можна відмітити такі переваги Прологу:

Пролог має чітку математичну основу, дуже близьку до людського мислення.

• Використання єдиної мови специфікацій (числення предикатів) для опису вимог до програм I опису самої програми на Пролозі дозволяє поєднувати процес написання програми з її верифікацією.

  • Застосування відношення як базового поняття мови дає змогу зручно працювати з реляцІйними базами даних.

  • Паралельний принцип організації обчислень дозволяє просто I природно реалізовувати Пролог-програму на паралельному комплексі. Пролог підтримує обчислення, якІ базуються на пошуку через зворотний ланцюжок міркувань. Це забезпечує ефективність використання Прологу при побудові експертних систем.

Пролог може зберігати за допомогою "логічних змінних" проміжні результати обчислень для подальшого використання. Це дозволяє природно вирішувати проблему органІзацґїлогічного виведення.

Поряд Із зазначеними перевагами спеціалісти відзначають такі вади Прологу.

  • Складність розуміння процесу виконання програми на Пролозі, пов'язаної з "невидимим" порядком побудови виведення результату програмою,

  • Погані засоби для вияву екстралогІчних властивостей (оператори динамічного приєднання I вилучення тверджень).

  • Відсутністьдосконалих засобівдля розробки і відлагодження великихпрограм.

  • Недостатні засоби пЩтримки модульного принципу програмування.

У комерційних цІлях Пролог часто використовують у створенні експертних систем, інтелектуальних баз даних і програм, з якими можна спілкуватись звичайною мовою

Пролог має багато спільного з Ліспом [267]— мовою, яку традиційно застосовують у дослідженнях зі штучного інтелекту. Обидві мови роблять досить простим виконання складних обчислень над складними даними. Крім того, вони досить потужні, щоб елегантно запрограмувати складні алгоритми. I Пролог, (Лісп використовують динамічне виділення пам'яті, тому нема потреби декларувати змінні передтим, як їх застосовувати. Ці мови також дозволяють програмам перевіряти та модифікувати самих себе, тому програма може "вчитись" на тІй інформації, яку вона отримує піл час своєї роботи.Головна рІзниця полягає в тому, що Пролог має процедуру, яка здатна до "міркування" — машину логічного виведення, вбудовану в нього, тоді як Лісп цього не має. Тому програми, які виконують якісь логічні роздуми, легше писати на Пролозі, ніж на Ліспі. Якщо вбудована машина логічного виведення не підходить для конкретної задачі, програміст дуже часто може використовувати частину цього механізму, переписавши все інше. В Ліспі, навпаки, якщо потрібна машина логічного виведення, програміст сам маєїї забезпечити.

Чи Пролог об'єктно-орІєнтований? Не зовсім. Пролог — Інше, нове I різнопланове вирішення проблеми, яку об'єктно-орієнтовані мови повиннІ були розв'язати. Пролог дозволяє говорити про властивості та зв'язки прямо, замість того, щоб добиратисьдо них через механізм наслідування.