Научная статья на тему 'Применение операций над гиперграфами для компоновки схем ЭВМ'

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

CC BY
332
61
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОМПОНОВКА СХЕМ / РАЗРЕЗАНИЕ ГИПЕРГРАФА / ОПЕРАЦИИ НАД МНОЖЕСТВАМИ / ОПЕРАЦИИ НАД ГИПЕРГРАФАМИ

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

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

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

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

электронное научно-техническое издание

НАУКА и ОБРАЗОВАНИЕ

Эд №ФС 77 - 30569. Государственная регистрация №04Z11000Z5. ISSN 1994-04PS_

Применение операций над гиперграфами для компоновки схем ЭВМ

# 07, июль 2011

авторы: Овчинников В. А., Пламадялов А. А.

УДК 004

УДК 004.3 + 519.6

МГТУ им. Н.Э. Баумана vaovchinnikov@gmail.com

Задача компоновки состоит в определении состава конструктивных модулей ЭВМ. Рассмотрим решение задачи компоновки декомпозицией структуры объекта, например функциональной схемы, на части таким образом, чтобы критерий оптимальности достигал экстремального значения. Корректной моделью схемы является гиперграф, представленный в форме H(X, U, ГХ, Ги, FiX) или кусок гиперграфа Нк(Хк, ик, О*, Гик, FХ), а задача декомпозиции состоит в разрезании Н(Х, U) или Нк(Хк, U) на совокупность Б(Н*) кусков Н/К(Х/, Ц), l = 1, L, где L - требуемое количество частей структуры. Будем считать, что моделью схемы является кусок гиперграфа Нк, который задан аналитически в форме Нк(Хк, U, ГХ*, ГЦ", FiX).

Описанные в литературе алгоритмы декомпозиции решают задачу разбиения множества вершин гиперграфа X или его куска Хк на совокупность непересекающихся подмножеств Xl - B(X) = {Xl}, l = 1, L таких, что:

Xi ф 0, Xi n Xp = 0, u Xi = X.

l £ L

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

- определить множество рёбер куска Ul, разделить его на подмножества внутренних UUnt и внешних Ukxt;

- определить множества образов вершин ГХ/ и рёбер Г и полученного куска относительно предикатов инцидентности и множество образов вершин Г1Х/ относительно предиката смежности;

- удалить множества X 1, Ц, ГХ/, ГЦ/ и Г1Х/ из множеств Хк, Цк, ГХк, ГЦ и Г1Хк соответственно.

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

Основными процедурами, используемыми проектировщиком при решении задачи компоновки, являются: выделение части схемы и удаление её из разрезаемой схемы. Данным проектным процедурам соответствуют операции формирования куска гиперграфа, объединение кусков и дополнения куска до гиперграфа или его куска [1, 2].

Приведем последовательный алгоритм разрезания гиперграфа схемы в двух вариантах: в операциях над множествами и с использованием операций над гиперграфами. Оценим вычислительную сложность алгоритма и проведем сравнение с вычислительной сложностью того же алгоритма, описанного только с применением операций над множествами. При описании исключим оптимизирующие преобразования, которые различны для одного и другого случая и вносят в вычислительную сложность коррективы, подлежащие дополнительному изучению. Для краткости в алгоритме будем использовать упрощённую запись операций над гиперграфом. Например, формирование одновершинного куска с заранее заданной вершиной хд выполняется операцией Я/К(Х/, Ц, ГХ/, Г2Ц, ГХ/) := Н(Х, и, ГХ, ВД ГХ) # х„ которую в алгоритме будем записывать сокращённо как Н1к := Н Ф хч.

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

Таблица 1

Описание алгоритма в операциях над множествами Описание алгоритма с использованием операций над графами

1. Включаем в формируемое множество Х1 заранее заданную вершину: Х1 := (х?); Формируем одновершинный кусок Н]к :=Нк Ф хч и удаляем его из модели схемы Нк := Нк \ Н]к;

2. Определяем количество рёбер, соединяющих хч с Х хд: Бо := | Гх |; Без изменений

3. Находим множество ХК вершин - кандидатов на включение в Х1 как множество вершин, смежных вершине хд: Хк := Без изменений

4. Организуем цикл определения для каждой вершины х, е ХК множества Цп и количества Ау+ рёбер, приходящих в разрез между кусками, множество вершин которых Х1 и Х \ Х/, и Ау" - количества рёбер уходящих из этого разреза: (Ух, е Хк): Без изменений

4.1. Находим множество рёбер, инцидентных вершине х,, и осуществляем инициализацию параметров Цп, Ау", Аsi+: Ц, := Гх ; ип := 0; М- := 0 ; А^ := 0; Без изменений

4.2. Организуем цикл анализа рёбер множества и,: (Уи} е Ц) : Без изменений

4.2.1. Определяем вершины, инцидентные ребру Щ: Х := Г2иу; Без изменений

4.2.2. Проверяем условие (Ухк е Х) (хк е Х1 . х,) = «истина». Если условие удовлетворяется, то переход к п. 4.2.3, иначе - к п. 4.2.4; Без изменений

