Понятие интеллектуальной информационной системы

Автор работы: Пользователь скрыл имя, 20 Февраля 2011 в 20:13, реферат

Описание работы

Около полувека назад зародился как наука искусственный интеллект на основе которого создавались первые интеллектуальные информационные системы. В России первой такой системой называлась «логик-теоретик» предназначенная для доказательства теорем и исчисления высказываний. В первые её работа была продемонстрирована 9.08.1956 г. В настоящее время ИИС проникли во все сферы нашей жизни, основной целью построения которых является выявление, исследование и применение знаний высоко классифицированных экспертов для решения сложных задач возникающих на практике.

Файлы: 1 файл

Интелектуальные_информационные_системы.doc

— 178.50 Кб (Скачать файл)

1) когда заранее  известно что поиск альтернативных решений не приведет к разумному результату, используя отсечение в этой ситуации программа будет работать быстрее и использовать меньше памяти. Такие отсечения называются зелеными.

2) Когда логика  программы нуждается в отсечении  чтобы предотвратить рассмотрение альтернативных подцелей, такие отсечения называются красными. Например: записать программу определения статуса человека. Метод повторяющихся операций. Для этого существует 2 способа: 1) С помощью специального предиката откат fail, который выполняет предикат до невыполнения, таким образом предикат содержащий fail всегда заканчивается неуспехом, следовательно необходимо записать еще один предикат который заканчивался успехом. Fail должен быть последний в правиле, например: вывести название всех машин(задача лабораторный работы)

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]

  1. нахождение разности между списками, пример:

append(L, [2,3], [1,2,3])

L=[1]

  1. Расщепление результативного списка на 2, пример:

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»] 

«Разработка собственной экспертной системы  и программирование её на языке пролог»

  1. Выбор предметной области, выбор объектов для предметной области(объектов должно быть 11), пример:

Предметная область: дикие животные

Объекты:

  1. Тигр
  2. Гепард
  3. Жираф
  4. Зебра
  5. Пингвин
  6. Альбатрос
  7. Страус
  8. Пантера
  9. Выделим основные характеристики животных:

Для тигра: хищник, млекопитающие, рыжевато-коричневый окрас, черные полосы.

Гепард: хищник, млекопитающие, рыжевато-коричневый окрас, темные пятна.

Жираф: млекопитающие, травоядное, длинная шея, темные пятна.

Зебра: млекопитающее. Травоядное, черные полосы.

Пингвин: птица, хорошо плавает, черно-белый окрас.

Альбатрос: птица, хорошо летает.

Страус: птица, длинная  шея, длинные ноги, черно-белый окрас

Пантера: млекопитающее, хищник, черный окрас.

  1. Выделим не определяемые понятия и запишем их характеристики:

Млекопитающие — кормят детенышей молоком, имеет шерсть.

Хищник —  питается мясом, острые зубы, острые когти.

Травоядные —  имеет копыта, жуют жвачку.

Птица: откладывают  яйца, имеет перья или пух.

  1. Схема экспертной системы:

Дикие животные

###

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

  1. Проверка. Составление вопросов для пользователя. В вопросах неопределяемые понятия задаются их характеристиками, см этап 3. Каждый вопрос начинается с предметной области, в данном случае это слово животное, после которого идет связующий глагол и соответствующая характеристика.
  2. Животное кормит детенышей молоком ?
  3. Животное имеет шерсть ?
  4. Животное откладывает яйца ?
  5. Животное имеет перья ?
  6. Животное имеет пух ?
  7. Животное питается мясом ?
  8. Животное имеет острые зубы ?
  9. Животное имеет острые когти ?
  10. Животное имеет копыта ?
  11. Животное жуют жвачку ?
  12. Животное имеет черный окрас ?
  13. Животное имеет рыжевато коричневый окрас ?

# дописать

  1. Запись правил:

Правила записываем начиная с животных по схеме слево  направо, а затем добавляем правила для неопределяемых понятий.

  1. Животное тигр если оно млекопитающее и оно хищник и имеет рыжевато-коричневый окрас и имеет темные полосы.
  2. Оно млекопитающее если кормит детенышей молоком и имеет шерсть.

# дописать, всего  12 правил.

Д/з сдать  в черновом варианте разработку экспертной системы до 1 декабря.

  1. Запись на языке программирования пролог.
 

Предикаты необходимые для экспертной системы.

  1. Run — используется для запуска программы(в окне цели зададим цель).
  2. animal_is
  3. позитив и негатив
  4. clear_facts
  5. remember
  6. ask — формирует вопрос

стр. 95-99. 

Структура в прологе

      Структура — это единый объект состоящая  из совокупности других объектов называемых компонентами(структура аналогична записям на языке пролог), например:

  1. Служащий

- ФИО

- Др

- отдел

  1. Каталог библ книг

- ФИ автора

- название

- изд-во

- год издания

  1. семья

- член семьи:

- ФИО

- дата рожд.

- статус

На прологе  это будет выглядеть следующим  образом:

семья(член семьи(энн, фокс, дата(9, мая, 1951 ), нер), член семьи (том, фокс, дата(7, май, 1950), работает (bbc, 15200)), [член семьи (пат, фокс, дата (5, май, 1973), не работает), член семьи (джим, фокс, дата (5, мая, 1973), не работает)]) 

Тогда база фактов будет состоять из последовательности обсуждений подобных этому и описывать  все семьи представляющие данную программу. Используя данную структуру можно задавать следующие вопросы:

  1. Найти всех членов семьи фокс.

Семья (член семьи(_,фокс,дата(_,_,_),_))

  1. Найти все семьи имеющие 3 детей

семья(_, _,[_,_,_])

  1. Найти всех замужних женщин имеющих по крайней мере 2 детей

семья(член семьи(x,y,_,_),_, [_, _|_])

В программу  имеющие структуры можно добавить несколько правил делающих взаимодействие с базой данных более удобное.

  1. Правило определения мужа.

muz(x):-

семья(_, x,_).

  1. Правило нахождения жены

zhena(y):-

семья( y,_,_)

  1. Правило нахождения детей

deti(x):-

семья(_,_,y),

принадлежит (x, y).

принадлежит(x, [x|T]).

принадлежит(x, [H|T]):-

принадлежит(x,T).

  1. Нахождение любого члена семьи в базе данных

существует(x):-

muz(x) or

zena(x) or

delete(x).

  1. Определить доход работающего.

dohod(x):-

семья(член семьи(x,_,_,rabotaet(_,y))). 

  1. Найти имена  всех людей из базы данных.
  2. Найти всех детей родившихся в 81 году.
  3. Найти всех работающих жен.
 

«Графика  в прологе»

      Создание  и работа с окнами. В прологе  есть 5 предикатов позволяющих программе управлять окнами. С их помощью можно создавать несколько окон, выполнять ввод и вывод в определенные окна и устанавливать атрибуты окон. Рассмотрим эти предикаты:

  1. makewindow имеет следующие атрибуты(<номер окна>; <атрибуты окна>; <атрибуты рамки>, заголовок окна, начальный номер строки, начальный номер столбца высота окна, ширина окна)

Номер окна это  целое число которое идентифицирует окно в программе. Это число используется в качестве ссылки gotowindow.

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

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ух последовательных знаков ковычек.

Информация о работе Понятие интеллектуальной информационной системы