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

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

CC BY
53
11
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГРАФЫ / МАТЕМАТИЧЕСКИЕ МОДЕЛИ / СТРУКТУРЫ ДАННЫХ / ФОРМАЛЬНЫЙ СИНТЕЗ

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

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Овчинников Владимир Анатольевич, Иванова Галина Сергеевна

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

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

УДК 004.3+519.6

В . А. Овчинников, Г . С. Иванова

МЕТОДИКА ФОРМАЛЬНОГО СИНТЕЗА КОМБИНИРОВАННЫХ СТРУКТУР ДАННЫХ ДЛЯ ПРЕДСТАВЛЕНИЯ ГРАФОВ

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

E-mail: vaovchinnikov@gmail.com, gsivanova@gmail.com

Ключевые слова: графы, математические модели, структуры

данных, формальный синтез.

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

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

Рассмотрим механизм такого синтеза на следующем примере. Пусть необходимо построить структуру для представления множества ребер и их образов гиперграфа, заданного в форме H(X, <U, W>, ГХ, ГЦ). Над гиперграфом выполняются операции поиска ребер с максимальным весом, удаления вершин и «пустых» ребер, т. е. тех, у которых |Гм| = 0. Количество ребер |U\ после удаления «пустых» может быть значительно меньшим, чем до удаления, которое обозначим как \иисх \ . При удалении вершин и «пустых» ребер порядок их записи необходимо сохранять. Все операции следует выполнять с минимально возможной вычислительной сложностью. Дальнейшие оценки даются в количестве операций сравнения для худшего случая.

С учетом сказанного выше множество ребер гиперграфа и целесообразно представить в виде двусвязного списка Ьо [1]. Также в виде двусвязных списков {Ь / ; = 1, т} представим множества вершин X = Гму, инцидентных каждому ребру щ (рис. 1).

Рис. 1. Двусвязный список двусвязных списков для хранения множеств <и, У, | Ги | > и Ги

Обозначим через хг вершину, удаляемую на г-м шаге алгоритма. Поиск удаляемой вершины хг во множестве Г и подразумевает определение ребер и = Гхг, инцидентных этой вершине. Определение множества ребер иг выполняется по множеству образов ГХ, т. е. не относится к синтезируемой структуре.

На г-м шаге алгоритма над множеством ребер и и множеством подмножеств их образов Ги будут выполняться следующие операции:

• определение в множестве и ребра пк с максимальным весом;

• поиск каждого ребра щ е иг в множестве и;

• поиск удаляемой вершины хг в образах Гп;

• удаление этой вершины;

• определение «пустых» ребер;

• поиск «пустого» ребра в множестве и;

• удаление «пустого» ребра.

Для определения «пустых» ребер необходимо знать мощность множества Гпу- каждого ребра щ е иг. Вычислительная сложность та-

кой операции Q = Ар, которую можно выполнять с вычислительной сложностью Q = р, если каждому ребру щ е и поставить в однозначное соответствие мощность его образа I Гщ | и уменьшать эту мощность на 1, если удаляемая вершина х, е Гыу. Таким образом, каждое ребро гиперграфа будет задаваться тройкой <щ, w¡, | Гщ| >.

Моделью исходной двухуровневой! структуры двусвязный список

двусвязных списков является граф Ооь ({Ту, Тэо, ТУ, Тэь, Уо, Уь],

¥То, ¥Ть). Шаблон этого графа должен находиться в библиотеке моделей базовых и производных структур данных (модели базовых и некоторых комбинированных и двухуровневых структур данных рассмотрены в работах [2, 3]).

Для синтезируемой структуры необходимо задать:

• вид структуры и имя ее модели;

• множество кортежей {<щ, Wj, | Гщ | > /у = 1, |иисх|], которые являются значениями элементов двусвязного списка Ьо, и мощность т = = |иисх| этого множества (иисх - исходное множество ребер гиперграфа);

• имена множеств {Ху /у = 1, | иисх | ], значение элементов которых принимает первое поле записи элементов двусвязных списков {Ьу- / у = 1, | иисх | ], и мощности {| Ху | / у = 1, | иисх | ] этих множеств.

В результате настройки шаблона получим граф Ооь ({То, Ть], {Уо, Уь], Р1о, FZL), в котором (рис. 2)

• То = {Туо, Тэо];