4.2.3. Подсчитываем показатель Ау," := Ау," +1 и переходим к п. 4.2 Без изменений

4.2.4. Проверяем условие (Ухк е Х) (хк £ Х/) = «истина». Если условие удовлетворяется, то переход к п. 4.2.5, иначе -к п. 4.2; Без изменений

4.2.5. Запоминаем ребро, приходящее в разрез, и подсчитываем показатель Ast+: Цп := Цп . Uj ; Ast+ := Ast+ + 1; Без изменений

4.3. Подсчитываем показатель As, := Ast+ - As,; Без изменений

5. Находим вершину xt £ XK, для которой As минимально: Ast := min{Asj £ AS} ; xt o st; Без изменений

6. Подсчитываем количество рёбер в разрезе: S0 := S0 + Ast; Без изменений

7. Проверяем ограничение на количество внешних выводов l -й части схемы S0 < [sl]дOп. Если условие выполняется, то переход к п. 8, иначе - к п. 12; Без изменений

8. Включаем вершину в множество Xl := Xl . xt; Формируем одновершинный кусок И]К:= Нк Ф х{, добавляем его к модели 1-й части схемы Н : = Н1 иН1к и удаляем из модели оставшейся схемы Нк :=НК \ НК

9. Поверяем условие |Xl| < nl, где nl - требуемое количество элементов l-й части схемы. Если условие выполняется, переход к п. 10, иначе - к п. 13; Без изменений

10. Определяем множество вершин, инцидентных рёбрам множества Цп: хп := u Г2«,-; U} £ Щ1 Без изменений

11. Корректируем множество вершин XK := {XK u Xtn} \ xt и возвращаемся к п. 4; Без изменений

12. Дальнейшее формирование невозможно из-за нарушения ограничений, переход к п. 14; Без изменений

13. Вывод результатов -подмножество вершин Xl. кусок гиперграфа Нк.

14. Конец алгоритма.

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

(в п.п. 1 и 8) и объединение одновершинного куска с куском - моделью формируемой части схемы (п. 8).

Получим оценку вычислительной сложности процесса выделения одной подсхемы для обеих версий алгоритма. При использовании алгоритма в операциях над множествами вычислительная сложность процесса складывается из сложности алгоритма, операции формирования куска гиперграфа по множеству Х]к - Н/К(Х/, Ц) := Нк(Хк, Цк) Ф Х/ и операции дополнения сформированного куска гиперграфа Н/к(Х/, и/) до куска гиперграфа Нк(Хк, ик) (модели оставшейся части схемы) Нк(Хк, Ц) := Нк(Хк, Ц) \ Н/К(Х/, Ц).

Асимптотическая оценка вычислительной сложности первой версии ал-

5/2

горитма получена в [3] и равна О(п ). Вычислительная сложность операции формирования куска гиперграфа равна О(т2) или О(п-т), так как \Х/ \ ограничена п/ = п/сот1„ \ Ц/ \ = т /соп^, |Гх,| = сот1 и |Ги) = сот1 (см. статья 2 в эл. Ж.). Учитывая, что для схем ЭВМ, представленных в функциональных элементах невысокой степени интеграции, п-= т с точностью до константы, будем использовать оценку О(п ).

Для рассматриваемой задачи схемно-топологического проектирования средств ЭВТ асимптотическая оценка вычислительной сложности операции дополнения «в худшем» - существенно завышена. Представляется целесообразным получить реалистичную оценку. Анализ формального описания этой операции [2] показывает, что определяющий вклад в вычислительную сложность вносит определение образов ребер куска - результата операции. С учётом принятых обозначений соответствующее правило примет вид:

ГЦ = {Гц : и) е Ц/п V Гц \ Х/ : ц е Ц/х / Ц е Ц, Гц е ГЦк}.

Так как \ Ццпг\ < т и согласно закону Рента [4] \ Ц/ехг\ ограничена п1/2, реалистичной оценкой вычислительной сложности операции дополнения будет

3/2

О(п ). Приводя все оценки к переменной п, получаем:

Орез = О(п5/2) + О(п2) + О(п3/2) = О(п5/2).

Для реализации алгоритма с использованием операций над гиперграфами сопоставляемой с Орез величиной является вычислительная сложность самого алгоритма. Пунктами, имеющими различную вычислительную сложность, являются пункты 1 и 8.

Операция формирования одновершинного куска гиперграфа H1K(X1, U1) имеет вычислительную сложность О(1), дополнения его до куска Нк - О(п2т) в худшем. Получим реалистичную оценку вычислительной сложности, учитывая, что в операции участвует одновершинный кусок гиперграфа. Для этого правило определения образов ребёр куска гиперграфа - результата этой операции запишем в виде:

r{U\U1nf}= [Гц : uj € {U^ext. U1} V ruj\X1 : uj е U^/ц е {UUnt}, Гц е rU}.

Так как I Uext\ ограничена n1/2, I U1 I < р(ц) •p(x) = const и |Х1к | = 1, асим-

