Сайт Информационных Технологий

МОДЕЛЬ и стратегии процесса вычислений направленных отношений

А.М. Толоконников

Московский энергетический институт (технический университет)

Abstract – The model developed by V.P. Kutepov and V.N. Falk and the requirement to this model is consedered. The computing methods of the directing relations are constructed in this model.

Введение

Теория направленных отношений [1,2] является одним из подходов конструктивного построения таких формальных объектов, как функции, предикаты, программы, семантические сети и т.д. В рамках этого подхода, каждый из объектов может быть построен из базовых объектов путем операций композиции и оператора наименьшей фиксированной точки. Существуют различные версии языков программирования, в которых нашел отражение данный подход. Как и в любом языке программирования в этих языках встроен минимально-необходимый набор базовых объектов для описания любой предметной области. Кроме этого присутствуют конструкции для описания базовых объектов, спроектированных пользователем. В каждом из таких объектов заложены методы построения и вычисления, которые могут быть описаны как инструментом рассматриваемых языком, так и языками процедурного программирования.

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

После того, как программа реструктурирована составляется запрос на вычисления. Запросы могу быть как чисто вычислительного плана, так и логического. В программе и запросе содержится параллелизм, который “скрыт от программиста и пользователя ”, но для интерпретатора он явно выражен. В связи с ограниченностью вычислительных ресурсов, выполнять параллельно все независимые блоки программы не возможно, поэтому часть блоков необходимо откладывать. Решения по откладыванию блоков принимаются в соответствии со стратегией вычислений.

  1. Основные определения

Приведем основные определения и обозначения, данные авторами [2].

Пусть D? ? , D*W , где D(i)W D? D? ...? D i-раз , D(0)W {l } , где l — пустой кортеж.

Определение. Направленным отношением (d-отношением) называется график соответствия из D* в D* .

Над d-отношениями вводятся базовые операции композиции:

Последовательная композиция.

R1· R2={(a ,b ) | $ g ((a ,g )I R1 & (g ,b )I R2) } . Параллельная композиция.

R1#R2={(a 1a 2,b 1b 2) | (a 1,b 1)I R1 & (a 2,b 2)I R2) }. Объединение d-отношений.

R1E R2={(a ,b ) | (a ,b )I R1 U (a ,b )I R2) }.

Оператор наименьшей фиксированной точки. Пусть X1,X2,...,Xn — переменные , r1,r2,...,rm — константные отношения , t 1,t 2,...,t n — термы, построенные путем композиции переменных и констант с помощью операций · , # , E по следующим правилам :

Определение. Оператор наименьшей фиксированной точки как способ композиции отношений r1,r2,...,rm синтаксически определяется как система:

