Экспериментальные системы продукций
Система СКИП
Система СКИП является инструментальной системой, средствами которой можно конструировать проблемно-ориентированные системы продукций. Она представляет собой набор средств (функциональных и информационных), выбор и настройка, которых на заданную предметную область, дает нужную разработчику систему продукций.
Система СКИП содержит пять блоков: монитор, библиотеку интерпретаторов, компилятор, словарь и базу для хранения данных о решаемой задаче (базу данных).
Все блоки системы ориентированы на обработку продукций, которые могут храниться в виде одного или нескольких связанных файлов, называющихся в системе архивом правил. Архив правил создается пользователем на входном языке пакета (язык ПРОЗА). Библиотека интерпретаторов включает в себя несколько интерпретаторов, отличающихся друг от друга способами применения правил и структурой используемой базы данных. Для реализации предварительного этапа обработки входного текста, преобразующего символьную строку в последовательность компонент, созданы два интерпретатора: MNLECS - определяющий типы символов во входном запросе и образующий одну компоненту для каждого символа; MMLECS в отличие от предыдущего соединяет все однотипные символы в одну компоненту.
Для этапа основного анализа библиотека включает несколько интерпретаторов:
- NPOISK — исходная последовательность компонент сканируется слева направо. Если найдется продукция, применяемая к текущему фрагменту, то она выполняется. При этом не происходит возврата па начало строки;
- WNPOISK - аналогичен предыдущему, но с возвратом на начало последовательности компонент после применения продукции. Можно заметить, что посредством этого интерпретатора в СКИПе можно промоделировать порядок применения правил, заложенный в нормальных алгоритмах Маркова;
- KNPOISK, KWPOISC — работают аналогично двум предыдущим, но начинают анализ цепочки компонент справа налево;
- OSN — перебирает правила по группам. Внутри групп правила выбираются последовательно друг за другом. Переход к следующей группе правил происходит в случае, когда невозможно применить ни одно правило из текущей группы;
- SETOSN — выбор правил аналогичен выбору в предыдущем интерпретаторе. Отличие в структуре используемой базы данных: считается, что компоненты образуют множество. При этом отыскиваются все возможные комбинации компонент, удовлетворяющие условиям текущей продукции, независимо от порядка их расположения.
Каждый интерпретатор библиотеки представляет собой настраиваемый модуль. При этом настройка интерпретатора состоит в том, что с ним связывается некоторый список номеров правил из архива. Выбранные и настроенные интерпретаторы задают конфигурацию проблемно-ориентированной системы продукций. Приведем пример описания конфигурации:
- NPOISC = 1, 2, 4;
- WNPOISCC = 10, 20, 30, 40;
- OSN = GROUP, 100, 110, 120, GROUP, 20, 210, 220.
В левых частях равенств указываются имена интерпретаторов, а в правых — списки имен (номеров) продукций из архива. Каждая строка является описанием настраиваемого модуля генерируемой системы продукций. Компилятор СКИПа переводит продукции и описание конфигурации из описания на языке ПРОЗА во внутреннее, являющееся текстом на языке ПЛ/1. Такой подход обеспечивает быстродействие работы интерпретаторов. С этой точки зрения компилятop продукций является генератором ПЛ/1 программ. Словарь системы обеспечивает хранение и доступ к словарной информации, связанной с описанием предметной области для которой конструируется проблемно-ориентированной системы продукций. Технология формирования проблемно-ориентированной системы продукций состоит в том, что разработчик описывает множество правил на языке ПРОЗА и задает конфигурацию из подмножества интерпретаторов библиотеки с привязкой их к конкретным правилам архива. Взаимодействие модулей управляется монитором, который в соответствии с конфигурацией последовательно выполняет настроенные модули и таким образом организует функционирование проблемно-ориентированной системы продукций. Общая схема формирования такой системы приведена на рис. 1.8.
В разрабатываемых в ВЦ СО АН СССР пакетах прикладных программ для задач математической физики был создан язык автоматической идентификации данных (АИДА). Полная информация о краевой задаче состоит из описания расчетной области, подобластей, вида и функций граничных условий и ряда других параметров [8].
Например, область цилиндра, отсекаемая двумя плоскостями, задается следующим описанием [9]:
Переменные R1 = 0.5;
Точки T0 = (0,0,0); T1 =(1,0,0); T3 = (-1,0,0);
Отрезок X = (T0, T1);
Плоскости Пл1 = (X, T0); Пл2 = (X, T3);
Цилиндр Цил3 = (X, R1);
Подобласть K1 = <Цил3, -Пл1, Пл2>;
С помощью пакета СКИП построен языковый процессор (компилятор), переводящий описание исходной задачи, написанное на входном языке АИДА, в структуры данных, представляющие собой особым образом организованные наборы числовых данных, которые передаются модулям пакета.
На основе СКИПа Голубевой Л.А. реализована целая серия препроцессоров к пакетам прикладных программ для задач математической физики [8].
Особый интерес с точки зрения создания систем продукций представляет собой эксперимент, в котором была сделана попытка расширить область применения СКИПа, используя его для задач проектирования интегральных схем.
Дата добавления: 2016-03-05; просмотров: 720;