Научная статья на тему 'Применение N-ориентированных гиперграфов и реляционных баз данных для структурного и параметрического синтеза технических систем'

Применение N-ориентированных гиперграфов и реляционных баз данных для структурного и параметрического синтеза технических систем Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
329
146
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Мокрозуб В. Г., Немтинов В. А., Мордвин А. С., Илясов А. А.

В данной работе совместно рассмотрены способы синтеза и представления структуры технических систем (ТС) в реляционных базах данных. В качестве способа представления структуры ТС выбран N-ориентированный гиперграф, синтез структуры ТС осуществляется с помощью продукционных правил. В формате SQL представлен синтаксис правил и алгоритм их обработки.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Применение N-ориентированных гиперграфов и реляционных баз данных для структурного и параметрического синтеза технических систем»

ПРИКЛАДНАЯ ИНФОРМАТИКА /-

' № 4 (28) 2010

В. Г. Мокрозуб, В. А. Немтинов, А. С. Мордвин, А. А. Илясов

Применение N-ориентированных гиперграфов и реляционных баз данных для структурного и параметрического синтеза технических систем

В данной работе совместно рассмотрены способы синтеза и представления структуры технических систем (ТС) в реляционных базах данных. В качестве способа представления структуры ТС выбран N-ориентированный гиперграф, синтез структуры ТС осуществляется с помощью продукционных правил. В формате SQL представлен синтаксис правил и алгоритм их обработки.

Введение

Структурный и параметрический синтез — основные этапы создания технических систем. Под структурным синтезом ТС будем понимать задачу нахождения такого состава ее элементов, который обеспечивает выполнение функций системы. Под задачей параметрического синтеза будем понимать нахождение геометрических, механических и других параметров элементов ТС, определенных в задаче структурного синтеза.

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

Разработка информационной системы для решения задач структурного и параметрического синтеза ТС включает в себя много разных этапов, в том числе следующие:

• выбор способа представления структуры ТС;

• выбор способов или алгоритмов получения структуры ТС;

• выбор базового программного обеспечения для представления структуры и алгоритмов в информационной системе.

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

Цель настоящей работы — совместное описание вышеперечисленных этапов создания информационной системы для решения задач структурного и параметрического синтеза ТС.

Область применения — разработка программного обеспечения систем автоматизированного проектирования (САПР), предназначенных для:

• конструирования оборудования из типовых элементов (емкостные аппараты, теплообменники, колонны);

• проектирования технологических схем (определение типов аппаратов, необходимых для выпуска продукта по заданной технологии, например, красителей в химической или молочных продуктов в пищевой промышленности);

№ 4 (28) 2010

• размещения единиц оборудования в производственном помещении, например, аппаратов в цехе химического или станков в цехе машиностроительного предприятия.

В качестве способа представления структуры ТС выбран ^-ориентированный гипер! граф [3], синтез структуры ТС осуществля-g ется с помощью продукционных правил типа | «Если А, то В», где А — логическое выраже-|и ние-условие, В — логическое выражение-| следствие. В качестве базового программ-К ного обеспечения используется реляцион-§ ная база данных.

Л Таким образом, в контексте настоящей g работы задача структурного синтеза заклю-§ чается в определении ребер и вершин ги-| перграфа (построение гиперграфа), а за-¡2 дача параметрического синтеза — в опре-¡1 делении свойств ребер и вершин. Их ассо-§ циация с реальными объектами зависит от | решаемой задачи. Например, в задаче кон-■с струирования технологического оборудова-ij ния в качестве ребра гиперграфа выступает ji узел или сборочная единица, вершины — lit детали, в задаче размещения оборудования в производственном помещении ребро — | отделение или этаж цеха, вершины — от-<| дельные единицы оборудования. ¡2

з Определение ^-ориентированного | гиперграфа

| По аналогии с ориентированным гипер-J графом [5], обозначим ^-ориентированный § гиперграф G(X,U), где X = {xi}, i = 1,I — множество вершин гиперграфа, x — i-ая вершина; U = {um (X1m)}, m = 1, M — множество ! ребер гиперграфа, um (X 1m) — m-ое ребро § гиперграфа, X1m — множество вершин, ин-i§ цидентных m-омуребру X 1m сX, X1m = {xLk}, § Vk е Km, Km с 1,I, L — номер вершины | в ребре ориентированного гиперграфа, is представляет собой вектор L = {ln}, n = 1,N, ^ мощность которого N. В общем случае вер-sg шины в ребре не обязательно должны нуме-sg роваться по порядку, номер может отражать | определенное свойство вершины, которое принимает конкретное значение при вклю-

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

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

