Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ TP_2_0.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
70.66 Кб
Скачать

Логическое программирование (turbo prolog 2.0)

Методические указания к выполнению лабораторных работ по курсу «Функциональное и логическое программирование» для студентов специальности 220400 «Программное обеспечение вычислительной техники и автоматизированных систем»

Основные понятия

База данных – совокупность утверждений, содержащих данные (факты).

Безуспешное выполнениеfail – встроенный системный предикат, который всегда приводит к безуспешному выполнению правило, в котором он использован. Вызывает откат к другим возможным вариантам решения задачи ввиду неуспеха данного предиката.

Внешняя цель – целевой утверждение, вводимое пользователем во время работы программы на Турбо-Прологе.

Внутренняя цель – целевой утверждение, содержащееся в тексте программы в разделе goal.

Домен – диапазон и тип значений, определенные для базисного типа данных. В Турбо-Прологе базисными типами являются char, integer, real, string и symbol.

Искусственный интеллект – область науки, связанная с проектированием компьютерных систем, имеющих свойства, ассоциирующиеся с разумным поведением человека.

Конкретизация (связывание, означивание) – присвоение значения логической переменной на время доказательства целевого утверждения.

Логика предикатов – научная дисциплина, изучающая отношения между условиями и заключениями.

Логическое программирование – непосредственное использование логики в качестве языка программирования. Логическое программирование базируется на убеждении, что не человека следует обучать мышлению в терминах операций компьютера, а компьютер должен выполнять инструкции, свойственные человеку. В своем предельном и чистом виде, логическое программирование предполагает, что сами инструкции даже не задаются, а вместо этого явно, в виде логических аксиом, формулируются сведения о задаче и предположения, достаточные для ее решения.

Объект – название отдельного элемента в конструкции Пролога.

Откат (бектрекинг – backtracking) – поиск с возвратом. После вычисления очередной подцели Пролог осуществляет возврат (откат) к предыдущей подцели и пытается удовлетворить ее иным способом. Откат является встроенным механизмом Пролога и автоматически инициализируется системой, если не используются специальные средства управления им. Для управления процессом отката в Турбо-Прологе предусмотрены два встроенных предиката fail (безуспешное выполнение, неудача) и cut (отсечение)

Отрицание – not (<утверждение>) – встроенный системный предикат, который успешен, если <утверждение> представляет собой цель, оказавшуюся при доказательстве неуспешной.

Отсечение (cut) – ! – встроенный системный предикат, который заставляет Турбо-Пролог «забыть» все указатели отката, установленные во время попыток вычислить текущую подцель. Другими словами, предикат cut запрещает выполнить откат ко всем альтернативным решениям текущей подцели. Однако последующие подцели могут создать новые указатели отката и тем самым создать условия для поиска новых решений. Вычисление этого предиката всегда завершается успешно.

Переменная – символическое имя, начинающееся с заглавной буквы или с подчерка. Переменная, которой в данный момент не присвоено никакого значения, является неозначенной (несвязанной, свободной, неконкретизированной).

Правило – это условно истинное утверждение Пролог-программы вида

a:-b1, b2, …, bn. или

a if b1 and b2 and … and bn. где a называется заголовком (головой) правила, а последовательность biтелом правила.

Предикат – утверждение о наличии связи между объектами (отношение).

Пролог – язык программирования (Prolog – PROgramming in LOGic). Разработан в 1973 г. Алэном Колмероэ и др. в Марсельском университете (Франция). Структура языка базируется на логике предикатов.

Процедура – совокупность правил с одним и тем же предикатом в заголовке.

Терм – синтаксическая единица, структура данных логической программы (константа, переменная, сложный терм).

Турбо-Пролог – компиляторно-ориентированный язык программирования высокого уровня, разработан фирмой Borland International и предназначен для программирования задач из области искусственного интеллекта. Самым существенным отличием от других реализация Пролога является наличие в Турбо-Прологе строгой типизации элементов данных, что дает ряд преимуществ языку.

Унификация (сопоставление) – процесс сравнения набора условий, содержащихся в правиле, с заданными условиями, обычно содержащихся в базе данных; попытка сделать цель и утверждение идентичными.

Утверждения (предложения) – исходные элементы описания предметной области: простые – факты и сложные – правила.

Факт – это безусловно истинное утверждение Пролог-программы, т.е. некоторое утверждение, истинность которого считается доказанной. Используется для констатации того, что выполнено некоторое отношение между объектами. Частный случай правила при n=0.

Целевое утверждение (цель, вопрос) – логическое утверждение, подлежащее доказательству; средство извлечения информации из логической программы. С его помощью выясняется, выполнено ли некоторое отношение между объектами.