• Туо = {^у.н, ^у.к], Zу.н о Ду.н, ^у.к о ау.к - вершины, сопоставленные адресам указателей начала и конца списка Ьо соответственно;

• Тэо = {¿4 /у = 1, |иисх|], Тэо о Аэо, где Аэо - адреса элементов двусвязного списка Ьо, о аэ0у;

• Ть = {Туь, Тэь];

• ТУЬ /] -1, |UисX|], {zу.н/, zу.к/], 2у.н}-, 0 ^ ау.нj, zу.к/О ау.ку —

вершины, сопоставленные адресам указателей начала и конца списков {Ьу];

• Тэь = {ТэЬу /у = 1, |иисх|], ТэЬу о Аэьу, где А^ = {ау / / = 1, |Х|] -адреса элементов списка Ьу, ТэЬу = {гу / ? = 1, |Ху]}, ¿7? о ау, |Х| = Гиу;

• Уо = {у4 /у = 1, | иисх | ], у^ = <у4', 2у.ну>, уй]о <Му, иу, | Гщ | >;

• Уь = {Уьу /у = 1, | иисх | ], Уьу о X, Х- = Гщ, Уьу = {уу / ? = 1, |^|],

УУ О X/;

• = {РТуо, ¥Тэо], Ргу.н ={М], ¥2у.к = {г^];

• ЕТээ = {^4 /у = 1, | иисх | ], = <у4,

• ^Ть = {¥Туь, ЕТЭЬ], РТуь = {^Ту.^, ^гуку], ¥2у.ну ={z/l], ^2у.ку = = ^т^

• ^ = {^у /у = 1, |иисх |], ^у = / ? = 1, |Х|], = <уу;, у-!, z/f+l>.

Рис. 2. Модель двухуровневой структуры двусвязный список двусвяз-ных списков - граф ({7В, Ув, Уь}, ¥1В, ¥1Ь):

<ц, Wj, I Гц \ , т =

В выбранной структуре «двусвязный список двусвязных списков» поиск ребра в множестве и требует т = I и I операций сравнения. С учетом количества I Гх | = р < т ребер, инцидентных вершине хг, их поиск будет осуществляться с вычислительной сложностью Q = т р.

Для выполнения операции поиска в множестве и каждого ребра ц £ иг с вычислительной сложностью qi = 1 зададим отношение Б в трактовке «координата элемента в векторной структуре записи множества иисх соответствует координате равного ему элемента в списковой структуре записи множества и». Очевидно, что в полученной структуре элементы соответствующего вектора прямого доступа V будут иметь значение адресов элементов двусвязного списка ЬБ.

Моделью вектора прямого доступа V является граф: ^ (¿у, Г, FZV), в котором:

• Zv = [гбV, Zэv}, ¿б/ « аб/, абV - адрес базы вектора V;

• ZэV = [гу, / г = 1, | иисх I }, ZэV « Аэу, Аэу - адреса элементов вектора V;

• IV = [уу, / г = 1, I иисх I }, уу, = если и, = п3, и, е иисх, Ц £ и и ууг = 0 в противном случае, « аэц, аэц - адрес того элемента списка ЬБ, в котором хранится ребро ц;

• FZv = [FlZбv, F2Zэv, FзZэv}, FlZбv = Zэv, F2Zэv = / г = 1,

I иисх I }, F2ZV1 = Zэv \ у FзZэv = [Fзzvг / г = 1, I иисх I }, Fзzv1 = уу,.

В результате объединения по вершинам yvi = zdj графов GDL ZL}, YL}, FZD, FZL) и GV (2у, Yv, FZV) получим модель комбинированной структуры - двусвязный список двусвязных списков с вектором прямого доступа:

Gdlv (Z1, Yl, FZ1) = = Gdl ({ZD, ZL}, YL}, FZD, FZL) и Gv (Zv, Yv, FZv),

где Z1 = {ZD, ZL, Zv}, = {YD, YL, Yv}, FZ1 = FZL, FZv}. На рис. 3 показана модель после удаления «пустого» ребра щ.

Рис. 3. Модель двухуровневой структуры двусвязный список двусвяз-ных списков с вектором прямого доступа:

уйр^ <Мр I Гц I, г =

