Процес пошуку розв’язків Пролог-системою на запити

Create a Competitive Analysis / SWOT to position your company in the market

Get Started. It's Free
or sign up with your email address
Процес пошуку розв’язків Пролог-системою на запити by Mind Map: Процес пошуку розв’язків Пролог-системою на запити

1. Співвідношення методу резолюції і пошуку в глибину

1.1. Для скорочення записів і наближення їх до вигляду, який використовувався в логіці предикатів

1.2. Пошук розв'язків Пролог-системою здійснюється з використанням механізму повернення (бектрекінгу).

2. Декларативний і процедурний смисл Пролог-програми.

2.1. Пролог-програму можна розглядати як із позиції декларативного підходу, так і з позиції процедурного підходу.

2.2. При процедурному трактуванні Пролог-програми відмічається послідовність кроків, які виконує Пролог-система при опрацюванні запиту.

2.3. Процедурна семантика визначає як Пролог-система шукає відповідь на поставлений запит.

2.3.1. Якщо при обході дерева який-небудь нащадок вершини типу АБО розв'язується успішно, то опрацювання останніх дочірніх вершин (піддерев, які знаходяться правіше) призупиняється і вважається, що АБО- вершина розв'язана успішно.

2.3.1.1. Згідно стратегії пошуку від цілі в глибину, а саме така стратегія використовується в Пролозі, здійснюється послідовний обхід І / АБО - дерева зверху-вниз-зліва-направо.

3. Процес пошуку розв'язків Пролог-системою на запити.

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

3.1.1. Нехай, наприклад, програма має вигляд: р :- p1, p2, p3. р :- q4, q5.

3.1.1.1. Цю програму можна розуміти таким чином. Щоб успішно досягти ціль р , потрібно спочатку довести ціль q1, потім ціль q2 , потім ціль q3: Якщо і q1 і q2, і q3 доведені, то й доведено ціль р. Іншими словами, якщо всі процедури q1, q2, q3 завершуються успішно, то й процедура р вважається успішно завершеною.

3.1.1.2. Якщо це не так, то потрібно розглянути наступний диз'юнкт і перебрати по порядку його цілі q4, q5. У цьому випадку процедура р вважатиметься успішно завершеною, якщо обидві процедури q4 і q5 завершуються успішно. Інакше процедурар терпить неуспіх.

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

3.2.1. Для ілюстрації описаної стратегії відшукання розв'язку дещо модифікуємо попередній приклад. Нехай, наприклад, програма містить диз'юнкти: р(Х) :-q1(Х), q2(Х, У), q3(У). р(Х) :- q4(2, X), q5(2).

3.2.1.1. Можна спробувати довести попередню ціль (q2 ) з допомогою іншої підстановки замість змінної Y і знову спробувати довести біжучу ціль (q3).

3.2.1.2. Це продовжуєть ся до тих пір, поки для біжучої цілі не буде досягнуто успіху (як кажуть у ць ому випадку, ціль буде успішною), а інакше здійснюється повернення ще на крок (до цілі q1), вибір іншої підстановки замість змінної X і спроба знову довести відповідні цілі (q2, q3).