УДК 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, Уа>], <Уо, Уз, Уа >], РТв);
• вектора адресов прямого доступа 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