🗊Презентация SWI Prolog Стандартные предикаты управления логическим выводом

Нажмите для полного просмотра!
SWI Prolog Стандартные предикаты управления логическим выводом, слайд №1SWI Prolog Стандартные предикаты управления логическим выводом, слайд №2SWI Prolog Стандартные предикаты управления логическим выводом, слайд №3SWI Prolog Стандартные предикаты управления логическим выводом, слайд №4SWI Prolog Стандартные предикаты управления логическим выводом, слайд №5SWI Prolog Стандартные предикаты управления логическим выводом, слайд №6SWI Prolog Стандартные предикаты управления логическим выводом, слайд №7SWI Prolog Стандартные предикаты управления логическим выводом, слайд №8SWI Prolog Стандартные предикаты управления логическим выводом, слайд №9SWI Prolog Стандартные предикаты управления логическим выводом, слайд №10SWI Prolog Стандартные предикаты управления логическим выводом, слайд №11SWI Prolog Стандартные предикаты управления логическим выводом, слайд №12SWI Prolog Стандартные предикаты управления логическим выводом, слайд №13SWI Prolog Стандартные предикаты управления логическим выводом, слайд №14SWI Prolog Стандартные предикаты управления логическим выводом, слайд №15SWI Prolog Стандартные предикаты управления логическим выводом, слайд №16SWI Prolog Стандартные предикаты управления логическим выводом, слайд №17

Вы можете ознакомиться и скачать презентацию на тему SWI Prolog Стандартные предикаты управления логическим выводом. Доклад-сообщение содержит 17 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





SWI Prolog
Стандартные предикаты управления логическим выводом
Описание слайда:
SWI Prolog Стандартные предикаты управления логическим выводом

Слайд 2





Стандартный предикат fail 
Встроенный предикат fail является тождественно ложным предикатом, который включает механизм автоматического возврата. Присутствие этого предиката в правиле вызывает возврат на согласование первой цели в резольвенте.
Предикат fail используется для программирования  повторяющихся действий (циклических программ). В общем случае итерационное правило имеет следующий вид:
<заголовок итерационного правила>:<предикаты>,fail.
Описание слайда:
Стандартный предикат fail Встроенный предикат fail является тождественно ложным предикатом, который включает механизм автоматического возврата. Присутствие этого предиката в правиле вызывает возврат на согласование первой цели в резольвенте. Предикат fail используется для программирования повторяющихся действий (циклических программ). В общем случае итерационное правило имеет следующий вид: <заголовок итерационного правила>:<предикаты>,fail.

Слайд 3





Пример использования предиката fail. Текст программы 
Рассмотрим пример программы, использующей предикат fail.
Пусть программа включает утверждения о столицах различных стран:
city('Deli', 'India', 'Asia').
city('Moscow', 'Russia', 'Europe' ).
city('Praha', 'Chehia', 'Europe' ).
city('London', 'Endland', 'Europe' ).
city('Rome', 'Italy', 'Europe' ).
city('Mexico', 'Mexica', 'America' ).
city('Pekin', 'China', 'Asia' ).
city('Tokio', 'Japan', 'Asia' ).
 show_cities(K):-city(X,_, K),write(X),nl,fail.
show_cities(_).
Описание слайда:
Пример использования предиката fail. Текст программы Рассмотрим пример программы, использующей предикат fail. Пусть программа включает утверждения о столицах различных стран: city('Deli', 'India', 'Asia'). city('Moscow', 'Russia', 'Europe' ). city('Praha', 'Chehia', 'Europe' ). city('London', 'Endland', 'Europe' ). city('Rome', 'Italy', 'Europe' ). city('Mexico', 'Mexica', 'America' ). city('Pekin', 'China', 'Asia' ). city('Tokio', 'Japan', 'Asia' ). show_cities(K):-city(X,_, K),write(X),nl,fail. show_cities(_).

Слайд 4