Обозначим в = Ц}, } = 1, J — множество всех возможных свойств вершин и ребер, вХ1 = } с в, i = 1,I, г е 1, J — множество свойств /-ой вершины, вит = } с в, т = 1,М, г е 1, J — множество свойств т-ого ребра. Под свойством здесь понимается контейнер для хранения значения свойства. Например, свойство «тип фланца» может иметь значение «плоский приварной». Таким образом, для каждой вершины множество ее номеров L = {1п}, п = 1,^заменяется множеством свойств вХ1 , / = 1, I. Кроме того, каждой дуге также ставится в соответствие свой набор свойств.

Генерация вариантов ТС (структурный и параметрический синтез)

Любая вновь создаваемая ТС должна выполнять заданные функции в заданных условиях, которые определены, например, в техническом задании (ТЗ) на ее создание. Если таких ТС получается несколько, то предпочтение отдается решению с экстремальным значением некоторого показателя, например, минимума затрат на создание и эксплуатацию ТС, т. е. решается оптимизационная задача. Независимо от того, решается ли задача оптимизации или нет, необходимо уметь генерировать варианты ТС. Генерация варианта ТС состоит из этапов структурного и параметрического синтеза.

№ 4 (28) 2010

Как указано выше, задача структурного синтеза заключается в определении ребер и вершин гиперграфа (построение гиперграфа). При этом вершины выбираются из множества допустимых вершин X с XD = {хбсМ}, & = 1,0/, а ребра — из множества допустимых ребер и с иО = {и<&&т}, &т = 1,ОМ. Этот выбор осуществляется на основании данных ТЗ, которые можно представить как множество двоек Т1 = {!, z}, где ! — некоторое свойство ТС, z — значение этого свойства, например, рабочее давление (свойство) равно 0,6 МПа (значение). Функции аппарата также можно отнести к свойствам, при этом z становится вектором, например, z = {загрузить, нагреть, перемешать, выгрузить}.

Выбор вершин и ребер по данным ТЗ осуществляется с использованием продукционных правил, например, «Если необходимо перемешивать, то должна быть мешалка». С учетом принятых обозначений это правило можно записать, как «Если перемешать е TZ, то мешалка е X».

Задача параметрического синтеза заключается в определении свойств ребер и вершин. Обозначим хип (Эг) — значение свойства эг вершины Х/ в ребре ит, ит(э) — значение свойства вг ребра ит, тогда задача параметрического синтеза заключается в нахождении множества значений свойств вершин SXG = {Х/т(эг)}, V/ е 1,/,т е 1,М,г е 1, J и множества значений_свойств ребер SUG = {ит^)},

V т е 1, М, г е 1, ^

По аналогии с задачей структурного синтеза параметры вершин и ребер находятся на основании данных ТЗ с использованием правил. Например, «Если вязкость среды > 500 Па-с, то тип мешалки — шнековая или ленточная».

Структура базы данных

Структура базы данных для представления ^-ориентированного гиперграфа и решения задач структурного и параметрического синтеза представлена на рис. 1.

Тех. задание, TZ

ID TZ

Г ID S

ID_X

ID U

Значение_свойства

Свойства^ _iJ ID_S

| Наименование. свойства

Рис 1. Структура базы данных для представления ^-ориентированного гиперграфа

В представленной на рис. 1 структуре сложные названия таблиц использованы для лучшего восприятия статьи. Таблицы «Вершины, XD», «Ребра, UD», «Свойства_вер-шин, SX», «Свойства_ребер, SU», «Свойства, S», «Тех. задание, TZ», «Гиперграф, G», «Значения_свойств_вершин, SXG» и «Зна-чения_свойств_ребер, SUG» соответствуют описанным выше множествам XD, UD, SX, SU, S, TZ, G, SXG и SUG.

