Реферат: Разработка оболочки экспертной системы

Министерствообразования и науки Республики Казахстан

КарагандинскийГосударственный Технический Университет

Кафедра ____САПР______

ПОЯСНИТЕЛЬНАЯЗАПИСКА

ккурсовой работе

Подисциплине: «Интеллектуальные системы»

 

Тема: «Разработкаоболочкиэкспертнойсистемы»

 

 

Руководитель

 

/>(подпись)   (дата)

 

Студент

 

 

/>(подпись)   (дата)


2009


Содержание

 

Введение

1 Постановка задачи

2 Теоретическая часть

2.1 Основные понятия

2.2 Структура экспертной системы

2.3 Классификация экспертных систем

2.4 Характеристики экспертных систем

2.5 Этапы создания экспертных систем

3 Практическая часть

3.1 Выбор среды разработкипрограммирования

3.2 Алгоритм работы экспертнойсистемы

3.2.1 Алгоритм формирования базызнаний

3.2.2 Алгоритм вывода

3.3 Структура разработаннойэкспертной системы

3.3.1 Проект «Expert»

3.3.2 Проект «Klient»

3.4 Методическое обеспечение

3.4.1 Руководство эксперта

3.4.2 Руководство пользователя

Заключение

Список использованной литературы

 


Введение

 

Искусственный интеллект(ИИ) — совокупность научных дисциплин, изучающих методы решения задачинтеллектуального (творческого) характера с использованием ЭВМ.

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

Анализ употреблениятермина “интеллектуальные системы” (ИС) показывает, что под ним, в общемслучае, понимается предельный по сложности класс систем, ориентированных наприобретение, обработку и использование некоторой дополнительной информации,понимаемой как “знание”. Ясно, что такие системы предназначены для работы вусловиях неопределенности (невозможности точного математического описания)информации о свойствах и характеристиках системно-сложных объектов и среды ихфункционирования.

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

В задачи курсовогопроекта входит:

получение знаний вобласти интеллектуальных систем;

выработка способностисистемного рассмотрения проблем и задач;

развитие навыковпрограммирования, полученных на предыдущих курсах;

разработать экспертнуюсистему, согласно поставленной задаче.

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

 


1.Постановка задачи

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

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

— добавление новыхправил;

— удаление правил;

— редактированиесуществующих правил;

— сохранение базы знаний;

— открытие ранеесохраненных баз знаний;

— просмотр руководства поиспользованию данной экспертной системы.

В интерфейсе программыдля пользователя предусмотреть следующие возможности:

— открытие существующейбазы знаний;

— выбор одного изпредложенных ответов на вопрос;

— вывод рекомендаций;

— вывод пояснений крекомендациям.


2. Теоретическая часть

 

2.1 Основныепонятия

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

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

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

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

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

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

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

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

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

2.2Структура экспертной системы

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

/>

Рисунок 2.1 – Типоваяструктура экспертной системы

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

Экспертные системы имеютдве категории пользователей и два отдельных «входа», соответствующихразличным целям взаимодействия пользователей с ЭС:

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

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

База знаний предназначенадля хранения экспертных знаний о предметной области, используемых при решениизадач экспертной системой.

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

Механизм логическоговывода – механизм рассуждений, оперирующий знаниями и данными с целью полученияновых данных из знаний и других данных, имеющихся в базе данных. Для этогообычно используется программно реализованный механизм дедуктивного логическоговывода (какая-либо его разновидность).

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

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

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

2.3Классификация экспертных систем

Для классификации ЭСиспользуют следующие признаки:

способ формированиярешения;

способ учета временногопризнака;

вид используемых данных;

число используемыхисточников решения знаний.

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

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

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

ЭС могут создаваться сиспользованием одного или нескольких источников знаний.

Экспертные системыделятся на различные виды в зависимости от решаемых задач. Задачи, которыерешают экспертные системы:

Интерпретация – описаниеситуации по информации, поступающей от датчиков и других источников.

Наблюдение – сравнениерезультатов интерпретации с ожидаемыми результатами.

Мониторинг – наблюдение вопределенные промежутки времени.

