Разработка базы знаний экспертной системы на тему "Классификация животных"
Возможности языка и системы логического программирования Turbo Prolog в создании экспертных систем. Список атрибутов для распознавания животного внутри каждого подмножества в экспертной системе. Алгоритм выбора на базе ответов, данных пользователем.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 10.12.2015 |
Размер файла | 17,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
- Введение
- 1. Основная часть
- Заключение
- Приложение
- Введение
- В начале 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,"Класс млекопитающие"),!.
Размещено на Allbest.ru
...Подобные документы
Общая характеристика и функциональные возможности языка логического программирования Prolog, а также систем SWI-Prolog и Visual Prolog. Формирование базы знаний относительно определения возможности трудоустройства студента и принципы реализации запросов.
лабораторная работа [1,3 M], добавлен 07.10.2014Структура экспертных систем, их классификация и характеристики. Выбор среды разработки программирования. Этапы создания экспертных систем. Алгоритм формирования базы знаний с прямой цепочкой рассуждений. Особенности интерфейса модулей "Expert" и "Klient".
курсовая работа [1,1 M], добавлен 18.08.2009Понятия, классификация и структура экспертных систем. Базы знаний и модели представления знаний. Механизмы логического вывода. Инструментальные средства проектирования и разработки экспертных систем. Предметная область ЭС "Выбор мобильного телефона".
курсовая работа [2,2 M], добавлен 05.11.2014Структура типичной экспертной системы. База данных (рабочая память), её назначение. Функция getsport как экземпляр класса cSport. Алгоритм работы экспертной системы. Реализация пользовательского интерфейса. Результаты тестирования системы пользователем.
курсовая работа [1018,8 K], добавлен 13.06.2012Понятие экспертных систем, их классификация, виды и структура. Построение продукционной модели экспертной системы прогнозирования результатов сессии на основании анализа успеваемости, ее реализация в языке логического программирования Visual Prolog.
дипломная работа [1,6 M], добавлен 25.01.2011История возникновения и развития языка Prolog. Рассмотрение императивных и декларативных языков программирования. Элементы экспертной системы: база знаний, механизм вывода и система пользовательского интерфейса. Описание предикатов и предложений.
дипломная работа [44,0 K], добавлен 11.05.2014Разработка экспертной системы по выбору языка программирования для данного программного обеспечения. Выбор и обоснование механизма вывода решения. Дерево базы знаний экспертной системы. Программа формирования основного меню, руководство пользователя.
курсовая работа [1,9 M], добавлен 15.08.2012Виды и основные функции интеллектуальных систем. Выбор инструментального средства для создания экспертной системы. Физическое проектирование базы данных. Использование среды EsWin 2.1 для разработки и тестирования экспертной системы выбора должности.
курсовая работа [615,8 K], добавлен 22.03.2016Реализация экспертных систем любой сложности, решение любых головоломок и шарад с помощью языка логического программирования Prolog. Основные понятия в языке Prolog. Правила логического вывода и запросы. Процедуры логического вывода и принятия решений.
курсовая работа [19,0 K], добавлен 24.05.2012Назначение экспертной системы. Разработка экспертной системы путем самостоятельного программирования в полном объеме простейшей ЭС в "GURU". Листинг экспертной системы по прогнозированию на бирже уровня цен, если валютный курс доллара падает или растет.
лабораторная работа [17,8 K], добавлен 15.01.2011Общая характеристика киноиндустрии как предметной области работы. Разработка базы данных и дерева вопросов для получения информации для выбора фильма. Программная реализация экспертной системы. Тестирование системы и создание руководства пользователя.
курсовая работа [1,9 M], добавлен 19.05.2014Рассмотрение экспертных систем: классификация, назначение, общие принципы построения и функционирования. Среда разработки данных систем: BorlandC++ Builder 6.0 и AMZI! Prolog. Описание процесса разработки экспертной системы "Выбор спортивного инвентаря".
курсовая работа [426,9 K], добавлен 19.08.2012Аналитический обзор системы управления курсами Moodle, программное построение ее модулей. Разработка структурной схемы и базы знаний экспертной системы. Создание дерева вопросов и выбор алгоритма поиска решений. Анализ возможных угроз и защита информации.
дипломная работа [534,7 K], добавлен 14.12.2013Разработка программы для поиска пути в лабиринте с возможностью задания входа и выхода, наглядное представление решений. Использование языка логического программирования Prolog. Данные и методы решения. Пользовательский интерфейс, листинг программы.
реферат [14,3 K], добавлен 15.10.2012Обзор методов и подходов решения поставленной задачи аппроксимации логического вывода экспертной системы. Разработка и описание метода сетевого оператора для решения данной задачи. Разработка алгоритма решения. Проведение вычислительного эксперимента.
дипломная работа [1,5 M], добавлен 23.02.2015Отличительные черты компьютерных программ экспертных систем, их разработка. Составные части систем: база знаний, механизм вывода, система пользовательского интерфейса. Структура базы знаний экспертной системы для помощи медикам в постановке диагноза.
курсовая работа [325,0 K], добавлен 04.02.2011Обобщенная структура и принципы функционирования экспертных систем. Выбор модели представления знаний. Разработка логического блока программы и графического пользовательского интерфейса. Текст программы и экспериментальная оценка результатов работы.
дипломная работа [2,4 M], добавлен 06.03.2013Фреймовые модели представления знаний. Разработка структуры фреймов для реализации экспертной системы. Разработка экспертной системы с фреймовой моделью представления знаний. Редактирование базы фактов кандидатов и описание режима консультации.
курсовая работа [1,3 M], добавлен 13.10.2012Этапы разработки экспертных систем. Требования к организации-разработчику. Правильный выбор подходящей проблемы, работа с экспертом. Разработка прототипной системы. Развитие прототипа до промышленной экспертной системы. Особенности оценки системы.
презентация [169,1 K], добавлен 14.08.2013Сущность интеллектуальных систем. Запись математического выражения в виде ориентированного графа. Особенности разработки генетического алгоритма для решения задачи аппроксимации логического вывода экспертной системы на основе метода сетевого оператора.
дипломная работа [1,0 M], добавлен 17.09.2013