Экспертная система пример порода собак



МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РЕСПУБЛИКА КАЗАХСТАН

Рудненский индустриальный институт

Кафедра ИСиТ

КОНТРОЛЬНАЯ РАБОТА

По дисциплине: «Экспертные системы»

Тема: «Создание экспертной системы «Выбор породы собак»»

Руководитель: М. Н. Юдина

«_____» ____________2003г.

                                                             Выполнил:       Крупнева И. В.

Группа:                      ЗИС-5 со

Шифр:                     21201

Рудный 2004

СОДЕРЖАНИЕ

ВВЕДЕНИЕ                                                                                                                              3                                         

1.    ПОСТАНОВКА ЗАДАЧИ                                                                                    5

2.       ОПИСАНИЕ БАЗЫ ЗНАНИЙ                                                                      6

3.       МЕТОД РЕШЕНИЯ                                                                                                  8

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ                                          9             

ПРИЛОЖЕНИЕ Листинг программы                                                                      10             

ВВЕДЕНИЕ

Экспертные системы (ЭС)- это программа для компьютера, которая оперирует со знаниями в определенной предметной области с целью выработки рекомендаций или решения проблем.

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

Технология ЭС является одним из направлений новой области исследования, которая получила наименование искусственного интеллекта (Artificial Intelligence – AI). Исследования этой области сконцентрированы на разработке и внедрении компьютерных программ, способных имитировать, воспроизводить те области деятельности человека, которые требуют мышления, определенного мастерства и накопленного опыта. К ним относятся задачи принятия решений, распознавания образов и понимания человеческого языка.

Эта технология уже успешно применяется в некоторых областях техники и жизни общества – органической химии, поиске полезных ископаемых, медицинской диагностики.

ЭС отличаются от других видов программ из области искусственного интеллекта:

       ЭС имеют дело с предметами реального мира, операции с которыми требуют наличия значительного опыта, накопленного человеком. ЭС имеют ярко выраженное практическое направление в научной или коммерческой области.

       Одной из основных характеристик ЭС является ее производительность, т.е. скорость получения результата и его достоверность (надежность). ЭС должна за приемлемое время найти решение, которое было бы не хуже, чем то, которое может предложить специалист в этой предметной области.

       ЭС должна обладать способностью объяснить почему предложено именно такое решение, и доказать его обоснованность. Пользователь должен получить всю информацию, необходимую ему для того, чтобы быть уверенным, что решение принято «не с потолка».

       ЭС проектируется в расчете на взаимодействие с различным пользователем, для которого ее работа должна быть, по возможности, прозрачной, т.е. решение ЭС объяснено пользователю на качественном уровне.

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

Знания о предметной области, необходимые для работы ЭС, определенным образом формализованы и представлены в памяти ЭВМ в виде базы знаний, которая может изменяться и дополняться в процессе развития системы.

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

       решение задач с использованием знаний о конкретной предметной области возможно, при этом возникнет необходимости иметь дело с неопределенностью;

       взаимодействие с пользователем, включая объяснение намерений и решений системы во время и после окончания процесса решения задачи.

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

ЭС выдают советы, проводят анализ, выполняют классификацию, дают консультации и ставят диагноз.

Главное достоинство ЭС – возможность накапливать знания, сохранять их длительное время, обновлять и тем самым обеспечивать относительную независимость конкретной организации  от наличия в ней квалифицированных специалистов. Накопление знаний позволяет повышать квалификацию специалистов, работающих на предприятии, используя наилучшие, проверенные решения.

1. ПОСТАНОВКА ЗАДАЧИ

Целью контрольной работы было написание консультирующей экспертной системы «Выбор породы собак», которая позволила бы из множества пород   выбрать ту, которая  удовлетворяла бы  требованиям  пользователя.

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

2.       ОПИСАНИЕ БАЗЫ ЗНАНИЙ

В качестве источника знаний для БЗ  была использована литература с описание пород собак: к какой группе относятся (служебные, охотничьи, декоративные), размеры собаки, характер, какими качествами обладают, где используются в человеческой жизни.

В результате этого была разработана формализованная БЗ:

1.       Служебные собаки.

          Характе-        ристики

Порода

собаки

          Проводник

          Спасатель на воде

          Спасатель на снегу

          Пастух

          Поисково-спасательная

          Патрульно-постовая

          Розыскная

          Спортивная

          Домашняя

          Охрана – улица

          Охрана – дом

          Неприхотливая к кл.усл.

          Агрессивная

           Крупная

          Средняя

           Короткая шерсть

           Длинная  шерсть

