Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AlgStr / Библиотека / ЛЕКЦИИ / POSIBNIK / ПРОГР НА ПРОЛОГЕ.doc
Скачиваний:
42
Добавлен:
23.03.2015
Размер:
669.7 Кб
Скачать

1.7. Убудовані типи даних мови tp

Тип даних

Ключове слово

Діапазон значень

Приклад

Символ

Char

Будь-які символи

‘a’, ’#', ’13’

Цілі

Integer

Числа від -32768

до 32767

56, -7, 4567

Дійсні

Real

Числа від 1Е-307

до 1Е-308

1.5, 1E75, -1.6E5

Рядок

String

Послідовність символів до 250 штук

“to_day”

Символічні

імена

Symbol

1. Послідовність цифр і підкреслень, перший символ – мала літера.

2. Послідовність символів, узятих у лапки.

to_day,

'to day',

'Василь'

“to_day”

“MAMA”

Файли

FILE

Будь-яке припустиме ім'я файла в MS DOS.

“C:\TMP\a.txt”,

“work.pro”

1.8. Висновки

Отже ПРОЛОГ – декларативна мова, зоснована на логіці предикатів. Предикати в загальному випадку визначають відношення між об'єктами.

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

Цілі – це конструкції на основі предикатів, які повідомляють, що повинна довести програма на ПРОЛОЗі. Зв'язки у цілях і правилах (“:-”, “,” і “;”) виконують генерацію підцілей як крок процесу доказу цілі.

Внутрішні уніфікаційні процедури надають значення змінним. Означені змінні й константи мають значення “відомі” ПРОЛОГу. Вільні змінні значень не мають.

Відкоти використовуються ПРОЛОГом для визначення альтернативних шляхів обчислення цілі або підцілі. Якщо підціль виявилася неуспішною, а покажчики відкоту були встановлені, то для попередньої підцілі (стік підцілей) буде зроблена спроба домогтися успіху, починаючи з точки відкоту.

Для зовнішньої цілі ПРОЛОГ виконує відкіт навіть у тому випадку, коли ціль була доведена. Це відбувається тому, що для зовнішньої цілі ПРОЛОГ шукає ВСІ можливі розв’язки.

2. Підстави логічного програмування

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

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

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

- квантор загальності (x);

- квантор існування (x).

У численні висловлень формули будуються індуктивним способом за допомогою логічних зв'язок &, V, , . Числення предикатів містить усі формули числення висловлень, а також формули, що містять предикатні символи (змінні) із кванторами.

Виділяється підмножина тотожно істиних формул, істинність яких не залежить від істинності висловлень, що входять до нього. Вони називаються аксіомами. У логіці предикатів 1-го порядку існує декілька правил виведення. Наприклад, класичним правилом виведення є правило modus ponens

A, A B

------------

B

Це треба розуміти так: "якщо істинна формула A й істинно, що з A виводиться B, то формула B також буде істинною". Це правило виведення формалізує основний закон дедуктивних систем: із істинних посилок випливають істинні висновки.

У дедуктивній системі задача, що розв'язується, подається у вигляді тверджень (аксіом) F1, F2, ..., Fn числення предикатів першого порядку. Ціль задачі B також записується у вигляді твердження, справедливість якого потрібно або встановити або спростувати на підставі аксіом і правил виведення формальної системи.

Тоді розв’язання задачі зводиться до з'ясування логічного висновку (вивідності) цільової формули B із заданої множини формул (аксіом) B. Таке з'ясування рівносильне доведенню загальнозначущості (тотожної істинності) формули

F1 & F2 & ... & Fn  B

чи нездійсненності формули (теорема Эрбана, 1930)

F1 & F2 & ... & Fn & B

Із практичних міркувань зручніше застосовувати доведення від супротивного, тобто доводити нездійсненність формул. Hа доведенні від супротивного основане й головне правило виводу, що застосовується в логічному програмуванні – принцип резолюцій.