{Xi=t i(X1,X2,...,Xn,r1,r2,...,rm), i=1,2,...,n (1)

В общем случае, система (1) является рекурсивной и в интерпретации задает первый компонент кортежа d-отношений X1min,X2min,...,Xnmin , являющегося минимальной фиксированной точкой для системы уравнений (1), т.е.

{Ximin = [ Xjmin / Xj | j=1,2,...,n]t i, i=1,2,...,n (2)

и для всякого другого кортежа d-отношений X1’,X2’,...,Xn’ такого что Xi’= [ Xjmin / Xj | j=1,2,...,n] t i , i=1,2,...,n выполнено Ximin I Xi’ , i=1,2,...,n.

Наряду с алгебраическим представлением d-отношений существует графическое (сетевое) представление. Отношение в этом представлении задается контекстно-свободной сетевой грамматикой (КССГ).

Определение. Базисом B элементов назовем тройку (A ,m ? ,m ? ? ), где A — конечное множество сортов элементов; m ? :A {0,1,2,...}, m ? ? :A {0,1,2,...} — задают арность элементов RI A , m ? (R) — количество входов , m ? ? (R) — количество выходов элемента сорта R .

Определение. Сетью S арности (m,n), m? 0, n? 0 в базисе элементов B называется пятерка (P,I,O,E,G), где P — конечное множество точек сети S; I — кортеж входных точек сети S, II P*, |I|=m; O — кортеж выходных точек сети S, OI P*, |O|=n; EI A ? P* — множество элементов сети S такое, что для всех e? (R,q)I E: |q|=m ? (R)+m ? ? (R). Если e=(R,q? q? ? )I E и |q? |=m ? (R), |q? ? |=m ? ? (R), то e называется элементом сети сорта R, где q? — кортеж его входных точек, q? ? — кортеж выходных точек. GI P? P — граф семантического различия точек сети S (задает неравенство принимаемых ими в интерпретации или при вычислениях значений).

Определение. Сетевой КСГ (КССГ) называется четверка (BT,BH,a,P), где BTC BH=? ,

BT — терминальный базис;

BH — нетерминальный базис;

a — аксиома , aI BH;

P — непустое множество правил порождения сетей (подстановок) вида: bi® Si, где biI BH, Si — сеть в базисе BTE BH.

Переход от алгебраического представления к сетевому подробно приведен в [2].

  1. Модель вычислений

В основе модели вычислений, разработанной В.П.Кутеповым и В.Н.Фальком, лежат правила редукции сетей, отражающих фундаментальные свойства используемых при их построении элементарных отношений (базисных отношений).

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

Напомним, что (m,n)-арное d-отношение R(x1,x2,...,xm)= (y1,y2,...,yn)1 в общем случае устанавливает неоднозначное соответствие из D1'? D2'? ...? Dm' в D1"? D2"? ...? Dn" , причем xi и yj пробегают значения Di' и Dj" соответственно.

В общем виде запрос на вычисление R может быть сформулирован как требование для заданных значений некоторых входных переменных R (множество этих переменных может быть пустым) вычислить значения других (неозначенных) переменных, так что образованная таким образом пара кортежей — кортеж значений для входных переменных (заданных и вычисленных) и кортеж значений выходных переменных (также заданных и вычисленных) образуют пару кортежей, принадлежащую графику d-отношения R.

В логической форме запрос — это вычисление формулы $ z1$ z2...$ zk (R(x1,x2,...,xm)=(y1,y2,...,yn)), т.е. вычисление z1,z2,...,zk таких, для которых формула принимает значение "истина" (здесь z1,z2,...,zk — неозначенные входные и выходные переменные R).

Как уже было сказано выше, процесс вычисления d-отношений представляется в виде последовательности редукций сетей порождаемых по определенным правилам из исходной сети, представляющей запрос. Эти правила базируются на локальных трансформациях сетей и учитывает такие фундаментальные свойства d-отношений как функциональность, тотальность и др. Правила редукции обладают свойством Черча-Россера, т.е. гарантируют получение результата вычислений, если последний существует.

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

  1. Однозначность конструкторов по входам (функциональность), которая выражается равенством · (ci#ci) = ci· .
  2. Однозначность по выходам (функциональность обратного конструктора): (ci#ci)· = ci· .
  3. Тотальность конструктора: ci · = .
  4. Ортогональность различных конструкторов: (ci#cj)· =? .
  5. Если в сети существует цикл, состоящий только из конструкторов, то такая сеть удаляется, т.е. интерпретируется как пустое d-отношение.
  1. Стратегии вычислений

В общем случае процесс вычисления d-отношения может быть представлен как процесс редукции сети — запроса на вычисление d-отношения к нормальной форме путем выполнения:

1)операции подстановки в сети вместо вхождения нетерминальных переменных (символов переменных отношений) сетей — правых частей правил грамматики для соответствующих нетерминалов;

2)применения описанных в разделе 2 правил редукции сетей.

Результатом вычисления запроса является любая сеть в терминальном базисе, редуцированная к нормальной форме (форме, к которой не применимо ни одно из правил вычисления).

Сам же процесс вычислений может рассматриваться как процесс порождения сетей, осуществляемый в соответствии с п. 1 и 2, описанными выше, а i-е состояние вычислений определяется множеством порожденных на i-ом шаге редуцирования сетей.

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

Известно [2], что для того, чтобы вычисление d-отношения осуществлялось корректно, ни одна из возникших возможностей редуцирования любой из порождаемых сетей не должна откладываться на неопределенное время. Кроме того, возможность одновременного редуцирования нескольких (при желании всех) сетей, порожденных на любом шаге вычислений, открывает большую свободу для выбора стратегии вычислений и их распараллеливания. С другой стороны, неоднозначность выбора правил редукции сетей, множественный характер их возможного применения, наконец большая вычислительная сложность самого алгоритма организации вычислительного процесса требуют при создании интерпретатора для языка направленных отношений уделять особое внимание стратегиям вычислений, которые оптимизируют как сам процесс, так и используемые вычислительные ресурсы. Многие аспекты этой проблемы в том числе применительно к параллельной реализации подобных вычислительных процессов на параллельных распределенных системах достаточно подробно обсуждались в [5].

Ниже мы опишем только те из них, которые рассматривались при разработке интерпретатора. Они возникали при поиске ответов на вопросы: “В какие сети осуществлять подстановки?”, “Вместо каких вхождений нетерминальных элементов осуществлять подстановки?”, “В какой момент проводить редукцию сети?”.

Наиболее простая в реализации ? это стратегия “полной подстановки”. Шаг вычислений по этой стратегии состоит в следующем: 1) подстановке во все порожденные сети вместо каждого вхождения нетерминального элемента правых частей правил КССГ, соответствующих этому нетерминалу, 2)редукции сетей полученных после подстановки и 3) в передаче терминальных сетей на выход интерпретатора в качестве результата, а остальных в качестве исходных данных для следующего шага вычислений.

