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 сможет показать, что все выражения (подцели) в теле правила являются истинными.
... автономность и степень их взаимодействия определяется содержанием решаемых задач. В заключение попытаемся сформулировать основные выводы исследования. Выводы Процесс профессионального становления учителя на стадии обучения в педагогическом вузе является неравномерным; отмечаются периоды резкого повышения и снижения показателей обученности, смена основных направлений их динамики. В основе ...
... < 1.0 3 6 9 12 Согласно приведенным данным в зависимости от дидактических целей обучения студенты выполняют тесты заданного уровня и знания могут оцениваться по принятой в Агролицее шкале (2 уровень усвоения). Далее, исходя из К усвоения разработка системы рейтинг-контроля проводится по следующему алгоритмы. После изучения дисциплины рассчитывается общий К усвоения каждого студента ...
... определенное время (период подготовки высококвалифицированного рабочего или специалиста). Взаимодействие государственных органов с заказчиками кадров призвано стимулировать гибкость и рационализацию управления образовательной системой, распределять между ними ответственность за процесс и качество профессиональной подготовки, сохраняя при этом единое образовательное пространство в государстве. ...
... . М., 1973. С.12-13. Якобсон П.М. Психологические проблемы мотивации поведения человека. М., 1969. Якунин В.А. Психология учебной деятельности студентов. - М.-С.-Пет., 1994 Развитие учебной мотивации студента средствами психологической службы. Барчуков Е.В. АННОТАЦИЯ на дипломную работу “Развитие учебной мотивации студента средствами психологической службы”. Переход от ...
0 комментариев