- •Міністерство освіти і науки України Дніпропетровський національний університет
- •Програмування мовою пролог
- •Дніпропетровськ
- •1. Основи мови програмування пролог
- •1.1. Основні поняття
- •1.2. Синтаксис мови пролог
- •1.3. Класифікація даних у пролозі
- •1.4. Приклад доказу в пролозі
- •1.5. Подання задачі у вигляді і-або дерева
- •1.6. Структура програми в системі tp
- •1.7. Убудовані типи даних мови tp
- •1.8. Висновки
- •2. Підстави логічного програмування
- •2.1. Принцип резолюцій
- •2.3. Способи застосування принципу резолюцій
- •2.4. Диз’юнкти хорhа
- •3. Три семантичні моделі пролог-програми
- •4. Подання знань
- •4.1. Процес подання знань
- •4.2. Способи подання бази знань
- •4.2.1. Представлення цілісних інформаційних елементів у вигляді фактів
- •4.2.2. Подання атрибутів у вигляді фактів
- •4.2.3. Представлення знань у вигляді списку структур
- •4.2.4. Подання у вигляді рекурсивних структур
- •4.2.5. Подання у вигляді двійкового дерева
- •4.2.6. Порівняння різних виглядів подання бази даних
- •4.2.7. Компонування даних у список
- •4.3. Використання складених об'єктів
- •4.4. Використання альтернативних доменів
- •4.5. Засоби документування програми
- •4.6. Типи й властивості відношень предметної області
- •4.6.1. Обмеження, що забезпечують цілсність відношень
- •4.6.2. Властивості відношень бази знань і їхня підтримка в програмі на tp симетрія і асиметрія
- •Рефлексивность і нерефлексивность
- •Транзитивність
- •Симетричність і транзитивність
- •Спроба 1
- •Спроба 2.
- •Запам'ятовування списку відвіданих місць
- •4.7. Списки
- •4.7.1. Подання й зображення списків
- •4.7.2. Використання списків
- •4.7.3. Метод поділу списку на голову і хвіст (псгх)
- •4.7.4. Списки списків
- •Методи програмування
- •5.1. Повторення і відкіт (пв)
- •5.2. Метод відкоту після невдачі (впн)
- •5.3. Метод відсікання та відкоту (вв)
- •5.4. Повторення та рекурсія (пр)
- •5.5. Метод узагальненого правила рекурсії (упр)
- •5.6. Побудова рекурсивних структур методом прогресуючої підстановки (пп)
- •5.7. Предикат відсікання
- •5.8. Організація багаторазово виконуваних інтерактивних програм (бвіп)
- •5.9. Метод аналізу станів (ас)
- •5.10. Метод організації висхідних рекурсивних обчислень (вро)
- •5.11. Комбінація спадних і висхідних рекурсивных обчислень (ксвро)
- •5.12. Предикат fail-if (not)
- •5.13. Предикат true
- •5.14. Модифікація бази даних (мбд)
- •5.15. Керування базою даних (кбд)
- •5.16. Глобальні змінні (гз)
- •5.17. Накопичування результатів у базі даних за допомогою вимушеного відкоту і глобальної змінної (нрввгз)
- •5.18. Метапрограмування (мп)
- •Список рекомендованої літератури
- •1. Основи мови програмування пролог 4
- •2. Підстави логічного програмування 14
- •3. Три семантичні моделі пролог-програми 20
- •4. Подання знань 23
- •Програмування мовою пролог
4.5. Засоби документування програми
Для документування процесу розробки бази знань можна застосовувати структурні діаграми. Діаграма – це засіб аналізу й наочного подання складених структур. Існує два види структурних діаграм: предикатні структурні діаграми (ПСД) і доменні структурні діаграми (ДСД). Використовуємо їх для наочного опису бази знань про регіони України (ПСД – рис. 7, ДСД – рис. 8, 9).
Рівень 0 предикат (головний функтор)
Рівень 1
назва населення столиця площа міста регіони
країна
Р
назва населення площа
назва населення площа
Рис. 7. Предикатна структурна діаграма “країна”
місто
місто
назва населення площа
Рис. 8. Доменна структурна діаграма “місто”
Слід визначити, що ДСД – компонент ПСД. Подібні діаграми корисні для подання компонентів струкутур. Верхні рівні показують загальні риси структури, а нижні деталізують уяввлення про неї. ПСД і ДСД – зручний засіб документування процесу розробки програм на ТP. Вони також можуть надати допомогу при написанні ефективних правил.
регіон
Домен
область
Рівень 0
Рівень 1
назва населення столиця площа назва_міст
назва_регіонів
Рис. 9. Доменна структурна діаграма “регіон”
4.6. Типи й властивості відношень предметної області
Фрази ПРОЛОГ-програми застосовуються для подання відношень між термами. Терми вживаються для подання сутностей предметної області. Тому для підвищення ефективності програми спочатку доцільно проаналізувати відношення, що зустрічаються в предметній області, а потім прийняти розв’язок про те, як подати кожен тип відношень за допомогою фраз ПРОЛОГу. Знання властивостей відношень забезпечить коректне описання предметної області й оптимізацію обробку запитів.
Для простоти будемо розглядати тільки відношення між двома аргументами (тобто бінарні відношення). У принципі такий аналіз можна поширити і на відношення з більшею кількістю аргументів.
4.6.1. Обмеження, що забезпечують цілсність відношень
Для аргументів будь-якого бінарного відношення буде справедливим одне з таких обмежень, що забезпечують цілісність відношення:
один-до-одного;
один-до-багатьох;
багато-до-одного;
багато-до-багатьох.
Якщо бінарне відношення з аргументами X і Y регулюється обмеженням виду один-до-одного, що забезпечує цілісність цього відношення, то це означає, що для заданого значення X існує тільки одне значення Y, яке задовольняє це відношення, а для заданого значення Y існує тільки одне значення X, що задовольняє це відношення. Наприклад, між студентом і його шифром існує взаємо-однозначна відповідність (ПМ-98-2-05).
Якщо бінарне відношення з аргументами X і Y регулюється обмеженням виду один-до-багатьох, що забезпечує цілісність цього відношення, то це означає, що для заданого значення X може існувати багато значень Y, які задовольняють це відношення, але для заданого значення Y існує тільки одне значення X, що задовольняють це відношення. Наприклад, “батькі-діти”.
Якщо бінарне відношення з аргументами X і Y регулюється обмеженням виду багато-до-одного, що забезпечує цілісність цього відношення, то це означає, що для заданого значення X існує тільки одне значення Y, яке задовольняє це відношення, а для заданого значення Y може існувати багато значень X, що задовольняють це відношення. Наприклад, “уродженець-країна”. У якій-небудь країні може народитися багато людей, але одна людина може бути уродженцем тільки однієї країни.
Якщо бінарне відношення з аргументами X і Y регулюється обмеженням виду багато-до-багатьох, що забезпечує цілісність цього відношення, то це означає, що для заданого значення X може існувати багато значень Y, які задовольняють це відношення, а для заданого значення Y може існувати багато значень X, що задовольняють це відношення. Інакше кажучи, для даного відношення не існує ніяких обмежень. Наприклад, “брат-сестра”.
Для виконання цих обмежень необхідно їх перевіряти при первісному заповненні бази знань і підтримувати при роботі з базою даних (перевіряти при кожному акті додавання чи вилучення фактів з бази даних).
Крім цього, деякі відношення можна охарактеризувати наявністю чи відсутністю наступних властивостей:
симетрія (асиметрія);
рефлексивність(нерефлексивність);
транзитивність(нетранзитивність).