Немецкая овчарка

+

+

+

+

+

+

+

+

+

Кавказская

овчарка

+

+

+

+

+

+

Шотландская овчарка(колли)

+

+

+

+

+

+

+

+

Среднеазиатская

овчарка

+

+

+

+

+

+

Южнорусская

овчарка

+

+

+

+

+

+

Эрдельтерьер

+

+

+

+

+

+

+

Ротвейлер

+

+

+

+

+

+

+

+

Черный терьер

+

+

+

+

+

Сембернар

+

+

+

+

+

+

Московская сторожевая

+

+

+

+

+

Ризеншнауцер

+

+

+

+

+

+

+

+

Доберман

+

+

+

+

+

+

+

Боксер

+

+

+

+

+

+

Дог

+

+

+

+

Ньюфаундленд

+

+

+

+

+

2.       Охотничьи собаки.

          Характе-        ристики

Порода

собаки

          Охота на птицу

          Скоростная охота

          Универсальная охота

          Норная охота

          Спортивная

          Для дома

           Короткая шерсть

          Длинная  шерсть

           Небольшой рост

           Средний и высокий рост

Лайка

+

+

+

+

Борзые

+

+

+

+

Гончие

+

+

+

+

Легавые

+

+

+

+

Спаниели

+

+

+

+

Фокстерьер

+

+

+

+

Такса

+

+

+

+

Скотч-терьер

+

+

+

+

3.       Декоративные собаки.

          Характе-        ристики

Порода

собаки

          Для детей

          Неприхотливая

          Покладистая

           Короткая шерсть

           Длинная  шерсть

Болонка

+

+

+

+

Пинчер

+

Тойтерьер

+

Карликовый

терьер

+

Японский хин

+

+

+

+

Чау-чау

+

Мопс

+

+

+

Французский

бульдог

+

+

+

+

Карликовый

пудель

+

+

+

+

Источник

Главная » Курсовые

ЛАБОРАТОРНАЯ РАБОТА

ЭКСПЕРТНЫЕ СИСТЕМЫ НА
ПРОЛОГЕ

Цель работы.

Целью работы является изучение принципов построения и организации
экспертных систем, базирующихся на логике и правилах.

1 Задание
на лабораторную работу.

Реализовать экспертную систему по заданной предметной области в
соответствии с номером задания в Таблице 1. При этом количество описываемых
объектов должно быть не менее 12, а характеризующих их атрибутов — не менее .8.
Рассмотреть реализацию экспертной системы как базирующуюся на логике и как базирующуюся
на правилах.

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

Вариант

Предметная
область

1, 5, 21, 29

Микропроцессоры

2, 6, 22, 28

Мобильные устройства

3, 10, 23, 30

Операционные системы

4, 11, 24, 31

Языки программирования

7, 12, 19

Компьютерные игры

8, 15, 20

Компьютерные вирусы

9, 16, 25

Компьютерные сети

13, 17, 26

Алгоритмы сортировки

14, 18, 27

Алгоритмы поиска

2 Краткие
теоретические сведения.

2.1 Назначение и общая
структура экспертных систем.

Под Экспертной Системой (ЭС) понимается программа (комплекс
программ), моделирующая в некоторой степени работу человека-эксперта в
конкретной предметной области. Причем эта область строго ограничена. Основное
назначение ЭС — проведение консультаций в той предметной области, для которой
спроектирована данная ЭС.

В составе ЭС выделяется три компонента (рис) :

1) База Знаний (БЗ). БЗ — центральная часть Экспертной Системы.
Она содержит совокупность фактов и знаний (правил) для вывода других знаний.
Содержащаяся в БЗ информация используется ЭС для вывода экспертного заключения
во время консультации. Обычно БЗ располагают отдельно от программы, на диске
или другом носителе.

2)   Механизм Вывода (MB). MB
содержит описания способов применения содержащихся в БЗ знаний. Во время
консультации MB запускает ЭС в работу, выполняет правила,
определяет приемлемость найденного решения и передает результаты в СПИ.

3)   Система Пользовательского
Интерфейса (СПИ). СПИ есть та часть ЭС, которая взаимодействует с
пользователем. В функции СПИ входит: прием информации от пользователя, передача
результатов пользователю в наиболее удобной для него форме, объяснение
полученных ЭС результатов (выдача справочной информации по выводу результатов).

В зависимости от способов классификации и размещения информации
Базы Знаний различают: продукционную, сетевую и фреймовую модели представления
знаний.

