База данных предназначена для временного хранения фактов или гипотез, являющихся промежуточными решениями или результатом общения системы с внешней средой, в качестве которой обычно выступает человек, ведущий диалог с экспертной системой.
Механизм логического вывода – механизм рассуждений, оперирующий знаниями и данными с целью получения новых данных из знаний и других данных, имеющихся в базе данных. Для этого обычно используется программно реализованный механизм дедуктивного логического вывода (какая-либо его разновидность).
Интерфейс пользователя служит для ведения диалога с пользователем, в ходе которого ЭС запрашивает у пользователя необходимые факты для процесса рассуждения, а также, дающая возможность пользователю в какой-то степени контролировать и корректировать ход рассуждений экспертной системы.
Подсистема объяснений необходима для того, чтобы дать возможность пользователю контролировать ход рассуждений и, может быть, учиться у экспертной системы.
Подсистема приобретения знаний служит для корректировки и пополнения базы знаний. В простейшем случае это – интеллектуальный редактор базы знаний, в более сложных экспертных системах – средства для извлечения знаний из баз данных, неструктурированного текста, графической информации и т.д.
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-машиной. Это не может не сказаться на фактическом быстродействии готового приложения.