Структура экспертной системы
Обобщенная структура экспертной системы представлена на рис.3.3. Реальные ЭС могут иметь более сложную структуру, однако блоки, изображенные на рисунке, непременно присутствуют в любой ЭС, поскольку представляют собой стандарт de facto структуры современной ЭС. Итак, если система объявлена ее разработчиками как экспертная, то только наличие всех этих блоков гарантирует реальное использование аппарата обработки знаний.
В целом процесс функционирования ЭС можно представить следующим образом: пользователь, желающий получить необходимую информацию, через пользовательский интерфейс посылает запрос к ЭС. Проблемы ставятся перед системой в виде совокупности фактов, описывающих некоторую ситуацию. Затем блок логического вывода, пользуясь базой знаний, генерирует и выдает подходящую рекомендацию, объясняя ход своих рассуждений при помощи подсистемы объяснений.
Дадим краткую характеристику основных элементов ЭС:
Пользователь– специалист предметной области, для которого предназначена система. Обычно его квалификация недостаточно высока, поэтому он нуждается в помощи и поддержке своей деятельности со стороны ЭС.
Для построения БЗ, как это отображено на рис. 3.3, требуется провести опрос специалистов, являющихся экспертами в конкретной предметной области, а затем систематизировать, организовать и снабдить эти знания указателями, чтобы впоследствии их можно было легко извлечь из базы знаний. Для того чтобы решить проблему «передачи» знаний, которыми обладают эксперты, системе, необходим определенный систематический стиль мышления. Кроме того, необходимы, с одной стороны, знания в области математической логики и методов представления знаний, с другой – знания возможностей ЭВМ, программного обеспечения, в частности, языков и систем программирования.
Таким образом, требуется участие в разработке ЭС особого рода специалистов, обладающих указанной совокупностью знаний и выполняющих функции «посредников» между экспертами в предметной области и ЭС. Такие специалисты получили название инженеров по знаниям (knowledge engineers), а сам процесс разработки ЭС и других интеллектуальных программ, основанных на представлении и обработке знаний называется инженерией знаний (knowledge engineering). Синонимами термина «инженер по знаниям» служат названия: когнитолог, инженер-интерпретатор, аналитик. В развитых зарубежных странах специальность «инженер знаний» введена во многих вузах, в России основы инженерии знаний изучаются пока в рамках специализаций по системному программированию.
Интерфейс пользователя– комплекс программ, реализующих диалог пользователя с ЭС как на стадии ввода информации, так и при получении результатов.
Основным отличием ЭС от других программных продуктов является использование не только данных, но и знаний, а также специального механизма вывода решений и новых знаний на основе имеющихся. В ЭС известен алгоритм обработки знаний, а не алгоритм решения задачи. Применение этого алгоритма может привести к получению такого результата при решении конкретной задачи, который не был предусмотрен. Более того, алгоритм обработки знаний заранее неизвестен и строится по ходу решения задачи на основании эвристических правил. При этом качество получаемых решений обычно не хуже, а иногда и лучше достигаемого специалистами. Знания о предметной области, необходимые для работы ЭС, определенным образом формализованы и представлены в памяти ЭВМ в виде базы знаний.
База знаний (БЗ) – ядро ЭС. БЗ представляет собой совокупность знаний предметной области (правил или эвристик), записанную на машинный носитель в форме, понятной эксперту и пользователю (обычно на некотором языке, приближенном к естественному).
Параллельно представлению знаний в виде, доступном пониманию человека, БЗ существует во внутреннем «машинном» представлении. Построение ЭС по модульному принципу позволяет постепенно наращивать их базы знаний. Качество ЭС в целом определяется размером и качеством базы знаний.
Блок логического вывода (синонимы: интерпретатор, решатель, дедуктивная машина, машина вывода) – это программа, моделирующая ход рассуждений эксперта на основании знаний, имеющихся в БЗ.
Подсистемы объяснений – программа, позволяющая пользователю получить ответы на вопросы: «Как была получена та или иная рекомендация?», «Почему система приняла такое решение?». Ответ на вопрос «как» – это представление всех шагов цепи умозаключений, приведших к данному решению, с указанием использованных фрагментов БЗ. Ответ на вопрос «почему» – ссылка на умозаключение, непосредственно предшествующее полученному решению, т. е. возвращение на один шаг назад. Развитые подсистемы объяснений поддерживают оба типа вопросов.
Интеллектуальный редактор базы знаний(подсистемы приобретения знаний) – программа, предоставляющая инженеру по знаниям возможность создавать БЗ в диалоговом режиме.
Интеллектуальный редактор БЗ включает в себя подсистему вложенных меню, шаблонов языка представления знаний, подсказок и других сервисных средств, облегчающих работу с базой.