Прогноз – это определениевероятных последствий заданных ситуацией, системы прогнозирования основываютсяна имитационном моделировании, которое отражает связи в реальный мир.

Диагностика – выявлениепричин неправильного функционирования системы по результатам наблюдения.

Ремонт – выполнениепоследовательности предписанных исправлений.

Планирование – построениепоследовательности действий для достижения желаемого результата.

Проектирование –построение конфигурации объектов с учетом ограничений.

Отладка – составлениерецептов исправления неправильного функционирования системы, настройкаотладочной системы.

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

Обучение –диагностирование, отладка, ремонт поведения обучаемого.

2.4Характеристики экспертных систем

Экспертные системы можнохарактеризовать следующими особенностями:

• область применения,

• класс решаемых задач,

• метод (методы)представления знаний,

• метод (методы) решениязадач (поиска решений),

• структуризация данных(фактов) предметной области,

•структуризация/неструктуризация знаний о решении задач,

• четкость/нечеткостьданных,

• четкость/нечеткостьзнаний,

•монотонность/немонотонность процесса решения задач,

• метод (методы)приобретения (пополнения) знаний,

• вид пользовательскогоинтерфейса,

• динамическая илистатическая предметная область,

• интеграция с другимипрограммными системами (СУБД, системами моделирования, графическими пакетами ит.д.).

2.5 Этапысоздания экспертных систем

1 этап – Идентификация.

1. Определение участникови их ролей в процессе создания и эксплуатации экспертной системы.

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

В процессе эксплуатациимогут принимать участие конечные пользователи, эксперты, администратор.

2. Идентификация проблемы

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

− какой класс задачдолжна решать ЭС;

− как эти задачи могутбыть охарактеризованы или определены;

− какие можновыделить подзадачи;

− какие исходныеданные должны использоваться для решения;

− какие понятия ивзаимосвязи между ними используются при решении задачи экспертами;

− какой вид имеетрешение и какие концепции используются в нем;

− какие аспектыопыта эксперта существенны для решения задачи;

− какова природа иобъем знаний, необходимых для решения задачи;

− какие препятствиявстречаются при решении задач;

− как эти помехимогут влиять на решение задачи.

Определение необходимыхресурсов – временных, людских, материальных.

3. Определение целей

В качестве целей,преследуемых при создании экспертных систем, мо-

гут быть: повышениескорости принятия решения, повышение качества решений, тиражирование опыта экспертови т.п.

2 этап –Концептуализация.

На этом этаперазработчики должны ответить на следующие вопросы:

− какие типы данныхнужно использовать;

− что из данныхзадано, а что должно быть выведено;

− имеют липодзадачи наименования;

− имеют листратегии наименования;

− имеются ли ясныечастичные гипотезы, которые широко используются.

3 этап – Формализация.

4 этап – Реализацияпрототипной версии.

5 этап – Тестирование.

6 этап – Перепроектированиепрототипной версии.


3.Практическая часть

 

3.1 Выборсреды разработки программирования

В качестве внутреннегоязыка для данной работы был выбран ObjectPascal, который используется в средепрограммирования Delphi. Этот язык использует принципыобъектно-ориентированного и визуального программирования.

Язык ObjectPascal является одним из высокоразвитых языковобъектно-ориентированного программирования. И среди других, например, таких какVisual Basic или Visual C++, отличаетсяпростотой программного кода, достаточным количеством литературы по этому языку.

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

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

Delphi — это комбинация несколькихважнейших технологий:

Высокопроизводительныйкомпилятор в машинный код

Объектно-ориентированнаямодель компонент

Визуальное (а,следовательно, и скоростное) построение приложений из программных прототипов

Масштабируемые средствадля построения баз данных

Программирование в Delphiстроится на тесном взаимодействии двух процессов:

•    процессаконструирования визуального проявления программы (т.е. ее Windows-окна),

•    процесса написаниякода, придающего элементам этого окна и программе в целом необходимуюфункциональность.

Основные преимуществасреды программирования Delphi:

– Простота языкапозволяет быстро его освоить и создавать сложные программы;

