Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект.doc
Скачиваний:
19
Добавлен:
16.12.2018
Размер:
1.06 Mб
Скачать

Экспертные системы

1. Определение и основные требования.

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

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

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

  • решение задач с использованием знаний в данной предметной области (ПО), при этом, возможно, придется иметь дело с неопределенностью;

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

  1. Общая структура эс.

ЭС состоит из трех основных модулей: базы знаний (БЗ), машины логического вывода (МЛВ) и интерфейса с пользователем (ИП). Их взаимодействие показано на рис.1.

  1. Правила типа «если - то».

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

  • если условие Р, то заключение (вывод) С;

  • если ситуация S, то действие А;

  • если выполнены условия С1 и С2, то не выполнено условие С.

Важными для представления БЗ являются следующие свойства продукций:

  • Модульность - каждая продукция описывает небольшой относительно независимый фрагмент знаний;

  • Удобство модификации (следствие модульности) - старые продукции можно изменять и заменять новыми относительно независимо от других продукций;

  • Возможность инкрементного наращивания - в БЗ можно добавлять новые продукции относительно независимо от других продукций;

  • Прозрачность системы, построенной с применением продукций.

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

  1. Вопросы типа «как»: Как вы пришли к этому выводу?

  2. Вопросы типа «почему»: Почему вас интересует эта информация?

Пример 1. Приведем пример продукции из медицинской консультативной системы MYCIN (США):

если

1 тип инфекции - это первичная бактериемия и

2 материал для посева был отобран стерильно и

3 предполагаемые ворота инфекции - желудочно-кишечный тракт,

то

имеются веские аргументы (0.7) за то, что инфекционный агент является бактерией.

Здесь число 0.7 означает вероятность указанного заключения.

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

если условие Р, то заключение С с уверенностью F.

Рассмотрим еще два примера использования продукций в действующих ЭС.

Пример 2. Приведем две продукции из ЭС AL/X (США) для диагностики неисправностей.

Если

давление в V-1 достигло уровня открытия выпускного клапана,

то

выпускной клапан в V-1 открылся

[N = 0.005; S = 400].

Если

давление в V-1 не достигло уровня открытия выпускного клапана и выпускной клапан в V-1 открылся,

то

преждевременное открытие выпускного клапана (сместилась установка порогового давления)

[N = 0.001; S = 2000].

Здесь N и S - величины «необходимости» и «достаточности» - это численные характеристики, позволяющие сократить перебор при решении задачи за счет приоритетного просмотра наиболее вероятных вариантов. N - это характеристика, указывающая до какой степени истинность условия необходима для того, чтобы заключение было истинным; S - характеристика, указывающая степень уверенности, с которой условие влечет за собой заключение.

Пример 3. Теперь рассмотрим продукцию из ЭС AL3 (США), предназначенной для решения шахматных задач.

Если

1. существует гипотеза Н, что план P ведет к успеху;

2. существуют две гипотезы:

Н1, что план P1 опровергает план P и

Н2, что план P2 опровергает план P;

3. имеют место следующие факты:

гипотеза Н1 истинна и

гипотеза Н2 истинна,

то

1. породить гипотезу Н3, что составной план «P1 или P2» опровергает план P;

2. породить факт: из Н3 следует не(Н).

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

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

Часто считают, что при традиционном процедурном программировании необходимо подробно сообщать компьютеру, что и как он должен делать, т.е. указать алгоритм решения задачи. Программирование ИИ обычно определяется «от противного»: в него входят проблемы, не укладывающиеся в рамки процедурного программирования. Для программ ИИ характерно то, что они имеют дело со сложными проблемами, которые недостаточно хорошо понимаются, для которых не существует четко заданных алгоритмических решений и которые могут быть исследованы с помощью того или иного механизма символических рассуждений. Программы ИИ чаще всего пишутся на языках Лисп, Пролог или на специализированных языках ИИ (примером такого языка может служить язык Реляп - реляционный язык программирования, разработанный в Дальневосточном филиала РАН). Однако программы ИИ и, в частности, ЭС могут разрабатываться и с помощью процедурных языков. В частности, для этой цели использовались языки Паскаль и Бейсик.

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

переходы

циклы

вызовы процедур

последовательное управление (по умолчанию)

Механизмы управления при программировании ИИ имеют другой вид:

вызовы процедур

последовательное выполнение

рекурсия

Говорят, что если задачу легко решить на Фортране, то ее трудно решить на Лиспе. Примерно такое же соотношение верно для Паскаля и Пролога.

Различия между ЭС и другими системами ИИ просматривается не совсем четко. Приведем примеры систем ИИ, которые не являются ЭС:

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

  • Программы распознавания образов. В частности, программы распознавания речи. Они могут печатать тексты «с голоса».

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

  • Программы автоматического доказательства теорем в рамках аксиоматических теорий.

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

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

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

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