У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


D.

Для скорочення об`ємів обчислень на практиці використовують спеціальний клас фраз, який дістав назву фраз Хорна. Фраза Хорна - це фраза, яка має тільки один позитивний літерал. Одну фразу Хорна можна записати декількома способами. Наприклад, А В С D еквівалентне А В, С, D і в системі Турбо-Пролог буде мати вигляд А: В, С, D.

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

Правило резолюції виведення логічного висновку працює наступним чином. Дві фрази можуть резольвувати між собою, якщо одна з них має позитивний, а друга - негативний літерал з одним і тим же позначенням предикату, та однаковою кількістю аргументів, і якщо аргументи обох літералів можуть бути уніфіковані (погоджені). Наприклад, фраза P(a,b) Q(c,d) і фраза Q(c,d) R(b,c) дають резольвенту P(a,b) R(b,c). Якщо ж аргументом відношення є змінна, то вона уніфікується з константою, а резольвента буде мати дану константу на місцях попереднього розташування змінної.

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

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

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

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

Нехай маємо відношення АРТИСТ(х), яке позначає твердження х є артистом і аналогічне відношення СПІВАК(х). Це дає змогу вираз “співак є артистом” формалізовати наступною імплікацією:

СПІВАК(х) АРТИСТ(х).

Тепер, після задання виразу “Яремчук - співак”, попробуємо довести за допомогою методу резолюції вираз “Яремчук - артист”.

Спочатку, добавимо до попередніх фраз теорії формулу заперечення того твердження, яке ми хочемо довести. Матимемо наступні фрази теорії:

СПІВАК(х) АРТИСТ(х) (1)

СПІВАК(Яремчук) (2)

АРТИСТ(Яремчук) (3)

Формулу (1) перепишемо в вигляді СПІВАК(х) АРТИСТ(х). Потім зробимо уніфікаційну підстановку х: Яремчук відносно формул (1) і (2). В результаті можемо видалити тотожньо істинну формулу:

СПІВАК(Яремчук) СПІВАК(Яремчук).

Залишок з`єднаємо зв`язкою і знову ж видалимо. В результаті маємо пусту фразу, що дає непослідовність нашої теорії. Звідки, методом обгрунтування логічного висловлення виводиться формула АРТИСТ(Яремчук). Наш приклад в синтаксисі системи Турбо-Прологу буде мати вигляд:

АРТИСТ(х): - СПІВАК(х).

СПІВАК(Яремчук).

? - АРТИСТ(Яремчук).

1.6.Механізм логічного виведення і керування пошуком.

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

А: -В1, В2,..., Вn.

Наше речення інтерпретується наступним чином: “А є істинним, якщо В1,В2,...,Вn є істинними”.

Кажуть, що А є заголовком цього речення, а В1,В2,...,Вn його тіло. Якщо n=0, тоді таке речення визначає деякий факт і записується “А”.

Речення А і Ві є прикладами цілей або ж викликами процедур, які складаються із предикату і його аргументів R(x,y).

Якщо отримано запит (іншими словами ціль, яку необхідно задовільнити), Пролог пробує визначити його істинність двома способами. По перше, тому що факти завжди є істинними, тоді ціль успішно задовільняється, якщо вона співставляється з існуючим фактом. По друге, ціль вважається істинною, якщо вона співпадає з деяким заголовком “А” всі підцілі якого “В1,В2,...,Вn” можуть бути успішно завершені. Якщо спроба співставлення підцілей і фактів закінчується невдало, а залишаються альтернативні і ще не використані правила та факти, тоді Пролог-система буде здійснювати повернення і використовувати ці альтернативи. Якщо всі альтернативи перебрані і закінчились невдало, тоді кажуть що початкова ціль незадовільна.

Порядок оцінки цілей в самому реченні - зліва направо.

Вправи.

1.1.Базуючись на принципі силлогізму, довести:

а)Якщо задані дві посилки:

Всі українці люблять пісні.

Всі кияни - українці.

Тоді буде коректним висловлення:

Всі кияни люблять пісні.

б)Якщо задані дві посилки:

Всі програмісти люблять жувальну гумку.

Деякі програмісти живуть в Києві.

Тоді буде коректним висловлення:

Деякі люди з Києва люблять жувальну гумку.

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

1.3.Маємо наступну множину фраз

Р(а) Q(a,b)

Q(x,y) R(x,y)

S(b)

R(a,b)

Потрібно вияснити, чи є фраза Р(а), наслідком існуючої множини фраз.

2.ОСНОВНІ КОНЦЕПЦІЇ ПРОЛОГУ.

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

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

Наприклад, наступні речення трансформуються в синтаксис предикатної логіки:

Китайська авторучка зручна.

зручна(китайська_авторучка).

Вані подобається авторучка, якщо вона зручна.

подобатись(ваня,авторучка) if зручна(китайська_авторучка).

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

Ваня любить автомобілі

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

Ваня любить автомобілі

буде істинним, має вигляд:

Ваня любить автомобілі, якщо вони швидкі.

Факти.

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

Прапор червоний. Валя - студентка.

можуть бути задані наступними фактами:

червоний(прапор) студентка(Валя).

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

Запити.

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

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

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

1.Програма на Пролозі будується із двох типів фраз (речень):


Сторінки: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22