Пример использования предиката fail.
Вычисление запроса.
?- show_cities('Asia').
Deli
Pekin
Tokio
yes
?-
Описание слайда:
Пример использования предиката fail. Вычисление запроса. ?- show_cities('Asia'). Deli Pekin Tokio yes ?-

Слайд 5





Стандартный предикат cut (!) 
Предикат отсечения (!) предназначен для запрещения поиска с возвратом. 
Если существуют два или более взаимоисключающих правила для одного и того же отношения, т. е. при любом запросе успех возможен только в одном из правил, то при успешном согласовании некоторого из правил нет необходимости проверять остальные правила, согласование которых будет заведомо неуспешно.
Описание слайда:
Стандартный предикат cut (!) Предикат отсечения (!) предназначен для запрещения поиска с возвратом. Если существуют два или более взаимоисключающих правила для одного и того же отношения, т. е. при любом запросе успех возможен только в одном из правил, то при успешном согласовании некоторого из правил нет необходимости проверять остальные правила, согласование которых будет заведомо неуспешно.

Слайд 6





Стандартный предикат cut (!) 
Допустим, надо написать программу, определяющую значение функции Y по формуле:
В алгоритмических языках в этом случае используется оператор ifthenelse, блоксхема которого показана следующем слайде.
Описание слайда:
Стандартный предикат cut (!) Допустим, надо написать программу, определяющую значение функции Y по формуле: В алгоритмических языках в этом случае используется оператор ifthenelse, блоксхема которого показана следующем слайде.

Слайд 7





Блок-схема
Описание слайда:
Блок-схема

Слайд 8





Соответствующее правило на языке Пролог без предиката отсечения
На языке Пролог в этом случае будет  процедура из двух правил:
ps(X,Y):p(X),Y is f1(X).
ps(X,Y): not(p(X)),Y is f2(X).
Описание слайда:
Соответствующее правило на языке Пролог без предиката отсечения На языке Пролог в этом случае будет процедура из двух правил: ps(X,Y):p(X),Y is f1(X). ps(X,Y): not(p(X)),Y is f2(X).

Слайд 9





Правило на языке Пролог с предикатом отсечения
Поскольку выше указанные правила взаимно исключают друг друга, используя предикат отсечения, процедуру можно представить в следующем виде:
ps(X,Y):p(X),!,Y is f1(X).
ps(X,Y): Y is f2(X).
Таким образом, во втором правиле проверка условия 'not(p(X))' не нужна.
Описание слайда:
Правило на языке Пролог с предикатом отсечения Поскольку выше указанные правила взаимно исключают друг друга, используя предикат отсечения, процедуру можно представить в следующем виде: ps(X,Y):p(X),!,Y is f1(X). ps(X,Y): Y is f2(X). Таким образом, во втором правиле проверка условия 'not(p(X))' не нужна.

Слайд 10





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

Слайд 11





Пример использования предиката отсечения. Текст программы.
ps(X,Y):X=<0,!,Y is 2*X+1.
ps(X,Y):X=<2,!,Y is X*X.
ps(X,Y):  Y is 0.
Описание слайда:
Пример использования предиката отсечения. Текст программы. ps(X,Y):X=<0,!,Y is 2*X+1. ps(X,Y):X=<2,!,Y is X*X. ps(X,Y):  Y is 0.

Слайд 12





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

Слайд 13





Другие предиката управления логическим выводом
Кроме предикатов управления логическим выводом fail и cut, в системе PDC Prolog существуют стандартные предикаты true, repeat и not.
 not(p)  отрицание предиката p. Если p  истина, то not(p)  ложь, и наоборот. 
Предикат repeat истинен всегда. При бэктрекинге этот предикат вызывает повторное выполнение всех следующих за ним целей. 
Предикат true  тождественно истинный предикат.
Описание слайда:
Другие предиката управления логическим выводом Кроме предикатов управления логическим выводом fail и cut, в системе PDC Prolog существуют стандартные предикаты true, repeat и not. not(p)  отрицание предиката p. Если p  истина, то not(p)  ложь, и наоборот. Предикат repeat истинен всегда. При бэктрекинге этот предикат вызывает повторное выполнение всех следующих за ним целей. Предикат true  тождественно истинный предикат.