– Развитые средствапредставления структур данных обеспечивают удобство работы, как с числовой, таки с символьной и битовой информацией;

–Объектно-ориентированное программирование (ООП) в визуальной среде.

В процессе построенияприложения разработчик выбирает из палитры компонент готовые компоненты какхудожник, делающий крупные мазки кистью. Еще до компиляции он видит результатысвоей работы — после подключения к источнику данных их можно видетьотображенными на форме, можно перемещаться по данным, представлять их в том илиином виде. В этом смысле проектирование в Delphi мало чем отличается отпроектирования в интерпретирующей среде, однако после выполнения компиляции мыполучаем код, который исполняется в 10-20 раз быстрее, чем то же самое,сделанное при помощи интерпретатора. Кроме того, компилятор компилятору рознь,в Delphi компиляция производится непосредственно в родной машинный код, в товремя как существуют компиляторы, превращающие программу в так называемыйp-код, который затем интерпретируется виртуальной p-машиной. Это не может несказаться на фактическом быстродействии готового приложения.

Основной упор этой моделив Delphi делается на максимальном реиспользовании кода. Это позволяетразработчикам строить приложения весьма быстро из заранее подготовленныхобъектов, а также дает им возможность создавать свои собственные объекты длясреды Delphi. Никаких ограничений по типам объектов, которые могут создаватьразработчики, не существует.

 

3.2Алгоритм работы экспертной системы

 

3.2.1Алгоритм формирования базы знаний

В данном курсовом проектедля формирования базы был применен алгоритм с прямой цепочкой рассуждений

Пусть iое правило имеет следующую структуру

Если Фi1 = ЗФi1

и       Ф<sub/>i2 = ЗФi2

и       Фi3 = ЗФi3

то Вi = ЗВ i.

Здесь i – номер правила, Фi1,2,3 — это факты iго правила, ЗФi1,2,3 – значение факта Фi<sub/>j,

Вi — название вывода iго правила, ЗВi – содержание или значение вывода Вi..

В данном курсовом проектечисло условий в одном правиле не ограничено. Пусть есть N правил подобной структуры. Числоправил задает эксперт при создании базы знаний.

Чтобы в алгоритме выводаможно было оперировать фактами, значениями фактов, учитывать их связь вопределенном правиле и делать выводы, соответствующие данному набору фактов,база данных экспертной системы представляется в виде определенных структур:массив переменныхусловия (МПУ), массив переменных вывода (МПВ), списки переменных условия(СПУ) и вывода (СПВ), очередь переменных вывода (ОПВ).

Вначале формируеммассив переменных условия МПУ и массив переменных вывода МПВ путемпереписывания туда содержимого из соответствующих полей формы. Далее, послеввода всех правил строим СПВ и СПУ.

В таблицах 2.1,2.2 приведена структура МПУ, МПВ, СПУ, СПВ.

Таблица 2.1 –Структура массивов условий и выводов

МПУ(n*3, 3)

МПВ(n,3)

Ф11 ЗФ11 1

Ф12 ЗФ12 2

Ф13 ЗФ13 3

Ф21 ЗФ21 3

????????

????????

Ф31 ЗФ31 0

Ф32 ЗФ32 4

Ф33 ЗФ33 1

……………..

Фn1 ЗФn1 *

Фn2 ЗФn2 *

Фn3 ЗФn3 *

В1 ЗВ1 1

В2 ЗВ2 2

В3 ЗВ3 1

……….

Вn ЗВn *

Таблица 2.1 –Структура списков условий и выводов

СПУ(ку)

СПВ(кв)

Ф11

Ф12

Ф13

Ф32

……………..

Фn1

Фn2

Фn3

В1

В2

……….

Вn

Вначале на основеанализа МПВ формируем список переменных вывода СПВ. Анализ заключается вследующем алгоритме:

1. Первуюпеременную вывода В1помещаем без обработки как СПВ (1) иустанавливаем текущее количество выводов кв=1 и в третий столбец МПВзаписываем: МПВ(1,3)=1, т.е. по содержимому этого столбца обеспечиваем связь МПВи СПВ.

2. От i =2 до N: (для всех МПВ( i, 1) проверяем была ли эта переменная уже записана в состав СПВ):

От р=1 до кв: если МПВ(i, 1) = СПВ (р), то МПВ( i, 3) =р; иначе кв=кв+1; СПВ(кв)= МПВ(i, 1); МПВ(i, 3)=кв.

Далее аналогичноанализируем МПУ для формирования списка переменных условия СПУ.

1. ку=1; СПУ(1)=МПУ(1);

2. От i =1 до N*М: (для всех МПУ( i, 1):

От р=1 до кв: если МПУ(i, 1) = СПВ (р), то МПУ(i, 3)=0; i= i + 1 и перейти кп.2. (т.е. проверяем была ли эта переменная уже записана в состав СПВ какпеременная вывода и в этом случае в третий столбец МПУ записываем 0 и этупеременную в перечень переменных условия не включаем).

От у=1 до ку: если МПУ(i, 1) = СПУ (у), то МПУ(i, 3) =у; иначе ку=ку+1; СПУ(ку)= МПУ(i, 1); МПУ(у, 3)=ку.

Теперь формируем ТПУ(таблица переменных условия) и ТПВ (таблица переменных вывода). Структуратаблиц приведена в таблицах 2.3, 2.4.

Для i=1, ку

ТПУ.условие (i)=СПУ(i), j=1

для кк=1, n*3

если МПУ(1,3)=i, то ТПУ.значение (i, j )=МПУ(кк,2); j= j +1.

Для определенияТПУ.вопрос формируем форму и в ней запрашиваем у эксперта о том, какой вопросследует задавать пользователю для выяснения переменной условия ТПУ.условие(i).


Таблица 2.3 – Структуратаблицы переменных условия

ТПУ.условие

ТПУ.значение

ТПУ.вопрос

Ф11

ЗФ11

***********

ЗФ33

Ф12

ЗФ12

***********

Ф13

ЗФ13

***********

ЗФ21

Ф32

ЗФ32

***********

……………..

***********

Фn1

ЗФn1

***********

Фn2

ЗФn2

***********

Фn3

ЗФn3

***********

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

Последним действиемформирования БЗ будет процедура сохранения МПУ, МПВ, СПУ, СПВ, ТПУ и ТПВ в видефайла. В данном проекте база знаний сохраняется в один файл с расширением *.bzn.

Таблица 2.4 – Структуратаблицы переменных вывода

ТПВ.вывод

ТПВ.значение

ТПВ.рекомендация

В1

ЗВ 1

***********

ЗВ 3

***********

В2

ЗВ 2

***********

3.2.2Алгоритм вывода

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

нап – номеранализируемого правила;

нпу – номер переменнойусловия в СПУ

ну – номеррассматриваемого условия в анализируемом правиле;

пу – индекс первогоусловия текущего правила;

кпу – число условий ванализируемом правиле;

кпв — число полученныхвыводов;

ЗУ(м) – массив значенийусловий из правила ;

ЗУТ – значение проверкитекущего условия в правиле;

ЗУП(м) – массив значенийусловий введенных пользователем;

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

Алгоритм вывода можнопредставить в следующей последовательности:

1. В ОПВ() помещается начальнаяпеременная вывода и количество переменных вывода в очереди устанавливаем каккпв=1.

2. Пока не пуста ОПВ()выполняем п. 3,4.

3. От п=1 до M*N /организуем просмотр всех правил насовпадение с «рабочей» переменной вывода/

{если МПУ(п,1) = ОПВ(1)то нап=округление добольшего целого (п/м); ну=1; пу= (нап-1)*м; /определяем номер правила, в которомприсутствует«рабочая»переменная вывода/

кпу=0

от у=1 до м /проверяем текущее правило/

пока МПУ(пу+у,1)<> «»; ЗУ(у)= МПУ(пу+у,2);кпу=кпу+1;

нпу=МПУ(пу+у,3) /считываемномер текущей переменной условия из СПУ /

если СПУ (нпу,2) = «», товывести пользователю вопрос ТПУ.вопрос (нпу) с вариантами ответовизТПУ.значение(нпу);

записать в СПУ(нпу,2)выбранный пользователем ответ;

ЗУП(у) = СПУ(нпу,2);

Проверяем правило:

ЗП= Истина; от у=1 до кпу; если ЗУ(у) = ЗУП(у),то ЗУТ=Истина; ЗП=ЗП andЗУТ;

если ЗП=Истина, то СПВ([МПВ(нап,3),2]= МПВ(нап,2); СПВ([МПВ(нап,3),3] = кпв; кпв=кпв+1; ОПВ(кпв)= МПВ(нап,1);}

Если достигнутконец МПУ, удаляем из ОПВ() ОПВ(1) и устанавливаем ОПВ(1) следующую по порядкув очереди переменную.

Выводим на экранпоследнюю выведенную СПВ. Если пользователь запрашивает объяснения полученноговывода, выводим все сработанные СПУ в обратном порядке.

 

3.3Структура разработанной экспертной системы

 

3.3.1Проект «Expert»

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

Модуль «Unit4»предназначен для вывода справки об авторе.

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

procedure dobav_uslClick(Sender: TObject) — Добавление условия в правило;

procedureFormCreate(Sender: TObject) – Начальные установки при открытии формы;

procedure udal_uslClick(Sender: TObject) — Удаление условия в правиле;

procedure newClick(Sender: TObject)- Формирование новой базы зныний;

procedureButton4Click(Sender: TObject) — Добавление нового правила;

procedureButton3Click(Sender: TObject) — Перемещение по правилам назад;

procedureButton2Click(Sender: TObject) — Перемещение по правилам вперед;

procedureButton6Click(Sender: TObject) — Удаление правила;

procedure SpiskiShow(Sender: TObject)- Просмотр списков переменных условия и вывода;

procedure tpv1Show(Sender: TObject) — Просмотр таблицы переменных условия;

procedure tpu1Show(Sender: TObject) — Просмотр таблицы переменных вывода;

procedurepravShow(Sender: TObject) — Переход к просмотру правил;

procedurepvEnter(Sender: TObject) — Редактирование переменных вывода;

procedurezn_pvEnter(Sender: TObject) — Редактирование значений переменных вывода;

proceduresaveClick(Sender: TObject) — Сохранение базы знаний;

procedureSaveToFile(Name:string) — Сохранения базы знаний в файл;

procedureexit1Click(Sender: TObject) — Выход из программы;

procedureopenClick(Sender: TObject) — Открытие базы знаний;

proceduresg1GetEditText(Sender: TObject; ACol, ARow: Integer;

var Value: String)- Проверка на наличие изменений в правиле;

proceduresg1SetEditText(Sender: TObject; ACol, ARow: Integer;

const Value: String)- Проверка на наличие изменений в правиле;

procedureFormCloseQuery(Sender: TObject; var CanClose: Boolean) — Закрытие формы;

procedureN13Click(Sender: TObject) — Вывод информации об авторе;

procedureN14Click(Sender: TObject) — Вывод справки;

procedure sg1KeyPress(Sender: TObject; var Key: Char) — Проверка на наличие изменений вправиле.

Ниже приведены глобальныепеременные, используемые в программе.

strok: string; // строка для отслеживания введенных изменений

path:string; // строка для имени файла базы знаний

tF: TextFile; // текстовый файл для загрузки базызнаний

tek_pr:integer;//Номертекущего правила

Kol_pr:integer;//Кол-воправил

mp:array ofprav;//Массив правил

tpu: array of uslov; // таблица переменных условия

tpv: array of vyvod; // таблица переменных вывода

pr1,pravilo:prav;// текущее правило

dob_pr1,save_pr,izm,otkryt,saved,obn_pr,dob_pr:boolean;

SPU:array of spu1; SPV:array of spu1; // списки переменных условия и вывода

nomer_pu,nomer_pv, nomer_zn_pv:integer; // индексы переменных условия и вывода.

3.3.2Проект «Klient»

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

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

procedure N2Click(Sender: TObject) — Загрузить существующую базу знаний;

procedureButton1Click(Sender: TObject) — Началоработы системы;

procedureButton2Click(Sender: TObject) — Принятие ответа пользователя;

procedureFormCreate(Sender: TObject);

procedureButton3Click(Sender: TObject) — Вывод пояснения к выводу системы;

procedureN5Click(Sender: TObject) — Начала опроса сначала;

procedureN3Click(Sender: TObject) — Выход из системы.

Ниже приведены глобальныепеременные, используемые в программе.

path:string; // имя файла для открытия базы

tF: TextFile; // текстовый файл для открытия базы

mp:array ofprav;//массив правил

tpu: array of uslov; // таблица переменных условий

tpv: array of vyvod; // таблица переменных вывода

SPU:array of spu1; // список переменных условий

SPV:array of spv1; // список переменных вывода

nomer_pu,nomer_pv, nomer_zn_pv:integer; //индексы переменных условия и вывода

n_a_p, // номеранализируемого правила

n_p_u, // номерпеременной условия в СПУ

n_u, //номер рассматриваемого условия в анализируемом правиле;

n_p_v, // номерпеременной вывода в СПВ

p_u, // индекс первого условия текущего правила

kpu, // число условий в анализируемомправиле;

kpv:integer; // число полученных выводов

z_u:array of string; // массив значений условий из правила

z_p:boolean; //значение проверки текущего условия в правиле z_u_p:array of string; //массив значений условий введенных пользователем;

Opv:array of string; //очередь переменных вывода

3.4Методическое обеспечение

Даннаяпрограмма имеет два модуля «Expert» и «Klient», которые используют в работе одну и ту же базузнаний.

Интерфейсмодуля «Expert»предназначен для эксперта в определенной области знаний. С помощью данногомодуля эксперт может создавать базы знаний, вносить изменения, добавлятьправила.

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


3.4.1Руководство для эксперта

Для запуска программынеобходимо открыть исполняемый файл «Expert.exe». При этом появится окно длясоздания новой базы знаний (Рисунок 3.1).

/>

Рисунок 3.1 – Окно длясоздания новой базы знаний

Если необходимоотредактировать уже существующую базу знаний необходимо выбрать команду меню«Файл — Открыть базу» и выбрать в окне выбора файла (рисунок 3.2) нужную базу — файл с расширением *.bzn.При открытии существующей базы можно приступать к редактированию правил(рисунок 3.3).

/>

Рисунок 3.2 – Открытиесуществующей базы знаний


/>

Рисунок 3.3 – Окно дляввода и редактирования правил

Чтобы добавить новоеправило необходимо нажать кнопку «Добавить правило» или выбрать команду меню«Правка — Добавить правило». Для удаления правила можно нажать кнопку «Удалитьправило» или выбрать команду меню «Правка — Удалить правило».

Для добавления переменныхусловия в правило необходимо нажать кнопку «Добавить условие» или выбратькоманду меню «Правка — Добавить условие». Для удаления переменной условия можнонажать кнопку «Удалить условие» или выбрать команду меню «Правка — Удалитьусловие».

Если какие-то переменныеусловия не сохранены, эксперту сразу будет предложено ввести вопрос для даннойпеременной условия (рисунок 3.4).

/>

Рисунок 3.4 – Окно дляввода вопроса к переменной условия


Если переменной выводанет в ТПВ, то эксперту будет предложено ввести рекомендацию для определенногозначения переменной вывода (рисунок 3.5).

/>

Рисунок 3.5 – Окно дляввода рекомендации к переменной вывода

Окно данной программыпредставлено из нескольких вкладок: «Правила», «ТПУ», «ТПВ», «Списки» (рисунок3.1).

Первая вкладкапредназначена непосредственно для ввода и редактирования правил.

Вкладка «ТПУ»предназначена для просмотра таблицы переменных условия (рисунок 3.6). Если ккакой-то переменной условия еще не было введено вопроса, то в таблицепеременных условия эта переменная не отмечается «галочкой». Чтобы ввестивопрос, необходимо ввести его в поле «Вопрос к ПУ».

/>

Рисунок 3.6 – Вкладка«ТПУ»


Вкладка «ТПВ»предназначена для просмотра таблицы переменных вывода (рисунок 3.7). Если ккакой-то переменной вывода еще не введена рекомендация, то необходимо ввести еев поле «Рекомендация».

/>

Рисунок 3.7 – Вкладка«ТПВ»

Вкладка «Списки»предназначена для просмотра списков переменных условия и вывода (рисунок 3.8).

/>

Рисунок 3.8 – Вкладка«Списки»

Если эксперт создастправило, которое уже было, то будет выведено соответствующее сообщение обошибке. Также сообщения об ошибке выводятся при недозаполнении правил.

Чтобы сохранить базунеобходимо выбрать команду меню «Файл — сохранить» или «Сохранить как…». Длясоздания ново базы необходимо выбрать команду меню «Файл — Новая база».

В меню также имеетсявкладка «Справка», где можно посмотреть информацию об авторе (рисунок 3.9) ируководство эксперта (рисунок 3.10).

/>

Рисунок 3.9 – Информацияоб авторе

/>

Рисунок 3.10 –Руководство эксперта

3.4.2Руководство пользователя

Для запуска программынеобходимо открыть исполняемый файл «Klient.exe». При этом появится окно,приведенное на рисунке 3.11. Для начала работы экспертной системы в режимеконсультации необходимо загрузить необходимую вам базу знаний. Для этого нужновыбрать команду меню «Файл — Загрузить базу».

/>

Рисунок 3.11 – Окнопрограммы «Клиент»

Для начала работынеобходимо нажать кнопку «Начать работу» (рисунок 3.12).

/>

Рисунок 3.12 – Началоработы экспертной системы

Пользователю будетпредставлен вопрос и несколько вариантов ответа на него. Необходимо выбратьнужный вариант ответа на вопрос и нажать кнопку «Принять» либо выбрать командуменю «Действия — Следующий вопрос». Если необходимо начать опрос заново,необходимо нажать кнопку «Начать работу» либо выбрать команду меню «Действия — Начать заново».

После ответа на всепредставленные вопросы, экспертная система выдает конечный результат в видерекомендации (рисунок 3.13).

/>

Рисунок 3.13 –Рекомендация экспертной системы

Если пользователюнеобходимы разъяснения данного результата, необходимо нажать кнопку «Почему».При этом появятся все сработанные рекомендации и выводы (рисунок 3.14).

/>

Рисунок 3.14 – Пояснениерекомендаций


Заключение

 

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

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

— добавление новыхправил;

— удаление правил;

— редактированиесуществующих правил;

— сохранение базы знаний;

— открытие ранеесохраненных баз знаний;

— просмотр руководства поиспользованию данной экспертной системы.

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

— открытие существующейбазы знаний;

— выбор одного изпредложенных ответов на вопрос;

— вывод рекомендаций;

— вывод пояснений крекомендациям.

Таким образом,разработанная оболочка экспертной системы выполняет все задачи, поставленные вначале работы.


Списокиспользуемой литературы

1.  А.Я.Архангельский. Программирование в Delphi 7.

2.  Гаврилова Т.А.,Хорошевский В.Ф. Базы знаний интеллектуальных систем – СПб.: Питер, 2001. – 384с.: ил.

3.  Попов Э.В. Экспертные системы: Решениенеформализованных задач в диалоге с ЭВМ. – М.: Наука. Гл. ред. физ.-мат. лит.,1987. – 288 с. – (Пробл. искусственного интеллекта).

4.  ЭлтиДж., Кумбс М. Экспертные системы:концепции и примеры / Пер. с англ. и предисл. Б.И.Шитикова. – М.: Финансы и статистика, 1987. – 191 с.: ил.

5.  Хейес-РотФ., Уотерман Д., Ленат Д. Построение экспертных систем. Пер. с англ. – М.: Мир, 1987.-447с.

6.  Зартенова Л.Г.Методические указания по курсу «Экспертные системы и искусственный интеллект» –КарГТУ, кафедра САПР.

еще рефераты
Еще работы по информатике, программированию