Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Referat_Zayats.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
41.63 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

Національний університет “Львівська політехніка”

Навчально-науковий інститут новітніх технологій та управління

ім. В’ячеслава Чорновола

Кафедра “Загальної екології та екоінформаційних систем”

Реферат

На тему: «Типові випадки використання механізмів відсічки та повернення логічного програмування»

Виконали:

студенти групи КІ-47

Ляхович І. С.

Липовий Р. Я.

Перевірив викладач:

_________Заяць В. М.

Львів-2013р.

Зміст

Вступ……………………………………………………………………………...3

Механізм повернення та відсікання в логічному програмуванні……………... 5

Механізм перепогодження цільових тверджень………………………… 5

Суть механізму відсічки у логічному програмуванні………………….. 8

Основні випадки застосування механізму відсічки……………………..10

Типові способи використання механізму відсічки та повернення …………....12

Комбінація відсічки та предиката fail……………………………………12

Типові випадки використання механізму генерування розв’язків та перевірки……………………………………………………………………13

Список використаної літератури……………………………………………….15

Вступ 4

Механізм повернення та відсікання в логічному програмуванні 5

Механізм перепогодження цільових тверджень 5

Суть механізму відсічки у логічному програмуванні 8

Основні випадки застосування механізму відсічки 10

Типові способи використання механізму відсічки та повернення 12

Комбінація відсічки та предиката fail 12

Типові випадки використання механізму генерування розв’язків та перевірки 13

Список використаної літератури 15

Вступ

Пролог — мова логічного програмування загального призначення, пов'язана зі штучним інтелектом та математичною лінгвістикою.

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

Цю мову програмування спочатку було задумано групою навколо Алана Кольмерое (англ.) у Марселі на початку 1970-тих, а першу систему Пролог було розроблено у 1972-му Аланом Кольмерое та Філіпом Русселем (фр.).

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

Механізм повернення та відсікання в логічному програмуванні Механізм перепогодження цільових тверджень

За наявності деякого цільового твердження (цілі) в базі даних Прологу можуть виникати такі ситуації:

  1. Спроба довести погодженість цілі з базою даних, починаючи з їх вершини. Необхідно виділити два випадки:

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

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

  1. Спроба перепогодити цільовий запит приводить до руху маркера знизу вверх по базі даних.

Якщо при перепогодженні деякого цільового твердження не знаходиться альтернативного розв’язку, то Пролог робить спробу перепогодити всі попередні цілі, повертаючись до самої вихідної. Одночасно всі змінні розконкретизовуються, стають невизначеними і всі результати знищуються. Маркер починає рух знову вниз по базі даних, намагаючись по новому погодити цільові твердження, можуть знову виникати ситуації а) або б).

Розглянемо більш детально механізм перепогодження цілей на конкретних прикладах.

Найпростіший випадок, коли породжується множина розв’язків, ілюструє така база даних:

батько(марія, іван).

батько(петро, іван).

батько(ігор,михайло).

батько(іра,михайло).

Тоді Пролог на запит

? - батько(Х,Y).

Видасть відповіді:

X = марія Y = іван

X = петро У = іван

X = ігор У = михайло

X = іра У = михайло

Розглянемо цікавіший випадок, коли в запиті є дві підцілі, для яких можливі альтернативні розв’язки:

можлива_пара(Х,У) - хлопець(X),дівчина(У).

хлопець(Іван). дівчина(іра).

хлопець(петро). дівчина(ольга).

хлопець(дмитро). дівчина(оксана).

Відповіді Прологу на запит:

? – можлива_пара (Х, У).

X = іван У = іра

X = іван У = ольга

X = іван У = оксана

X = петро У = іра

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

Розглянемо предикат, який породжує множину цілих чисел:

ціле_число(0).

ціле_число(X):-ціле_число(У),Х = У+1.

На запит

? - ціле_число(2).

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

Більшість правил, які мають прикладне застосування, породжують цілий континіум розв’язків, що пов’язано з наявністю в них великої кількості неконкретизованих змінних.

Так, правило визначення належності деякого об’єкта до списку: належить(X,[X| _]).

належить(X, [ |У]):- належить(X,У).

на запит:

? - належить(а,X).

породжує цілий континіум розв’язків

[а|_];

[_а|_] ;

[__ а|_ ];

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

Очевидно, щоб успішно опрацювати такі розв’язки, зупиняючись на бажаному, необхідно мати відповідний механізм. Такий механізм

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

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