Основы языка Visual Prolog

Содержание

Слайд 2

Логика предикатов — это простейший способ объяснить, как "работает" мышление, и

Логика предикатов — это простейший способ объяснить, как "работает" мышление, и

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

Синтаксис логики предикатов

Синтаксис логики предикатов

Слайд 4

Факты и правила объекты (objects) - Билл, собака отношения (relations) -

Факты и правила

объекты (objects) - Билл, собака
отношения (relations) - любит
правила (rules)

-Билл любит собак, если собаки хорошие
Слайд 5

В Прологе отношение или свойства между объектами называется фактом (fact). Состоит

В Прологе отношение или свойства между объектами называется фактом (fact).
Состоит

из имени:
отношения
объекта или объектов, заключенных в круглые скобки
завершается точкой (.)
likes (bill, cindy). - Билл любит Синди.
likes (cindy, bill). - Синди любит Билла.
likes (bill, dogs). - Билл любит собак.
Слайд 6

Правило — это заключение, для которого известно, что оно истинно, если

Правило — это заключение, для которого известно, что оно истинно, если

одно или несколько других найденных заключений или фактов являются истинными.
likes(cindy, Something):- likes(bill, Something). - Синди любит все, что любит Билл.
likes (caitlin, Something):- green(Something). - Кейтлин любит все зеленое.
Символ : - имеет смысл "если", и служит для разделения двух частей правила: заголовка и тела.
Слайд 7

Запросы Однократно дав языку Пролог несколько фактов, можно задавать вопросы, касающиеся

Запросы

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

между ними. Это называется запросом (query) системы языка Пролог.
likes(bill, cindy).
likes(bill, What).
likes(cindy, What).
Слайд 8

Размещение фактов, правил и запросов Предположим, что есть следующие факты и

Размещение фактов, правил и запросов

Предположим, что есть следующие факты и правила:
Быстрая

машина - приятная. (A fast car is fun).
Большая машина — красивая. (A big car is nice).
Маленькая машина — практичная. (A little car is practical).
Биллу нравится машина, если она приятная. (Bill likes a car if the car is fun).
Слайд 9

Загрузите программу ch02e01.pro в среду визуальной разработки Visual Prolog запустите ее утилитой Test Goal.


Загрузите программу ch02e01.pro в среду визуальной разработки Visual Prolog запустите ее

утилитой Test Goal.
Слайд 10

Переменные: общее представление В Прологе переменные позволяют вам записывать общие факты

Переменные: общее представление

В Прологе переменные позволяют вам записывать общие факты и

правила и задавать общие вопросы.
Начинаются с заглавной буква (What, Something, X и т.д.)
Слайд 11

Предложения 2 типа фраз (предложения (clause).): Факт - представляет либо свойство

Предложения

2 типа фраз (предложения (clause).):
Факт - представляет либо свойство объекта, либо

отношение между объектами. Факт самодостаточен. Прологу не требуется дополнительных сведений для подтверждения факта, и факт может быть использован как основа для логического вывода.
Правило - это конструкция Пролога, которая описывает, что можно логически вывести из других данных. Правило — это свойство или отношение, которое достоверно, когда известно, что ряд других отношений достоверен. Синтаксически эти отношения разделены запятыми.
Слайд 12

Примеры работы с правилами

Примеры работы с правилами

Слайд 13

Программа ch02e02.pro протестируйте ее. Испытайте следующие цели в разделе GOAL: Что

Программа ch02e02.pro

протестируйте ее.
Испытайте следующие цели в разделе GOAL:
Что может

купить Келли?
Что может купить Джуди?
Кто может купить hot-rod?
Кто может купить машину?
Слайд 14

Предикаты Отношение в Прологе называется предикатом. Аргументы — это объекты, которые

Предикаты

Отношение в Прологе называется предикатом.
Аргументы — это объекты, которые связываются этим

отношением;
в факте likes (bill, cindy) отношение likes — это предикат, а объекты bill и cindy — аргументы.
Слайд 15

