Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Логические операции на Прологе






Логические операции Обозначение
конъюнкция (И) ,
дизъюнкция (ИЛИ) ;
отрицание not()

Цели бывают простые и составные.

Составная цель состоит из нескольких подцелей, соединенных либо конъюнкцией, либо разделенных дизъюнкцией.

Если подцели конъюнктивные, то для выполнения главной цели должны быть выполнены все хвостовые цели. Если дизъюнктивные, то - хотя бы одна из хвостовых.

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

Программирующий на Прологе определяет «объекты» и «отношения», а затем и «правила», в которых указывается, когда эти отношения являются истинными.

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

Аргументы предиката - объекты, которые связывают предикат.

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

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

Пример правила:

1. Если нам известно, что бабушка человека - это мама его мамы или мама его папы. Соответствующее правило будет иметь вид:

бабушка (Х, У): - мать(X, Z), мать (Z, Y); % мама его мамы

бабушка (Х, У): - мать(X, Z), отец (Z, Y). % мама его папы

2. Есть предложение: «Лене нравится собаки, если они привлекательные».

Объекты: лена и собаки.

Отношение: нравится.

Свойство: привлекательные.

Факты:

нравится(лена, собаки).

привлекательные(собаки).

В факте «нравится(лена, собаки)» отношение «нравится» - имя предиката, а объекты «лена» и собаки» - его аргументы.

Правило: нравится(лена, собаки): - привлекательные(собаки).

Переменные прописываются с прописной буквы, а константы – со строчной.

Имя переменной содержит буквы латинского алфавита, цифры, нижнее подчеркивание.

Пример:

Факт: нравится(лена, собаки).

Запрос: нравится(лена, X).

Ответ: собаки

В прологе нет оператора присваивания. Значения переменные получают в результате установления их соответствия с константами в фактах и правилах.

Виды переменных:

1. Анонимныепеременные используются для игнорирования ненужных значений. Обозначаются (_). Как правило используются для поиска.

Пример:

родитель(николай, егор). % факт

родитель(Родитель, _). % запрос

Родитель = николай. % ответ на запрос.

2. Свободные переменные не имеют какого-либо значения.

3. Связанныепеременные – когда у свободных переменных появляется значения.

Свободные переменные остаются связанными лишь то время, которое необходимо для поиска ответа на запрос; затем Пролог освобождает их, возвращается назад и ищет альтернативные решения.

Основные разделы программы на языке Пролог:

1. domains - в нем описываются любые используемые домены (типы аргументов пользователя);

2. predicates - раздел объявления пользовательских предикатов (предикаты, объявленные словом nondeterm - недетерминированные предикаты - объявляются, если задача предполагает возможность получения нескольких решений);

3. clauses - раздел предложений, в котором описываются факты и правила;

4. goal – в нем определяются цели и запросы.

Цель может задаваться в программе и являться внутренней, либо задаваться в диалоговом окне и соответственно являться внешней.

Дополнительные разделы:

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

В Прологе имеется несколько встроенных предикатов, существенно облегчающих использование динамической базы данных (consult - загрузка, save - сохранение, assert или assertz - добавление фактов в конец, asserta - в начало базы данных, retract - удаление одной записи, retractall - всех записей).

2. constants - раздел объявления констант (например, π, e).

3. global - используется для объявления, например, глобальных доменов, фактов (global domains, global facts, global database).

Встроенные предикаты:

- nl - обеспечивает переход на новую строку

- предикат отсечения (обозначается «!»)используется для ограничения пространства поиска, с целью повышения эффективности работы программы.

Способы организации циклов на Прологе:

1. С использованием встроенного предиката fail (неудача).

2. С помощью рекурсии.

3. С использованием пользовательского предиката repeat.

repeat. % факт.

repeat: - repeat. % правило.

Для того чтобы запустить Turbo Prolog необходимо, открыть файл Prolog.exe.

Перед вами появится рабочее окно (рис. 1):

 

Рис. 1. Окно Turbo Prolog.

 

В этом окне имеется главное меню, включающее в себя следующие составляющие (рис. 2):

 

Рис. 2. Главное меню окна Turbo Prolog.

 

Рассмотрим каждую из них в отдельности.

Files (рис. 3):

 

Рис. 3. Меню Files.

 

Load - загрузка файла;

Pick - выбор из последних загруженных файлов;

New file - создание нового файла;

Save - сохранение файла;

Write to - запись под новым именем;

Directory - выбор текущей директории;

Change dir - изменение директории;

OS shell - переход программы на dos-оболочку;

Quit - выход.

При выборе Edit происходит переход в Editor где можно редактировать файл (рис. 4).

 

Рис. 4. Меню Edit.

 

При выборе меню Run появляется возможность вести диалог с проектом.

При выборе меню Compile (рис. 5)

 

Рис. 5. Меню Compile.

 

появляются следующие подменю:

Memory - программа компилируется в оперативную память;

OBJ file - программа компилируется в OBJ-файл;

EXE file < auto link> - программа компилируется в EXE-file;

Project < all modules> - компилируются все модули программы;

Link only - компилируется только в ссылку.

Меню Options представляет собой (рис. 6):

 

Рис. 6. Меню Options.

 

Link options - опции ссылки;

Edit PRJ file - редактирование PRJ-file;

Compiler Directives - настройка компиляции.

Меню Setup содержит (рис. 7)

Рис. 7. Меню Setup.

 

Colors - установка цвета;

Window size - установка размера окна;

Directories - установка директории;

Miscellaneous - настройка отображения информации;

Load SYS file - загрузка системного файла;

Save SYS file - сохранение системного файла.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.