- •Лабораторная работа № 1. Малая экспертная система.
- •Теоретические сведения
- •Диагностические экспертные системы.
- •Пример применения байесовской стратегии оценки выводов
- •Контрольные задания:
- •Контрольные вопросы:
- •Лабораторная работа № 2. Знакомство с инструментальными средствами для создания экспертных систем.
- •Теоретические сведения
- •Контрольное задание:
- •Контрольное задание:
- •Контрольные вопросы:
- •Лабораторная работа № 4.
- •Теоретические сведения
- •Контрольное задание:
- •Основные стандартные домены
- •Основные стандартные предикаты:
- •Ключевые слова
- •Контрольные задания:
- •Контрольные вопросы:
- •Лабораторная работа №7. Предложения (факты и правила), цели на языке пролог.
- •Теоретические сведения Clauses (условия): Facts (факты) и Rules (правила)
- •О фактах
- •Контрольные вопросы:
- •Лабораторная работа №8. Переменные на языке программирования пролог.
- •Теоретические сведения
- •Анонимные переменные
- •Контрольное задание:
- •Принципы отката:
- •Контрольные задания:
- •Преимущества рекурсии
- •Оптимизация обратной рекурсии
- •Контрольные задания:
- •Объявление списков
- •Головы и хвосты
- •Обработка списков
- •Использование списков
- •Контрольное задание:
- •Контрольные вопросы:
- •Лабораторная работа №13. Секция фактов Лабораторная работа № 1.
- •Теоретические сведения
- •Объявление секций фактов
- •Модификация секции фактов
- •Добавление фактов в период исполнения программы
- •Загрузка фактов из файла в период исполнения программы
- •Удаление фактов в период исполнения программы
- •Удаление нескольких фактов сразу
- •Ключевые слова для объявления фактов
- •Описания Факты, объявленные с ключевым словом nondeterm
- •Факты, объявленные с ключевым словом determ
- •Факты, объявленные с ключевым словом single
- •Сохранение базы данных фактов во время выполнения программы
- •Контрольные задания:
- •Контрольные вопросы:
Контрольные задания:
Предположим, что средний налогоплательщик в США это женатый американский гражданин с двумя детьми, который зарабатывает ни меньше, чем 500 $ в месяц и не больше, чем 2 000 $ в месяц. Задайте предикат special_taxpayer, дающий цель special_taxpayer(fred), которая выполняется, если fred не является средним налогоплательщиком из-за не выполнения только одного условия. Используйте отсечение для исключения отката.
Игроки определенного сквеш клуба разделены на три лиги, и игроки могут бросать вызов только членам их собственной лиге или ниже классом (если есть такие).
Напишите программу, которая отобразит все возможные пары между игроками клуба в следующей форме:
tom versus bill
marjory versus annette
Используйте отсечение для гарантии того, например, что
tom versus bill
и
bill versus tom
не будут отражены вместе.
Контрольные вопросы:
Что означает метод называемый откатом?
Сформулируйте правила отката.
Для чего необходим предикат fail?
Что представляет собой точка отката?
Опишите принципы отката.
Когда выполняется предикат not?
Опишите правильные способ обработки несвязанных переменных в пределах подцели not?
К чему приведет неправильное использование предиката not?
Лабораторная работа № 11.
РЕКУРСИЯ.
Цель работы: изучение возможностей представления и обработки данных в программах на языке Пролог с использованием рекурсии.
Используемое программное обеспечение:Visual Prolog 5.2.
Теоретические сведения
Рекурсивная процедура - это процедура, вызывающая сама себя до тех пор, пока не будет соблюдено некоторое условие, которое остановит рекурсию. Такое условие называют граничным. Рекурсивное правило всегда состоит, по крайней мере, из двух частей, одна из которых является нерекурсивной. Она и определяет граничное условие. Вторая – рекурсивная часть включает в себя базис и шаг рекурсии.
Базис рекурсии - это предложение, определяющее некую начальную ситуацию или ситуацию в момент прекращения. Как правило, в этом предложении записывается некий простейший случай, при котором ответ получается сразу даже без использования рекурсии. Так, в процедуре, описывающей предикат предок, базисом рекурсии является первое правило, в котором определено, что ближайшими предками человека являются его родители. Это предложение часто содержит условие, при выполнении которого происходит выход из рекурсии или отсечение.
Шаг рекурсии - это правило, в теле которого обязательно содержится, в качестве подцели, вызов определяемого предиката. Если мы хотим избежать зацикливания, определяемый предикат должен вызываться не от тех же параметров, которые указаны в заголовке правила. Параметры должны изменяться на каждом шаге так, чтобы в итоге либо сработал базис рекурсии, либо условие выхода из рекурсии, размещенное в самом правиле. В общем виде правило, реализующее шаг рекурсии, будет выглядеть так:
<имя определяемого предиката>:-
[<подцели>],
[<условие выхода из рекурсии>],
[<подцели>],
<имя определяемого предиката>,
[<подцели>].
В рекурсивной процедуре нет проблемы запоминания результатов ее выполнения, потому что любые вычисленные значения можно передавать из одного вызова в другой как аргументы рекурсивно вызываемого предиката. Рекурсия является эффективным способом для решения задач, содержащих в себе подзадачу такого же типа.
Рекурсия обычно применяется при обработке списков, строк (например, для поиска и замены подстроки), при вычислениях (например, вычисление сумм, факториала) и в ряде других случаев.
