Информационные технологии Вестник Нижегородского университета им. Н.И. Лобачевского, 2014, № 2 (1), с. 223-230
УДК 004.4'2
МОДЕЛЬНЫЙ ПОДХОД К КОНСТРУИРОВАНИЮ СИСТЕМЫ ВВОДА ГРАФОВЫХ МОДЕЛЕЙ В КОМПЬЮТЕР
© 2014 г. С.Г. Кузин, Н.Л. Макаров
Нижегородский госуниверситет им. Н.И. Лобачевского
chevchelios S s @gmail. com
Поступила в редакцию 26.12.2013
Рассматривается пример конструирования сложной программы с использованием ролевой диаграммы представления знаний о предметной области и императивной (ролевой) диаграммы вычислительного процесса. В качестве объекта конструирования рассматривается система создания компьютерного представления графовых моделей.
Ключевые слова: вычислительный процесс, графы, графовые модели, сетевые модели, ролевые диаграммы, профессиональный язык, табличная база данных.
Введение
Математические объекты - графы - достаточно широко используются в теории и практике математического моделирования. При компьютерном моделировании, использующем графовые модели, приходится решать три специфические задачи, не зависящие от проблемной ориентации моделируемого предметного класса:
• конструирование графа (системы графов), отражающего свойства общего элемента заданного предметного класса;
• организация ввода графа (системы графов) в компьютерную систему, т.е. формирование компьютерного образа графа;
• подключение приложений - обрабатывающих программ - к компьютерному образу графа.
Классическая теория графов включает в себя понятие помеченного графа, т.е. графа, вершинам которого присвоены какие-либо метки, например, натуральные числа или символы какого-либо алфавита.
В данной работе используется понятие графмодели (графовой модели) [1], т.е. графа, вершинам и дугам которого поставлены в соответствие списки параметров.
Предполагается, что реальная сущность в процессе моделирования представляется с двух точек зрения:
• структура реальной сущности (компоненты и отношения между компонентами) представляется математическим объектом типа направленного или ненаправленного графа, который образует топологическую основу графовой модели;
• характеристики компонентов и отношений между компонентами, которые представляются
списками параметров, «привязанных» к вершинам (дугам) графовой модели, которые образуют фактографию графовой модели.
Каждый параметр идентифицируется уникальным именем и имеет вполне определенный тип своего значения. Перечень имен и типов параметров, определенных для вершины (дуги) графа, образует шаблон вершины (дуги). Шаблон графовой модели - совокупность шаблона вершины и шаблона дуги (рис.1).
Здесь имена - идентификаторы параметров, типы - допустимые значения параметров.
Графмодель представляется как специфическая переменная, тип которой декларируется следующим образом:
• топология графмодели - множество всевозможных направленных и ненаправленных планарных графов;
• шаблон графмодели - списки имен и типов значений параметров, поставленных в соответствие вершинам (дугам) графмодели1.
Заданный таким образом тип графмодели позволяет создавать экземпляры графмодели этого типа. Создание экземпляра графмодели, моделирующей конкретный экземпляр предметного класса, реализуется в несколько этапов:
• декларация типа графмодели, т.е. создание (или использование существующего) шаблона графмодели, адекватно представляющего существенные параметры элементов конкретного предметного класса;
• рисование на экране дисплея топологической основы графмодели, т.е. конкретного графа, отражающего структуру конкретной моделируемой сущности;
• определение значений параметров конкретной моделируемой сущности.
Фактограф™ верп индивидуальная для кажд Фактография модел шны, ой вершины графовой Фактография ду индивидуальная для ка ги, ждой дуги
Имя 1 Тип 1 Значение 1 ! Имя 1 Тип 1 Значение 1 !
Имя 2 Тип 2 Значение 2 ! Имя 2 Тип 2 Значение 2 !
1 і
Имя М ТипК Значение М! і Имя N ТипМ Значение N! і
Шаблон вершины, Шаблон дуги, общий для всех вершин общий для всех дуг Шаблон графовой модели
Рис. 1. Шаблон и фактография графовой модели
Сказанное выше обусловливает актуальность создания инструментальных программных средств компьютерного конструирования и использования графмоделей в сфере решения прикладных задач различной проблемной ориентации.
Многочисленные компьютерные системы визуализации графов [2] в большинстве случаев «обслуживают» классическую теорию графов, не расширяя ее до понятия графовой модели.
Более того, многие такие системы имеют закрытый характер, не предоставляя проблемным пользователям простых средств доступа к компьютерным клонам моделируемых объектов. Во многих случаях такой доступ необходим для решения реальных прикладных задач.
В статье приводится пример конструирования системы создания в компьютере архива графмо-делей [3], лишенной, в значительной степени, вышеупомянутых недостатков. Система разработана в Центре прикладной информатики факультета вычислительной математики и кибернетики Нижегородского госуниверситета. Система конструировалась с использованием фор-
мализма моделей представления знании в виде ролевых диаграмм [4, 5]2.
Топологическая основа графмодели в общем случае являет собой произвольный многосвязный граф.
Каждый граф (каждая компонента многосвязного графа) представляется как множество вершин, соединенных дугами. Подразумевается, что граф визуализируется на дисплее компьютера, т.е. каждая его вершина имеет дисплейные координаты Х^.
В процессе конструирования функционирование системы представляется совокупностью моделей, в основе которых лежат формализмы ролевых и сетевых диаграмм [4, 5].
Ролевая диаграмма - модель представления знаний об архиве графмоделей - изображена на
рис. 2. Вершины ролевой диаграммы представляют понятия, дуги ролевой диаграммы - отношения между понятиями. Метка дуги - это роль дочернего понятия в определении родительского понятия.
В данной ролевой диаграмме используются два способа определения родительского понятия через дочерние понятия.
Мультипликация - родительское понятие, оно определяется как конечное множество дочерних понятий, присутствие которых в определении обязательно. Например, <вершина> ^ М (имя, корд X, корд Y). Графическое изображение мультипликации - мультипликативный куст ролевой диаграммы.
Итерация - родительское понятие, оно определяется как произвольное множество однородных понятий. Например, <вершины>^1 (<вершина>). Графическое изображение итерации -итерационный куст ролевой диаграммы.
Листовые вершины ролевой диаграммы представляют элементарные понятия, которые считаются известными априори и не требуют дефиниции через другие понятия.
Ролевая диаграмма (рис. 2) однозначно конвертируется в атрибутную диаграмму (рис. 3) -основу для вычисления структуры хранения любого архива графмоделей.
Метка листовой вершины - имя элементарного понятия, заменяется именем элементарной структуры данных, ориентированной на хранение компьютерного представления денотата этого элементарного понятия.
На рис. 3 изображена атрибутная диаграмма хранения архива графмоделей, построенная на основании ролевой диаграммы рис. 2.
В топологической структуре ролевой диаграммы информационные домены выделяются следующим образом. Корень информационного домена - вершина итерационного куста. Листо-
«архив графмоделей» АРХИВ ГРАФ МОДЕЛЕЙ |
<архив графмоделей> ГРАФМОДЕЛЬ j
<графмодель>
ИМЯ ГЫ
ВЕРШИНЫ одна из множества ДУГИ
, - - -
<БерШИНЫ>*'
<вершина>
Л\
<дуги> ДУГА
список д
<дуга> ПАРАМЕТРЫ Д
А\
ИМЯ В
| X | Y J ПАРАМЕТРЫ В имя X у
РОЛЬ Д| НАЧ_В| КОН В J линия|
\ имя нач_вершинкон_вершина ломаная
список в
Рис. 2. Ролевая диаграмма архива графмоделей
Рис. З. Атрибутная диаграмма архива графмоделей
вая вершина информационного домена - либо элементарная вершина исходной ролевой диаграммы, либо вершина итерационного куста. В атрибутной диаграмме (рис. 3) выделено три информационных домена.
Каждый информационный домен атрибутной диаграммы порождает абстрактный тип данных ТАБЛИЦА. Реализация абстрактной табличной базы данных может быть различной и здесь не рассматривается.
На рис. 4 представлена схема абстрактной табличной базы данных для хранения компьютерных представлений денотатов понятия «архив графмоделей». Так как в атрибутной диаграмме (рис. 3) выделяется три информационных домена, база данных состоит из трех абстрактных таблиц.
Для абстрактной табличной базы данных определены следующие основные операции мани-
пулирования данными, которые выполняет операционный процессор базы данных.
Для каждой таблицы определен прямой доступ к атрибуту (столбцу) по имени атрибута. Определен также последовательный доступ к записи (строке) таблицы по указателю. При этом используются два указателя: указатель последней строки таблицы top _<tab> и указатель произвольной строки таблицы <tab>.
Команда записи, определенная для последней строки таблицы:
PUSH(Tab, Atr, R) - запись в атрибут последней строки таблицы Tab значения переменной связи R. Указатель top_<tab> последней строки таблицы подразумевается.
Команды записи/чтения, определенные для текущей строки. Используется указатель <tab> текущей строки таблицы Tab:
Рис. 4. Табличная база данных «архив графмоделей»
«создание_графмоделей»
ГРАФМОДЕЛИ
/пО/
<созданле_графмоделей> НОВАЯ ГРАФМОДЕЛЬ *
“ /а І/j
<саздание графмодели>
Лч____________
ц
ПЕРВАЯ_ВЕРШИНА| СОЗДАНИЕ_ЭЛЕМЕНТОЕ
<создание элементе в> СОЗДАНИЕЭЛЕМЕНТА *
<создание элемента>
создание вершины
/Ъ2!
НОВАЯ ВЕРШИНА
-создан иеверш ин ы >
/сг2/
НОВАЯ_ДУГ А
< со здание_дуги >
РОЛЬ_Д НАЧ ВЕРШИНА КОН ВЕРШИНА
/об/
СОЗДАНИЕ. ДУГИ
поиск_нач_вершины <конечная_вершина> форм ировании дуги
/стЗ/ ,---------1----------, /сг5/
НОВАЯ
СТАРАЯ
<создан иив ерш ины> п о и ск_ к он_ в ерш ин ы
/<52! /о4/
Рис. 5. Императивная диаграмма вычислительного процесса создания архива графмоделей
Tab[tab].Atr:=R - запись в атрибут таблицы Tab значения переменной связи R;
X:= Tab[tab].Atr - чтение из атрибута таблицы Tab в переменную связи R.
Каждая таблица рассматривается как стек с указателем top_<tab> вершины стека. Отличие от классического стека в том, что при выполнении команд PUSH число строк в таблице не изменяется. Для добавления строки в конец таблицы служит специальная команда Next (Tab).
Понятие «вычислительный процесс создания архива графмоделей» представляется в виде императивной (ролевой) диаграммы (рис. 5). По сути дела, это процесс формирования экземпляра табличной базы данных. Вершины диаграммы интерпретируются как вычислительные процессы.
Используются три типа кустов формализма ролевых диаграмм: мультипликативный куст -
последовательное выполнение подчиненных процессов, альтернативный куст - альтернативное выполнение подчиненных процессов, итерационный куст - многократное повторение единственного подчиненного вычислительного процесса.
На рис. 5 ст0,... ,ст6 - команды операционного процессора базы данных:
ст0: инициализация таблиц; ст1: формирование строки Т<р-ар^> - дескриптора графмодели;
ст2: создание записи о новой вершине в ТП(^е, определение дисплейных координат вершины посредством курсора, ввод имени вершины и списка параметров вершины;
стЗ: выбор начальной вершины дуги (из числа существующих вершин), определение ссылки на запись начальной вершины дуги;
ст4: выбор конечной вершины дуги (из числа существующих вершин), определение ссылки на запись конечной вершины дуги;
Рис. 6. Сетевая диаграмма (NET) вычислительного процесса создания архива графмоделей
ст5: создание записи о новой дуге в Тагс, определение линии дуги на дисплее и списка параметров дуги.
стб: запись в Тагс значения роли дуги.3
Императивная диаграмма вычислительного процесса формальным образом трансформируется в сетевую диаграмму вычислительного процесса. Сетевая диаграмма вычислительного процесса являет собой конечное множество двухполюсных сетей [4, 5]. Число сетей равно числу кустов императивной модели вычислительного процесса. В большинстве случаев посредством процедуры подстановки множество сетей можно свести к одной единственной двухполюсной сети (одна начальная вершина, одна конечная вершина). Сетевая диаграмма вычислительного процесса создания архива графмоделей приведена на рис. 6.
Основной топологической характеристикой сетевой модели вычислительного процесса является путь в сети из единственной начальной вершины в единственную конечную вершину. Каждый путь в сети определяет траекторию вычислительного процесса как последовательность команд операционного процессора табличной базы данных, помечающих дуги этого пути. Реализация вычислительного процесса - это исполнение операционным процессором траектории вычислительного процесса.
Архитектура компьютерной системы создания архива графмоделей изображена на рис. 7. Ее назначение - на основании «человеческого» описания конкретной графмодели сформировать траекторию вычислительного процесса, исполнение которой операционным процессо-
ром запишет в базу данных соответствующий экземпляр табличной базы данных graphmod.
Как следует из предыдущего, в базе данных создается архив, в котором может храниться множество различных графмоделей. Проблема подключения любого приложения к любой графмодели решается посредством создания дубликата графмодели, представленного в формате XML. Предполагается, что конкретное приложение, получив доступ к представлению графмодели, конвертирует XML формат граф-модели в структуру данных, адекватную решаемой этим приложением задачи.
Формирование траектории tr вычислительного процесса осуществляется управляющим процессором CP посредством интерпретации сетевой диаграммы вычислительного процесса NET. Более подробно: воспринимая «человеческое» представление графмодели, управляющий процессор CP выделяет в сетевой диаграмме NET путь, который порождает траекторию tr преобразования «человеческого» представления графмодели в ее компьютерное представление graphmod. Операционный процессор OP, исполняя траекторию tr, формирует в табличной базе данных BD компьютерное представление графовой модели. Значения параметров вершин и дуг вводятся в соответствии с шаблоном граф-модели TPLATE.
Для автоматического управления вычислительным процессом используются логические тестовые функции, поставленные в соответствие вершинам сетевой модели: q2 =TRUE - конец ввода текущей графмодели; q1 = TRUE -конец ввода множества графмоделей. В верши-
нах сетевой диаграммы т1 и т2 реализуется интерактивное управление.
Для управления формированием траектории вычислительного процесса используется управляющий процессор СР (далее просто «плеер»), способный интерпретировать сетевую диаграмму (КЕТ) вычислительного процесса (рис. 6), переданную в него в формате XML. В СР происходит её проверка на корректность с точки зрения синтаксиса, а также разбор для внутреннего представления, что необходимо для ускорения интерпретации. Плеер способен интерпретировать сетевую диаграмму вычислительного процесса в автоматическом, полуавтоматическом и пошаговом режимах, для этого в нём предусмотрены различные режимы интерпретации. Функционируя в автоматическом режиме, плеер переходит от состояния к состоянию диаграммы, останавливаясь только там, где требуется вмешательство пользователя (например, ввод данных). Полуавтоматический режим подразумевает, что вычислительный процесс будет останавливаться не только для ввода данных, но также там, где конструктором вычислительного процесса определена точка прерывания.
Пошаговый режим реализует останов вычислительного процесса в каждом состоянии диаграммы. Переход к следующему состоянию производится только после нажатия пользователем специальной управляющей кнопки. Такой подход позволяет отладить вычислительный процесс и проследить за ходом его выполнения.
Для реализации возможности использования всех трёх режимов в плеере предусмотрены управляющие средства пользовательского интерфейса - кнопки. Также для целей отладки предусмотрено окно отслеживания переменных
и результирующих данных, для того чтобы можно было увидеть вычисляемые значения. В дополнение к этому, ход вычислительного процесса демонстрируется как визуальный проход по дугам и вершинам графа, показывая таким образом пользователю, как формируется траектория вычислительного процесса.
На рис. 8 изображена графмодель, соответствующий ей экземпляр табличной базы данных изображен на рис. 9.
XML для приведённого на рис. 9 экземпляра табличной базы данных будет выглядеть следующим образом:
<?xml version—'1.0" encodmg="utf-8"?> <GraphModel Name-'Пример графмодели">
<Graph Name-'Пример графмодели" Id="1"> <Node id=" 1" text="N 1" arcCount—" 1"
X-’101,205128205128" Y="161">
<Properties>
<NodeProperty Name-'Метка узла" Type="TYPE_STRING" Data="N1" /> </Properties>
<Arc target="2" text="d1">
<Coordinates coordCount="2">
<Coord X-'101,205128205128" Y="161" /> <Coord X="409,205128205128" Y="135" /> </Coordinates>
<Properties>
<ArcProperty Name-'Метка дуги" Type="TYPE_STRING" Data="d1" /> </Properties>
</Arc>
</Node>
<Node id="2" text="N2" arcCount="2" X="409,205128205128" Y="135">
<Properties>
Т<гп[І5>
ГРА Ф _М ОДЬ ЛЬ
ИМЯ гм ВЕРШИНЫ ДУГИ
лгігщ ;:;:;: ТЦінїІе^.
оі рі У
ч.. \
'епсИ» \ 1
Т<ПО(ІЄ5>
Т <агс5>
\Рі
(32
РЗ
(34
ВЕРШИНА 1 1 ДУГА
ИМЯ В _Х _У ПАР_В 1 РОЛЬ_Д НАЧ В КОН в ЛИНИЯ ПАРЛ
31Г1П§ цИ ІПІ Ііві 1 1 * Т<П(ХІЄ*> * Т<цоіієі> сип-е 1і$*
1 1 г •г
N1 * * * (И Р1 Р2 * *
N2 * * * (12 Р2 РЗ * *
N3 * * * <13 РЗ Р1 * *
'епйа' <14 Р2 Р1 * *
<15 РЗ Р1 * *
'епЛаЬ' 'епсіа'
'епЛаЬ'
Рис. 9. Экземпляр табличной базы данных для графмодели рис. 8
<NodeProperty Name="Метка узла" Type="TYPE_STRING" Data="N2" /> </Properties>
<Arc target="3" text="d2">
<Coordinates coordCount="2">
<Coord X="409,205128205128" Y="135" /> <Coord X="381,205128205128" Y="295" /> </Coordinates>
<Properties>
<ArcProperty Name="Метка дуги" Type="TYPE_STRING" Data="d2" /> </Properties>
</Arc>
<Arc target="1" text="d4">
<Coordinates coordCount="3">
<Coord X="409,205128205128" Y="135" /> <Coord X="338,205128205128" Y="66" /> <Coord X="101,205128205128" Y="161" /> </Coordinates>
<Properties>
<ArcProperty Name="Метка дуги" Type="TYPE_STRING" Data="d4" /> </Properties>
</Arc>
</Node>
<Node id="3" text="N3" arcCount="2" X="381,205128205128" Y="295">
<Properties>
<NodeProperty Name="Метка узла" Type="TYPE_STRING" Data="N3" /> </Properties>
<Arc target="1" text="d3">
<Coordinates coordCount="2">
<Coord X="381,205128205128" У="295" /> <Coord Х="101,205128205128" У="161" /> </Coordinates>
<Properties>
<ArcProperty №те="Метка дуги" Type="TУPE_STRING" Data="d3" /> </Properties>
</Агс>
<Агс target="1" text="d5">
<Coordinates coordCount="3">
<Coord Х="381,205128205128" У="295" /> <Coord Х="164,205128205128" У="298" /> <Coord Х="101,205128205128" У="161" /> </Coordinates>
<Properties>
<ArcProperty Name="Метка дуги" Type="TYPE_STRING" Data="d5" /> </Properties>
</Агс>
</Node>
</Graph>
</GraphModel>
Примечания
1. Здесь рассматривается простейший тип графмодели. Во-первых, шаблон вершины одинаков для всех вершин, так же как шаблон дуги одинаков для всех дуг графмодели. Во-вторых, топологическая основа графмодели не канонизируется, т.е. может являть собой произвольную систему графов.
2. Названный выше формализм предполагает конструирование программной системы в рамках алгоритмической парадигмы. Специфика алгоритмической парадигмы - представление способа решения прикладной задачи посредством преобразования набора исходных данных в набор результирующих данных. В этом ее основное отличие от объектноориентированной парадигмы, реализуемой в рамках универсального моделирующего языка.
3. Ограниченный размер статьи не представляет возможности более подробно описать вышеназванные команды и их взаимодействие.
Список литературы
1. Кузин С.Г. Конструирование унифицированных компонентов прикладной программы на основа-
нии ролевого графа // Вестник Нижегородского университета им. Н.И. Лобачевского. 1999. № 1(20). С. 226-237.
2. Касьянов В.Н., Евстигнеев В.А. Графы в программировании: обработка, визуализация и применение. СПб.: БХВ-Петербург, 2003.
3. Макаров Н.Л. Система ввода графовых моделей (GMIS), ОФЭРНиО, ФГНУ ИНИПИ РАО, №19265, 50201350534, 04.06.2013г.
4. Кузин С. Унификация проектирования сложных вычислительных комплексов. Saarbrucken, Germany: LAMBERT Academic Publishing, 2012, ISBN-10: 3659181566. www.Ljubljuknigi.ru.
5. Кузин С.Г., Макаров Н.Л. Модельный подход к конструированию учебно-исследовательских обучающих систем // Вестник Нижегородского университета им. Н.И. Лобачевского, 2011. № 5. С. 174-180.
MODEL APPROACH TO THE DESIGN OF A COMPUTER INPUT SYSTEM FOR GRAPH MODELS
S.G. Kuzin, N.L. Makarov
The article considers an example of designing a complex program using a role diagram in domain knowledge representation and the imperative (role) diagram of the computational process. A computer input system for graph models is considered as a design object.
Keywords: computational process, graphs, graph models, network models, role diagrams, professional language, tabular database.
References
1. Kuzin S.G. Konstruirovanie unificirovannyh komponentov prikladnoj programmy na osnovanii role-vogo grafa // Vestnik Nizhegorodskogo universiteta im. N.I. Lobachevskogo. 1999. № 1(20). S. 226-237.
2. Kas'yanov V.N., Evstigneev V.A. Grafy v pro-grammirovanii: obrabotka, vizualizaciya i primenenie. SPb.: BHV-Peterburg, 2003.
3. Makarov N.L. Sistema vvoda grafovyh modelej
(GMIS), OFEHRNiO, FGNU INIPI RAO, №19265, 50201350534, 04.06.2013g.
4. Kuzin S. Unifikaciya proektirovaniya slozhnyh vychislitel'nyh kompleksov. Saarbrucken, Germany: LAMBERT Academic Publishing, 2012, ISBN-10: 3659181566. www.Ljubljuknigi.ru.
5. Kuzin S.G., Makarov N.L. Model'nyj podhod k kon-struirovaniyu uchebno-issledovatel'skih obuchayushchih sistem // Vestnik Nizhegorodskogo universiteta im. N.I. Lobachevskogo, 2011. № 5. S. 174-180.