- •1. Автоматизированное проектирование эвм
- •1.1. Этапы жизненного цикла промышленных изделий
- •1.2. Сапр эвм и их место среди других автоматизированных систем
- •1.3. Проектирование технического объекта
- •1.4. Этапы проектирования сложных систем
- •2. Общие сведения о сапр
- •2.1. Блочно-иерархический подход к проектированию
- •2.2. Классификация сапр
- •2.4. Виды обеспечения сапр
- •3. Математическое обеспечение сапр
- •2.3. Структура сапр
- •3.1. Требования к математическому обеспечению
- •3.2. Требования к математическим моделям
- •3.3. Классификация математических моделей
- •3.4. Формализация проектных задач
- •3.5. Математические методы описания моделей конструкций эвм
- •3.3.1. Понятия теории множеств
- •3.5.2. Элементы теории графов
- •3.5.3. Деревья
- •3.5.4. Способы задания графов
- •3.5.5. Характеристические числа графов
- •3.6. Математические модели электрических схем
- •Модель схемы в виде двудольного графа g(e, u, p)
- •Модель схемы в виде гиперграфа h(e, u)
- •Модель схемы в виде мультиграфа g(e, u)
- •4. Алгоритмы автоматизированного проектирования эвм
- •4.1. Основные свойства алгоритмов
- •4.2. Элементы теории сложности
- •5. Алгоритмы компоновки
- •5.1. Алгоритм покрытия
- •5.2. Последовательный алгоритм компоновки
- •5.3. Итерационный алгоритм компоновки
- •5.4. Смешанный алгоритм компоновки
- •6. Алгоритмы размещения элементов
- •6.1. Постановка задачи
- •6.2. Математическая модель задачи размещения
- •6.3. Метод ветвей и границ
- •6.4. Конструктивные алгоритмы начального размещения
- •6.5. Алгоритм обратного размещения
- •6.6. Итерационные алгоритмы улучшения начального размещения
- •6.7. Алгоритм групповых перестановок
- •6.8. Непрерывно-дискретные методы размещения
- •6.9. Размещение разногабаритных элементов
- •7. Алгоритмы трассировки межсоединений
- •7.1. Алгоритмы построения минимальных связывающих деревьев
- •7.1.1. Алгоритм Прима
- •7.1.2. Алгоритм Краскала
- •7.1.3. Кратчайшие пути
- •7.1.4. Задачи, близкие к задаче о кратчайшем пути
- •7.1.5. Алгоритм Франка – Фриша
- •7.1.6. Задача Штейнера
- •7.2. Алгоритмы раскраски графа
- •7.2.1. Алгоритм Вейссмана
- •7.2.2. Алгоритм, использующий упорядочивание вершин
- •Порядок проведения проводников
- •Трассировка соединений
- •Волновой алгоритм трассировки
- •7.4.2. Волновой алгоритм с кодированием по mod 3
- •7.4.3. Метод путевых координат
- •7.4.4. Метод Акерса
- •7.4.5. Оптимизация пути по нескольким параметрам
- •7.4.6. Методы повышения быстродействия волнового алгоритма
- •7.4.7. Многослойная трассировка
- •7.5. Лучевые алгоритмы трассировки
- •7.5.1. Алгоритм Абрайтиса
- •7.6. Канальные алгоритмы трассировки
- •7.7. Программа автоматической трассировки specctra
- •8. Графо-теоретический подход к синтезу топологии
- •Разбиение графа на планарные суграфы
- •8.1.1. Построение графа пересечений g’
- •8.1.2. Нахождение максимальных внутренне устойчивых множеств
- •8.1.3. Выделение из g' максимального двудольного подграфа h'
- •8.2. Нахождение гамильтонова цикла. Алгоритм Робертса-Флореса
- •Нахождение гамильтонова цикла
- •8.2.2. Построение графа пересечений g'
- •8.2.3. Построение семейства ψg '
- •9. Верификация. Основные понятия
- •9.1. Место верификации при проектировании вычислительных систем
- •9.2. Изоморфизм графов
- •10. Нахождение эйлерова цикла
- •10.1. Алгоритм Флери
- •10.2. Сравнение эйлеровых и гамильтоновых циклов
- •11. Эволюционные алгоритмы оптимизации
- •11.1. Генетические алгоритмы
- •11.2. Биоинспирированные методы в оптимизации
- •11.2.1. Муравьиные методы и алгоритмы
- •11.2.2. Пчелиные методы и алгоритмы
- •Заключение
- •Список литературы
- •Законы Мэрфи для программистов. Теория ошибок
- •Алгоритмы конструкторского проектирования эвм Учебное пособие по дисциплине «Конструкторско-технологическое обеспечение производства эвм»
5.2. Последовательный алгоритм компоновки
Задача
компоновки формулируется следующим
образом. Дан мультиграф G(X,U).
Требуется “разрезать” его на отдельные
куски G1(X1,
U1),
G2(X2,
U2),…,
Gk(Xk,
Uk)
c числом вершин в каждой, соответственно,
n1,
n2,
..., nk
(n1
+ n2
+ ...+ nk
=
n),
так,
чтобы число ребер, соединяющих эти
куски, было минимальным, т.е. минимизировать
i≠j
при
i
,j
= 1, 2, …, k,
где Uij
– множество ребер, соединяющих куски
Gi(Xi,
Ui)
и Gj(Xj
,Uj).
Разрезание графа последовательным алгоритмом сводится к следующему.
В графе G(X,U) находят вершину xiX с минимальной локальной степенью (xi).
Если таких вершин несколько, то предпочтение отдается той вершине, которая имеет большее число кратных ребер. С этой вершины начинается построение первого куска. В первый кусок включаются вершина xi и все вершины, смежные ей: X1={xi}Гxi. Возможны три случая:
Число вершин в первом куске Х1=n1. В этом случае считаем, что подграф G1 образован.
Число вершин в первом куске Х1>n1. В этом случае ищется вершина xjГxi с максимальной характеристикой (xj) = (xj) –
.
Вершина xj удаляется из X1 (X1= X1\{xj}).
Характеристика (xj) показывает, насколько уменьшится число внешних связей куска X1, если из него удалить вершину xj (характеристика (xj) знаковая).
Повторив это конечное число раз, придем к первому случаю.
Число вершин в первом куске Х1<n1. В этом случае из X \ X1 выбирается вершина xjХ1, имеющая минимальное число связей с еще не распределенными вершинами. В первый кусок включаются вершины X1= Х1{xj}Гxj. Здесь опять возможны три рассмотренных варианта.
Образованный подграф G1 исключается из исходного графа.
Получаем граф G*(X*, U*), где X*=X \ X1, U*= U \ U1.
Далее формируется второй подграф G2 и т.д.
Процесс повторяется k-1 раз.
Рассмотренный алгоритм прост, легко реализуется на ЭВМ. Также среди достоинств данной группы алгоритмов выступает высокое быстродействие их при решении задач компоновки.
Основным недостатком последовательных алгоритмов является неспособность находить глобальный минимум числа внешних связей. Наибольшая эффективность метода последовательного разбиения графа имеет место, когда число вершин графа G значительно больше числа вершин в любой части разбиения n >> n1, n2 ,.., nk.
В качестве примера рассмотрим компоновку элементов схемы, представ-ленной на рис. 3.24.
Необходимо разрезать граф на три куска, причем, n1 = n2 = 3, n3= 2.
Повторим матрицу соединений схемы:
В графе G(X,U) находим вершину xiX с минимальной локальной степенью (xi), это вершины x2 и x3. У этих вершин кратных ребер нет, поэтому в качестве начальной, выбираем любую, например, x2.
В первый кусок включаем X1={x2}Гx2={x0, x2, x4, x6}. Х1 = 4 > n1.
Для вершин Гx2={x0, x4, x6} определим характеристики (xj) = (xj) – .
(x0) = 7 – 6 = 1, (x4) = 5 – 2 = 3, (x6) = 6 – 6 = 0. Максимальное уменьшение внешних связей куска Х1 будет, если из куска удалить вершину x4.
Х1 = Х1 \ {x4}.
Х1 = 3 = n1. Первый кусок сформирован.
Удаляем из графа вершины X1, Х*= X \ X1.
Для оставшихся вершин матрица соединений:
Находим вершину xiX* с минимальной локальной степенью (xi), это вершины x1, x3 и x7. Для второго куска выберем вершину x1. X2={x1}Гx1={x1, x4, x5}.
Х2 = 3 = n2. . Второй кусок сформирован.
Удаляем из графа вершины Х2 из X* \ X2 . Нераспределенные вершины составят третий кусок Х3 ={x3, x7}.
Х3 = 2 = n3. Граф разрезан.
Результат работы алгоритма представлен на рис. 5.1.
Рисунок 5.1. Результат компоновки последовательным алгоритмом
