Слайд 2
Определение интеллектуальной информационной системы
Интеллектуальная информационная система (ИИС)
- комплекс программных, лингвистических и логико-математических средств для реализации
основной задачи – осуществления поддержки деятельности человека и поиска информации в режиме продвинутого диалога на естественном языке. ИИС являются разновидностью интеллектуальной системы, а также одним из видов информационных систем.
Слайд 3
Информационная система - это
совокупность данных (или баз данных),
систем
управления базами данных и прикладных
программ, функционирующих на
вычислительных средствах как
единое целое
для решения определенных задач.
Информационная система является системой
обработки данных, хранящихся в базах
данных, для манипулирования данными
используется язык запросов.
Слайд 4
Интеллектуальная система - это
Интеллектуальная система (ИнтС, англ. intelligent
system) — это техническая или программная система, способная решать задачи,
традиционно считающиеся творческими, принадлежащие конкретной предметной области, знания о которой хранятся в памяти такой системы.
Слайд 5
Структура интеллектуальной системы
включает три основных блока — базу
знаний, механизм вывода решений и интерфейс на естественном языке.
Интеллектуальная
система является системой обработки знаний. Для манипулирования знаниями используются языки представления и извлечения знаний.
Слайд 6
Языки программирования ИИС
Для разработки интеллектуальных систем могут
применятся различные языковые средства. Учитывая многообразие форм построения и
областей применения современных интеллектуальных систем, в качестве языковых средств разработки могут применяться как традиционные языки программирования достаточно низкого уровня, такие как С++, Object Pascal (Delphi), Java или Basic, так и специализированные языки разработки интеллектуальных систем.
Слайд 7
Специализированные языки программирования ИИС
Специализированные языки программирования ИИС
– это языки программирования, ориентированные на разработку интеллектуальных информационных
систем, как правило имеющие парадигму, отличную от традиционных для языков программирования общего назначения процедурных парадигм.
Слайд 8
Процедурная и декларативная парадигмы программирования
Процедурные (императивные) парадигмы
(процедурный подход) – как сделать? Процедурные языки служат для
описания алгоритмов.
Декларативные парадигмы (декларативный подход) – что мы знаем? что хотим узнать?
Декларативные языки служат для описания объектов предметной области и связей между объектами.
Слайд 9
Объектно-ориентированная парадигма программирования
Промежуточное положение между процедурным и
декларативным подходом занимает объектно-ориентированный подход (ООП): при рассмотрении объектов
в программе, как моделей объектов реального мира – ООП можно отнести к декларативному подходу, при рассмотрении реализации поведения объектов – ООП можно отнести к императивному подходу.
Слайд 10
Декларативные языки программирования
К языкам программирования интеллектуальных систем
можно отнести:
LISP - функциональный язык программирования;
PROLOG — логический язык
программирования;
CLIPS -специализированный язык разработки экспертных систем
и многие другие.
Слайд 11
Язык Пролог
Язык программирования Пролог (PROgramming LOGic –
программирование в терминах логики) предполагает получение решения задачи при
помощи логического вывода из ранее известных фактов и правил. Пролог был создан в 1971 г. на факультете естественных наук в Марселе.
Слайд 12
Язык Пролог — декларативный язык
Программа на языке
Пролог не является последовательностью действий – она состоит из
описания задачи (набор фактов и правил), а Пролог-система сама строит логический вывод на основе введённых данных. В связи с этим Пролог считается декларативным языком программирования.
Слайд 13
Предложения программы на языке Пролог
Программа на
прологе состоит из предложений. Предложения могут быть трех видов:
факты, правила, вопросы. Все предложения строятся из термов.
Слайд 14
Термы
Терм – синтаксический объект одной из следующих
категорий:
константы;
переменные;
предикаты, структуры (составные термы или функции), состоящие из имени
предиката и списка аргументов-термов; имена предикатов начинаются со строчной буквы.
Слайд 15
Константы
Константы - это поименованные конкретные объекты или
отношения. Константа начинается со строчной буквы, либо заключаются в
одинарные кавычки. Также константа может быть числом.
Слайд 16
Переменные
Переменные служат для обозначения объектов, значения которых
меняются в ходе выполнения программы. Имена переменных начинаются с
заглавных букв или знака «_» Область действия переменной – предложение. Одноименные переменные в разных предложениях могут иметь разные значения.
Слайд 17
Предикат
Предикат вида p(t1,t2,…tn),
где p ⎯ имя предиката,
а t1,t2,…tn ⎯ термы, является элементарной формулой.
Примеры предикатов:
student('Дмитриев',m,'МЭИ',1)
student('Петрова',f,'МЭИ',1)
Предикату
student соответствует схема
отношения:
student(фамилия, пол, вуз, курс)
Слайд 18
Понятие предиката
Предикат вида p(t1,t2,…tn),
где p ⎯ имя
предиката, а t1,t2,…tn ⎯ термы, является элементарной формулой.
Примеры
предикатов:
student('Дмитриев',m,'МЭИ',1)
student('Петрова',f,'МЭИ',1)
Предикату student соответствует схема
отношения:
student(фамилия, пол, вуз, курс)
Слайд 19
Факты в языке Пролог
Простейшим типом предложения является факт.
Факт – это безусловно истинное утверждение Пролог-программы. Факт записывается
в виде предиката с точкой на конце.
Слайд 20
Примеры фактов
student('Дмитриев',m,'МЭИ',1).
student('Петрова',f,'МЭИ',1).
part('двигатель', 'автомобиль').
parent(tom, bob).
Слайд 21
Представление правил
Правила ⎯ это средство определения новых утверждений
с помощью уже существующих в Пролог-программе утверждений (фактов и
правил).
С точки зрения синтаксиса языка Пролог правило ⎯это утверждение вида
A:⎯ B1,B2,…Bn. (n≥0)
где A ⎯ заголовок правила, а конъюнкция предикатов B1,B2,…Bn
называется телом правила.
Слайд 22
Представление правил
При такой записи «,» соответствует знаку
конъюнкции &
(логическое И), а знак “:⎯”
соответствует знаку импликации ← (ЕСЛИ).
Правило — это условное предложение
языка Пролог.
A:⎯ B1,B2,…Bn. (n≥0)
Читается как A — истинно, если истинны предикаты B1, B2, … Bn одновременно.
Слайд 23
Пример простой Пролог⎯программы
Программа «Родственники» является примером простой Пролог⎯программы.
Пусть имеется генеалогическое дерево, определяющее степень родства между людьми.
Рис.3
Слайд 24
Отношение parent
Родственные отношения можно записать с помощью
фактов, соответствующие
отношению
parent(,)
parent(‘Памелла’,’Джон’).
parent(‘Памелла’,’Элизабет’).
parent(‘Том’,’Джон’).
parent(‘Том’,’Элизабет’).
parent(‘Джон’,’Анна’).
parent(‘Джон’,’Пат’).
parent(‘Элизабет’,’Эд’).
parent(‘Пат’,’Джим’).
Слайд 25
Отношение person
Расширим эту программу фактами, определяемыми
схемой отношения person(,,):
person(‘Памелла’,’ж’,72).
person(‘Том’,’м’,78).
person(‘Джон’,’м’,42).
person(‘Элизабет’,’ж’,35).
person(‘Эд’,’м’,14).
person(‘Анна’,’ж’,20).
person(‘Пат’,’ж’,25).
person(‘Джим’,’м’,3).
Отношение
person определяет характеристики
человека.
Слайд 26
Текст программы
parent(‘Памелла’,’Джон’).
parent(‘Памелла’,’Элизабет’).
parent(‘Том’,’Джон’).
parent(‘Том’,’Элизабет’).
parent(‘Джон’,’Анна’).
parent(‘Джон’,’Пат’).
parent(‘Элизабет’,’Эд’).
parent(‘Пат’,’Джим’).
person(‘Памелла’,’ж’,72).
person(‘Том’,’м’,78).
Слайд 27
Текст программы
person(‘Джон’,’м’,42).
person(‘Элизабет’,’ж’,35).
person(‘Эд’,’м’,14).
person(‘Анна’,’ж’,20).
person(‘Пат’,’ж’,25).
person(‘Джим’,’м’,3).
Слайд 28
Простейшая программа на языке Пролог
Простейшая программа на языке
Пролог состоит из
фактов.
Любой логической программе можно задавать вопросы.
Слайд 29
Вопросы (запросы).
Вопрос (целевое утверждение) ⎯ это средство извлечения
информации из логической программы.
С помощью вопроса выясняется, истинно
ли некоторое утверждение или нет. С точки зрения логики поиск ответа на вопрос состоит в определении того, является ли утверждение (вопрос) логическим следствием программы или нет.
Слайд 30
Примеры вопросов к программе «Родственники»
Вопрос 1.
Вопрос ”Является ли
Пат родителем Джима? ” на Прологе можно задать следующим
образом:
? - parent(‘Пат’,’Джим’).
Пролог-система будет искать в программе факт, совпадающий с вопросом, и, обнаружив такой факт, система выдаст ответ ‘YES’.
В случае, когда соответствующий факт не обнаружен, система выдаст ответ ‘NO’.
Слайд 31
Примеры вопросов к программе «Родственники»
Вопрос 2.
Вопрос ”Кто отец
Элизабет и сколько ему лет? ” на Прологе можно
задать следующим образом:
? - parent(Х,’Элизабет’),person(X,'м', Y).
Пролог-система выдаст ответ:
X=Том
Y=78
YES
Если возраст не интересует пользователя, то в вопросе используется анонимные переменные, обозначаемые знаками подчеркивания ‘_’.
Слайд 32
Примеры вопросов к программе «Родственники»
Вопрос 3.
Вопрос ”Кто отец
Элизабет? ” на Прологе можно задать следующим образом:
? -
parent(Х,’Элизабет’),person(X,'м', _).
Пролог-система выдаст ответ:
X=Том
YES
Слайд 33
Примеры вопросов к программе «Родственники»
Вопрос 3.
Приведенные примеры вопросов
относятся к
программе, состоящей из одних фактов. Для того
чтобы сократить
и упростить вопросы в Пролог
программах задаются правила.
Вопрос 3 можно упростить, если задать следующее
правило:
“X является отцом Y, если X является родителем Y,
и X – мужчина.”
На языке Пролог это правило записывается так:
father(X,Y):-parent(X,Y),person(X,’м’,_).
Слайд 34
Примеры вопросов к программе «Родственники»
Вопрос 3.
А вопрос 3
записывается следующим образом:
? - father(X,’Jim’).
Пролог-система выдаст тот же ответ:
X=Том
YES
Слайд 35
Лабораторная работа № 1. Простейшая программа на языке
Пролог.
Необходимо выполнить следующие действия:
1. Описать с помощью фактов 4-уровневовое
генеалогическое дерево
в Прологпрограмме
“Родственники”, включающей предикаты parent и
person.
2. Написать правила, определяющие следующие
отношения:
“X является отцом Y” .
“X является бабушкой Y” .
“X является сестрой Y” .
“X является племянником Y” .
“X является племянницей Y” .
Слайд 36
Лабораторная работа № 1. Простейшая программа на языке
Пролог.
“X является родителем родителя Y” .
“X является прадедушкой Y”
.
“X является двоюродным братом Y” .
3. Отладить программу с помощью интерпретатора SWI Prolog.
4. Продемонстрировать работу программы с помощью вопросов.
5. Составить отчет по лабораторной работе.