В структуре на рис. 1 отсутствует множество вершин X и множество ребер U гиперграфа. Эти множества можно получить в результате выполнения следующих запросов: select Наименование_вершины from G, XD where G.ID_X=XD.ID_X;

select Наименование_ребра from G, UD where G.ID_U=UD.ID_U.

Здесь и далее в запросах участвуют короткие названия таблиц. Для написания запросов используется Transact-SQL (MS SQL Server 2005).

Представленная структура позволяет создать гиперграф, в котором ребра могут иметь одинаковые вершины с разными или одинаковыми свойствами. Кроме того, гиперграф может иметь одинаковые ребра с разными или одинаковыми вершинами и свойствами. Последнее соответствует случаю, когда

CQ

0 CJ

Л £

са

1

§ £

CQ

£

«О

О &

117

№ 4 (28) 2010

&

CJ

t

S3

t

«о

S3

t

0 %

1

со о

е-

ST

%

IP

CD

I £

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

Как было указано выше, генерация структуры ТС осуществляется с помощью продукционных правил типа «Если А, то В». Продукционные правила будем хранить в виде текстовых строк ЗО^-запросов. Рассмотрим синтаксис правила на приведенном выше примере «Если необходимо перемешивать, то должна быть мешалка». Предположим, что существуют:

• в таблице S — строка ID_S=1, Наиме-нование_свойства=функция;

• в таблице Т7 — строка ID_S=1, Значе-ние_свойства=перемешать (Ю_Т7 может быть любым, Ю_Х и Ю_и не определены);

• в таблице XD — строка Ю_Х=5, Наиме-нование_вершины=мешалка.

Тогда текст правила, позволяющего выбрать мешалку, будет следующим:

if exists (select * from TZ

where ID_S=1 and Значение_свойства= перемешать) select * from XD where ID X=5.

(1)

В тексте этого правила отсутствует указание, куда поместить результат выполнения. Это указание определяется классификацией правил, о которой будет сказано ниже. Кроме того, если придерживаться принципов нормализации базы данных, необходимо ввести таблицу «Возможные_зна-чения_свойств», в которой будет строка со значением «перемешать». Эта таблица, как и некоторые другие, для упрощения изложения опущена.

Структура базы данных для хранения правил представлена на рис. 2. В основной

Рис 2. Структура базы данных для хранения правил

таблице «Правила, Р» тексты правил хранятся на естественном языке (поле «Текст_ правила_на_ЕЯ») и на языке SQL (поле «Текст_правила_на_SQL»). Таблицы «Вер-шины_в_правилах, РХ», «Ребра_в_правилах, PU», «Свойства_в_правилах, PS» введены для обеспечения целостности базы, например, для исключения возможности удаления свойства из таблицы S, если оно присутствует в правиле.

Синтаксис и обработка правил

Обработка правил заключается в многократном проходе по записям таблицы «Правила, Р» и выполнении этих правил как SQL-запросов. При этом используется таблица TZ, а также таблицы, в которые помещаются результаты выполнения предыдущих правил.

Результаты работы правил могут быть классифицированы по следующим группам:

1. Ребро вводится в граф;

2. Ребро вводится в граф, и задаются его свойства;

3. Задаются свойства существующего ребра;

4. Вершина вводится в граф (ребро не определено);

5. Вершина вводится в граф (ребро не определено), и задаются ее свойства;

6. Вершина вводится в определенное ребро;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

7. Вершина вводится в определенное ребро, и задаются ее свойства;

8. Задаются свойства вершины в определенном ребре;

118

№ 4 (28) 2010

9. Задаются свойства вершины (ребро не определено).

Поясним группы 4 и 5. Приведенное выше правило (1) позволяет включить мешалку в структуру ТС как элемент (как вершину), но не определяет, что мешалка должна входить в узел «привод» (в ребро), т. е. имеются правила, в которых говорится, что вершина будет входить в граф, но не говорится, какому ребру она будет принадлежать. Следует ожидать, что дополнительно будет правило, в котором определяется, в какое ребро будет входить выбранная ранее вершина.

Гиперграф G, определение которого дано выше, представляет собой вариант конкретной ТС. При обработке правил получается не один вариант ТС, а семейство возможных вариантов, возможно существование правила «Если Л, то В или С».

