Паламарчук А.А., Боднар А.В.
Автомобильно-дорожный институт Государственного высшего учебного
заведения «Донецкий национальный технический университет»
Преимущества
применения инструментального средства экспертных систем CLIPS
В современном обществе
неструктурированные и слабоструктурированные задачи управления и контроля
сложных производственных процессов и объектов часто встречаются в таких
областях, как авиация, энергетика, машиностроение, медицина, микроэлектроника и
др. Поэтому появление экспертных систем, позволяющих быстро и эффективно решать
подобные проблемы, считается большим научным достижением. Сегодня количество
экспертных систем (ЭС) исчисляется тысячами, основными из которых являются:
GUIDON, TATR, ONCOCIN, MOLGEN, GENESIS.
Проблемам использования
инструментального средства CLIPS в экспертных системах посвящены работы таких
ученых, как П. Джексон, В. Трофимов, В.
Валетов, Ю. Кузьмин, А. Орлова, С. Третьяков и др.
Цель статьи – выявить
преимущества применения инструментального средства экспертных систем CLIPS в
настоящее время.
Система, претендующая называться
экспертной, должна обладать знаниями. Эти знания должны быть ориентированы на
конкретную предметную область, и из них должно непосредственно вытекать решение
проблемы. Именно поэтому знания в ЭС предполагают определенную организацию и
интеграцию. В области ЭС представление знаний означает систематизированную
методику описания на машинном уровне того, что знает человек–эксперт,
специализирующийся в определенной предметной области. Представление знаний
должно позволять извлекать их в нужной ситуации с помощью относительно
несложного механизма. Подобные средства предлагают разработчикам языки представления
знаний. Среди
инструментальных средств создания ЭС
наиболее популярны такие языки программирования, как LISP, PROLOG, а также
CLIPS.
CLIPS (C Language Integrated Production System) – это инструмент
разработки ЭС, созданный отделом программного обеспечения космического
агентства NASA в Лондонском космическом центре имени Б. Джонсона. Язык CLIPS
свободен от недостатков предыдущих инструментальных средств для создания ЭС,
основанных на языке LISP. Язык CLIPS получил большое распространение в
государственных организациях и учебных заведениях благодаря низкой стоимости,
мощности, эффективности и переносимости с платформы на платформу. Например,
даже Web-ориентированный инструментарий JESS (Java Expert System Shell),
использующий язык представления знаний CLIPS, приобрел достаточную известность
в настоящее время.
CLIPS включает в себя язык представления порождающих правил и
язык описания процедур. Основными компонентами языка описания правил является
база фактов и база правил. На них возлагаются следующие функции:
-
база
фактов представляет исходное состояние проблемы (факт – это список элементарных
значений, на которые ссылаются либо позиционно, либо по имени. Обращение к
фактам осуществляется по индексу или адресу. Факты – это фундаментальная
единица данных, используемая правилами);
-
база правил содержит операторы, которые преобразуют
состояние проблемы, приводя его к решению.
А значит, для реализации ЭС
с использованием языка CLIPS, необходимо проектировать как базу знаний, так и
механизм поиска решений. Это достаточно трудоемкий процесс. Однако именно он
применяется для создания высокоэффективных промышленных систем.
Для сравнения основных
существующих инструментальных средств создания ЭС авторы провели анализ и
создали сравнительную таблицу трех языков представления знаний (табл. 1).
Таблица 1 – Сравнение
инструментальных средств создания ЭС
Язык программирования |
Преимущества |
Недостатки |
LISP |
1. Наличие базового набора примитивов типа CAR/CDR, с помощью
которых и благодаря рекурсивной системе обработки информации LISP позволяет
очень компактно описывать функции. |
1. Сложность освоения языка LISP. |
2.
Такие
задачи, как автоматическое доказательство теорем, понимание естественного
языка и окружающего мира, логические исчисления, написание компиляторов,
везде, где требуется обработка абстрактной структурной информации, очень
удачно описываются и программируются на LISP. |
2. Высокая стоимость средств
разработки. |
|
PROLOG |
1. Пользователь может легко запрашивать систему Prolog об отношениях,
определенных в программе. |
1. Отсутствие механизма прямого
вывода. |
2.
Масштабируемость. |
||
CLIPS |
1. CLIPS поддерживает семь различных стратегий разрешения конфликтов:
стратегия глубины (depth strategy), стратегия
ширины (breadth strategy), стратегия упрощения (simplicity strategy), стратегия усложнения (complexity strategy), LEX (LEX strategy), МЕЛ (МЕА strategy) и случайная
стратегия (random strategy). |
1. Не имеет возможностей инкапсуляции, полиморфизма,
наследования. |
2. Свободное распространение. |
||
3. Мультиплатформенность. |
||
4. Наличие полной открытой
документации |
||
5. Объектно-ориентированное
расширение Object-Oriented Language (COOL). |
||
6. Четко сформулированный синтаксис. |
||
7. Исполнительная система обладает вполне приемлемой
производительностью; |
Как видно из таблицы, языки LISP
и PROLOG имеют меньше преимуществ, чем язык CLIPS. Итак, основными конкурентными
преимуществами инструментального средства СLIPS, наряду с другими языками,
являются:
1)
язык
является свободно распространяемым программным продуктом, его без трудностей
можно приобрести в интернете;
2)
имеет
относительно низкую стоимость;
3)
реализация
CLIPS на языке С++ позволяет переносить конкретные ЭС на различные типы
операционных систем;
4)
с
помощью СLIPS может быть обеспечена возможность работы в реальном масштабе
времени, когда реакция системы на возмущения должна не превышать нескольких
миллисекунд;
5)
его
исполнительная система обладает вполне приемлемой производительностью;
6)
имеет
четко сформулированный синтаксис;
7)
в
него включено множество опробованных на практике конструкций из других
инструментальных средств;
8)
язык
допускает вызов внешних функций, написанных на других языках программирования;
в свою очередь модули, написанные на CLIPS, могут быть вызваны программами,
написанными на других языках;
9)
язык
включает средства, позволяющие комбинировать порождающие правила и объектно-ориентированный
подход.
Следует отметить, что,
несмотря на многочисленные преимущества функционального программирования,
некоторые задачи лучше решать в терминах объектно-ориентированного
программирования (ООП), для которого характерны три основные возможности:
инкапсуляция, полиморфизм, наследование. ООП поддерживает многие языки, в том
числе Smalltalk, C++, Java, Common LISP Object System (CLOS). Язык CLIPS, в
свою очередь, вобрал в себя основные преимущества С++ и CLOS.
Таким образом, веб-ориентированные
средства на базе JAVA (системы Exsys Corvid, JESS) являются более медленными,
чем, например, CLIPS 6.0 или OPS-2000. Поэтому CLIPS – лучший на сегодня выбор
для работы в реальном времени среди распространяемых свободно оболочек ЭС,
разработанных на C++.
Список использованных источников
1.
Джексон П. Введение в экспертные системы / П. Джексон;
пер. с англ. – М.: Издательский дом «Вильямс», 2001. – 624 с.
2.
Трофимов В. База данных+CLIPS = База знаний / В. Трофимов
// Компьютеры+программы. – 2003. – №10. – C. 56-61.