Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекц1-3.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
260 Кб
Скачать
☆

3.3.2 Формальний опис процедури обчислення цілей.

Нехай список цілей

1.Якщо список цілей порожній, обчислення дає успіх, якщо ні, то виконаються пункт 2.

2.Береться перша мета G1 зі списку. Пролог вибирає в базі даних, переглядаючи спочатку, перша пропозиція С,

С: H :- B1, B2, ..., Bn.

голова якого, зіставляється з метою G1.

Якщо такої пропозиції немає, то невдача.

Якщо є, то змінні конкретизуються і ціль G1 заміняється на список цілей

с конкретизованими значеннями змінних.

3.Розглядається рекурсивно через п.2 новий список цілей.

Якщо С -факт, то новий список коротше на одну мету.(n=0)

Якщо обчислення нового списку закінчується успішно, то і вихідний список цілей виконується успішно.

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

Описаний процес повернення називається бектрекінг. (backtracking).

3.4 Співвідношення між процедурним і декларативним змістом

Створюючи пролог програми завжди треба пам'ятати про процедурний і декларативний зміст.

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

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