Обозначим:

PG(PXG, PUG) — гиперграф, который получается в результате обработки правил;

PXG = {xpj} с XD, pi е 1,Di — множество вершин гиперграфа; _

PUG = {upm} с U, pm е 1,DM — множество ребер гиперграфа;

SPXG = {xpj (Sr)} — множество значений свойств вершин из PXG, Xpi(Sr) — значение свойства Sr для вершины Xpi;

SPUG = {Upm (sr)} — множество значений свойств ребер из PUG, Upm (Sr)— значение свойства Sr для ребра Upm;

SPG = {xpjpm (Sr)} — множество значений свойств вершин в ребрах (в гиперграфе PG), Xpi pm (Sr) — значение свойства Sr вершины xpi в ребре upm.

Таким образом, результаты работы правил группы 1 записываются в PUG, группы 2 — в PUG и в SPUG, группы 3 — в SPUG, группы 4 — в PXG, группы 5 — в PXG и SPXG, группы 6 — в PG, группы 7 — в PG и SPG, группы 8 — в SPG, группы 9 — в SPXG.

Примеры правил:

Правило 1. «Если необходимо перемешивать, то должна быть мешалка» (группа 4).

Правило 2. «Если вязкость среды > 500 Па-с, то тип мешалки шнековая» (группа 9).

Правило 3. «Если есть мешалка, то должен быть привод» (группа 1).

Правило 4. «Привод состоит из мотор-редуктора, стойки и вала мешалки» (группа 6).

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

В терминах теории множеств представленные правила записываются так:

Правило 1. 3 функция, перемешать е TZ ^ мешалка е PXG.

Правило 2. 3 мешалка е PXG и вязкость среды > 500 Па-с ^ 3 шнековая е SPXG.

Правило 3. 3 мешалка е PXG ^ 3 привод и мешалка е PG.

Правило 4. привод е РО ^ 3 мотор-редуктор, стойка, вал мешалки е РО.

Структура базы данных для хранения результатов запросов представлена на рис. 3.

Рис 3. Структура базы данных для хранения результатов запросов

Рассмотрим синтаксис представления правил в формате SQL на следующем примере. Предположим, в ТЗ написано, что функция ТС — перемешать жидкость вязко-

о

«Л

Л £

*

о

И §

£ CQ

о

Л

119

№ 4 (28) 2010

Вершины, XD

Свойства, S

I I

I

i

s is S

u £2 Si S3

I

Si

I

§

=s

£2

0

s s

u

t >3

1 §

$

IE

о

n

si si

ID_X Наименование_вершины

5 мешалка

6 стойка

7 вал-мешалки

8 мотор-редуктор

Ребра, UD

ID_U Наименование_ребра

1 привод

ID_S Наименовани е_свойства

1 функция

2 вязкость_среды

3 тип_мешалки

Техзадание, TZ

ID_TZ ID_S ID_X ID_U Значение_свойства

1 1 null null перемешать

2 2 null null 400

Рис. 4. Пример содержания таблиц «Вершины, XD», «Ребра, UD», «Свойства, S», «Тех. задание, NZ»

стью 400 Па-с. Содержание таблиц «Верши- С учетом содержимого вышеприведенны, XD», «Ребра, UD», «Свойства, S», «Тех. ных таблиц синтаксис правил в формате задание, NZ» представлено на рис. 4. SQL будет следующим.

Правило 1. Если необходимо перемешивать, то должна быть мешалка

if exists (select * from TZ where ID_S=1 and 3HaqeHMe_CBOMcrea="nepeMewaTb"

and ID_X is Null and ID_U is Null)

begin

insert PXG values (5) set @ret=1

end

Правило 2. Если вязкость среды > 500 Па• с, то тип мешалки — шнековая

if exists (select * from TZ where ID_S=2 and 3HaqeHMe_CBOMcrea>500

and ID_X is Null and ID_U is Null) and exists (select * from PXG where ID_X=5)

begin

declare @ID_PXG int; select @ID_PXG=ID_PXG from PXG where ID_X=5 insert SPXG values (@ID_PXG, 3, "wHeKOBaa") set @ret=1

end

Правило 3. Если есть мешалка, то должен быть привод

120

№ 4 (28) 2010

