Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LP-Kurs_lektsy.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
337.41 Кб
Скачать

29

Курс лекций по дисциплине «Логическое программирование» Специальность 220400 «по вт и ас» Факультет ирт Кафедра вМиК Курс 5 (веч) Основные конструкции логической программы

ЛП состоит из предложений.

Предложения описывают знания о решаемой задаче.

Предложение конструируется из объектов и отношений между ними.

Объекты.

Конкретное множество объектов образует проблемную область.

Например, для задачи f(x) -> min множество всех чисел образует проблемную область, если f(x) определена.

Конкретные объекты образуют множество индивидуумов.

Конкретные объекты и конкретные отношения это константы.

Имена констант это атомы.

Различают атомы простые и составные.

Например, «мир» – простой, «студент(петров)» - составной.

В общем виде структура имени имеет вид: f(t1,…,tn) где f – функтор, ti – аргументы.

Отношения.

Рассмотрим запись «сессия(экзамен(мат, физ, прогр), весна)» (1)

В основе представления о смысле имен сессии и экзамена лежат конкретные множества наборов объектов. Заданием этого множества можно формализовать понятие «экзамены».

Например, экзамены = { (мат, физ, прогр), (фил, псих, экол), … } (2).

Это пример трехместного отношения. N- местное отношение – это множество кортежей для фикс. N.

Предикаты.

В логике отношение называют предикатом.

Имя отношения – предикатный символ.

Запись P(t). Понимание: Элементы кортежа t принадлежат отношению с именем P или:

Высказывание Р верно для элементов кортежа t.

Предложение состоит из:

  • Логических связок  (и),  (или),  (не),  (если),  (тождественно).

  • Предикатов.

  • Формул:

Каждый предикат – формула.

Если F1, F2 – формулы, то

(F1) – формула.

F1  F2, F1  F2,  F1, F1  F2, F1  F2 – тоже формулы.

Например. Студент-ФИРТ(петров) – формула.

Студент-УГАТУ(петров)  Студент-ФИРТ(петров) – формула.

Замечание. «петров» - конкретный объект, поэтому с малой буквы.

Переменные, термы, предложения.

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

Имя переменной начинается с заглавной буквы.

Терм – либо константа, либо переменная, либо кортеж, перед которым стоит функтор.

Предикат – кортеж, перед которым стоит предикатный символ.

Формула – предикат либо одно из выражений (F1), θ F1, где θ – любой из кванторов.

Предложение – формула, каждое вхождение переменной которой находится в области действия квантора по ней.

Замечание. Логический терм – единственная структура данных в ЛП.

Предикаты выражают отношения между объектами, а предложения описывают логические свойства отношений.

В ЛП различают 3 типа предложений:

1. Факт P(t1,…,tn). – простейшее предложение, используемое для того, чтобы можно было утверждать, что высказывание о принадлежности объекта ti некоторому отношению P истинно.

Например, факультет-УГАТУ(фирт).

Универсальный факт: «все студенты ПО владеют английским языком»: влад-англ-яз(Студ, ПО).

Простейшей ЛП является простейшая БД.

Создание БД начинается с создания реляционной схемы для каждого отношения.

Например, книга(Автор, Название, Издательство, Год):

книга(братко, программирование-на-языке-пролог, мир, 1990).

2. Правила – предложения вида P(t1,…,tn)  a1(t1,…,tn), a2(t1,…,tn), …, am(t1,…,tn).

Например, «некто получает повышенную стипендию, если некто студент, сдавший все экзамены на отлично»: получ-повыш-стип(X)  сдал-все-экз(X), экз(X,5,5,5,5).

Замечания. Факт – простейший случай правила.

В ЛП правила называют аксиомами, а совокупность фактов и правил – гипотезами.

3. Вопросы – служат для извлечения информации из ЛП.

Различают простые и конъюнктивные.

Вид: ? P(t). Здесь Р – цель, поэтому вопросы еще называют целевыми утверждениями.

Конъюнктивные: ? поэт(ломоносов), химик(ломоносов), спортсмен(ломоносов).

Процедура поиска ответа на простой вопрос состоит в отыскании факта P(t1,…,tn).

Поиск состоит в том, чтобы определить, является ли вопрос логическим следствием программы.

При поиске ответа на простой вопрос используются простейшие правила вывода.

Правила основаны на теореме “из Р выводимо Р”:

если факт, тождественный вопросу, найден, то ответ “да” иначе “нет”.

Если получен ответ “нет”, то это означает, что факт Р не содержится в БД.

При этом возможно, что информация в факте Р верная.

Например, ? книга(агафонов, логическое-программирование,наука, 1988)  БД, хотя правильная.

Вопросы с переменными служат для представления совокупности вопросов.

Например, ? книга(X, Y, Z, 1990).

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

Понятие вопроса связано с понятием общих переменных.

Общие переменные – переменные, входящие в две или более различные цели вопроса.

Например, likes("Саша",X)  likes("Зина",X),likes("Нина",X).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]