Среда программирования экспертных систем

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

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

Среда программирования экспертных систем

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

Кроме того, структурированные объекты, например фреймы, оказываются удобным средством для хранения и управления описанием объектов предметной области. Но, применение таких знаний требует включения в программу фрагментов программного кода, которые потом трудно анализировать.

В результате анализа приведенных реалий, логичным образом была сформирована идея объединения методик в единую среду, в котором преимущества одних компенсируют недостатки других. Одним из первых многофункциональных сред искусственного интеллекта стал соответствующий продукт под названием LOOPS (Bobrow and Steflk, 1983). В нем в рамках единой архитектуры обмена сообщениями, были объединены четыре парадигмы программирования.

Парадигмы программирования экспертных систем

Процедурно-ориентированное программирование. Эта парадигма была представлена языке LISP, в которой активным компонентом являются процедуры, а пассивным — данные. В рамках единой среды процедуры могут быть также использованы для отделки внешних данных.

Программирование, ориентированное на правила. Эта парадигма аналогична предыдущей, но роль процедур выполняют правила «условие-действие». В среде LOOPS наборы правил по своей сути являются объектами, которые можно рекурсивно вкладывать один в другой. Таким образом, часть «действие» одного правила, в свою очередь, может активизировать подчиненный набор правил.

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

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

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

В системах Кее и LOOPS поведение объектов описывается в терминах множества продукционных правил. В среде Knowledge Craft к вышеперечисленным парадигм добавлено логическое программирование в стиле языка PROLOG. Одна из следующих версий Кее, известная под названием Карра-РС, предоставляет в распоряжение программиста еще более расширен набор стилей для комбинирования правил, объектов и процедур.

 

Получать интересное на почту

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *