Помощь в написании студенческих работ
Антистрессовый сервис

Разработка базы знаний экспертной системы на тему «Классификация животных»

РефератПомощь в написанииУзнать стоимостьмоей работы

В начале 80-х годов в изучении искусственного интеллекта сформировалось самостоятельное направление, которое называется «экспертные системы» (ЭС). Цель исследований по ЭС состоит в разработке программ, которые при решении задач, трудных для человека, получают результаты, не уступающие по качеству и эффективности решениям, получаемым экспертом. В качестве темы курсовой работы была выбрана… Читать ещё >

Разработка базы знаний экспертной системы на тему «Классификация животных» (реферат, курсовая, диплом, контрольная)

В начале 80-х годов в изучении искусственного интеллекта сформировалось самостоятельное направление, которое называется «экспертные системы» (ЭС). Цель исследований по ЭС состоит в разработке программ, которые при решении задач, трудных для человека, получают результаты, не уступающие по качеству и эффективности решениям, получаемым экспертом.

Целью данной курсовой работы является рассмотрение и изучение возможностей языка и системы логического программирования Turbo Prolog.

В качестве темы курсовой работы была выбрана «Разработка базы знаний экспертной системы на тему «Классификация животных». Животные были классифицированы по следующим признакам: класс, отряд, цвет и по другим личностным характеристикам.

1. Основная часть

prolog экспертный атрибут алгоритм Для распознавания животного внутри каждого подмножества в данной экспертной системе будет использован список атрибутов. Число характеристик определяет степень точности классификации. Отличающей не обязательно будет какая-нибудь одна характеристика — их может быть несколько. Все перечисленные ниже атрибуты являются необходимыми, так как ни один из них не характерен для всех животных одновременно.

  • · Отряд хищные
  • · Любит мёд
  • · Зимой впадает в спячку
  • · Класс млекопитающие
  • · Отряд непарнокопытные
  • · Живёт одиночно
  • · Живёт в Африке
  • · Отряд грызуны
  • · Пушистый длинный хвост
  • · Запасает орехи на зиму
  • · Отряд черепахи
  • · Обитает в воде
  • · Зелёного цвета
  • · Класс пресмыкающиеся
  • · Отряд чешуйчатые
  • · Быстро бегает
  • · Отряд бесхвостые
  • · Прыгает
  • · Класс земноводные

Каждый признак для каждого животного либо верен, либо нет.

Сначала вводятся декларации базы данных. База данных будет хранить ответы пользователя на вопросы системы пользовательского интерфейса. Эти данные являются утвердительными («yes») или отрицательными («no») ответами.

Затем объявляются предикаты для выполнения вывода и для взаимодействия с пользователем.

Вот эти декларации:

database.

xpositive (symbol, symbol).

xnegative (symbol, symbol).

predicates.

do_expert_job.

do_consulting.

ask (symbol, symbol).

animal_is (symbol).

positive (symbol, symbol).

negative (symbol, symbol).

remember (symbol, symbol, symbol).

clear_facts.

goal.

do_expert_job.

Предикаты xpositive и xnegative нужны для хранения утвердительных и отрицательных ответов пользователя. Первые четыре предиката используются для ведения диалога с пользователем, а остальные шесть — для вывода информации.

Должно быть составлено восемь правил: по одному для каждого вида животного. Каждое правило должно распознавать вид животного по признаку принадлежности к группе хищных или какой-либо другой группе.

Правило animal_is идентифицирует само животное, которое требуется найти. Ниже приведено полное продукционное правило для медведя:

animal_is («Медведь»):;

positive (animal," Отряд хищные"),.

positive (animal," Любит мёд"),.

positive (animal," Зимой впадает в спячку"),.

positive (animal," Класс млекопитающие"),!.

Правила positive и negative используют для сопоставления данных пользователя с данными в продукционных правилах. Встроенный предикат asserta позволяет добавить новые утверждения в базу данных. Событие fail устанавливает, когда пользователь пытается согласовать цель с БД, и, при этом, данная операция заканчивается неудачно. Для очистки внутренней базы фактов применяется правило clear_facts. Встроенный предикат retract удаляет утверждения из базы данных Правило remember (запоминание) выполняет добавление предложений с ответами yes (да) и no (нет), для использования при сопоставлении с образцом:

positive (X, Y) :;

xpositive (X, Y),!.

positive (X, Y) :;

not (negative (X, Y)),!,.

ask (X, Y).

negative (X, Y) :;

xnegative (X, Y),!.

remember (X, Y, yes) :;

asserta (xpositive (X, Y)).

remember (X, Y, no) :;

asserta (xnegative (X, Y)),.

fail.

clear_facts :;

retract (xpositive (_,_)),.

fail.

clear_facts :;

retract (xnegative (_,_)),.

fail.

Главный модуль do_expert_job (сделай экспертную работу) и модуль do_consulting (сделай консультацию) осуществляют связь вводимых пользователем данных с системой логического вывода. Модуль ask (X, Y) (спрашивать) запрашивает данные у пользователя и сохраняет ответы в базе данных. Кроме того, окно обеспечивает дополнительное удобство во время консультации. Предикат makewindow является основным в Prolog при работе с окнами. При работе с этим предикатом в скобках указываются: номер окна, атрибуты окна, атрибуты рамки, заголовок окна, начальный номер строки, начальный номер столбца, высота окна, ширина окна. Система пользовательского интерфейса полностью приведена ниже:

do_expert_job:;

makewindow (1,7,7," Expert System", 1,3,22,71),.

nl, write («—————————————————————————-»),.

nl, write («An Animal Expert «),.

nl, write (««),.

nl, write («Please answer the questions 'yes' or 'no'.»),.

nl, write («—————————————————————————-»),.

nl, nl,.

do_consulting,.

write («Press space bar.»), nl,.

readchar (_),.

removewindow,.

exit.

do_consulting:;

animal_is (X),!, nl,.

write («Animal „, X,“ .»), nl,.

clear_facts.

do_consulting:;

nl, write («Sorry !»),.

clear_facts.

ask (X, Y):;

write («expert> „, X,“ „, Y,“ ?»),.

readln (Reply),.

remember (X, Y, Reply).

positive (X, Y):;

xpositive (X, Y),!.

positive (X, Y):;

not (negative (X, Y)),!,.

ask (X, Y).

negative (X, Y):;

xnegative (X, Y),!.

remember (X, Y, yes):;

asserta (xpositive (X, Y)).

remember (X, Y, no):;

asserta (xnegative (X, Y)),.

fail.

clear_facts:;

retract (xpositive (_,_)),.

fail.

clear_facts:;

retract (xnegative (_,_)),.

fail.

Экспертная система выбирает вид животного на базе ответов, данных пользователем на вопросы, а в конце неудачного поиска выдает сообщение «Sorry!» .

Заключение

Целью данной курсовой работы являлось изучение возможностей языка и системы логического программирования Turbo Prolog.

В качестве темы курсовой работы была выбрана «Разработка базы знаний экспертной системы на тему «Классификация животных». Животные были классифицированы по следующим признакам: класс, отряд, цвет и по другим личностным характеристикам.

При выполнении программа классифицирует животных по признакам, выбранных пользователем, а если животного с выбранными критериями нет в базе знаний, программа выдаёт сообщение «Sorry!» .

В ходе выполнения данной курсовой работы были закреплены и получены знания по созданию экспертных систем на языке логического программирования Turbo Prolog.

Приложение

domains.

database.

xpositive (symbol, symbol).

xnegative (symbol, symbol).

predicates.

do_expert_bird.

do_consulting.

ask (symbol, symbol).

animals_is (symbol).

positive (symbol, symbol).

negative (symbol, symbol).

remember (symbol, symbol, symbol).

clear_facts.

goal.

do_expert_bird.

clauses.

do_expert_bird:;

makewindow (1,7,7," Expert System", 1,3,22,71),.

nl, write («—————————————————————————-»),.

nl, write («An Animal Expert «),.

nl, write (««),.

nl, write («Please answer the questions 'yes' or 'no'.»),.

nl, write («—————————————————————————-»),.

nl, nl,.

do_consulting,.

write («Press space bar.»), nl,.

readchar (_),.

removewindow,.

exit.

do_consulting:;

animal_is (X),!, nl,.

write («Animal „, X,“ .»), nl,.

clear_facts.

do_consulting:;

nl, write («Sorry !»),.

clear_facts.

ask (X, Y):;

write («expert> „, X,“ „, Y,“ ?»),.

readln (Reply),.

remember (X, Y, Reply).

positive (X, Y):;

xpositive (X, Y),!.

positive (X, Y):;

not (negative (X, Y)),!,.

ask (X, Y).

negative (X, Y):;

xnegative (X, Y),!.

remember (X, Y, yes):;

asserta (xpositive (X, Y)).

remember (X, Y, no):;

asserta (xnegative (X, Y)),.

fail.

clear_facts:;

retract (xpositive (_,_)),.

fail.

clear_facts:;

retract (xnegative (_,_)),.

fail.

animal_is («Медведь»):;

positive (animal," Отряд хищные"),.

positive (animal," Любит мёд"),.

positive (animal," Зимой впадает в спячку"),.

positive (animal," Класс млекопитающие"),!.

animal _is («Носорог»):;

positive (animal," Отряд непарнокопытные"),.

positive (animal," Живёт одиночно"),.

positive (animal," Живёт в Африке"),.

positive (animal," Класс млекопитающие"),!.

animal _is («Белка»):;

positive (animal," Отряд грызуны"),.

positive (animal," Пушистый длинный хвост"),.

positive (animal," Запасает орехи на зиму"),.

positive (animal," Класс млекопитающие"),!.

animal _is («Черепаха»):;

positive (animal," Отряд черепахи"),.

positive (animal," Обитает в воде"),.

positive (animal, «Зелёного цвета» .

positive (animal," Класс пресмыкающиеся"),!.

animal _is («Ящерица»):;

positive (animal," Отряд чешуйчатые"),.

positive (animal," Быстро бегает"),.

positive (animal," Зелёного цвета"),.

positive (animal," Класс пресмыкающиеся"),!.

animal_is («Лягушка»):;

positive (animal," Отряд бесхвостые"),.

positive (animal," Зелёного цвета"),.

positive (animal," Прыгает"),.

positive (animal," Класс земноводные"),!.

animal _is («Человек»):;

positive (animal," Не животное"),.

positive (animal," Класс млекопитающие"),!.

Показать весь текст
Заполнить форму текущей работой