Сетевая модель основана на представление знаний в виде сети,
вершины которой соответствуют понятиям, а дуги — отношениям между ними.

В основе фреймовой модели лежит логическая группировка атрибутов
объекта, при этом для хранения и обработки логические группы описываются во
фреймах.

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

2.2 Вывод экспертного
заключения
.

Под выводом в ЭС понимается доказательство того, что из множества
предположений следует некоторое заключение. Принятая логика получения
заключения специфицируется правилами вывода. Вывод осуществляется посредством
поиска и сопоставления по образцу.

В ЭС, базирующейся на правилах, запросы пользователя
трансформируются в форму, сопоставимую с формой правил БЗ. Механизм вывода
инициализирует процесс сопоставления, начиная с «верхнего» правила, Обращение к
правилу называется «вызовом». Вызов соответствующих правил в процессе
сопоставления продолжается до тех нор, пока не произошло сопоставление или не
исчерпана вся БЗ, а значение не найдено. Если MB обнаруживает, что можно
вызвать более одного правила,

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

В ЭС, базирующейся на логике, трансформированные запросы являются
значениями, которые сопоставляются со списками значений, находящихся в
утверждениях БЗ.

Внутренние программы унификации Visual Prolog’a
позволяют решать задачи поиска и сопоставления по образцу без написания
дополнительных правил. Как в системе, базирующейся на правилах, так и в
системе, базирующейся на логике, пользователь получает ответы на свои запросы в
соответствии с заложенной в ЭС логикой. Для программной реализации механизма
вывода экспертного заключения достаточно только написать необходимые
спецификации.

2.3 ЭС, базирующаяся
на правилах, и ее реализация
.

ЭС, базирующаяся на правилах, позволяет проектировщику строить
правила, которые естественным образом объединяют в группы связанные фрагменты
знаний. При этом взаимная независимость продукционных правил делает базу правил
семантически модульной и способной к развитию.

Реализованная на Visual Prolog’e ЭС
на правилах содержит множество правил, которые вызываются посредством входных
данных в момент сопоставления. Наряду с множеством правил MB ЭС
имеет в своем составе интерпретатор, который выбирает и активизирует различные
модули системы. Работа этого интерпретатора описывается последовательностью
трех шагов:

1)   Интерпретатор
сопоставляет образец правила с элементами данных в БЗ.

2)   Если можно вызвать более
одного правила, то для выбора правила используется механизм разрешения
конфликта.

3)   Выбранное правило
применяется для поиска ответа на поставленный вопрос.

Этот трехшаговый процесс является циклическим и называется циклом
распознавание-действие. Утвердительный ответ ЭС является результатом выполнения
одного из продукционных правил, выбор правила производится в соответствии с
входными данными.

Написание на Visual Prolog’e ЭС,
базирующейся на правилах, начинается с декларации БД. БД  хранит ответы пользователя на вопросы СПИ. Эти
данные являются утвердительными или отрицательными ответами. Далее строятся
продукционные правила, описывающие фрагменты фактического знания. Пример (для
ЭС идентификации и выбора породы собак):

dog_is(«английский бульдог»):-

it_is( «короткошерстная»),

positive(«имеет», «рост меньше 22
дюймов»),

positive( «имеет», «свисающий
хвост»),

positive («имеет», «хороший
характер»), !.

/* Аналогично описываются знания о других породах собак */

dog_is («коккер-спаниэль»): –

it_is («длинношерстная»),

positive(«имеет», «рост меньше 22
дюймов»),

positive(«имеет», «свисающий
хвост»),

positive(«имеет», «длинные уши»),

positive(«имеет», «хороший
характер»), !.

Причем с целью ограничения пространства поиска описывающие
связанные фрагменты знаний правила могут бать сгруппированы посредством
введения в базу вспомогательных правил для идентификации подкатегорий. К
примеру, в ЭС выбора породы собаки это будет правило it_is, которое идентифицирует
породу собаки по признаку принадлежности к группе длинношерстных или
короткошерстных :

it_is( «короткошерстная»): –

positive(«собака имеет»,
«короткую шерсть»), !.

it_is( «длинношерстная»): –

positive(«собака имеет», «длинную
шерсть»), !.

 В
рассматриваемом здесь примере основные данные для выбора породы собаки являются
общеизвестными, поскольку выбраны распространенные породы собак. Набор
признаков для классификации пород выбран на основании следующих соображений:

—Все используемые атрибуты являются необходимыми для
идентификации породы.

