3.1 Описание языка логического программирования SWI-Prolog

SWI-Prolog - язык и система логического программирования, основанные на языке предикатов математической логики дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка.

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

Факты в языке Пролог описываются логическими предикатами с конкретными значениями. Правила в Прологе записываются в форме правил логического вывода с логическими заключениями и списком логических условий.

Особую роль в интерпретаторе Пролога играют конкретные запросы к базам знаний, на которые система логического программирования генерирует ответы «истина» и «ложь».

Для обобщённых запросов с переменными в качестве аргументов созданная систем Пролог выводит конкретные данные в подтверждение истинности обобщённых сведений и правил вывода.

Факты в базах знаний на языке Пролог представляют конкретные сведения (знания). Обобщённые сведения и знания в языке Пролог задаются правилами логического вывода (определениями) и наборами таких правил вывода (определений) над конкретными фактами и обобщёнными сведениями.

Начало истории языка относится к 1970-м годам.[7] Будучи декларативным языком программирования, Пролог воспринимает в качестве программы некоторое описание задачи или баз знаний и сам производит логический вывод, а также поиск решения задач, пользуясь механизмом бэктрекинга (англ. backtracking) и унификацией.

Prolog использует один тип данных, терм, который бывает нескольких типов:

·  атом это отдельный объект, считающийся элементарным. В SWI-Prolog атом представляется последовательностью букв нижнего и верхнего регистра, цифр и символа подчеркивания ‘_’, начинающейся со строчной буквы. Кроме того, любой набор допустимых символов, заключенный в апострофы, также является атомом. Наконец, комбинации специальных символов + - * = < > : & также являются атомами;

·  числа в SWI-Prolog бывают целыми (Integer) и вещественными (Float).;

·  переменная являются строки символов, цифр и символа подчеркивания, начинающиеся с заглавной буквы или символа подчеркивания;

·  составные термы (функции) состоят из имени функции (нечислового атома) и списка аргументов (термов SWI-Prolog, то есть атомов, чисел, переменных или других составных термов), заключенных в круглые скобки и разделенных запятыми. Группы составных термов используют для составления фраз SWI-Prolog. Нельзя помещать символ пробела между функтором (именем функции) и открывающей круглой скобкой. В других позициях, однако, пробелы могут быть полезны для создания более читаемых программ.

Факт – это утверждение о том, что соблюдается некоторое конкретное отношение. Он является безусловно верным.

Арифметические выражения в языке SWI-Prolog имеется ряд встроенных функций для вычисления арифметических выражений, некоторые из которых перечислены в таблице 3.1.

 


 

Таблица 3.1.

«Арифметические выражения»

X + Y Сумма X и Y
X - Y Разность X и Y
X * Y Произведение X и Y
X / Y Деление X на Y
X mod Y Остаток от деления X на Y
X // Y Деление нацело X на Y
X ** Y Возведение X в степень Y
- X Смена знака X
abs(X) Абсолютная величина числа X
max(X,Y) Большее из чисел X и Y
min(X,Y) Меньшее из чисел X и Y
sqrt(X) Квадратный корень из X
random(Int) Случайное целое число в диапазоне от 0 до Int
sin(X) Синус X
cos(X) Косинус X
tan(X) Тангенс X
log(X) Натуральный логарифм (ln) числа X
log10(X) Десятичный логарифм (lg) числа X
float(X) Вещественное число, соответствующее целому числу X
pi

3.14159 (приближенное значение числа )

е 2.71828 (приближенное значение числа е)

Список символов может быть представлен в виде строк, например, первый аргумент составного терма возраст (‘Борис’,10) - строка. При записи строки заключаются в кавычки.

Запятая между фактами означает операцию логического и (конъюнкцию), факт может быть записан в виде предиката, аргументы которого являются символьными или числовыми константами.

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

имя_предиката (аргументы).

База данных на SWI-Prolog – это совокупность фактов. В процессе работы в базу данных можно добавлять новые факты, удалять или изменять старые.

Запрос - это последовательность предикатов, разделенных запятыми и завершающаяся точкой. С помощью запросов можно “спрашивать” базу данных о том, какие утверждения являются истинными. Предикат запроса называется целью.

Кроме фактов программы на языке SWI-Prolog могут содержать правила, позволяющие получать дополнительные знания о том мире, который описывает программа. Правило задает новый предикат через определенные ранее.

Правило состоит из головы (предиката) и тела (последовательности предикатов, разделенных запятыми). Голова и тело разделены знаком ‘:–’ и, подобно каждой фразе SWI-Prolog, правило должно заканчиваться точкой.

Знак ‘:–’ есть схематическая запись стрелки (<-) и показывает, что из правой части следует левая. Этот знак читается как “если”. Интуитивный смысл правила состоит в том, что цель, являющаяся головой, будет истинной, если SWI-Prolog сможет показать, что все выражения (подцели) в теле правила являются истинными.

 


Информация о работе «Экспертная система прогнозирования успеваемости студентов в ВУЗах»
Раздел: Информатика, программирование
Количество знаков с пробелами: 107375
Количество таблиц: 20
Количество изображений: 21

Похожие работы

Скачать
27887
0
0

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

Скачать
84959
8
2

... < 1.0 3 6 9 12 Согласно приведенным данным в зависимости от дидактических целей обучения студенты выполняют тесты заданного уровня и знания могут оцениваться по принятой в Агролицее шкале (2 уровень усвоения). Далее, исходя из К усвоения разработка системы рейтинг-контроля проводится по следующему алгоритмы. После изучения дисциплины рассчитывается общий К усвоения каждого студента ...

Скачать
201630
6
6

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

Скачать
131964
2
0

... . М., 1973. С.12-13. Якобсон П.М. Психологические проблемы мотивации поведения человека. М., 1969. Якунин В.А. Психология учебной деятельности студентов. - М.-С.-Пет., 1994 Развитие учебной мотивации студента средствами психологической службы. Барчуков Е.В. АННОТАЦИЯ на дипломную работу “Развитие учебной мотивации студента средствами психологической службы”. Переход от ...

0 комментариев


Наверх