Мати(василь,анна)

мати(марія,анна).

батько(марія,федір).

батько(василь,фердір).

Розглянемо послідовність подій, яка має дати відповідь на питання:

?—жінка(марія), батьки(марія,M,F), батьки(василь,M,F).

Це запитання дозволяє визначити, чи є марія сестрою василя. Для того, щоб дати відповідь Прологу, потрібно узгодити з базою даних послідовність підцілей, приведених на рис. 2.1.

мати(василь,анна) - student2.ru

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

Кінцева ситуація представлена на рис. 2.2. Відмітимо, що в ході доведення узгодженості цільових тверджень з базою даних були знайдені значення для змінних M і F.

мати(василь,анна) - student2.ru

Вибране твердження позначається числом в дужках, в даному випадку (1). Це число вказує номер вибраного твердження в наборі тверджень з відповідним предикатом.

Ця інформація достатня для відмітки місця у базі даних. Під-цілі поміщені в маленькі прямокутники, поміщені в прямокутник цього цільового твердження.

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

Коли цільове твердження не можна довести (перевірені усі можливі твердження або користувач натиснув клавішу ';'), «ланцюжок доказів» проходить назад той шлях, по якому вона прийшла в цю точку. Вона повертається в покинуті перед цим прямокутники для того, щоб спробувати пере довести (знову погоджувати) відповідні цільові твердження. Коли стрілка повертається в те місце, де було вибрано якесь твердження (ця подія зображується числом в дужках), Пролог намагається знайти альтернативне твердження, що відповідає цій меті. Спочатку робляться невизначеними усі змінні, які були конкретизовані в ході доведення цього цільового твердження. Потім поновлюється пошук у базі даних, починаючи з того місця, де був залишений маркер. Якщо буде знайдене інше твердження, що відповідає цільовому, Пролог позначає це місце, і далі події розвиваються, як було описано вище.

мати(василь,анна) - student2.ru

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

14. Встановлення відповідності.

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

• Неконкретизована змінна відповідає будь-якому об’єкту. Цей об'єкт стає значенням змінної.

• Ціле число або атом відповідають тільки самим собі.

• Між структурами можна встановити відповідність, тільки якщо вони мають однаковий функтор, однакове число параметрів і відповідні параметри відповідають один одному.

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

сума(5).

сума(3).

сума(Х+У). ?— сума(2+3). – неправильно. обчислити суму, слід було б скористатися предикатом ‘is’.

?— X is 2+3.

15. Структури і дерева.

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

мати(василь,анна) - student2.ru

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

мати(василь,анна) - student2.ru

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

Наши рекомендации