- •Основные понятия Искусственного Интеллекта
- •Основные направления исследований в области Искусственного Интеллекта
- •Логическое программирование. Основные понятия языка Пролог (Предикаты, Факты, Правила, Простые и составные запросы).
- •Константы, переменные и составные термы. Сопоставление.
- •Основные разделы Prolog. Встроенные предикаты
- •Арифметические вычисления и сравнения в прологе
- •Встроенные предикаты ввода и вывода
- •Управление поиском решений. Встроенный механизм поиска с возвратом. Использование предиката fail и отсечение.
- •Рекурсия
- •Обработка списков. Объявление и использование.
- •Обработка строк. Предикаты для строк. Встроенные предикаты для преобразования типов. Использование строк.
- •Файлы. Оисание. Стандартные предикаты. Операции над файлами.
- •Работа с внутренними базами данных: добавление и удаление фактов из базы данных.
- •Данные и знания.
Основные разделы Prolog. Встроенные предикаты
Программа на Прологе состоит из нескольких программных секций:
Constant |
Объявление констант |
|
Domains |
Определение типов данных |
раздел domains содержит определения доменов, которые описывают различные типы объектов, используемых в программе, если используются стандартные типы, то раздел может не использоваться; |
Database |
Объявление предикатов базы данных |
Раздел Database содержит описание предикатов динамической (внутренней) базы данных, которые являются предикатами базы данных и могут быть изменены в процессе работы программы без перекомпиляции, если программа такой базы данных не требует, то этот раздел может быть опущен; |
Predicates |
Объявление предикатов |
раздел predicates служит для описания используемых программой предикатов, этот раздел является обязательным; |
Clauses |
Определение фактов или правил |
в раздел clauses заносятся факты и правила статической базы данных, которая и является собственно программой, этот раздел является обязательным; |
Goal |
Цель |
в разделе goal на языке Пролога формулируется цель( запрос) созданной программы. Составными частями при этом могут являться некие подцели, из которых формируется единая цель программы, этот раздел является обязательным |
В пролог программе существуют встроенные предикаты, такие как:
арифметические и логические (+,-,*,/,mod, div,<,>,=), такие предикаты позволяют решать простейшие арифметические уравнения, автоматически производя соответствующие вычисления.
Предикаты ввода и вывода: readint (имя переменной) — для ввода целочисленной переменной; readreal (имя переменной); readchar (имя переменной); readln (имя переменной); write (список вывода) — только константы и пременные; nl – переводит курсор на новую строку; writef (список вывода) — форматный вывод.
Управляющие предикаты: Exit — выполняет немедленный выход из программы; Fail - вынуждает завершиться предикат ложно и, следовательно, возвратиться к предыдущей точке разветвления; True — значение предиката всегда истинно; ! — Отсечение (прекращение перебора между головой дизъюнкта и данным знаком).
Арифметические вычисления и сравнения в прологе
Основные арифметические операции: +, -, *, /, mod, div;
Основные функции: abs, cos, sin, tan,arctan, exp, ln, log, sqrt, trunc, round.
В прологе имеется встроенный предикат = (операция соспоставления), которыйозначает сопоставление, если слева находится переменная, которая еще не получила значение.
Например A = 5, X = sin(A), Y = sqrt(A), write(X,” ”, Y)
В прологе используются операции сравнения: <,>,<=,>=.
Арифметические операции вычисляются в следующем порядке:
если выражение содержит подвыражение в скобках, подвыражение вычисляется первым;
если выражение содержит операции умножения (*) или деления (/, div или mod), эти операции выполняются слева направо;
если выражение содержит операции сложения (+) и вычитания (-), они выполняются также слева направо.