Слайд 14





Лабораторная работа 2.1. Создание базы данных “Cессия” и запросов к этой базе данных на языке Пролог с использованием стандартного предиката fail.

База данных “Сессия” содержит факты, которые описывают отношения двух типов:
1)   lector(<фамилия>,<дисциплина>,<номер группы>,<дата экзамена>) 
2)   student(<фамилия>,<номер группы>,<номер зачетки>).
Описание слайда:
Лабораторная работа 2.1. Создание базы данных “Cессия” и запросов к этой базе данных на языке Пролог с использованием стандартного предиката fail. База данных “Сессия” содержит факты, которые описывают отношения двух типов: 1) lector(<фамилия>,<дисциплина>,<номер группы>,<дата экзамена>) 2) student(<фамилия>,<номер группы>,<номер зачетки>).

Слайд 15





Лабораторная работа 3.1. Задание.
1)Создать с помощью фактов базу данных «Сессия», включающую предикаты lector и student.
2) Написать правила, обеспечивающие ответ на следующие вопросы:
А) Выдать на экран фамилии всех студентов, которые сдают экзамен определенного числа, дата задается следующим образом: ‘хх.хх.xxxx’.
Например, ’10.01.2001’.
Б) Выдать на экран фамилии всех студентов, которые сдают экзамен определенному лектору.
В) Выдать на экран названия дисциплин, по которым будет сдавать экзамен определенный студент.
Описание слайда:
Лабораторная работа 3.1. Задание. 1)Создать с помощью фактов базу данных «Сессия», включающую предикаты lector и student. 2) Написать правила, обеспечивающие ответ на следующие вопросы: А) Выдать на экран фамилии всех студентов, которые сдают экзамен определенного числа, дата задается следующим образом: ‘хх.хх.xxxx’. Например, ’10.01.2001’. Б) Выдать на экран фамилии всех студентов, которые сдают экзамен определенному лектору. В) Выдать на экран названия дисциплин, по которым будет сдавать экзамен определенный студент.

Слайд 16





Лабораторная работа 3.1. Задание.
Г) Выдать на экран фамилии преподавателей, которые принимают экзамены в данной  группе.
Д) Выдать на экран фамилии всех студентов, которые учатся в данной  группе.
Е) Выдать на экран названия дисциплин, по которым принимает экзамен данный преподаватель.
3) Отладить программу с помощью интерпретатора Arity Prolog.
4) Продемонстрировать работу программы с помощью вопросов.
5) Составить отчет по лабораторной работе.
Описание слайда:
Лабораторная работа 3.1. Задание. Г) Выдать на экран фамилии преподавателей, которые принимают экзамены в данной группе. Д) Выдать на экран фамилии всех студентов, которые учатся в данной группе. Е) Выдать на экран названия дисциплин, по которым принимает экзамен данный преподаватель. 3) Отладить программу с помощью интерпретатора Arity Prolog. 4) Продемонстрировать работу программы с помощью вопросов. 5) Составить отчет по лабораторной работе.

Слайд 17





Лабораторная работа 2.2. Использование стандартного предиката отсечения в правилах на языке Пролог. 

В лабораторной работе 2 выбрать соответствующий
вариант задания на вычисление y=f(x) в
зависимости от условия, и переписать правила с
использованием стандартного предиката отсечения
«!».
Описание слайда:
Лабораторная работа 2.2. Использование стандартного предиката отсечения в правилах на языке Пролог. В лабораторной работе 2 выбрать соответствующий вариант задания на вычисление y=f(x) в зависимости от условия, и переписать правила с использованием стандартного предиката отсечения «!».



Похожие презентации
Mypresentation.ru
Загрузить презентацию