Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Засоби керування




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

Унифікація - це процес обробки на співпадання двох предикатів і призначення вільних змінних. Вона включає наступні кроки:

1.Пролог пробує задовільнити ціль. починаючи з початку програми шукати відповідність.

2.Коли запитується новий виклик, пошук також починається з початку програми.

3.Коли виклик знаходить успішно відповідність (кажуть виклик повертається), викликається наступна підціль.

4.Якщо змінні зв`язані в підпункті, тоді єдиний шлях звільнить їх - бектрекінг.

Можна виділити чотири основні пункти бектрекінгу:

1.Підцілі повинні бути задоволені в послідовності зверху вниз.

2.Пункти предикату тестуються в тому порядку, в якому вони з`являються в програмі при перегляді зверху - вниз.

3.Ціль буде задоволена, якщо буде знайдена відповідність для кожного рівня відповідного дерева.

4.Виклик, який породжує множину рішень, є недетермінованим.

 

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

1.Пролог має три предикати для контролю напрямку логічного пошуку вашої програми:

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

* not приймає значення істина, коли для асоційованої з ним підцілі не може бути доведено істинність.

* cut - виключає бектрекінг.

2.Можна розглядати, що правила Прологу є визначеннями процедур з точки зору процедурної перспективи. З точки зору процедурної перспективи, правила можна розглядати як варіанти оператору case Паскалю.

Вправи.

4.1.Нехай маємо програму

P: - a, b.

P: - c.

Декларативна сутність якої наступна: р буде істинним тоді і тільки тоді, коли будуть істинні одночасно і а і b, або буде істинним с.

Яким буде декларативна сутність програм?

а) р: - а,!, b.

P: - c

б) р: - с

р: - a,!, b.

4.2.Наступні відношення розподіляють числа на три класи - додатні, нуль і від`ємні:

клас (Число, додатні): - Число>0.

Клас (0, нуль).

клас (Число, від`ємні): - Число<0.

Зробіть цю процедуру більш ефективною за допомогою відтинання.

4.3.Нехай маємо програму

Р(4)

р(5): -!

Р(6).

Напишіть відповіді пролог-системи на наступні питання:

а) goal: p(X).

б) goal: p(X), p(Y).

c) goal: p(X),!, p(Y)

4.4.Напишіть програму знаходження максимума двох чисел, використовуючи предикат відтинання.

 

5.ПРОСТІ ТА СКЛАДНІ ОБ'ЄКТИ.

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

5.1 Прості дані.

В якості простих даних виступають змінні або ж константи. Константа може бути або ж символьною (char), або ж числовою (integer, real), атомарною (symbol, string).

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

 

5.1.1. Константи як об'єкти даних.

Константи включають символи, числа і атоми. Значення константи міститься в її імені. Так константа 2 може символізувати тільки число 2, а константа abracadabra може символізувати тільки стрічку abracadabra.





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 426 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студент может не знать в двух случаях: не знал, или забыл. © Неизвестно
==> читать все изречения...

2754 - | 2314 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.