Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
theory-2009-2010.docx
Скачиваний:
3
Добавлен:
05.09.2019
Размер:
5.41 Mб
Скачать

5. Системи штучного інтелекту

8. Метод резолюцій як основа логічного виведення

Метод резолюцій – логічне числення у мові логіки предикатів першого порядку, що використовує єдине правило виведення (т.зв. правило резолюції). Для мови численні висловлювань це правило формулюється так: із формул  та , де  - елементарна формула, виводиться формула , а з  – виводиться "порожня" формула. Цього єдиного правила достатньо для встановлення того, чи є тотожно хибною довільна задана формула числення висловлювань, що подана в кон’юнктивній нормальній формі (КНФ). А саме, кон’юнкція скінченої множини М формул числення висловлювань, кожна з яких є диз’юнкцією елементарних формул і/чи їх заперечень, тотожно хибна тоді і тільки тоді, коли за допомогою правила резолюції із М виводиться порожня формула. Для логіки предикатів першого порядку правило резолюції формулюється більш складно - з використанням процедури уніфікації. Метод резолюцій вперше запропонував Дж.Робінсон в 1964. Його застосовують в мовах логічного програмування, при пошуку доведень теорем на ЕОМ, в доведеннях правильності програм, в системах планування поведінки роботів, в "питально-відповідальних" системах та ін. системах штучного інтелекту. Існують різні модифікації методу резолюцій, а також його узагальнень.

5. Системи штучного інтелекту

9. Мова функціонального програмування лісп

За однiєю з класифiкацiй мови програмування (МП) дiляться на процедурнi, якi також називаються операторними або iмперативними та декларативнi мови. До класу декларативних мов вiдносяться функцiональнi або апплiкативнi - Лiсп,.

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

Робота з Лiспом нагадує роботу з карманним калькулятором: користувач вводить вираз (вiн обов'язково повинен закiнчуватися символом та мати збалансовану кiлькiсть дужок), який читає машина, потiм обчислює (iнтерпретує), та видає результат. Цей процес введення-читання-обчислення-видачi результату буде вiдбуватися в циклi доти, доки користувач не введе команду (SYSTEM), яка завершує роботу з muLisp i передає керування операцiйнiй системi.

Приклад програми:

Напишемо функцію MEMBER, яка має два аргументи: nam - символ та lst - список і яка повинна перевірити чи належить символ списку.

(DEFUN MEMBER (nam lst)

((NULL lst) NIL)

((EQL nam (CAR lst)) T)

(MEMBER nam (CDR lst)) )

5. Системи штучного інтелекту

10. Мова логічного програмування пролог

Числення предикатiв - математична основа мови.

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

Логiку предикатiв, в деякiй мiрi, можна вважати спецiальним математичним апаратом формалiзацiї людського мислення. Звiдки, мови програмування логiчного типу є найбiльш зручними, для роботи з базами знань.

Факти та правила.

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

Факти

В Пролозi зв'язок мiж об'єктами називається фактом. Факти можуть виражати як властивостi, так i вiдношення.

Запити

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

Узагальнення

  1. Програма на Пролозi будується iз двох типiв фраз (речень): фактiв i правил. Факти - це вiдношення, або ж властивостi, про якi ви, програмiст, знаєте, що вони iстиннi. Правила - це залежнi вiдношення; вони дозволяють Прологу робити виведення, порiвнюючи одну частину iнформацiї з iншою.

  2. Правила Прологу складаються з трьох частин: голови, символу, тiла.

Голова - це факт, який буде вiрним, якщо деяка кiлькiсть умов виконається. Голову ще iнодi називають заключенням, або ж вiдношенням залежностi. Символ - вiддiляє голову правила вiд тiла; може бути текстовим типу or або ж if. Тiло - це множина умов (або список файлiв), котрi повиннi бути iстинними, для того щоб Пролог мiг довести, що голова правила вiрна.

Як змiннi отримують свої значення

В Пролозi не має операцiї присвоєння. Змiннi Прологу отримують свої значення, порiвнюючи їх з константами у фактах i правилах.

Поки змiнна не отримає свого значення, вона називається вiльною, а коли отримує значення - зв'язаною. Але вона залишається зв'язаною тiльки на час, який необхiдний для отримання одного розв'зку на запит, потiм Пролог звiльнює її, повертає i шукає альтернативнi розв' язки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]