В структуре поиск вершины в образе ребра требует \ Тп \ = А < п операций сравнения. С учетом числа \ Гх \ = р < т ребер, инцидентных вершине хг-, ее поиск и удаление будет осуществляться с вычислительной сложностью Q = Ар. Поиска удаляемой вершины хi в образе Гц можно избежать, если задать принадлежность элемента хi множеству образов Г^ отношением Я «координата элемента в подмножестве Хр - координата этого элемента в следующем подмножестве». Поскольку количество элементов каждого подмножества Хр различно, для представления значения целесообразно использовать односвязные списки Si. Подмножество К координат элементов хi является адресами

вершины Х1 в множестве Аэь = {Аэу / у = 1, |иисх|] адресов элементов списков {ьу|]. Соответственно, для всего множества вершин X необходимо иметь множество списков £ = {Sj / г = 1, |Хисх|], что обеспечит прямой доступ к каждому элементу хг по всем {Ги,у].

Моделью каждого односвязного списка адресов я является граф 03/ (Т, УРТ/), в котором:

• Т/ {гу.н З,/-, Тэг];

• 2у н я/« ау.н я, ау.н а - указатель начала каждого списка £г;

• Тэ/ = {¿¡к / к = 1, | Гхг | ], ¿¡к = у если хг « уу и уу является первым элементом кортежа ^у, z/r-l, Чт+1> = Р^)^ Тэг ^ Тэь, Тэь = {Ть / у = 1, |иисх|], т. е. Тэ/ - это подмножество вершин, сопоставленных адресам тех элементов множества двусвязных списков {ьу], значениями которых является вершина хг;

• У г = Тэг \ ¿¡1;

• РТ = ру.н Яг, РТэг], РГу.н Яг = {z^l];

• РТЫ = {¿/'к / к = 1, р], р = | ГХ/ | , р11к = {¿/¿+1] для к = 1, р - 1 и

р1р = 0.

Обозначим множество графов как Т, Уя, РТя) = { 03/ (Тг, Уг, РТ) / г = 1, |Хисх|], где Тя = {Т / г = 1, Хисх|], РТя = {РТ / г = 1,

|Хисх|].

Объединив по вершинам множеств Тэь и {Тэ/] графы Ооьу и 03 -- (Т2, У1, РТ2) = ^ (Т1, У1, РТ1) и Т, Уя, РЗ?), где Т2 = = {Т1, Туя], Туя = {гу.н я/ / г = 1, Хисх|], РТ2 = {¥Т1, РТу] РТуя = = Ру.н яг / г = 1, |Хисх|] и Р1у = <уу, zjt—l, zjt+l, zik+l>, получим модель трехсвязного списка (рис. 4).

Однако для удаления вершины хг необходимо найти соответствующий список Таким образом, поиск и удаление вершины будет выполняться с вычислительной сложностью Q = п р. Для исключения поиска списка я зададим отношение о в трактовке «координата элемента хг в векторной структуре записи множества Хисх соответствует координате элемента, определяющего начало списка я в записи множества я». Очевидно, что в полученной структуре элементы соответствующего вектора прямого доступа, назовем его Р, будут иметь значение адресов ау н г указателей начала каждого списка 5/.

Моделью вектора прямого доступа Р является граф: ОР (ТР, УР],

РТР), в котором:

• ТР = {¿бР, ТэР], ¿бР « абР, абР - адрес базы вектора Р;

• ТэР = {¿р/ / / = 1, I иисх1 ], ТэР «АэР, АэР - адреса элементов вектора Р;

• УР = {ург / / = 1, I Хисх I ], ург = я/ - если хг не удален из множества X, и ург = 0 в противном случае;

• РТр = {Р^бР, р2ТэР, РзТэР ], р1^бР= ТэР, р2ТэР = {Р^Гр/ / / = 1, I Хисх I ],

p2ZPг = ТэР \ ¿р/, РзТэР = {РзГр/ / ' = 1, I Хисх I ], РзЩ = ур/.

Рис. 4. Модель двухуровневой структуры трехсвязный список с вектором прямого доступа V к вершинам модели списка Ьв:

уйр^ <Мр I Гц I, г =

.7 ^р "р 1 * "]

В результате объединения по вершинам ург и гу.н & графов О

dlvs

и G

p

Gd-p (Z, 7, FZ) = Gdlvs (Z2, Y1, FZ2) u Gp (Zp, YP, FZP),

получим модель комбинированной структуры - трехсвязный список с векторами прямого доступа к элементам списка и к спискам Здесь Z = {12, Zp}, 7 = {71, 7р}, FZ = ^2, (рис. 5).

