После определения планарности, в том случае когда ММ КС непланарна, решают задачу распределения ребер графа или гиперграфа (соединений КС) по слоям. Целью при ее решении является наиболее эффективное использование площади КП при одновременной оптимизации таких конструктивных параметров КС, как число слоев, межслойных переходов, процент реализованных соединений.
В зависимости от организации процесса трассировки расслоение осуществляется либо до, либо после, либо в процессе трассировки.
Основная идея алгоритмов расслоения, работающих до трассировки, заключается в априорном выделении в КС по тем или иным признакам конфликтующих групп соединений, которые ввиду неизбежных пересечений невозможно назначить на один слой.
Часто используемым методом расслоения до трассировки является простой алгоритм формирования двух подмножеств соединений, распределяемых в ортогональной системе координат в двух слоях. Подмножества вертикальных и горизонтальных отрезков назначаются в различные слои. Решение получается быстро, однако очевидно, что оно не оптимально с точки зрения требуемой площади трассировки и числа межслойных переходов (рис. 4.14).
В [59] предлагается задавать меру «взаимодействия» соединений при решении задачи расслоения путем построения для каждой цепи еiохватывающего прямоугольника Пi Считается при этом, что две цепи перекрываются, если . Далее строится граф перекрытий Gp = (E, U), где множество вершин Е соответствует цепям, а ребра u принадлежащее U—перекрытиям между ними.
Очевидно, что хроматическое число урграфа Gp = (E, U) служит верхней оценкой числа слоев, необходимых для реализации всех соединений КС. Величину урназывают степенью перекрытия системы подмножеств еi. Очевидно, все связывающие деревья для eiмогут быть назначены на один слой, когда ур=1.
Рассмотрим пример построения охватывающих прямоугольников для G-цепей (рис. 4.15). Для указанного примера легко построить граф перекрытий Gp(рис. 4.16). Согласно алгоритму (см. 1.3) можно раскрасить граф Gpв два цвета (I и II на рис. 4.16). Тогда получаем ур=2. Иными словами, схема может быть реализована в двух слоях и содержит два непересекающихся
подмножества следующего вида: {е1, е3, е6} — первый слой; {е2, е5, е4)—второй слой.
Учет геометрических ограничений в описанной выше процедуре можно дополнить, учтя электрические и другие параметры при реализации еiи еjцепей в одном слое. В таком случае подсчитывается аддитивная функция вида
где aij — эвристические весовые коэффициенты; pij— учитываемые параметры цепей.
Здесь, как и в предыдущем случае, строится граф несовместимости Gp = (E, U), однако каждому uij принадлежащему U теперь присваивается вес FijЗадача расслоения сводится к построению такой раскраски графа в у цветов, чтобы сумма весов ребер, соединяющих вершины одного цвета, была минимальной. При этом раскраска возможна одним из известных алгоритмов, описанных в 1.2.
Отметим, что степень влияния еiна еjможно оценивать как число путей минимальной длины для проведения соединения ej через Пj. На рис. 4.17 показано, как запрещенная (заштрихованная) область препятствует оптимальной реализации цепи еj
Рассмотрим теперь, каким образом организуется процесс расслоения, если он производится после трассировки, когда имеется совмещенный топологический эскиз. Теоретические основы указанного метода разработаны Кодресом, Вейсманом и Бадером [59]. Постановку задачи расслоения рассмотрим на примере. Пусть задано расположение множества проводников М = (а, a'), (b, b') {с, с'), (d, d'), (e, e') (f, f') на плоскости (рис. 4.18). Сопоставим с ней граф перекрытии (пересечений) Gp = (E, U) (рис. 4.19), где eie E соответствует множеству проводников, а ребра ueU—их пересечениям. Задача сводится к нахождению двухцветной раскраски Gp, при которой суммарное число ребер, соединяющих одноцветные вершины, будет минимально. Это равносильно выделению в Gpмаксимального по числу ребер бихроматического подграфа. На основе известного свойства, состоящего в том, что граф является бихроматическим тогда, и только тогда, когда он не содержит циклов нечетной длины, используют процедуру раскраски, основанную на решении задачи линейного программирования. В нашем случае граф бихроматический и расслоение имеет вид: I — {(а, а'), (с, с'), (е, е')} и II — {(b, b') (d, d') (f, f')}.
Ввиду того, что в настоящее время отсутствуют критерии выделения максимальных n-хроматических подграфов в исходном, рассмотренные методы не применимы для n-слойных систем. Поэтому здесь используют эвристические процедуры раскраски в е цветов с последующим последовательным заполнением слоев оставшимися соединениями.
Рассмотрим алгоритм решения задачи для неограниченного числа слоев. Пусть для каждой цепи еiзадано в общем случае несколько вариантов реализации связывающего дерева {dij/j=1,...,2} 2, ..., п) (в простейшем случае п=1). Особенность задачи состоит в том, чтобы для каждой пары выводов, для которых п> 1, выбрать одно соединение, приводящее к минимизации требуемого числа слоев.
Решение проводится в два этапа: на первом определяются максимальные внутренне устойчивые множества графа пересечений Gp, а на втором находится его минимальная или квазиминимальная раскраска.
Рассмотрим пример (рис. 4.20). Применив алгоритм определения семейства независимых подмножеств (1.3), получим, что Gp(рис. 4.21) имеет следующие максимальные независимые подмножества (НП):
Имея семейство ф = {ф1, ф2, ф3, ф4}, можно переходить ко второму этапу, связанному с нахождением минимальной, квазиминимальной или локально
оптимальной раскраски вершин графа пересечений Gp . В зависимости от сложности КС используют точные (ВСА = О (п!)), итерационные (ВСА = О(n2)) или последовательные (ВСА = О(n)) алгоритмы.
Решение этой задачи можно свести к отысканию покрытия множества вершин графа Gpнаименьшим числом независимых подмножеств.
Выделим в Е подмножества, соответствующие возможным реализациям каждого из соединений: {a}, {b}, {с}, {d}, {e}, {f}, {g}. Полученную информацию будем учитывать при выборе одного из вариантов соединения в покрывающих подмножествах.
Очевидно, что исходный граф Gpпокрывается двумя НП {ф1} {ф2}. С учетом возможности реализации соединения g или f для контактов 9—10 выбираем соединение g и, удаляя совпадающие соединения из покрывающих НП, получаем разбиение на два слоя: I —{а, с, d}, II —{g, e, b}. Необходимо отметить, что если бы рассматривалось только одно соединение для контактов 9, 10, то для решения задачи потребовалось бы три слоя.
Рассмотрим эвристический алгоритм, позволяющий сократить межслойные переходы для ортогонального расслоения.
1. Выделить все непересекающиеся отрезки цепей и пометить их. (Очевидно, их можно назначить в любой из слоев без вынесения межслойных переходов.)
2°. Выделить в множестве непомеченных отрезков подмножество, любой из отрезков которого смежен не менее чем с одним отмеченным отрезком цепи.
3°. Поместить каждый из отрезков zeZ' в тот слой, в котором располагаются помеченные, смежные с ним отрезки. При наличии нескольких смежных отрезков выбрать тот, при размещении которого требуемое число межслойных переходов наименьшее.
4°. Пометить размещенный отрезок.
5°. Если z' = 0, переход к 6°, иначе — переход к 3°.
6 . Конец работы алгоритма.
Здесь ВСА равна О(п2)!. Следует отметить, что выбор того или иного алгоритма расслоения является нетривиальной задачей, требующей тщательного анализа исходных требований. Для расслоения во время трассировки в основном используют методы динамического программирования или последовательные алгоритмы с оценкой каждого шага и возвратом назад в случае улучшения предыдущего результата.