Java интерфейс для экспертных систем на основе технологии clips

УДК 519.83

М.А. Рязанов

Java интерфейс для экспертных систем на основе технологии CLIPS

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

Для создания экспертных систем, как и в любой другой среде, в CLIPS используются две основные конструкции: правила и факты. Факты могут быть как упорядоченные, так и неупорядоченные, их называют шаблонами, или фреймами. Мощный инструмент создания правил включает в себя возможность задания приоритета правил, который должен быть выражением, имеющим целочисленное значение из диапазона от - 10 000 до +10 000. Выражение, представляющее приоритет правила, может использовать глобальные переменные и функции.

CLIPS поддерживает семь различных стратегий разрешения конфликтов: стратегия глубины (depth strategy), стратегия ширины (breadth strategy), стратегия упрощения (simplicity strategy), стратегия усложнения (complexity strategy), LEX (LEX strategy), МЕЛ (МЕА strategy) и случайная стратегия (random strategy). По умолчанию в CLIPS установлена стратегия глубины. Текущая стратегия может быть установлена командой set-strategy (которая переупорядочит текущий план решения задачи, базируясь на новой стратегии). Каждая из данных стратегий позволяет пользователю задать способ выбора одного из правил при активации множества правил [1].

Кратко остановимся на некоторых из них. Стратегия глубины. Только что активированное правило помещается выше всех правил с таким же приоритетом. Допустим, что факт-А активировал правило-1 и правило-2 и факт-Б активировал правило-3 и правило-4, тогда, если факт-А добавлен перед фактом-Б, в плане решения задачи правило-3 и правило-4 будут располагаться выше, чем правило-1 и правило-2. Однако позиция правила-1 относительно правила-2 и правила-3 относительно правила-4 будет произвольной.

Стратегия ширины. Только что активированное правило помещается ниже всех правил с таким же приоритетом. Допустим, что факт-А активировал правило-1 и правило-2 и факт-Б активировал правило-3 и правило-4, тогда, если факт-А добавлен перед фактом-В, в плане решения задачи правило-1 и правило-2 будут располагаться выше, чем правило-3 и правило-4. Однако позиция правила-1 относительно правила-2 и правила-3 относительно правила-4 будет произвольной.

Стратегия упрощения. Между всеми правилами с одинаковым приоритетом только что активированные правила размещаются выше всех активированных правил с равной или большей определенностью (specificity). Определенность правила вычисляется по числу сопоставлений, которые нужно сделать в левой части правила. Каждое сопоставление с константой или заранее связанной с фактом переменной добавляет к определенности единицу. Каждый вызов функции в левой части правила, являющийся частью условных элементов: “=” или “test”, также добавляет к определенности единицу. Логические функции and, or и not не увеличивают определенность правила, но их аргументы могут сделать это. Вызовы функций, сделанные внутри функций, не увеличивают определенность правила.

И сравнение заранее связанной переменной “?х” с константой, и вызовы функций numberp, < и > добавляют единицу к определенности правила. В итоге получаем определенность, равную 5. Вызовы функций and и + не увеличивают определенность правила.

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

Стратегия LEX. Между правилами с одинаковым приоритетом только что активированные правила размещаются с использованием одноименной стратегии, впервые использованной в системе OPS5. Для определения места активированного правила в плане решения задачи используется "новизна" образца, который активировал правило. CLIPS маркирует каждый факт или объект временным тегом для отображения относительной новизны каждого факта или объекта в системе. Образцы, ассоциированные с каждой активацией правила, сортируются по убыванию тегов для определения местоположения правила. Активация правила, выполненная более новыми образцами, располагается перед активацией, осуществленной более поздними образцами. Для определения порядка размещения двух активаций правил поодиночке сравниваются отсортированные временные теги для этих двух активаций, начиная с наибольшего временного тега. Сравнение продолжается до тех пор, пока не останется одна активация с наибольшим временным тегом. Эта активация размещается выше всех остальных в плане решения задачи.

К основным достоинствам данного языка также можно отнести свободное распространение, муль-типлатформенность, полную открытую документацию и объектно-ориентированное расширение CLIPS Object-Oriented Language (COOL).

Однако наряду с достоинствами можно упрекнуть данную технологию в отсутствии доступного пользовательского интерфейса. Рядовому пользователю трудно обеспечивать взаимодействие с экспертной системой с командной строки. Именно за этот недостаток данная технология в основном подвергается критике [2].

Для преодоления данного недостатка мы предлагаем при разработке экспертных систем использовать CLIPS Java Native Inteface (CLIPSJNI). Данная надстройка позволяет вызвать конструкции CLIPS прямо из исполняемого модуля, написанного на языке JAVA.

Рассмотрим основные механизмы данного взаимодействия. Во время написания программы на JAVA необходимо импортировать библиотеку CLIPSJNI. После импорта данной библиотеки мы можем создавать

объект, условно назовем его CLIPS_Obj. Данный объект может вызывать методы для работы с CLIPS. Проиллюстрировать это можно следующими строками:

- clips = new Environment(); - создается объект, который может вызывать методы для работы с конструкциями среды CLIPS;

- clips.load("winedemo.clp"); - загружается экспертная система, описанная в нотациях языка CLIPS;

- runWine(); - метод для запуска экспертной системы.

Для обработки работы экспертной систем необходимо описать конструкции на языке JAVA.

Автор надеется, что при наличии такого мощного инструмента создания интерфейса для экспертных систем технология CLIPS получит новый импульс развития.

Библиографический список

1. Журавлева, В.В. Математическая модель фотосинтеза и фотодыхания С3-растений / В.В. Журавлева // Обозрение прикладной и промышленной математики. - М., 2008. - Т. 15, вып. 3.

2. Журавлева, В.В. Моделирование влияния азотного дефицита на процесс фотосинтеза / В.В. Журавлева // Обозрение прикладной и промышленной математики.

- М., 2008. - Т. 15, вып. 4.

3. Полуэктов, Р. А. Модели продукционного процесса сельскохозяйственных культур / Р. А. Полуэктов,

Э.И. Смоляр, В.В. Терлеев, А.Г. Топаж. - СПб., 2006.

4. Сукачева, В.В. Моделирование радиационного режима / А.А. Гриценко, Л.Н. Рудова, В.В. Сукачева, Л.А. Хворова // Известия АлтГУ. - Барнаул, 1999.

- №1(11).