ЛАБОРАТОРНАЯ РАБОТА №3
ИССЛЕДОВАНИЕ ЭФФЕКТИВНОСТИ АЛГОРИТМОВ
РАЗМЕЩЕНИЯ КОНСТРУКТИВНЫХ ЭЛЕМЕНТОВ РЭС
Цель работы – исследовать эффективность алгоритмов размещения элементов РЭС в коммутационном пространстве, освоить особенности алго-ритмизации и программирования задачи размещения на ПЭВМ, приобрести навыки построения математических моделей монтажного пространства и схем соединения модулей, реализации и исследования их при решении задачи размещения с применением САПР.
1. ОСНОВНЫЕ МЕТОДЫ ОЦЕНКИ ЭФФЕКТИВНОСТИ
АЛГОРИТМОВ РАЗМЕЩЕНИЯ
При разработке алгоритмов и программ следует стремиться к наиболее полному удовлетворению требований, предъявляемых к ним: минимальная продолжительность решения, максимальный объем задач при заданной емкости оперативной емкости ЭВМ, максимальная точность решения, высокая надёжность, эффективность, завершённость, понятность и т.д.
Перечисленные показатели определяют качество программного обеспече-ния САПР. Причём на этапе разработки алгоритмов достаточно учесть такие показатели, как точность, временная и емкостная сложность, а при разработке программ или их сравнении следует учитывать и остальные показатели [1 – 4].
Объективная оценка эффективности алгоритмов размещения должна опираться на анализ точности решений и времени их получения в зависимости от основных параметров задачи.
Для оценки качества решения рекомендуются два подхода [1]:
применение тест – задач;
статистическая обработка результатов.
Первый способ заключается в том, что каким-либо образом находят точное (глобально – оптимальное) решение Fopt некоторого варианта W задачи Z. Затем этот вариант W решают с помощью алгоритмов А1, А2,…, Аn и анализируют, насколько i–й (i =1, n) результат отличается от Fopt. Например, алгоритмы размещения равногабаритных элементов по критерию минимума суммарной длины соединений могут сравниваться по результатам решения тест-задачи Штейнберга. В ней предлагается на 36 заданных позиций разместить 34 элемента, матрица связности для которых также известна. Тот алгоритм, который даст размещение с меньшей суммарной длиной соединений, и будет считаться лучшим.
При рассмотрении этих результатов надо учитывать, что машинное время в значительной мере зависит от характеристик ЭВМ и тщательности про-граммирования. Кроме того, сопоставление алгоритмов на одном или несколь-ких примерах не может дать достоверной информации об эффективности алгоритма.
Второй – статистический способ оценки качества решения состоит в том, что формируется m вариантов задачи Z. Решив эти варианты с помощью алго-ритмов А1, А2, …, Аn, получают n результатов Ri (i=1, n), которые оценивается рядом показателей P = {P1, P2, …, Pn} и выполняют их статистическую обработку и сравнение. Такой подход позволяет получить наиболее объективные резуль-таты для оценки качества приближенных алгоритмов.
Другими словами, для оценки алгоритма размещения надо решить этим алгоритмом m задач и определить среднюю суммарную длину соединений, полученных размещений. Затем это же множество задач m решить другим алгоритмом и выполнить такую же оценку. Лучшим будет тот из алгоритмов, который даст меньшую среднюю суммарную длину соединений.
После распределения конструктивных элементов РЭС по коммутационным пространствам различного уровня иерархии, для каждой полученной в результате компоновки сборочной единицы производят размещение включенных в ее состав элементов предыдущего уровня, т.е. выбирают такое их взаимное расположение, при котором наилучшим образом учитываются предъявляемые к аппаратуре требования [1 – 3, 7 11].
Исходными данными для решения задачи размещения являются:
данные о конфигурации и размерах коммутационного пространства, определяемые требованиями установки и крепления соответствующей сбороч-ной единицы в аппаратуре;
количество и геометрические размеры конструктивных элементов, подле-жащих размещению;
схема соединений, а также ряд ограничений на взаимное расположение отдельных элементов, учитывающих особенности разрабатываемой кон-струкции.
Задача сводится к отысканию для каждого размещаемого элемента таких позиций, при которых оптимизируется выбранный показатель качества L, и обеспечиваются наиболее благоприятные условия для последующего электрического монтажа.
В том случае, если в качестве критерия размещения используют минимум суммарной взвешенной длины соединений, необходимо сформировать матрицу расстояний размещённых элементов P = || pij ||nm .
Здесь Pij = |xi - xj| + |yi - yj|, а xi, xj и yi, yj – координаты позиций, в которые размещены соответственно i–й и j–й модули.
Т
огда
суммарная взвешенная длина соединений
будет равна
где rij – элемент матрицы связности R, а pij – элемент матрицы размещения P.
Математически задача формулируется следующим образом [1 - 5]. Электри-ческая схема представляется в виде мультиграфа, а моделью монтажного про-странства служит графовая решётка. Требуется вершины мультиграфа размес-тить в узлы графовой решётки таким образом, чтобы суммарная длина ребер размещенного мультиграфа была минимальна.
Задача размещения является комбинаторной, т.е. может быть решена толь-ко полным перебором (для размещения n элементов на n позиций существует n! вариантов размещения). Для решения задач размещения разработано большое количество различных алгоритмов [1 – 4]. В данной работе рассмотрим эвристи-ческие алгоритмы
Алгоритм включает такую последовательность действий.
1. Сформировать матрицу расстояний D, элементы которой будем определять по формуле ортогональной метрики:
dij = |xi - xj| + |yi - yj| . (3.2)
2. Для каждой строки матрицы D определить суммарное значение:
3. Ввести матрицу связности R и ее размерность n.
4.Для каждой строки матрицы связности R определить сумму элементов:
5. Найти минимальное значение di, если B=i, то пометить столбец j=B.
6. Найти максимальное значение ri , если Е=i, то удалить столбец j=B.
7. Разместить элемент Е в позицию В.
8. Найти минимум di среди оставшихся (m – 1) элементов; просмотреть строку с минимальным di и найти минимальный dij среди помеченных элементов. Здесь j=B. Определить, какой элемент расположен в позиции j; вновь присвоить B=i, j=B и пометить столбец j.
9. Рассмотреть строку Е в матрице R и найти максимальный r: присвоить E=i, j=E и пометить столбец j.
10. Найти число помеченных столбцов k; если k<n, идти к 8, иначе – к 11.
11. Подсчитать суммарную длину соединений.
ПРИМЕР 3.1
Дано монтажное пространство (печатная плата) (рис.3.1,а), в котором име-ется 7 свободных позиций с координатами центров позиций соответственно: x1=2, y1=1; x2=2, y2=2; x3=3, y3=2; x4=4, y4=2; x5=1, y5=3; x6=2, y6=3; x7=4, y7=4.
На эти позиции необходимо разместить по критерию минимальной суммарной длины связей семь микросхем, соединенных в соответствии со схемой рис.3.2, а.
Решение
В качестве модели печатной платы возьмем решетку графа (рис. 3.2, б) и по формуле
dij = |xi - xj| + |yi - yj|
вычислим матрицу расстояний D:
1
2 3 4 5 6 7
1 0 1 2 3 3 2 5 16
2 1 0 1 2 2 1 4 [11]
3 2 1 0 1 3 2 3 12
D = 4 3 2 1 0 4 3 2 15
5 3 2 3 4 0 1 4 17
6 2 1 2 3 1 0 3 12
7 5 4 3 2 4 3 0 21 .
7
Определим сумму элементов dij в каждой i-й строке матрицы и запи-
J=1
шем ее справа от матрицы. Сумма показывает суммарную удаленность i-й позиции от всех остальных.
Схему соединения корпусов представим в виде мультиграфа (рис. 3.2, б), для которого построим матрицу связности R:
1 2 3 4 5 6 7
1 0 3 0 2 2 0 1 8
2 3 0 3 0 5 0 0 [11]
3 0 3 0 2 0 0 0 5
R = 4 2 0 2 0 0 0 0 4
5 2 5 0 0 0 3 0 10
6 0 0 0 0 3 0 3 6
7 1 0 0 0 0 3 0 4 .
Суммирование элементов rij в строках матрицы дает локальную степень каждой вершины графа.
7
Среди dij находим минимальное число, оно равно 11 и соответствует
J=1
позиции №2. Звездочками помечают все элементы второго столбца матрицы
7
D. Среди rij находим максимальное число, оно равно 11 у вершины №2.
J=1
Поэтому 2-й модуль, имеющий наибольшее количество связей, размещаем в позицию №2, которая наиболее удалена от остальных позиций платы. После этого 2-й столбец матрицы R исключаем из дальнейшего рассмотрения. Имеем
1 3 4 5 6 7
1
0 0 2 2 0 1
2 3 3 0 [5] 0 0
3 0 0 2 0 0 0
R = 4 2 2 0 0 0 0
5 2 0 0 0 3 0
6 0 0 0 3 0 3
7 1 0 0 0 3 0
1 2* 3 4 5 6 7
1 0 1 2 3 3 2 5 16
2 1 0 1 2 2 1 4
3 2 [1] 0 1 3 2 3 [12]
D = 4 3 2 1 0 4 3 2 15
5 3 2 3 4 0 1 4 17
6 2 1 2 3 1 0 3 12
7 5 4 3 2 4 3 0 21 .
7
Среди оставшихся dij находим минимальное число. Оно равно 12 сразу
J=1
у двух позиций: №3 и №6. Берем 1-ю по порядку позицию №3. Помечаем все элементы третьего столбца матрицы D. Проходим вторую строку матрицы R и находим, что в ней максимальный элемент 5, который находится в 5-м столбце. Следовательно, модуль №5 размещаем в позицию №3, а 5-й столбец матрицы R из дальнейшего рассмотрения исключается. Получили
1 3 4 6 7
1 0 0 2 0 1
2 3 [3] 0 0 0
3 0 0 2 0 0
R = 4 2 2 0 0 0
5 2 0 0 3 0
6 0 0 0 0 3
7 1 0 0 3 0
1 2* 3* 4 5 6 7
1 0 1 2 3 3 2 5 16
2 1 0 1 2 2 1 4
3 2 1 0 1 3 2 3
D = 4 3 2 1 0 4 3 2 15
5 3 2 3 4 0 1 4 17
6 2 [1] 2 3 1 0 3 [12]
7 5 4 3 2 4 3 0 21
7
На следующем шаге отыскиваем min из d6j =12 в строке №6.
J=1
Просматриваем шестую строку матрицы D и среди помеченных элементов 2-го и 3-го столбцов выбираем минимальный. Так определяем, к какой из уже занятых позиций, позиция №6 находится ближе всего: min[d62, d63] = d62 = 1 – ко 2-й. Во второй позиции уже находится модуль №2. Поэтому просматриваем вторую строку матрицы R и выбираем максимальный элемент r21 = 3. Он соответствует 1-му модулю, поэтому элемент №1 размещаем в позицию №6.
Исключаем из дальнейшего рассмотрения первый столбец матрицы R.
Получили матрицы
3 4 6 7
1 0 2 0 1
2 3 0 0 0
3 0 2 0 0
R = 4 2 0 0 0
5 0 0 [3] 0
6 0 0 0 3
7 0 0 3 0
1 2* 3* 4 5 6* 7
1 0 1 2 3 3 2 5 16
2 1 0 1 2 2 1 4
3 2 1 0 1 3 2 3
D = 4 3 2 [1] 0 4 3 2 [15]
5 3 2 3 4 0 1 4 17
6 2 1 2 3 1 0 3
7 5 4 3 2 4 3 0 21 .
7
Далее выбираем min из dij = 15 в 4-й строке. В четвертой строке матрицы
J=1
D среди помеченных элементов d42, d43, d46 минимальный d43 = 1.Это говорит о том, что до позиции №4 ближе всех позиция №3, в которой уже размещен модуль №5. Поэтому просматриваем пятую строку матрицы R и среди оставшихся в ней элементов находим минимальный: r56 = 3 в шестом столбце. Тогда модуль №6 размещаем в позицию №4 и исключаем из дальнейшего рассмотрения столбец №6 матрицы R:
3 4 7
1 0 2 1
2 [3] 0 0
3 0 2 0
R = 4 2 0 2
5 0 0 0
6 0 0 3
7 0 0 0
1 2* 3* 4* 5 6* 7
1 0 [1] 2 3 3 2 5 [16]
2 1 0 1 2 2 1 4
3 2 1 0 1 3 2 3
D = 4 3 2 1 0 4 3 2
5 3 2 3 4 0 1 4 17
6 2 1 2 3 1 0 3
7 5 4 3 2 4 3 0 21 .
7
Вновь выбираем минимальную из оставшихся сумм: d1j = 16 для пози-
J=1
ции №1. Просматриваем первую строку матрицы D и среди помеченных элементов {d12, d13, d14, d16} находим min: это d12 = 1. Значит, от позиции №1 наименее удалена позиция №2, в которой находится модуль №2. Помечаем все элементы первого столбца матрицы D. Просматриваем вторую строку матрицы R и выбираем максимальный элемент r23 = 3 для элемента №3. Его устанавливаем в 1-ю позицию, а 3-й столбец матрицы исключаем из дальнейшего рассмотрения: