Экспертная система (ЭС, англ. expert system)
-
компьютерная система, способная частично заменить специалиста
- эксперта в разрешении проблемной ситуации. Современные ЭС начали
разрабатываться исследователями искусственного интеллекта в 1970-х годах, а в
1980-х получили коммерческое подкрепление. Предтечи экспертных систем были
предложены в 1832 году С. Н. Корсаковым,
создавшим механические устройства, так называемые "интеллектуальные машины",
позволявшие находить решения по заданным условиям, например определять наиболее
подходящие лекарства по наблюдаемым у пациента симптомам заболевания.
В информатике экспертные системы рассматриваются совместно с базами знаний
как модели поведения экспертов в определенной области знаний с использованием
процедур логического вывода и принятия решений, а базы знаний — как совокупность
фактов и правил логического вывода в выбранной предметной области деятельности.
Похожие действия выполняет такой программный инструмент как «Мастер» (англ.
Wizard). Мастера применяются как в системных программах так и в прикладных для
упрощения интерактивного общения с пользователем (например, при установке ПО).
Главное отличие мастеров от ЭС — отсутствие базы знаний — все действия жестко
запрограммированы. Это просто набор форм для заполнения пользователем.
Другие подобные программы — поисковые или справочные (энциклопедические)
системы. По запросу пользователя они предоставляют наиболее подходящие
(релевантные) разделы базы статей (представления об объектах областей знаний,
их виртуальную модель).
В настоящее время "классическая" концепция экспертных систем, сложившаяся в
70-80 годах прошлого века, переживает серьезный кризис, по большей части
связанный с примитивностью формальной логики, которой пользуются разработчики
и пользователи информационных систем вообще и программирования, в частности.
Фактически, формальная логика не
развивалась со времен Аристотеля, и ее архаичные формы не удовлетворяют
требованиям сегодняшних технологий. Используемый сегодня человеко-машинный
интерфейс также далек от оптимума. Кроме того, "классический" подход к
построению экспертных систем плохо согласуется с реляционной моделью данных,
которая доминирует сегодня в информатике, что делает невозможным эффективное
использование современных промышленных СУБД для организации баз знаний таких
систем. Все приводимые в литературных и интернет-источниках примеры "известных"
или "распространенных" экспертных систем на самом деле относятся к 1980-м годам
и в настоящее время давно не существуют, либо безнадежно устарели и
поддерживаются лишь немногочисленными энтузиастами. С другой стороны, нередко в
качестве маркетингового хода экспертными системами объявляются современные
программные продукты, в "классическом" понимании таковыми не являющиеся
(например, компьютерные справочно-правовые системы). Предпринимаемые
энтузиастами попытки объединить "классические" подходы к разработке экспертных
систем с современными подходами к построению пользовательского интерфейса
(проекты CLIPS Java Native Interface, CLIPS.NET и др.) не находят поддержки
среди крупных компаний-производителей программного обеспечения и по этой
причине остаются пока в экспериментальной стадии.
Структуру экспертной системы обычно представляют из следующих элементов:
Интерфейс эксперта;
Интерфейс пользователя;
Интеллектуальный редактор базы знаний;
База знаний
Решатель (механизм вывода)
Подсистема объяснений
База знаний состоит из правил анализа информации от пользователя по конкретной проблеме. ЭС анализирует ситуацию и дает рекомендации по разрешению проблемы.
Как правило, база знаний экспертной системы содержит факты (данные, отношения синтаксического уровня), знания (смысловые, семантические отношения между данными) и правила — набор инструкций, применяя которые к известным фактам и смыслам, можно получать решения.
В рамках логической модели баз данных и базы знаний записываются на
каком-либо компьютерном языке, с развитой логикой, например, на
Прологе или Smalltalk
помощью, например, языка предикатов для описания фактов и правил логического
вывода, выражающих правила определения понятий, для описания обобщенных и
конкретных сведений, а также конкретных и обобщенных запросов к базам данных и
базам знаний.
Конкретные и обобщенные запросы к базам знаний на языке Пролог
записываются с помощью языка предикатов, выражающих правила логического вывода
и определения понятий над процедурами логического вывода, имеющихся в базе
знаний, выражающих обобщенные и конкретные сведения и знания в выбранной
предметной области деятельности и сфере знаний.
Обычно факты в базе знаний описывают те явления, которые являются
постоянными для данной предметной области. Характеристики, значения которых
зависят от условий конкретной задачи, ЭС получает от пользователя в процессе
работы, и сохраняет их в рабочей модели. Например, в медицинской ЭС факт
"У здорового человека 2 ноги" хранится в базе знаний, а факт "У пациента одна
нога" — в рабочей модели конкретного пациента.
База знаний ЭС создается при помощи трех групп людей:
эксперты той проблемной области, к которой относятся задачи, решаемые ЭС;
инженеры по знаниям, являющиеся специалистами по разработке ИИС;
программисты, осуществляющие реализацию ЭС.
Режимы функционирования эксперной системы
ЭС может функционировать в 2-х режимах:
Режим ввода знаний — в этом режиме эксперт с помощью инженера по знаниям посредством редактора базы знаний вводит известные ему сведения о предметной области в базу знаний ЭС.
Режим консультации — пользователь ведет диалог с ЭС, сообщая ей сведения о текущей задаче и получая рекомендации ЭС. Например, на основе сведений о физическом состоянии больного ЭС ставит диагноз в виде перечня заболеваний, наиболее вероятных при данных симптомах.
Классификация экспертных систем
Экспертные системы в зависимости от решаемой задачи подразделяются (специализируются) в следующих направлениях деятельности:
Интерпретация данных
Диагностирование систем
Мониторинг проблемной области
Проектирование систем
Прогнозирование процессов
Планирование производства
Оптимизация процессов и систем
Обучение знаниям и умениям (технологиям)
Управление процессами и системами
Ремонт технических систем и лечение организмов
Отладка и тестирование систем и их элементов
В зависимости от условий экспертные системы делятся на
Статические ЭС — это ЭС, решающие задачи в условиях не изменяющихся во времени исходных данных и знаний.
Квазидинамические ЭС интерпретируют ситуацию, которая меняется с некоторым фиксированным интервалом времени.
Динамические ЭС — это ЭС, решающие задачи в условиях изменяющихся во времени исходных данных и знаний.
Распространенные экспертные системы
Наиболее известные/распространённые ЭС
Система G2 - предоставляет разработчику богатые возможности для формирования простого, ясного и выразительного графического интерфейса.
CLIPS - весьма популярная оболочка для построения ЭС (public domain)
OpenCyc - мощная динамическая ЭС с глобальной онтологической моделью и поддержкой независимых контекстов
WolframAlpha - база знаний и набор вычислительных алгоритмов, интеллектуальный <вычислительный движок знаний>
MYCIN - наиболее известная диагностическая система, которая предназначена для диагностики и наблюдения за состоянием больного при менингите и бактериальных инфекциях.
HASP/SIAP - интерпретирующая система, которая определяет местоположение и типы судов в Тихом океане по данным акустических систем слежения.
Акинатор - интернет-игра. Игрок должен загадать любого персонажа, а Акинатор должен его отгадать, задавая вопросы. База знаний автоматически пополняется, поэтому программа может отгадать практически любого известного персонажа.
IBM Watson - суперкомпьютер фирмы IBM, способный понимать вопросы, сформулированные на естественном языке, и находить на них ответы в базе данных.
Литература по экспертным системам
Изобретения С. Н. Корсакова
Гаврилова Т. А., Хорошевский В. Ф. Базы знаний интеллектуальных систем. Учебник. — СПб.: Питер, 2000.
Джозеф Джарратано, Гари Райли «Экспертные системы: принципы разработки и программирование» : Пер. с англ. — М. : Издательский дом «Вильямс», 2006. — 1152 стр. с ил.
Питер Джексон Введение в экспертные системы = Introduction to Expert Systems. — 3-е изд. — М.: Вильямс, 2001. — С. 624. — ISBN 0-201-87686-8.
Таунсенд К., Фохт Д. Проектирование и программная реализация экспертных систем на персональных ЭВМ: Пер. с англ. В. А. Кондратенко, С. В. Трубицына. — М.: Финансы и статистика, 1990. — 320 с.
Уотермен Д. "Руководство по экспертным системам: Пер. с англ. под ред. В. Л. Стефанюка. — М.: «Мир», 1989: — 388 стр. с ил.
Знаете ли Вы, что компонентное сборочное программирование - это объектно-ориентированное сборочное программирование, основанное на распространении классов в бинарном виде и предоставление доступа к методам класса через строго определенные интерфейсы. Компонентное сборочное программирование поддерживают технологические подходы COM, CORBA, .Net.