Введение


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


Экскурс в историю экспертных систем


История экспертных систем берет свое начало в 1965 году. Брюс Бучанан и Эдвард Фейгенбаум начали работу над созданием информационной системы для определения структуры химических соединений.


Результатом работы была система под названием Dendral. В основе системы формировалась последовательность правил подобных к «IF – THEN». Информационная система не перестала развиваться и получила множество наследников, таких как ONCOIN – информационная система для диагностики раковых заболеваний, MYCIN – информационная система для диагностики легочных инфекционных заболеваний.


Следующим этапом стали 70-е годы. Период не выделялся особыми разработками. Было создано множество разных прототипов системы Dendral. Примером служит система PROSPECTOR, областью деятельности которой являлась геологические ископаемые и их разведка.
В 80-ых годах появляются профессия – инженер по знаниям. Экспертные системы набирают популярность и выходят на новый этап эволюции интеллектуальных систем. Появились новые медицинские системы INTERNIS, CASNE.


С 90-ых годов развитие интеллектуальных систем приобретает новые и новые методы и особенности. Нововведением становится парадигма проектирования эффективных и перспективных систем. Гибкость, четкость решения поставленных задач дало новое название – мультиагентных систем. Агент – фоновый процесс который действует в целях пользователя. Каждый агент имеет свою цель, «разум» и отвечает за свою область деятельности. Все агенты в совокупности образуют некий интеллект. Агенты вступают в конкуренцию, настраивают отношения, кооперируются, все как у людей.


В 21 век, интеллектуальной системой уже не удивишь никого. Множество фирм внедряет экспертные системы в области своей деятельности.


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


G2 – экспертная система от фирмы Gensym, направленная на работу с динамическими объектами. Особенность этой системы состоит в том, что в нее внедрили распараллеливание процессов мышления, что делает ее быстрее и эффективней.


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


image


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


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


3. Модель представления данных
Самая интересная часть экспертной системы.
Модель представления знаний (далее по тексту — МПЗ) — это способ задания знаний для хранения, удобного доступа и взаимодействия с ними, который подходит под задачу интеллектуальной системы.


4. Механизм логического вывода данных(Подсистема вывода)
Механизм логического вывода(далее по тексту — МЛВ) данных выполняет анализ и проделывает работу по получению новых знаний исходя из сопоставления исходных данных из базы данных и правил из базы знаний. Механизм логического вывода в структуре интеллектуальной системы занимает наиболее важное место.
Механизм логического вывода данных концептуально можно представить в виде <A,B,C,D>:
А — функция выбора из базы знаний и из базы данных закономерностей и фактов соответственно
B — функция проверки правил, результатом которой определяется множество фактов из базы данных к которым применимы правила
С — функция, которая определяет порядок применения правил, если в результате правила указаны одинаковые факты
D — функция, которая применяет действие.


Какие существуют модели представления знаний?


Распространены четыре основных МПЗ:


  • Продукционная МПЗ
  • Семантическая сеть МПЗ
  • Фреймовая МПЗ
  • Формально логическая МПЗ

Продукционная МПЗ


В основе продукционной модели представления знаний находится конструктивная часть, продукция(правило):
IF <условие>, THEN <действие>
Продукция состоит из двух частей: условие — антецендент, действие — консеквент. Условия можно сочетать с помощью логических функций AND, OR.
Антецеденты и консеквенты составленных правил формируются из атрибутов и значений. Пример: IF температура реактора подымается THEN добавить стержни в реактор
В базе данных продукционной системы хранятся правила, истинность которых установлена к за ранее при решении определенной задачи. Правило срабатывает, если при сопоставлении фактов, содержащихся в базе данных с антецедентом правила, которое подвергается проверке, имеет место совпадение. Результат работы правила заносится в базу данных.


Пример


Диагноз Температура Давление Кашель
Грипп 39 100-120 Есть
Бронхит 40 110-130 Есть
Аллергия 38 120-130 Нет

Пример продукции:
IF Температура = 39 AND Кашель = Есть AND Давление = 110-130 THEN Бронхит


Продукционная модель представления знаний нашла широкое применение в АСУТП


Среды разработки продукционных систем(CLIPS)


CLIPS (C Language Integrated Production System) — среда разработки продукционной модели разработана NASA в 1984 году. Среда реализована на языке С, именно потому является быстрой и эффективной.
Пример:


(defrule bronchitis    // deftule зарезервированное слово, которое вводит новое правило за ним следует название правила
(symptoms (temperature 39) (cough true)(pressure "110-130"))  //симптом с температурой 39, наличием кашля, и давлением 110-130
=> (printout t "Диагноз - бронхит" crlf))   //это симптомы бронхита

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


Семантическая сеть МПЗ


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


  • класс — подкласс
  • свойство — значение
  • пример элемента класса

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


Все типы отношений:


  • часть — целое
  • класс — подкласс
  • элемент — количество
  • атрибутивный
  • логический
  • лингвистический

Пример


image
Недостатком МПЗ является сложность в извлечении знаний, особенно при большой сети, нужно обходить граф.


Фреймовая МПЗ


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


Слот может хранить другой фрейм, тогда фреймовая модель вырождается в сеть фреймов.


Пример


image


Пример вырождающейся в сеть фреймов


image
На своей практике, мне доводилось встречать системы на основе фреймовой МПЗ. В университете в Финляндии, была установлена система, для управления электроэнергией во всем здании.


Языки разработки фреймовых моделей (Frame Representation Language)


FRL (Frame Representation Language) — технология создана для проектирования интеллектуальных систем на основе фреймовой модели представления знаний. В основном применяется для проектирования вырождающихся в сеть фреймовой модели.


Запись фрейма на языке FRL будет иметь вид:


(frame Room // вводим новый фрейм Room
     (windows (value(4), demon(open))) //Слот windows со значением 4 и демоном open
     (doors (value(1), demon(open))) //Слот doors со значением 1 и демоном open
     (conditioners (value(2), demon(turn on))) //Слот conditioners со значением 2 и демоном turn on
     (sokets (value(10), demon(turn on))) //Слот sokets со значением 10 и демоном turn on
)

Существуют и другие среды: KRL (Knowledge Representation Language), фреймовая оболочка Kappa, PILOT/2.


Формально логическая МПЗ


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


Пример


A1 = <идет дождь> A2 = <небо в тучах> A3 = <солнечно>; IF A1 AND A2 THEN <взять зонтик>
Банальней примера и не придумаешь.
Важно: Стоит заметить, что формально логическая МПЗ схожа с продукционной. Частично это так, но они имеют огромную разницу. Разница состоит в том, что в продукционной МПЗ не определены никакие связи между хранимыми объектами предметной области.


Важно


Любая экспертная система должна иметь вывод данных и последовательность "мышления" системы. Это нужно для того чтобы увидеть дефекты в проектировании системы. Хорошая интеллектуальная система должна иметь право ввода данных, которое реализуется через интеллектуальный редактор, право редактора на перекрестное "мышление" представлений при проектировании системы и полноту баз знаний(реализуется при проектировки закономерностей предметной области между инженером по знаниям и экспертом).


Заключение


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


Спасибо за внимание!

Комментарии (5)


  1. erwin_shrodinger
    09.01.2018 13:11

    Побольше бы живых примеров. К продукционным МПЗ было бы очень уместно добавить описание системы CLIPS и более подробное описание механизма машины логического вывода. Или тот же Prolog. Слишком бедная статья получилась, даже с академической точки зрения(


    1. Larkailya Автор
      10.01.2018 00:25

      Исправил, добавил. Спасибо большое за замечания!


  1. AlexVist
    10.01.2018 10:07

    Пример из медицины выглядит не совсем удачно. Желательно что-то менее спорное приводить в качестве примера.
    И не понятно каким именно образом будут выявляться дефекты системы. Даже, с учетом вывода данных и "мышления" системы?
    Хотелось бы так же услышать о прикладной модели внесения данных. И, что более важно, исправления ошибок в заложенных данных и логической модели. Еще бы и схематично отобразить такой бизнесс-процесс с учетом ролей. Это не критика, а замечание относительно содержимого статьи.


  1. Rigidus
    10.01.2018 19:53

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


    1. Larkailya Автор
      10.01.2018 20:41

      Добавил раздел эволюции экспертных систем. Спасибо большое за замечания!