3/2

птотическая оценка вычислительной сложности данной операции будет О(п ).

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

3/2 5/2

ся величиной О(п ) • О(п) = О(п ).

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

Напомним, что результатом работы алгоритма в варианте без операций над гиперграфами является подмножество вершин куска гиперграфа Xf, а с использованием операций формирования, объединения и дополнения - аналитическое представление куска в форме H/K(X/, U/, Г1Х/, r2U/, FX).

Использование операций над гиперграфами рассмотрим также на примере формализации многоуровневого (блочно-иерархического) подхода, реализованного в программном комплексе компоновки hMeTiS [5]. Данный программный комплекс предназначен для разрезания гиперграфов большого размера и может быть использован при проектировании СБИС, баз данных, систем управления транспортом и т.п. Задача компоновки ставится так же,

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

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

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

Далее на каждом уровне детализации, начиная с последнего, выполняется разукрупнение вершин гиперграфа, разрезание улучшается итерационным алгоритмом. Эти две процедуры повторяются до тех пор, пока не будет получено разрезание исходного гиперграфа Н(Х, V) на две части, т. е. на два куска Н1к(Х1, VI) и Н2к(Х2, Ц>).

Описанная основная процедура применяется к полученным кускам гиперграфа до получения совокупности Б(Н?) кусков Н/К(Х/, V) с требуемым количеством вершин.

Для снижения размера гиперграфа могут использоваться алгоритмы уравновешенной двоичной или и-арной (неуравновешенной и уравновешенной) свёртки. При и-арной свёртке объединяются вершины не смежных рёбер. Результатом работы алгоритма свёртки на г-м уровне детализации является аналитическое представление гиперграфа Н(УГ, V), где у[ = У/-1св с У-1 и множество кусков {Нксв(7/-1св, ^г-1св)},7 = 1, 2,., \У\ (после первого применения алгоритма свёртки, т.е. на первом уровне детализации, получается гиперграф Н(У1, V1), где у/ = / = X хк,..., х}сX).

Рассмотрим вариант, когда результатом работы алгоритмов начального разрезания и итерационного улучшения являются два подмножества вершин, соответствующего уровня. Для работы всех указанных алгоритмов гиперграф целесообразно задавать множествами вершин, рёбер и их образами относительно предикатов инцидентности и смежности. Как было условлено в разде-

ле 3 для краткости исходный гиперграф и гиперграфы каждого уровня детализации будем обозначать в виде Н(Х, Ц) и Н(У, У).

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

Таблица 2

N Выполняемый алгоритм или операция Комментарии

1. Лд(Н(Г, У)) ^ {7ь 7/} Разбиение множества 7 на два подмножества случайным или последовательным алгоритмом

2. Н1к(71г, ¥{) = Н(У, У) а У1г, Н2к(7/, У2Г) = Н(Г, У) а 72г Получение полного аналитического представления кусков Н1к и Н2к на г-ом уровне детализации операцией формирования

3. (УУ е 7{) : Н1к(71г"1, У{л) = Н1к(71г, У{ / у) ^ 7УсвГ"1), (УУ) е 7/) : Н2к(72гЛ У2г-1) = Н2к(72г, У2г / у) ^ 7)СвГ'1), Получение аналитического представления кусков Н1к и Н2к на г-1-ом уровне детализации применением операции дефакторизации к вершинам множеств 71г и 72г

4. Н(Г\ У"1) = Н1к(71г-1, У"1) и Н2к(72г-1, У/"1) Получение аналитического представления гиперграфа на г-1-ом уровне детализации операцией объединения кусков

5. Лмт(Н1к(71 м, УГ1), Н2к(72г-1, У/"1)) ^ {V"1, 72уГ-1} Улучшение разрезания итерационным алгоритмом

6. Н/^/"1, У/"1) = Н(У-1, У"1) и 7]уг~1, Н2к(72г'1, У2Г-1) = Н(УГ-1, Г1) и 72уг-1 Получение аналитического представления кусков Н1к и Н2к на г-1-ом уровне детализации операцией формирования после перестановок вершин

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

Литература

1. Овчинников В. А. Операции над ультра- и гиперграфами для реализации процедур анализа и синтеза структур сложных систем: Наука и образование. Инженерное образование: Эл. Науч. Издание. - 2009. - № 11.

2. Овчинников В. А. Операции над ультра- и гиперграфами для реализации процедур анализа и синтеза структур сложных систем: Наука и образование. Инженерное образование: Эл. Науч. Издание. - 2009. - № 12.

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

4. Савельев А. Я., Овчинников В.А. Конструирование ЭВМ и систем: Учеб. для вузов по спец. «Выч. маш., компл., сист. и сети.» - 2-е изд., пере-раб. и доп. - М.: Высш. шк., - 312с.

5. G. Karypis, R. Aggarwal, V Kumar, S. Shekhar, «Multilevel Hypergraph Partitioning: Applications in VLSI Domain», IEEE Trans. VLSI Syst., vol. 7, NO 1, March 1999, pp. 69-79.

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