Автор работы: Пользователь скрыл имя, 20 Февраля 2011 в 20:13, реферат
Около полувека назад зародился как наука искусственный интеллект на основе которого создавались первые интеллектуальные информационные системы. В России первой такой системой называлась «логик-теоретик» предназначенная для доказательства теорем и исчисления высказываний. В первые её работа была продемонстрирована 9.08.1956 г. В настоящее время ИИС проникли во все сферы нашей жизни, основной целью построения которых является выявление, исследование и применение знаний высоко классифицированных экспертов для решения сложных задач возникающих на практике.
1) когда заранее
известно что поиск
2) Когда логика
программы нуждается в
pr-car(x):-car(x,_,_), write(x), nl, pr-car(x)
При использовании предиката Fail необходимо использовать 2 утверждения.
###
Слияние списков или объединения.
Domains
list=integer*
predicates
append(list, list, list)
clauses
append([], L, L).
append([H | T], L, [H | T1]):-append(T, L, T1).
Цели: 1) Объединение двух списков, пример:
append([1,2,3], [4,5], X)
X=[1,2,3,4,5]
append(L, [2,3], [1,2,3])
L=[1]
append(X, L, [1,2,3])
X=[1] L=[2,3]
X=[1,2] L=[3]
X=[1,2,3] L=[]
5* Обработка данных в списках.
findall(var, Predicat, ListName)
Var — это имя переменной которой необходимо включить в список.
Predicat — это предикат из которого нужно собрать сведения.
ListName — это имя списка куда заносятся результирующие данные.
Пример1:
Программа состоит из фактов описывающих персоны по имени и возрасту. Необходимо определить список всех имен имеющихся в базе данных.
Domains
list=string*
predicates
person(string, integer)
causes
person(«Tom», 28).
person(«Ann», 18).
person(«Lis», 34).
Зададим цель с помощью предиката findall:
findall(X, person(X, _), L)
L=[«Tom», «Ann»,
«Lis»]
«Разработка собственной экспертной системы и программирование её на языке пролог»
Предметная область: дикие животные
Объекты:
Для тигра: хищник, млекопитающие, рыжевато-коричневый окрас, черные полосы.
Гепард: хищник, млекопитающие, рыжевато-коричневый окрас, темные пятна.
Жираф: млекопитающие, травоядное, длинная шея, темные пятна.
Зебра: млекопитающее. Травоядное, черные полосы.
Пингвин: птица, хорошо плавает, черно-белый окрас.
Альбатрос: птица, хорошо летает.
Страус: птица, длинная шея, длинные ноги, черно-белый окрас
Пантера: млекопитающее, хищник, черный окрас.
Млекопитающие — кормят детенышей молоком, имеет шерсть.
Хищник — питается мясом, острые зубы, острые когти.
Травоядные — имеет копыта, жуют жвачку.
Птица: откладывают яйца, имеет перья или пух.
Дикие животные
###
Примечания по схеме: максимальное подразделение на 3 группы. Далее работаем по схеме слево направо.
# дописать
Правила записываем начиная с животных по схеме слево направо, а затем добавляем правила для неопределяемых понятий.
# дописать, всего 12 правил.
Д/з сдать в черновом варианте разработку экспертной системы до 1 декабря.
Предикаты необходимые для экспертной системы.
стр. 95-99.
Структура в прологе
Структура
— это единый объект состоящая
из совокупности других объектов называемых
компонентами(структура
- ФИО
- Др
- отдел
- ФИ автора
- название
- изд-во
- год издания
- член семьи:
- ФИО
- дата рожд.
- статус
На прологе это будет выглядеть следующим образом:
семья(член семьи(энн,
фокс, дата(9, мая, 1951 ), нер), член семьи (том,
фокс, дата(7, май, 1950), работает (bbc, 15200)),
[член семьи (пат, фокс, дата (5, май, 1973),
не работает), член семьи (джим, фокс, дата
(5, мая, 1973), не работает)])
Тогда база фактов будет состоять из последовательности обсуждений подобных этому и описывать все семьи представляющие данную программу. Используя данную структуру можно задавать следующие вопросы:
Семья (член семьи(_,фокс,дата(_,_,_),_))
семья(_, _,[_,_,_])
семья(член семьи(x,y,_,_),_, [_, _|_])
В программу
имеющие структуры можно
muz(x):-
семья(_, x,_).
zhena(y):-
семья( y,_,_)
deti(x):-
семья(_,_,y),
принадлежит (x, y).
принадлежит(x, [x|T]).
принадлежит(x, [H|T]):-
принадлежит(x,T).
существует(x):-
muz(x) or
zena(x) or
delete(x).
dohod(x):-
семья(член семьи(x,_,_,rabotaet(_,y))).
«Графика в прологе»
Создание и работа с окнами. В прологе есть 5 предикатов позволяющих программе управлять окнами. С их помощью можно создавать несколько окон, выполнять ввод и вывод в определенные окна и устанавливать атрибуты окон. Рассмотрим эти предикаты:
Номер окна это
целое число которое
Атрибуты окна определяют цвета символов и фона выбираемое значение зависит от типа монитора цветной или монохромный. При использовании цветного монитора необходимо установить цвет текста и фона:
0 — черный
1 — синий
2 — зеленый
3 — голубой
4 — красный
5 — фиолетовый
6 — коричневый
7 — белый
8 — серый
9 — светло синий
10 — светло зеленый
11 — светло голубой
12 — светло красный
13 — светло фиолетовый
14 — желтый
15 — интенсивно
белый
цвета фона:
0 — черный
16 — синий
32 — зеленый
48 — голубой
64 — красный
80 — фиолетовый
96 — коричневый
104 - желтый
112 — белый
Чтобы получить атрибут окна нужно цвет текста прибавить цвет фона. Если хотим чтобы символы мерцали, нужно прибавить к результату 128. Например:
необходимо создать окно с белыми символами без мерцания, тогда атрибут окна равен: 7+0
Красные символы на желтом фоне с мерцанием: 4+104+128= 236
Синие символы на светло красном фоне: ?
Атрибуты рамки это целое число значение которого определяет рамку окна. Если значение атрибута равно 0, то окно не имеет видимой границы. Если задается мерцающая граница, то она всегда будет белой с мерцающей тонкой линией в середине границы имеющей указаный цвет. Рассмотрим цвета рамки:
1 — синяя
2 — зеленая
3 — светло синяя
4 — красная
5 — фиолетовая
6 — желтая
7 — белая
8 — коричневая
мерцающая белая рамка -1
мерцающая желтая рамка -2
мерцающая фиолетовая -3
мерцающая красная -4
мерцающая светло синяя -5
-6 светло зеленая
-7 синяя
-8 серая
Заголовок окна задает метку окна. Это строка задаваемая в качестве значения атрибута и размещается в центре верхней рамки окна. Если заголовка окна нет, то вместо атрибута записываем аргумент состоящий из 2ух последовательных знаков ковычек.
Информация о работе Понятие интеллектуальной информационной системы