Теперь удаление вершины хг заключается в обнулении 7Рг е 7Р графа ОР , удалении вершины 1эг е ZэL, т. е. графа О3г, и выполняется с вычислительной сложностью, равной р.

Таким образом, формальный синтез структуры производится операцией объединения рассмотренных выше графов:

(1, 7, FZ) = Ош Zi}, (7Д, 7р}, FZD, FZL)^ Оу (^у, 7у, FZv)и и 65 ! 7& FZs)и бр (Zp, 7р, FZp).

Модели рассмотренных структур, содержащие информацию, необходимую для оценки емкостной и вычислительной сложности операций над ними имеют вид:

• каждого двусвязного списка данных Lj

Ор ({<{2у.н/, ¿у.кЛ, <2эЦ, 0, ^А>}, <7ц, ^З>, F{Zу.нj, ^у.кр}, FZэLj),

7 = 1 да;

Рис. 5. Модель двухуровневой структуры трехсвязный список с векторами прямого доступа к вершинам модели списка Ьв и вершинам -указателям начала списков {£;}:

у4'о ^ Wj, | Гщ | >, г = | и, ур? = ¿у.н я/

• двусвязного списка данных ьо

Оьо ({{<Туо, Уа>, <Тэо, Q, Уа>], <Уо, Уз, Уа >], РТв);

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

• вектора адресов прямого доступа V ОУ ({^бу, Уа>, <Zэv, Q>], <Уv, Уа>, РZv);

• вектора адресов прямого доступа Р ОР ({^р, уа>, <Тэр, Q >], <Ур, уа>, РТр);

• каждого односвязного списка адресов яг О3г ({<Гу.н яг, Уа> <Тэг, Q, Уа>], РТ/), / = 1, П.

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

Ус = Уа (3 А т + 5 т + п + 4) + уз т (А + 3),

где А = I Ги! .

Полученная синтезированная двухуровневая структура представляет собой трехсвязный список с векторами прямого доступа к элементам списка Ьо и указателям начала списков {8} (рис. 6). Вычислительная сложность выполнения основных операций доступа к элементам первого и второго уровня над этой структурой данных благодаря реализации в структуре дополнительных отношений составит:

1) в множестве <и, Ж, I Г и I >: поиск элемента

• по номеру qi = 1,

• по значению (в том числе максимального и минимального)

qVol = т / 2;

2) в множествах Гц-:

• удаление элемента хк (через двусвязный список qdel = 1.

• операция Ущ е Гхк : Гц- := Гц- \ хк.

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

аБР

X

L

P

/ 1 0 0

Рис. 6. Синтезированная двухуровневая структура - трехсвязный список с векторами прямого доступа к элементам списка Ьв и указателям начала списков ^^

По постановке задачи синтеза структур данных для представления объектов задач рассматриваемого класса на основании выполненного анализа можно сформулировать следующие положения:

1) объект задачи структурного анализа или синтеза (граф) задается аналитически совокупностью множеств и множеств подмножеств. (При матричном задании задача синтеза эффективных структур данных не стоит.);

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

3) структуры данных для представления множеств и подмножеств выбирают в соответствии с требованием минимальной вычислительной сложности выполнения комплекса операций, заданных над этими множествами в алгоритме, с учетом ограничения на емкостную сложность представления объекта (вектор, односвязный или двусвязный список);

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

5) каждая дополнительная структура требует затрат памяти на ее организацию.

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

• совокупность множеств, представляющих объект и основные отношения между этими множествами и их элементами, а также размер элемента данных каждого множества;

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

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

• количество повторений каждой операции над объектом в алгоритме;

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

• совокупность структур, реализующих дополнительные отношения в основной структуре данных;

• допустимый объем памяти, который может занимать синтезируемая структура.

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

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

1. Овчинников В. А. Алгоритмизация комбинаторно-оптимизационных задач при проектировании ЭВМ и систем. - М.: Изд-во МГТу им. Н. Э. Баумана, 2001. - 288 с.

2. Иванова Г. С. Математические модели структур данных // Информационные технологии. - 2006. - № 9. - С. 44-52.

3. Иванова Г. С. Методология и средства разработки алгоритмов решения задач анализа и синтеза структур программного обеспечения и устройств вычислительной техники: Дис. ... д-ра техн. наук: 05.13.11. - М., 2007.

Статья поступила в редакцию 14.05.2012

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