Переменные В простом запросе, чтобы найти того, кто любит теннис, можно

Переменные

В простом запросе, чтобы найти того, кто любит теннис, можно использовать

переменные - likes(X, tennis).

правильные имена переменных:
My_first_correct_variable_naitie
Sales_10_ll_86

неправильные:
lstattempt
second_attempt
"disaster"

Слайд 16

Испытайте цель: GOAL likes(Person, tennis).

Испытайте цель:
GOAL likes(Person, tennis).

Слайд 17

Инициализация переменных Переменные в Прологе инициализируются при сопоставлении с константами в

Инициализация переменных

Переменные в Прологе инициализируются при сопоставлении с константами в фактах

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

Загрузите программу ch02e03.pro likes(Person, reading), likes(Person, swimming). likes(Person, reading) 1. Person

Загрузите программу ch02e03.pro likes(Person, reading), likes(Person, swimming).

likes(Person, reading)
1. Person – свободная

переменная
2. reading – факт известен
3. Person - ellen
7. Person – john
8. Совпадений нет
9. Person – свободная переменная
10. Продолжается пока не будет найден ответ

likes(Person, swimming)
4. likes (ellen, swimming)
5. Совпадений нет
6. Person – свободная переменная

Слайд 19

Анонимные переменные Анонимная переменная может быть использована на месте любой другой

Анонимные переменные

Анонимная переменная может быть использована на месте любой другой переменной

и ей никогда не присваивается значение.
В Прологе анонимные переменные обозначаются символом подчеркивания (_).
Анонимные переменные также можно использовать в фактах (eats(_)).
Анонимные переменные сопоставляются с любыми данными.
Слайд 20

Загрузите программу ch02e04.pro в TestGoaI-проект.

Загрузите программу ch02e04.pro в TestGoaI-проект.

Слайд 21

Цели (запросы) Когда вы даете Прологу запрос, в действительности вы даете

Цели (запросы)

Когда вы даете Прологу запрос, в действительности вы даете ему

цель для выполнения.
простые: likes (ellen, reading)
сложные: likes(Person, reading), likes(Person, swimming).
Загрузите программу ch02e04.pro и задайте следующую сложную цель:
Goal parent(Person, _), male(Person).
Составные цели: конъюнкция (и - ,) и дизъюнкция (или - ;)
Слайд 22

Программы ch02e05.pro Есть ли в списке машина, стоящая меньше, чем $25000?

Программы ch02e05.pro

Есть ли в списке машина, стоящая меньше, чем $25000?
Есть

ли в списке автомобиль, стоимостью меньше $25 000, или грузовик стоимостью меньше $20 000?
Слайд 23

Комментарии Многострочные комментарии должны начинаться с символов /* (косая черта, звездочка)

Комментарии

Многострочные комментарии должны начинаться с символов /* (косая черта, звездочка) и

завершаться символами */ (звездочка, косая черта).
Для установки однострочных комментариев можно использовать либо эти же символы, либо начинать комментарий символом процента (%).
Слайд 24

Пример /* Это первый пример комментария */ % Это второй пример

Пример

/* Это первый пример комментария */
% Это второй пример комментария
/***************************************
А эти

три строчки — пример многострочного комментария ********************,**********,*****/
/*Вы также можете поместить комментарий Visual Prolog /*внутри комментария */ как здесь*/
Слайд 25

Сопоставление Идентичные структуры сопоставимы (сравнимы) друг с другом: parent (joe, tammy)

Сопоставление

Идентичные структуры сопоставимы (сравнимы) друг с другом: parent (joe, tammy) сопоставимо

с parent (joe, tammy).
Сопоставление (сравнение) обычно использует одну или несколько свободных переменных.
Две свободные переменные могут сопоставляться друг с другом.
В случае "связывания" между собой нескольких свободных переменных все они называются совмещенными свободными переменными .
В Прологе связывание переменных (со значениями) производится двумя способами: входе и выходе.