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

Григорьев А.В., Коварская А.В.

Доклад, сделанный на региональной студенческой научно-технической конференции "Информатика и компьютерные технологии", ДонНТУ, 13 декабря 2006 года. В докладе рассматривается применение грамматического подхода для создания средств реализации специализированной инструментальной оболочки для экспертных систем.

Большинство известных сейчас методов формирования моделей САПР, используемых в инструментальных оболочках для создания экспертных систем, обладают серьезными недостатками. Эти недостатки не позволяют применять создаваемые экспертные системы в качестве проблемно-ориентированных САПР или интеллектуальных надстроек над ними. Устранение значительного количества таких проблем возможно в результате использования семиотической модели - как формы представления модели САПР[1].

В рассматриваемой модели имеются два компонента - целевое пространство систем (ЦПС), т.е. множество решений-прототипов и пространство обликов систем (ПОС), т.е. множество технических заданий. Соответственно, имеются две различные контекстно-зависимые грамматики - грамматика ЦПС и грамматика ПОС.

Для реализации семиотической модели существует алгоритм выполнения теоретико-множественных операций над контекстно-свободными грамматиками в среде специализированной оболочки для создания интеллектуальных САПР[2]. В данном случае грамматика является аналогом И-ИЛИ дерева, т.е. не имеет циклов и рекурсий.

Рассмотрим основные определения, используемые в описании алгоритма:

1. Терм – элементарный символ множества.

2. Синтерм - имя множества, которое может раскладываться. Элементами разложения могут быть как термы, так и синтермы, соединенные посредством операции "И" (&) или "ИЛИ" (V).

3. Если два множества совпадают по имени, то это означает, что они эквивалентны и по структуре, т.е. одно и то же имя означает одно и то же множество.

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

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

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

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

Наиболее гибкой и логически обоснованной для рассматриваемого алгоритма структурой данных является класс. Кроме того, что в одной переменной можно компактно хранить несколько разнородных свойств объекта, класс позволяет определить внутренние и внешние действия, применимые к объекту в качестве его методов. Для базовых структурных объектов мы определим такие классы: ГРАММАТИКА (для грамматики), СИНТЕРМ (для синтерма) и ТЕРМ (для терма).

Класс ТЕРМ является наиболее простым и содержит только одно свойство – значение.

Класс СИНТЕРМ введен для представления синтерма. Его основные свойства: имя синтерма, знак операции и список составляющих определение синтерма объектов – термов и синтермов. Для этого класса определен ряд методов, основными из которых являются:

- получить_следующий_элемент_из_определения_синтерма: в случае, если на вход методу передан аргумент, он пытается найти следующий за ним объект в определении синтерма и возвращает его, если объект не найден, то возвращается признак того, что список определения синтерма закончился. Если аргумент на входе метода отсутствует, то возвращается первый элемент в определении синтерма;

- пустой – возвращает истину в случае, если определение синтерма не содержит элементов, то есть синтерм пустой, ложь – в противном случае.

Класс ГРАММАТИКА определяет непосредственно грамматику, и имеет следующие свойства: вершина – имя главного синтерма (корня грамматики), правила – словарь, содержащий описания всех синтермов, которые были использованы для определения грамматики в форме «имя = значение», где значение является объектом класса СИНТЕРМ. Приведем классификацию методов класса ГРАММАТИКА по реализуемой функциональности:

- методы, осуществляющие создание, загрузку и сохранение граматики;

- методы, реализующие функциональность описываемого алгоритма;

- методы, реализующие общую функциональность;

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

- метод, который возвращает язык данной грамматики в виде множества строк(всех слов языка).

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

Литература

[1] Поспелов Д.А. Ситуационное управление: теория и практика. М.: Наука, 1986.

[2] Григорьев А.В. Алгоритм выполнения теоретико-множественных операций над грамматиками в среде специализированной оболочки для создания интеллектуальных САПР. Донецк: ДонНТУ, 2002.