НАУКА и ОБРАЗОВАНИЕ
Эл№ФС77- 30569. Государственная регистрация №0421100025.ISSN 1994-04OS_
Оценка эффективности применения операций над упорядоченными множествами
77-30569/239406
# 10, октябрь 2011 Овчинников В. А., Иванова Г. С.
УДК 004.3 + 519.6
МГТУ им. Н.Э. Баумана gsivanova@ gmail. com
Эффективность применения операций над упорядоченными множествами рассмотрим на примере решения задачи декомпозиции структуры сложной системы на подсистемы, например схемы электрической функциональной на подсхемы. Известна формальная постановка этой задачи как задачи разбиения множества вершин гиперграфа на совокупность непересекающих-ся подмножеств [1]. Там же рассмотрен и один из вариантов её решения посредством алгоритма последовательного разрезания гиперграфа. Результатом работы этого алгоритма является множество вершин куска гиперграфа Xl ^•Э/, где Э1 - множество компонентов сформированной подсистемы.
Множество вершин Xl ^Э/ может быть также получено, например алгоритмом выделения минимальных массивов гиперграфа [2]. С практической точки зрения предпочтительней выделять квазиминимальные массивы с ограничением min < | Xi \ < max.
После окончания процесса декомпозиции необходимо проверить условия:
(JX = X,X/ n Хр = 0,l,р е L,l * p
leL
Оценку эффективности использования операций над упорядоченными множествами выполним на примере формирования множества Xl последовательным алгоритмом. Это объясняется тем, что алгоритм выделения
минимальных массивов гиперграфа сложен, а вычислительная сложность его реализации зависит от распределения связей между компонентами объекта и может быть в пределе экспоненциальной.
После определения Хг основными проектными процедурами, реализующими процесс декомпозиции, являются: выделение части схемы, удаление её из разрезаемой схемы и повторный запуск алгоритма. Включим в процесс также контрольную операцию:
V/ = 1(1 Х1 I -1)(X * х+1Х
проверяющую возможность такого искажения информации, при которой один и тот же компонент системы будет указан неоднократно.
Таким образом, процесс декомпозиции структуры системы составят следующие процедуры:
1. Определение XI = Хг последовательным алгоритмом разрезания гиперграфа.
2. Проверка условия
^ =1(| Х 1 -1)(X * X+1).
3. Формирование куска Я/К(ХД и*) гиперграфа.
4. Удаление куска Я/К(ХД и*) из модели системы (гиперграфа после первого применения алгоритма разрезания и куска гиперграфа в дальнейшем).
5. Проверка условия окончания процесса декомпозиции | Хостк | > п/, где
Хостк - множество оставшихся вершин гиперграфа (ещё не скомпонованных элементов системы), п - допустимое количество компонентов подсистемы. При выполнении условия - переход к п. 1, в противном случае - к п. 6.
6. Проверка условий
= Х, ХК п Хкр =0,1, р е Ь,1 * р
!еЬ
Получим оценку сверху вычислительной сложности реализации описанного процесса в функции от мощности множеств Х, (Х/к), и, (и*), Гх и Г и, учитывая только операции сравнения.
Приведём описание и схему первого варианта последовательного алгоритма разрезания гиперграфа [3]. Гиперграф задан аналитически в форме Н(Х, и, ГХ, Г и, F1X). На текущем шаге алгоритма в качестве кандидатов на включение в формируемое подмножество Х1 выступают вершины, связанные с вершинами, уже вошедшими в Х/. Обозначим это множество через Хк.
Количество рёбер, попадающих в разрез, подсчитывается по рекуррентной формуле:
= ?о + Asl+ - Aslr,
где - количество ребер, находящихся в разрезе между кусками гиперграфа
после выполнения предыдущего шага алгоритма, Д/+ и Д/" - количество рё-
бер приходящих в разрез и уходящих из него при включении в Х1 вершины х. Из рёбер и е Гхь т. е. инцидентных вершине х, приходят в разрез те, для которых выполняется условие:
Х; П Хг =0, где Х] = Ги}, (1)
и уходят из него такие, для которых справедливо:
Х}' х/£ Х. (2)
Множество вершин кандидатов Хк корректируется, исключая из него вершину, вошедшую в Х, и добавляя новые, которые становятся кандидатами за счет включения в разрез новых ребер - это множество Х? в п.10 алгоритма. Структуры данных для представления всех множеств и массива = <Д? /> - динамические вектора.
1. Включаем в формируемое множество Хг некоторую вершину хч\
Х1 {хд}.
2. Определяем количество ребер ?0, соединяющих хд с Х\ хч\
и' = Гхф ?о = |и’|.
3. Находим множество вершин Хк - кандидатов на включение в Х{.
Хк ^1хд.
4. Для каждой вершины хі є Хк определяем множество инцидентных ей ребер Ц, подмножество Цп е Ц ребер, приходящих в разрез, и подсчитываем показатель Аз. Для чего выполняем:
4.1. Пі = Гх, Азг:=0, Азг+ = 0.
4.2. Для Уиу. єЦ выполняем п.п. 4.2.1...4.2.5:
4.2.1. Находим множество вершин X, входящих в ребро и,: X, = Ги,.
4.2.2. Проверяем условие
X, \ хі е X, = "истина".
] ‘ 1
Если условие не выполняется, то ребро и, находится в разрезе -переходим к п.п. 4.2.4. Выполнение условия означает, что ребро уходит из разреза - переходим к п. п. 4.2.3.
4.2.3. Подсчитываем показатель Аз- : Аз/ = Аз/ +1 и переходим к п. 4.2.
4.2.4. Проверяем условие Ху п Х1 = 0 = "истина".
Если условие выполняется (это означает, что ребро и, приходит в разрез при включении хі в X/), то переходим к п.п. 4.2.5. При невыполнении условия переходим к анализу следующего ребра, т.е. к п. 4.2.
4.2.5. Включаем ребро и, в множество Цп: Цп = Цп и,, подсчитываем показатель Азг- Азг+ = Азг+ + 1 и возвращаемся в п. 4.2.
4.3. Определяем значение Азг-: Азг- = Азг+.
5. Находим вершину х1 є Хк, для которой Аз минимально:
Аз = тіп (Азг- є А5}, хг о АзГ.
6. Подсчитываем количество ребер 50, соединяющих множества Хі и X \ Х/ после включения хг в Х(.
5о = 5о + Аз?.
7. Проверяем ограничение на количество внешних выводов 1-й части схемы: 5о < [3/]доп.
Если условие выполняется, то переходим к п.8, иначе - к п. 12.
8. Включаем вершину х, в множество Хі , и исключаем ее из Хк:
X/ = X/. х,, Хк = Хк\Х, .
9. Проверяем условие: |Х/| < п/,
где п - требуемое количество элементов в /-ой части схемы. Если условие выполняется, то переходим к п.10, иначе - к п.13.
10. Определяем множество вершин, входящих в множество ребер ип.
х; = и Ги, \ х,.
иуЄЦ
11. Корректируем множество вершин кандидатов Хк:
Хк = {Хк и Х,п }
и возвращаемся к п.4.
12. Дальнейшее формирование Х/ невозможно из-за нарушения ограничения на число внешних выводов. Переход на окончание работы алгоритма к п. 14.
13. Вывод результатов.
14. Конец работы алгоритма.
Схема изложенного алгоритма показана на рис. 1, нумерация пунктов описания и блоков схемы совпадает.
На схеме в комментариях показаны размерности массивов (множеств) и количества операций сравнения, выполняемых в ходе работы алгоритма. Все оценки, кроме размера множеств Хк (и массива А5) и количества операций сравнения, необходимых для нахождения массива Х,п в п. 10, очевидны. Максимальное количество вершин кандидатов |Хк|тах оценим, используя закон Рента [2]. На основании этого закона количество внешних выводов схемы от числа элементов в ней оценивается по формуле N = а • Ыр, где а -среднее количество входных и выходных выводов элементов схемы, р = 0,
5...0,75 - показатель Рента. В наших обозначениях а - это |Гх| = р. Примем а равным ртах (в дальнейшем будем ртах обозначать просто р) и р = 0,5. Тогда количество ребер в разрезе | П’|тах = р-ХГ2, где Х| = і =1, 2.п/.
Так как в каждое ребро входит не более А вершин, то
[Хг|шах — р ' А • I .
Начало
X, :={xq}
I
и':=^ ,
So:=|ГXq|
3^ Хк:=Г и' \ Xq
г
УХе Хк
- 4.1
^:=Гх!, и":: а Э|+:=0, л эГ:=0
4.2
"(р?)
|Хк|тах<р А/ / =1,2,...П|-1
!|тах р
А
Проверка условия требует не более А/ 1_ операций сравнения
Д Э!+:= Д Э!++1 ,
иЛ= Ц".ц
- 4.3 --------
дэ^ дЭ!+- д Э:
Проверка условия требует не более А/ 1_ операций сравнения (В цикле 4.2 при выполнении блоков 4.2.2 и 4.2.4 произойдет не более 2А/ р операций сравнения)
(В цикле 4 при выполнении блоков 4.2.2 и 4.2.4 произойдет не более 2А2 р 2/ 3/2 операций сравнения)
5 а э^тл^л э^Б)
Л
| р^-31 тах р А1
Для определения э4 требуется не более
А Р/1/2 операций сравнения
^вТда
Х,:=Х,.х4,
Хк:=Хк \ х
[|Х,|= /=2,3... п, ^Х4п|тах< ( А-1) р
Для исключения вершины XI необходимо выполнить не более р А /1/2 операций ее сравнения с
Х| еХк
Для получения Х4п требуется не более А2 р ( р -1)/2+ р А операций сравнения
Для определения Хк требуется не более
А2р 2/1/2операций
сравнения
А
Дю
12
Нормирование Х|/ / невозможно /
,13 Вывод Х| ={...}
Рис. 1. Схема последовательного алгоритма разрезания гиперграфа
Для сравнительной оценки вычислительной сложности реализации процесса декомпозиции достаточно рассмотреть однократное выполнение процедур 1...4 и процедуру 6. Отметим, что при использовании операций над упорядоченными множествами сортировке подлежат только множество Хг в порядке возрастания индексов элементов, массив АБ по возрастанию значений его элементов и элементы х множества Хк в соответствии с положением Аз в массиве AS.
1. Определение Х1 = Х1 последовательным алгоритмом разрезания гиперграфа. Основной вклад в вычислительную сложность алгоритма вносит его циклическая часть - п. п. 4.11.
Выполнение цикла 4.
Неупорядоченные множества. Проверка условий блоков 4.2.2 и 4.2.4 требует не более 2А ■i операций сравнения элементов массивов Xj и Xi, следовательно, вычислительная сложность цикла 4 не более
2A-i-p-p-A-i/2 = 2A2-p2-i 32
Упорядоченные множества. Проверка условий блоков 4.2.2 и 4.2.4 на основании (2) и (1) требует не более 2i и 2(i + А - 1) операций сравнения соответственно. Отсюда вычислительная сложность реализации п. 4 будет не более
2(2i + А) ■ p-p-A-i2 = 4A-p2-i 3/2 + 2A-p2-i /.
Как видно из схемы алгоритма количество операций сравнения, необходимых для выполнения п. п. 5, 8 и 11 имеет на единицу меньший порядок сложности.
Оценим вклад, вносимый процедурой сортировки при упорядочивании множеств Xk и X/. После выполнения п.3 \Xk | < р-А. При каждом i - м выполнении тела цикла 4 удаляем одну вершину и 3 \ХГП \ < р-А вершин добавляем. Ориентируясь на сортировку с помощью двоичной кучи, получим для Xk
N = Р - А - l0g2(Р - А) + Р - AI l0g2(Р - А - i 12)
i=1
1
где Ns - суммарное количество операций сравнения, выполняемых при формировании множества Х/. Найдя через интеграл оценку
n
^ log2 i = n log2 n - n
i=1
1
имеем
NZ< р ■ A ■ n [log2 (P ■ A) + (log2 П - 1)/2].
Упорядочивание множества Xk требует ni /og2n/ операций сравнения. Таким образом, вклад процедур упорядочивания также имеет меньший порядок, чем цикла 4. Оценивая эффективность использования операций над
упорядоченными множествами при получении X последовательным алгоритмом как отношение членов старшего порядка вычислительной сложности цикла 4, получим:
Калг = 2А2-р2-,3/2 / (4А-р2-,3/2) = А / 2.
2. Проверка условия V, = 1 (| XI | - 1) (х, Ф х, + Д Очевидно, что проверяя это условие, мы должны предполагать, что XI может быть неупорядоченным кортежем. Например, в процессе упорядочивания множества XI = {х3, х1, х6, х4, х5, х9} из-за искажения имени элемента х9 на х4 может быть получен кортеж < х1, х3, х4, х5, х6, х4>. Следовательно, в алгоритме, устанавливающем истинность или ложность этого выражения, никакие свойства упорядоченных множеств использовать нельзя.
3. Формирование куска Нк(XТ, ик) гиперграфа. При оценке вычислительной сложности выполнения этого этапа процесса декомпозиции будем считать, что кусок гиперграфа должен быть получен в форме HJе(XJе, ик, ГXIе, Г и/). Подсчёт количества операций сравнения будем выполнять, используя выражения формального описания выполнения операции получения куска Я1к гиперграфа [4].
3.1. Определение множества
ик = и Гх, ,Гх, е ГX,
Неупорядоченные множества. Количество операций сравнения, необходимых для определения иIе будет определяться как:
X?!
я3.1 = р 2 [1+а ■- 2^
,=1
где, например, при объединении трёх подмножеств рёбер
{Гх, и Гх, } и {Гхк} ак= |Гхк'| / |Гхк|, Гх*/- множество рёбер, принадлежащих
вершине хк и не принадлежащих вершинам множества {х,, х,}.
Считая | XI | = пI, получим:
N3.1 = р2 [п + а -п ■ (п - 3) / 2].
Поскольку 0 < а < 1, Я31 < р2- (п/2 - п) / 2.
Упорядоченные множества. При ,-м объединении упорядоченного множества Гх, мощность множества, полученного на предыдущем шаге, равна р + а -р- (, - 1). Поскольку | Гх, | = р, то используя (2) из [5], запишем:
Я3.1 уп = 2р ^ [(2 + а - О' - 2)) - 1],
,=1
2
Отсюда N3.1 уп < р- (п/ + п/) - п/.
Нетрудно видеть, что отношение К31 = я31 / Я31 уп при росте п/ стремится к р/2.
3.2. Определение множества иД-^ = {и, е иТ : Г и, е XI / Г и, е Г и}.
Неупорядоченные множества. Обозначив |и/к | = т/ и считая т/ = |U| /Ь,
получим количество операций сравнения, необходимых для определения множества и*м:
N3.2 = А-щ т/.
Упорядоченные множества. На основании (1) из [5] - Я3.2 уп = 2п 1-т 1.
Отсюда отношение К3 2 = Я3 2 / Я3 2 уп равно А /2.
3.3. Определение множества и*ехг = ик \ и
Неупорядоченные множества. Считая | и| = | и* | /2, имеем: Я3 3 = т 2/2.
Упорядоченные множества. Я3 3 уп = 2(т/ + т//2 - 1).
При росте т[ отношение К3 3 = Я3 3 / Я3 3 уп стремится к т/.
3.4. Определение множества ГX/K = {Гх, е ГX/х, е X/к}. Как видно из выражения при формировании ГX/K, даже если учитывать операции записи, вычислительная сложность не зависит от упорядоченности множеств.
3.5. Определение множества Ги/К = {Ги, : и, е и1м V Ги, п XI : и, е и*вхг / и, е и/к, Ги, е Г и}. Операция Ги, п XI будет выполняться |и/к ех1 | = |ик |/2 раз. Не будем учитывать проверки и, е и*м и и, е иД^.
Неупорядоченные множества: Я3 5 = А-щ- т//2.
Упорядоченные множества: Я3 5 уп = т/ /2 [2(п/ + А - 1)] = т/ - (п/ + А - 1).
При росте п и т/ отношение К3 5 = Я3 5 / Я3 5 уп стремится к А /2.
4. Удаление куска И^Х?, ик) из модели системы. Для простоты символики будем рассматривать выполнение этой операции после первого применения алгоритма разрезания. Удаление выделенной части схемы реализуется операцией «Дополнение части до ультраграфа И и гиперграфа И»
[6] в варианте И^, и) \ H1к(X1к, и1к). Обозначим получаемый кусок гиперграфа как Исл (XслK, ислк).
4.1. Определение Xслк = X \ X1к.
Неупорядоченные множества: Я41 = п - п/.
Упорядоченные множества: Я41 уп = 2 (п/ + п - 1).
Отношение К4Л = Я41 / Я41 уп стремится к п/. Напомним, что п/ = п / Ь, где Ь - константа.
4.2. Определение ислк,пГ = и \ и1к.
Неупорядоченные множества: Я4 2 = т - т/.
Упорядоченные множества: Я4 2 уп = 2 - (т/ + т - 1).
Отношение К4 2 = Я4 2 / Я4 2 уп стремится к т/. Отметим, что т/ = т / Ь.
4.3. 4.4 и 4.5. Определение иод* = и^, игак = и^ш . и ГXслK =
{Гх, е ГX / х, е Xслк}. Очевидно, что на вычислительную сложность выполне-
ния этих операций упорядочивание множеств не влияет.
4.6. Определение Гигак = {Ги, : и, е и^ш V Ги, \ XlK : и, е исл^ / и, е ислк, Ги, е Г и}. Количество операций сравнения определяется выражением | Xlк | - |Г и, | - | и^в* |. - Будем считать, что | ид*/ | = | Цслк | / 2.
Неупорядоченные множества: Я4 6 = п^А - т?(Ь - 1) / 2.
Упорядоченные множества: Я4 6 уп = (п/ + А-- 1) -т^(Ь - 1).
При росте п и т/ отношение К4 6 = Я4 6 / Я4 6 уп стремится к А / 2.
6. Проверка условий
Uxг* = X, X,* п X; = 0, /, р е Ь, / * р.
/еЬ
Эти условия логически эквивалентны условию X = Г, где Г = { X1•X2• X3• ... • XI }, проверка которого требует меньшего количества операций сравнения.
Для неупорядоченных и упорядоченных множеств соответственно имеем:
N = п2 и N уп = 4(п- 1).
С учётом необходимости упорядочивания множества У получаем:
К6 = Ы6 / Ы6 уп = п / (4(п- 1) + п /og2 п) = п / 1о%2п.
Проанализировав полученные результаты, можно сделать вывод, что наиболее существенный вклад в снижение вычислительной сложности описанного процесса декомпозиции за счёт использования операций с упорядоченными множествами вносят:
- формирование куска Я/К(Х/К, и*) гиперграфа в п. 3.3 в ті раз;
- удаление куска Я/К(Х/К, Ц/к) из гиперграфа в п. 4.1 в п/ и в п. 4.2 в т/ раз;
- проверка условия X = { Х1-Х2- Х3* ... • X } в п / /о&2п раз.
Выполненные исследования показывают высокую эффективность использования операций над упорядоченными множествами в алгоритмах структурного синтеза.
Литература
1. Савельев А. Я., Овчинников В.А. Конструирование ЭВМ и систем:
Учебник для технич. вузов по спец. «Электрон. выч. маш.» -М.: Высш. шк., 1984 - 248 с.
2. Савельев А. Я., Овчинников В.А. Конструирование ЭВМ и систем: Учеб. для вузов по спец. «Выч. маш., компл., сист. и сети.» - 2-е изд., пере-раб. и доп. - М.: Высш. шк., 1989 - 312 с.
3. Овчинников В. А. Алгоритмизация комбинаторно-оптимизационных задач при проектировании ЭВМ и систем: Учеб. для вузов.- М.: Изд-во МГТУ им. Н. Э. Баумана, 2001. - 288 с.
4. Овчинников В.А. Операции над ультра- и гиперграфами для реализации процедур анализа и синтеза структур сложных систем: Наука и образование. Инженерное образование: Эл. Науч. Издание. - 2009. - № 11.
5. Овчинников В.А. Операции над упорядоченными множествами:
Наука и образование. Инженерное образование: Эл. Науч. Издание. - 2011. -№ 6.
6. Овчинников В.А. Операции над ультра- и гиперграфами для реализации процедур анализа и синтеза структур сложных систем: Наука и образование. Инженерное образование: Эл. Науч. Издание. - 2009. - № 12.