—Ни один из атрибутов не характерен для всех пород
одновременно.

Правила MB сопоставляют данные
пользователя с данными в продукционных правилах (правила positive и negative в рассматриваемой ЭС), а
также сохраняют «трассу» утвердительных и неутвердительных (отрицательных)
ответов (правило remember для добавления в БД
утверждений с ответами 1 (да) и 2 (нет)), которые используются при
сопоставлении с образцом :

/* Механизм вывода экспертного заключения.

xpositive(X, Y) и xnegative(X, Y) —предикаты динамической
БД, хранят, соответственно, утвердительные и неутвердительные ответы пользователя
на вопросы, которые СПИ задает на основе значений аргументов предиката positive в теле очередного варианта правила dog_is */

positive(X,
Y): –

xpositive(X,Y), !.

positive(X,
Y):

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

negative(X,
Y): –

xnegative(X,Y), !.

/* Консультация. Предикат dlg_Ask создает стандартное
диалоговое окно  получения ответа
пользователя на вопрос Да/Нет*/

Возможен другой вариант ask!

ask(X, Y):-

concat(«Вопрос : », X, Temp),

concat(Temp, « », Temp1),

concat(Temp1, Y, Temp2),

concat(Temp2, «?», Quest),

Reply1—dlg_Ask(«Консультация», Quest, [«Да», «Нет»]),

Reply=Replyl+l,

remember(X, Y, Reply).

/* Занесение ответов пользователя в динамическую БД */

remember(X,
Y, 1):- !,

assertz(xpositive(X, Y)).

remember(X,
Y, 2): — !,

assertz(xnegative(X, Y)), fail.

2.4 ЭС, базирующаяся
на логике, и ее реализация.

Здесь БЗ состоит из утверждений в виде предложений логики
предикатов. При этом часть утверждений описывают объекты, другая часть —
условия или атрибуты, которые характеризуют различные объекты. Количество
признаков определяет степень точности классификации. Интерпретатор внутри
системы выполняет свои функции на основе следующей схемы:

1)   Система содержит в БЗ
предложения, которые управляют поиском и сопоставлением. Интерпретатор
сопоставляет эти предложения с элементами данных в БД.

2)   Если существует
возможность вызова более одного правила, то для разрешения конфликта система
использует возможности механизма внутренней унификации Пролога.

3)   Система получает
результаты унификационного процесса автоматически, поэтому они направляются на
нужное (логическое) устройство вывода информации.

Так же, как и в ЭС, базирующейся на правилах, данный циклический
процесс является процессом распознавание-действие.

Основное отличие структуры ЭС, базирующейся на логике, состоит в
описании объектов и атрибутов в виде фактов:

/* Условия-характеристики различных пород.*/

cond(l, «короткошерстная
порода»).

cond(2, «длинношерстная порода»).

cond(3, «рост меньше 22 дюймов»).

cond(4, «рост больше 30 дюймов»).

cond(5, «свисающий хвост»).

cond(6, «длинные уши»).

cond(7, «хороший характер»).

cond(8, «вес более 100 фунтов»).

/* Данные о типах породы */

topic (« короткошерстная »).

topic(«длинношерстная»).

/* Данные о конкретных породах */

rule(l, «собака»,
«короткошерстная», [1]).

rule(2, «собака», «длинношерстная», [2]).

rule(3, «короткошерстная», «английский бульдог», [3,5,7]).

rule(4, «короткошерстная», «гончая», [3,6,7]).

rule(5, «короткошерстная», «датский дог», [5,6,7,8]).

rule(6, «короткошерстная», «американский фокстерьер», [4,6,7]).

rule(7, «длинношерстная», «коккер-спаниэль», [3,5,6,7]).

ш1е(8, «длинношерстная»,
«ирландский сеттер», [4,6]).

rule(9, «длинношерстная», «колли», [4,5,7]).

rule(10, «длинношерстная», «сенбернар», [5,7,8]).

Третий аргумент предиката rule — список целых
чисел-номеров условий из предложений типа cond. Каждое предложение типа
cond задает свое условие-признак из используемых здесь для
классификации пород собак. В ЭС, базирующейся на логике, интерпретатор
использует эти номера условий, чтобы делать соответствующий выбор.

MB содержит правила обработки списков атрибутов в
описаниях объектов. Посредством применения правила go MB
просматривает утверждения БЗ rule и cond
для выяснения с помощью правила check существования или
отсутствия подходящих значений данных:

/* Начальное правило механизма вывода */

go(_, Mygoal): —