Правило 4. Привод состоит из мотор-редуктора, стойки и вала мешалки

«

0

1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

I

I

« I

а

ва £

to

о &

о

I-:

ва

if exists (select * from PUG where ID_U=1 begin

declare @ID_PUG int

select @ID_PUG=ID_PUG from PUG where ID_U=1 insert PG values (6,@ID_PUG) insert PG values (7,@ID_PUG) insert PG values (8,@ID_PUG) set @ret=1 end

Приведенные правила в случае своего выполнения (выполняется условный оператор) возвращают значение @ret=1.

Выполнение правила осуществляется с помощью функции sp_executesql. Предположим, что запись с правилом 1 в таблице «Правила, P» имеет ID_P=1. Тогда выполнение этого правила осуществляется следующими операторами:

declare @str as nvarchar (500), @param nvarchar (100), @ret int

select @str=Текст_правила_на_SQL from P where ID_P=1

set @param=N'@ret int output' exec sp_executesql N'set @ret=0; '+@str, @ param, @ret out.

При этом переменная @ret будет иметь значения 1, если правило отработало, и 0 в противном случае.

Алгоритм обработки правил заключается в многократной выборке и выполнении правил из таблицы «Правила, P». Выборка правил прекращается, когда не выполняется ни одно правило. Программа, реализующая указанный алгоритм, представлена ниже (см. листинг 1).

В представленной программе отсутствует механизм исключения повторного выполнения правил. Разработать такой механизм достаточно просто. Например, можно записывать ID_P выполненных правил во временную таблицу и выполнять функцию sp_exe-cutesql только в том случае, если выполняемого правила нет в этой таблице.

Ввод правил

Ввод правил осуществляет специалист в предметной области, который не знает SQL. Поэтому необходимо разработать программы диалога, которые позволят вводить правила на естественном языке. Описание подобных программ выходит за рамки настоящей статьи. Практически это можно сделать так, как описано, например, в [4].

Заключение

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

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

121

№ 4 (28) 2010

Листинг 1

I I

I

i

S J?

is §

U §

К

Si

! §

0

1 I

u S

43

I

о

n

SI

si

CO

о

t !

n

s 00

0 &

1

IE

P

4

declare @ret1 int, @str nvarchar(1000), @param nvarchar(100), @ret int,

@str1 nvarchar(500) set @param=N'@ret int output' set @ret1=1 while @ret1=1 begin

set @ret=0

declare cursorl cursor for select [TeKcr_npaBM^a_Ha_SQL] from P open cursor1

fetch next from cursor1 into @str set @str1= N'set @ret=0; '+@str exec sp_executesql @str1, @param, @ret out if @ret=1 set @ret1=1 while @@fetch_status=0 begin

set @str1= N'set @ret=0; '+@str

exec sp_executesql @str1, @param, @ret out

if @ret=1 set @ret1=1

fetch next from cursor1 into @str

end

close cursor1 deallocate cursor1

end

Работа выполнена в рамках государственного контракта №02.740.11.0624 Федеральной целевой программы «Научные и научно-педагогические кадры инновационной России на 2009-2013 годы».

Список литературы

1. Божко А. Н. Структурный синтез на элементах с ограниченной сочетаемостью [Электронный ресурс] // Наука и образованиие. 2004. № 5. Режим доступа: http://technomag.edu.ru/doc/44191 .html Загл. с экрана.

2. Мокрозуб В. Г. Представление структуры изделий в реляционной базе данных // Информационные технологии. 2008. № 11.

3. Мокрозуб В. Г., Немтинов В. А, Егоров С. Я, Морозов С. В. Применение гиперграфов и реляционной базы данных для описания структуры радиотехнических систем // Успехи современной радиоэлектроники. 2009. № 11.

4. Мокрозуб В. Г. Синтаксис запросов конечных пользователей к реляционной базе данных // Прикладная информатика. 2009. № 3 (21).

5. Овчинников В. А. Операции над ультра- и гиперграфами для реализации процедур анализа и синтеза структур сложных систем [Электронный ресурс] // Наука и образование. 2009. № 10. Режим доступа: http://technomag.edu.ru/doc/132769.html Загл. с экрана.

122

i Надоели баннеры? Вы всегда можете отключить рекламу.