Распечатать страницу

Лабораторна робота №6, Технологія роботи в середовищі ПРОЛОГ-Д

« Назад

Код роботи: 1114

Вид роботи: Лабораторна робота

Предмет: Технологія створення програмних та інтелектуальних систем

Тема: №6, Технологія роботи в середовищі ПРОЛОГ-Д

Кількість сторінок: 9

Дата виконання: 2016

Мова написання: українська

Ціна: 250 грн

Мета: ознайомитися з технологією роботи в середовищі ПРОЛОГ-Д

Теоретичні відомості

Для прикладу розглянемо генеалогічне дерево представленої сім'ї (Рис.1).

1. Створюємо генеалогічне дерево родини (не менше 7 осіб).

Б1114, Рис. 1 - Генеалогічне дерево родини

Рис. 1 - Генеалогічне дерево родини

Щоб описати це дерево родинних відносин, необхідно описати кожну стрілку - відношення між двома об'єктами:

Б1114, Рис. 2 – Відношення між двома об'єктами в ПРОЛОГ-Д

Рис. 2 – Відношення між двома об'єктами в ПРОЛОГ-Д

Кожна пропозиція оголошує про один факт наявності відносини родитель. Аргументи відносин можуть бути конкретними (const) і абстрактними - змінні. Пропозиції можуть бути не тільки фактами (твердження, які є вірними), але і правилами (твердженнями, які залежать від умов). Ліва частина правила - голова (висновок) правила, а права складається зі списку цілей, від яких залежить висновок правила.

Цілі записуються через кому (,- и) або (;- или).

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

Б1114, Рис. 3 – Правила побудови генеалогічного дерева в ПРОЛОГ-Д

Рис. 3 – Правила побудови генеалогічного дерева в ПРОЛОГ-Д

Отец (Х, У): - родитель(Х, У), мужчина (Х). (Рис.2)

«Х является отцом У», якщо виконуються умови, що Х – родитель У, і Х - мужчина.

Дочь (Х, У): - родитель (Х, У), женщина (Х). (Рис.3) Ці відносини називаються вертикальними.

Відносини, які мають в структурі більше двох об'єктів і мають вигляд (рис.4), називаються горизонтальними.

Крім трьох відомих відносин необхідно додати в правило і той факт, що Х не є У (Х <> У), щоб пролог скасував функцію перестановки об'єктів.

Поки - що ми розглядали відносини першого рангу, відносини другого рангу дещо складніші:

Б1114, Рис. 4 – Відносини другого рангу в ПРОЛОГ-Д

Рис. 4 – Відносини другого рангу в ПРОЛОГ-Д

Б1114, Рис. 5 – Відносини з сім'єю другого рангу в ПРОЛОГ-Д

Рис. 5 – Відносини з сім'єю другого рангу в ПРОЛОГ-Д

Дед (Х, У): - родитель (Х, Z), родитель (Z, Y), мужчина (Х). (Рис5).

Тётя (Х, Y): - родитель (А, В), родитель (А, Х), родитель (B,Y), женщина (Х), В < > X. (Рис.6).

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

родитель (Александр, Надежда).

Тут в якості імені відносини (предиката) використовується ім'я родитель, Александр і Надежда - в якості аргументів цього відношення.

Використовуючи такий підхід можна написати логічну програму сімейних відносин.

родитель (Александр, Надежда);

родитель (Тамара, Наталья);

родитель (Надежда, Павел);

родитель (Надежда, Вика);

На малюнку наведено родинне дерево

Б1114, Рис. 6 – Родинне дерево

Рис. 6 – Родинне дерево

Предикат може описувати будь-які відносини.

Програми на логічній мові складаються із двох типів фраз: фактів і правил, також званих пропозиціями.

Факти - це відносини або властивості, про які відомо, що вони мають значення "істина".

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

родитель (Тамара, Наталья);

родитель (Надежда, Павел);

родитель (Александр, Павел);

родитель (Надежда, Вика);

родитель (X, Вика) <- родитель (X, Павел);

В цьому прикладі перші п'ять рядків є фактами. Останній рядок - це правило.

Дане правило можна перевести на природну мову наступним чином: батьком Віки є батько Павла.

Якщо тепер ввести запит:

? родитель(Александр, Вика).

логічна система відповість ДА

При введенні запиту

? родитель (Тамара, Вика).

логічна система відповість НЕТ.

Таким чином очевидно, що система вивела новий факт – родитель (Александр, Вика), який був відсутній у первісному наборі фактів.

Розглянемо наступний приклад, що описує переваги кожного представника родини:

любит (Тамара, кофе);

любит (Александр, компьютер);

любит (Надежда, плавать);

любит (Вика, куклы);

любит (Натапья, море);

юбит (Павел, X) <- любит (Александр, X);

Хід роботи

1. Завантажте систему ПРОЛОГ - Д. Інтерфейс програми має вигляд

Б1114, Рис. 7 – Завантаження системи ПРОЛОГ-Д

Рис. 7 – Завантаження системи ПРОЛОГ-Д

2. Введення інформації у вікно Программа

Б1114, Рис. 8 - Введення інформації у вікно Программа в ПРОЛОГ-Д

Рис. 8 - Введення інформації у вікно Программа в ПРОЛОГ-Д

3. Введення цілі (запит)

Б1114, Рис. 9 – Введення цілі в ПРОЛОГ-Д

Рис. 9 – Введення цілі в ПРОЛОГ-Д

4. Виведення повідомлення у вікні Результат

Б1114, Рис. 10 - Виведення повідомлення у вікні Результат в ПРОЛОГ-Д

Рис. 10 - Виведення повідомлення у вікні Результат в ПРОЛОГ-Д

родитель(Александр, Надежда);

? родитель(Александр, Надежда);

5. Введення змінної

Б1114, Рис. 11 – Введення змінної в ПРОЛОГ-Д

Рис. 11 – Введення змінної в ПРОЛОГ-Д

6. Коментарі в програмі

Б1114, Рис. 12 – Коментарі в ПРОЛОГ-Д

Рис. 12 – Коментарі в ПРОЛОГ-Д

7. Виведення значення змінної

Б1114, Рис. 13 – Виведення значення змінної в ПРОЛОГ-Д

Рис. 13 – Виведення значення змінної в ПРОЛОГ-Д

Б1114, Рис. 14 – Результат програми в ПРОЛОГ-Д

Рис. 14 – Результат програми в ПРОЛОГ-Д

Коди програм

Б1114, 1

Завдання:

Створіть програму визначальну родинні стосунки. Програма повинна містити такі факти: