Материалы Всероссийской конференции “Интеллектуальные САПР-96”
поле, и по одной подзадаче для размещения элементов внутри каждого блока. Эффективность данного метода распределения является высокой, поскольку все подзадачи (кроме размещающей блоки, которую необходимо решить предварительно) являются независимыми, следовательно, отсутствует необходимость во взаимном обмене данными и синхронизации выполнения. Основным критерием, предъявляемым к алгоритму распределения, с точки зрения скорости решения всей задачи, в целом, является обеспечение максимально близких друг к другу времен решения всех подзадач.
При использовании итерационного подхода объектом распределения являются отдельные итерации. Задачей алгоритма распределения является генерация исходных параметров некоторого итерационного шага на основании результатов предыдущих шагов, распределяемые же фрагменты задачи выполняют оценку и улучшение исходных параметров соответствующей итерации. Следует отметить, что здесь, в отличие от блочно - иерархического подхода, процесс распределения идет непрерывно в течение всего времени решения задачи. Важной является проблема объединения результатов, полученных при параллельном выполнении некоторых итераций. С этой точки зрения представляется перспективным использование распределенной обработки применительно к генетическим и эволюционным методам.
Безусловно, оба эти подхода могут использоваться совместно, так, подзадачи, полученные на основе блочно иерархического метода, в свою очередь оказываются распределенными по отдельным итерациям. Аналогично каждая итерация может быть выполнена с использованием блочно иерархического распределения. В целом распределенное решение задачи размещения представляется высокоэффективным как с точки зрения времени выполнения, так и с точки зрения оптимальности использования вычислительных ресурсов.
Для задачи трассировки основным методом распределения также является блочно иерархический, однако общая эффективность распределенной трассировки представляется не столь высокой, как для задачи размещения. Это в первую очередь связано с тем, что необходимо учитывать взаимовлияние блоков на их границах, приводящее к высоким объемам информации, передаваемым по сети от одной подзадачи к другой. Улучшить эффективность распределенной трассировки можно посредством использования алгоритмов, ориентированных на макродискреты, либо методов анализа структуры исходной задачи, таких, как выделение изоморфных компонент.
Таким образом, использование распределенных методов позволит существенно ускорить решение задач конструкторского проектирования ЭВА посредством минимальных затрат.
УДК 658.512
Л. А. Гладков Алгоритм определения планарности графа
Задача определения планарности графа относится к числу важнейших задач САПР и состоит в нахождении такого представления графа, при котором ребра рассматриваемого графа не пересекаются между собой. Идея описываемого алгоритма определения планарности графов базируется на известном принципе Харари [1]. Согласно этому принципу, граф в планарен в том случае, когда можно выделить к - циклов, таких, что любое ребро графа принадлежит одновременно двум и только двум циклам из выделенного множества. Тогда алгоритм определения планарности графа в заключается в выделении из матрицы всех возможных циклов графа(Вгш) субматрицы(Вг1) такой, что количество строк
подматрицы Вг1 равно ш - п + 2, где ш - число ребер ,а п - число вершин графа С; и каждое ребро графа в принадлежит одновременно двум и только двум строкам субматрицы Вг1 [2,3].
Сложность задачи состоит помимо прочего в том, что прежде чем перейти собственно к определению планарности необходимо сформировать матрицу всех Циклов, что подразумевает собой полный перебор всех возможных путей в графе. В силу этого при увеличении размерности графа (п > 40) наблюдается резкий рост ВСА.
В настоящей статье предложен ряд эвристик, позволяющих если не исключить, то по крайней мере значительно уменьшить вероятность полного перебора.
Остановимся более подробно на предлагаемом алгоритме.
Прежде, чем приступить к формированию матрицы циклов, мы производим нумерацию всех ребер графа. После чего формируется список смежности, где число столбцов соответствует числу вершин графа, число строк - локальным степеням вершин графа, а элементы матрицы представляют собой номера вершин графа, инцидентных вершине с номером, соответствующим номеру текущего столбца. В такой матрице выбирается столбец с максимальным количеством строк(при наличии столбцов с равным количеством строк - любой из них) и с этого столбца начинается процесс генерации циклов к той длины. В рабочем столбце выбирается первая вершина, после чего мы переходим к столбцу с номером, соответствующим номеру текущей вершины. При этом не рассматриваются уже задействованные на предыдущих шагах вершины, а также, до достижения к • того шага, начальная вершина хО. При достижении к • той вершины алгоритм проверяет возможность замыкания цикла, т.е. наличие связи между вершинами хк и хО. В случае, если на любом из шагов обнаруживается невозможность дальнейшего наращивания(замыкания), алгоритм возвращается на один шаг назад и просматривает другие возможности для выбора пути. Таким образом, формируется некоторое множество циклов, представляющих собой цепочки вида хО - х1 - х2 хк - хО. После того, как просмотрены все возможности и сформированы все циклы, использующие вершину хО в качестве начальной, из исходного списка удаляется текущий столбец, а также из всех столбцов списка удаляются вершины, соответствующие номеру текущего столбца, после чего процесс потеряется. Причем, для того чтобы избежать повторной генерации одинаковых циклов, Достаточно в процессе работы алгоритма отслеживать вторую и к-тую позиции формируемых цепочек. Для этих целей необходимо, чтобы вершины участвующие в уже сформированных циклах, на к-той позиции, не были задействованы при дальнейшей генерации на второй позиции. Вершины, использовавшиеся в процессе генерации на к той позиции и не приведшие к замыканию цикла, могут заноситься в отдельный список и в дальнейшем исключаться из рассмотрения в качестве варианта для заполнения к - той позиции, что позволяет сократить число просматриваемых вариантов.
После того, как в результате работы алгоритма сформированы все возможные Циклы длины к, они заносятся в матрицу Вгш. Далее происходит проверка полученной информации. Данный процесс для краткости можно записать в виде следующего словесного алгоритма:
1. Подсчет числа строк г и числа единиц х в каждом столбце матрицы Вт.
2. В случае, если выполняется условие: г^т-п + 2их^2, то переход к п.З, если нет, то запускается процесс генерации циклов длины к + 1.
3. В матрице Впв выделяются столбцы, содержащие точно две единицы.
4. Сформированный таким образом базис циклов Вм проверяется на наличие столбцов с числом единиц х > 2. Если условие выполняется, то запускается процесс генерации циклов длины к + 1, если нет, то переход к п.5.
5. Рассматриваемый базис Вм проверяется на предмет выполнения условия г = т - п + 2. Если условие выполняется, то переход к п.7, если нет, то переход к п.б.
6. Происходит последовательный перебор циклов, записанных в матрице Вт, но не вошедших в формируемый базис Вм на предмет дополнения базиса ВГ| до г, при соблюдении условия х = 2. В случае выполнения данной задачи - переход к п.7, в противном случае запускается процесс генерации циклов длины к + 1.
7. Исходный граф планарен, работа алгоритма завершена.
Проиллюстрируем работу описанного алгоритма на примере.
Пусть задана ма1рица смежности произвольного графа <2(рис.1), причем в случае наличия ребра между вершинами XI - Х| на пересечении 1 - той строки и ) -того столбца ставится не единица, как в обычной матрице смежности, а номер данного ребра.
Прежде чем начать проверку планарности исходного графа, сформируем матрицу всех возможных циклов. На первом этапе это циклы длины три. Для этого с помощью матрицы смежности формируется список смежности(рис.2). Как видно из сформированного списка смежности, максимальную локальную степень р(в) = б имеют сразу две вершины. Это вершины Х| и хз. Выберем в качестве исходной вершины для начала процесса генерации циклов вершину хь
Затем по списку смежности выбираем первую вершину из столбца с номером
1. Это будет вершина 2. Теперь переходим к столбцу 2. Первая вершина во втором столбце это вершина один. Но поскольку она уже используется в качестве начальной, выбираем следующую вершину и переходим к столбцу 3.
Рис. 1
Так как нам нужно построить цикл длины три, то проверяем возможность замыкания цикла. Такая возможность имеется, следовательно, сформирован первый цикл длины три: хі - хг - хз - хі.
После этого возвращаемся на шаг назад к вершине Х2 и проверяем возможность построения других циклов длины три с использованием уже имеющихся двух вершин и так далее до построения всех циклов длины три.
1 2 3 4 5 б 7 8 9 10 11 12 13 14 15 16 17 18
1 ф ф ф
2 * ф ф
3 * ф ф
4 ф ф ф
5 ф ф ф
б ф ф ф
7 ф ф ф
8 ф ф ф
9 ф ф ф
10 ф 1 ф ф
11 ф ф ф
12 ф ф ф
13 ф ф ф
14 ф ф ф
15 ф ф ф
16 ф ф ф
Рис. 3
В результате работы алгоритма сформирована матрица Вт с числом строк г а 16 и числом единиц в каждой строке х > 2. Следовательно, условие п.2 выполнено и можно переходить к пункту 3.
3. Выделяем в матрице Вт столбцы, содержащие точно две единицы. Таких столбцов девять. Это столбцы • 2, 5, 7, 9, 10, 12, 14, 16, 18. Выделенным таким образом столбцам соответствуют 12 из 16 циклов, записанных в матрице Вт (за Исключением циклов № 2,5,8,13). Эти 12 циклов составят базис Вн (рис. 4).
1 2 3 4 5 б 7 8 9 10 11 12 13 14 15 16 17 18
1 ♦ ф ф
2 ф ф ф
3 ф ф ф
4 ф ф ф
5 ф ф ф
б ф ф ф
7 ф ф ф
8 ф ф ф
9 ф ф ф
10 ф ф ф
11 ф ф ф
12 ф ф ф
Рис. 4
4. Базис Bri не содержит столбцов с числом единиц х > 2.
5. Базис Bri содержит 12 строк, значит выполняется условие: г = m - п + 2. Следовательно, данный граф планарен.
Накопленные статистические данные позволяют утверждать, что как правило достаточно провести генерацию и анализ циклов длины 3 и 4 для установления планарности тестируемого графа. В то же время доказательство непланарности может потребовать перебора всех возможных циклов графа.
Все вышеизложенное позволяет сделать вывод о том, что данный алгоритм может быть эффективно использован для решения задач определения планарности графов небольшой размерности, а также в составе программных комплексов в качестве инструмента для фильтрации задач на начальном этапе работ.
ЛИТЕРАТУРА
1. Харари Ф. Теория графов. М. "Мир", 1973
2. Dunn W.R.Jr., Chan S.P. An Algoritm for Testing the Planarity of a Graph. IEEE Trans. Circuit Theory, 15,1968, № 2.
3. Dunn W.R. and Chan S.P. Realizability of a planar Graph from its circuit matrix presented. At the Hidwest Symp. on circuit Theory, May 1967.
УДК 658.512
B.H. Давиденко Алгоритм волновой трассировки цепей произвольной ширины
Трассировка • это заключительный этап конструкторского проектирования интегральных схем (ИС). Основная задача трассировки состоит в определении линий, соединяющих эквипотенциальные контакты элементов и компонентов ИС. Для трассировки используют алгоритмы волновой, лучевой, канальной трассировки и их модификации. Наиболее универсальным является волновой алгоритм. Он позволяет найти путь во всех случаях, когда он существует. Однако он требует больших затрат памяти ЭВМ и времени по сравнению с другими