Другая стратегия несколько отличается от первой. Здесь подстановка ведется во все сети вместо каждого вхождения нетерминального элемента, но не сразу всех правых частей правил, соответствующих этому нетерминалу, а вначале только тех, правые части которых являются терминальными сетями. Выполнение остальных подстановок откладывается до тех пор, пока 1) все полученные при подстановке терминальные сети не будут редуцированы к нормальной форме и 2)отправлены на выход интерпретатора в качестве результата вычислений. И только после этого выполняются отложенные подстановки. Полученные сети редуцируются, после чего подаются в качестве исходных данных для следующего шага работы интерпретатора. Эта стратегия по сравнению с предыдущей позволяет более быстро выдавать результат на выход интерпретатора.

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

Определение. Нетерминал R' в задании G зависит от R", если R" входит в правую часть одной из продукций для R' или R" входит в правую часть одной из продукций для R''' и R''' зависит от R'.

Множество всех нетерминалов, от которых зависит R обозначим через [R].

Определение. Нетерминалы R’ и R" в задании грамматики G не зависимы, если [R']C [R"]=? (пусто).

Если на некотором шаге вычислений запроса выясняется, что в некоторую редуцируемую на этом шаге сеть входят два независимых нетерминала, то процесс вычислений может осуществляться более экономно. Для этого вхождения независимых нетерминалов вместе с разметками (означиванием) их входных и выходных точек в сети копируются как две независимые подсети исходной сети и далее редуцируются независимо. Если их вычисления заканчиваются результативно, то полученные нормальные формы сетей — результатов заменяют соответствующие подсети исходной сети.

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

Описанные стратегии были положены в основу реализации первой версии интерпретатора.

Заключение

Рассмотрена модель процесса вычислений направленных отношений. Приведены стратегии, которые позволяют более эффективно (с точки зрения времени вычислений) решать задачи, опираясь на их внутреннюю структуру (структуру определений и объектов).

Работа выполнена при финансовой поддержке РФФИ.

 

Литература

  1. Кутепов В.П. Фальк В.Н. Функциональные системы: теоретический и практический аспекты, Кибернетика №1 1979
  2. Кутепов В.П. Фальк В.Н. Направленные отношения: теория и приложения, Техническая кибернетика, №4, №6, 1994
  3. Стерлинг Л. Шапиро Э. Искусство программирования на языке Пролог: англ. — М . : Мир 1990.
  4. Вагин В.Н.,Головина Е.Ю.,Оськин Ф.Ф. Модели и методы представления знаний в CASE-технологии.- Интеллектуальные системы. Том 2 выпуск 1-4. М.: Издательский центр РГГУ, 1997 с.115-134.
  5. Кутепов В.П. Об интеллектуальных компьютерах и больших компьютерных системах нового поколения. Известия академии наук, Теория и системы управления, №5, 1996.

Site of Information Technologies
Designed by  inftech@webservis.ru.