Программное обеспечение основано на использовании агентов

Вступ

Як реалізація принципів логічного програмування мову PROLOG вносить цікавий і істотний внесок в рішення задач штучного інтелекту. Найбільш важливе значення має декларативна семантика (declarative semantics) — засіб прямого виразу взаємозв'язків в завданнях штучного інтелекту, а також вбудовані засоби уніфікації і деякі прийоми перевірки відповідності і пошуку. У цьому розділі торкнуться багато важливих питань логічного програмування і організації мови PROLOG.

Синтаксис для програмування логіки предикатів

1. Представлення фактів і правил

Не дивлячись на існування численних діалектів мови PROLOG, в цій книзі використовується початкова версія мови C-PROLOG, розроблена Уорреном (Warren) і Перейрой (Pereira) [Clocksin і Mellish, 1984]. Щоб спростити представлення даних на мові PROLOG, при описі логіки предикатів в розділі 2 використовуються багато угод, прийнятих в цій мові. Проте існують численні відмінності синтаксису логіки предикатів від мови PROLOG. Наприклад, в C-PROLOG символ: - відповідає символу 4— логіки предикатів першого порядку. Приведемо ще декілька відмінностей синтаксису PROLOG від позначень.

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

може представляти той факт, що "кожен любить Сьюзі". Або представляє безліч людей, яких люблять Джордж і Сьюзі.

Допустимо, на мові PROLOG необхідно представити наступне відношення: "Джордж любить Кейт і Джордж любить Сьюзі"

Його можна записати у вигляді

Таким чином, "Джордж любить Кейт або Джордж любить Сьюзі" можна представити так:

І, нарешті, "Джордж любить Сьюзі, якщо Джордж не любить Кейт" описується так

З цих прикладів видно, як зв'язки ?, ?, < і ? з логіки предикатів представляються на мові PROLOG. Імена предикатів (на зразок likes), кількість і порядок проходження параметрів і навіть постійне або змінне число параметрів визначаються вимогами (неявною "семантикою") конкретного завдання. У цій мові програмування не існує ніяких обмежень, окрім вимоги правильної побудови формул.

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

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

Допустимо, потрібно описати " світ симпатій і антипатій" Джорджа, Кейт і Сьюзі. База даних для цієї задачі

1 2 3 4 5 6 7 8

Похожие работы

Рефераты

Курсовые

Дипломные