not(rule(_, Mygoal, _, _)), !,

concat(«Рекомендуемаяпорода : », Mygoal, Temp),

concat(Temp, «.», Result),

dlg_Note(«Экспертноезаключение : », Result).

go(History,
Mygoal): —

rule(Rule_number, Mygoal, Type_of_breed, Conditions),

check(Rule_number, History, Conditions),

go([Rule_number|History], Type_of_breed).

/* Сопоставление входных данных пользователя со списками атрибутов
отдельных пород собак */

check(Rule_number,
History, [Breed_cond|Rest_breed_cond_list]):-

yes(Breed_cond), !,

check(Rule_number, History, Rest_breed_cond_list).

check(_,
_, [Breed_cond|_]): –

no(Breed_cond), !, fail.

check(Rule_number,
History, [Breed_cond|Rest_breed_cond_list]):-

cond(Breed_cond, Text),

ask_question(Breed_cond, Text),

check(Rule_number, History, Rest_breed_cond_list).

check(_,
_,[])
.

do_answer(Cond_number,
1): —!,

assertz (yes (Cond _ number)).

do_answer(Cond_number,
2): — !,

assertz(no(Cond_number)), fail.

/* Запрос и получение ответов yes и nо от
пользователя */

ask_question(Breed_cond,
Text): —

concat(«Вопрос : », Text, Temp),

concat(Temp, « », Temp1),

concat(Tempi, «?», Quest),

Responsel1=dlg_Ask(«Консультация», Quest, [«Да»,«Нет»]),

Response=Response1+1,

do_answer(Breed_cond, Response).

Правило go пытается сопоставить
объекты, классифицированных при помощи номеров условий. Если сопоставление
происходит, то данный модуль программы должен добавить в БЗ сопоставленные
значения и продолжить процесс с новыми данными, полученными от пользователя
Если сопоставление не происходит, механизм останавливает текущий процесс и
выбирает для сопоставления другую трассу. Поиск и сопоставление продолжается до
тех пор, пока не исчерпаны все возможности.

Достоинством ЭС, базирующейся на логике, является возможность
хранения фактов Базы Знаний в утверждениях динамической Базы Данных. При этом
База Знаний может быть размещена в файле на диске, что позволяет сделать ее не
зависимой от программного кода.

3 Содержание отчета по работе.

Отчет по работе должен содержать:

1)   Формулировку цели и задач
проводимых исследований;

2)   Описание характеристик
разработанных Экспертных Систем;

3)   Диаграмма потоков данных
и структурная диаграмма для варианта реализации Экспертной Системы как
базирующейся на правилах и как базирующейся
на логике;

4)   Тексты программ с
комментариями и обоснованиями;

5)   Описание механизмов
вывода в рассматриваемых Экспертных Системах;

6)   Выводы по проведенным
машинным экспериментам.

ТЕМЫ
РЕФЕРАТОВ

  1. 1.    
    Нейронные сети

1.1. Модель
искусственного нейрона

1.2. Модели нейронных
сетей

1.3. Построение
нейронной сети

1.4. Обучение
нейронных сетей

1.5. Способы
реализации нейронных сетей

1.6. Практическое
применение нейросетевых технологий

 
  1. 2.     Эволюционные аналогии в искусственных
    интеллектуальных системах

2.1. Генетические
алгоритмы

2.2. Примеры
практического применения генетических алгоритмов.

2.3. Программные
средства, реализующие генетические алгоритмы.

2.4. Методы
эволюционного программирования.

  1. 3.     Интеллектуальные мультиагентные системы

3.1. Основные понятия
теории агентов.

3.2. Коллективное
поведение агентов.

3.3. Примеры
мультиагентных систем

3.4. Технологии
проектирования мультиагентных систем

3.5. Перспективы
мультиагентных технологий.

  1. 4.     Интеллектуальные методы проектирования
    сложных систем

4.1. Проблемы
проектирования и реинжиниринга экономических систем.

4.2. Системный подход
к проектированию сложных систем.

4.3. Программные
средства для поддержки процессов реинжиниринга.

4.4. Подход к
коллективному выбору решений при проектировании экономических систем.

4.5. Разрешение
конфликтов при коллективном выборе решений.

4.6. Эволюционный
синтез систем и объектов.

4.7. Логический подход
к синтезу сценариев развития сложных систем.

  • Алгоритмы интернет-поиска
  • Компьютерные вирусы
  • Компьютерные игры
  • Компьютерные сети
  • Языки программирования

Источник