- •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. Пчелиные методы и алгоритмы
- •Заключение
- •Список литературы
- •Законы Мэрфи для программистов. Теория ошибок
- •Алгоритмы конструкторского проектирования эвм Учебное пособие по дисциплине «Конструкторско-технологическое обеспечение производства эвм»
7.1. Алгоритмы построения минимальных связывающих деревьев
Для построения МСД разработан ряд полиномиальных алгоритмов.
7.1.1. Алгоритм Прима
Алгоритм Прима (R.C. Prim) относится к так называемым "жадным" алгоритмам. Жадные алгоритмы действуют, используя в каждый момент лишь часть исходных данных и принимая лучшее решение на основе этой части. В нашем случае мы будем на каждом шаге рассматривать множество ребер, допускающих присоединение к уже построенной части связывающего дерева, и выбирать из них ребро с наименьшим весом. Повторяя эту процедуру, мы получим остовное дерево с наименьшим весом.
Начнем с произвольной вершины графа xi и включим ее в остовное дерево. Из всех вершин, соединенных с данной (xjГxi), ищем вершину, соединенную ребром с наименьшим весом. Это ребро вместе с новой вершиной добавляется в дерево. Из вершин, не вошедших в дерево, ищем вершину, соединенную с уже построенной частью остовного дерева ребром с наименьшим весом. Это ребро вместе с новой вершиной добавляется в дерево и т. д. После того, как в дерево попадут все вершины, работа будет закончена.
Пример. Исходный взвешенный граф изображен на рис.7.1 (а).
Рисунок 7.1. Исходный граф (а) и ребра–кандидаты (б)
Ребра, вошедшие в дерево, на рисунках будем отмечать жирной линией.
В начале процесса выбираем произвольную вершину, например, х1. Выбираем вершины, непосредственно связанные с х1 (рис.7.1.(б)). Ребро наименьшего веса связывает вершины х1 и х2, поэтому к уже построенной части МСД добавляется вершина х2 вместе с ребром (х1 х2). При добавлении к дереву вершины х2 необходимо определить, не следует ли добавить в кандидаты новые ребра. В результате обнаруживаем, что это необходимо проделать с ребрами (х2 х5) и (х2 х7). Здесь же необходимо проверить, являются ли ребра, ведущие из вершины х1, в х3, х4 и х7, кратчайшими среди ребер, соединяющих эти вершины с деревом, или есть более удобные ребра, исходящие из х2. Ребро (х2 х4) короче ребра (х1 х4), и поэтому необходимо его заменить (рис.7.2.(а)).
б
а
Рисунок 7.2. Добавление ребра (х1 х2) (а) и ребра (х2 х5) (б)
Наименьший вес из пяти ребер - кандидатов имеет ребро (х2 х5), поэтому к дереву нужно добавить его и вершину х5 (рис. 7.2 (б)). Вес ребра (х5 х7) меньше веса ребра (х2 х7), поэтому оно замещает последнее. Из четырех ребер, инцидентных построенной части дерева, наименьший вес имеет ребро (х1 х3), поэтому следующим к дереву добавляется оно и вершина х3 (рис. 7.3 (а)).
Затем к дереву добавляется ребро (х1 х6) вместе с вершиной х6. Поскольку вес ребра (х4 х6) меньше веса ребра (х2 х4), а вес ребра (х6 х7) меньше веса ребра (х5 х7), меняем ребра – кандидаты (рис. 7.3 (б)).
а
б
Рисунок 7.3. Добавление в дерево ребра (х1 х3) (а) и ребра (х1 х6) (б)
Ребро (х4 х6) имеет наименьший вес среди оставшихся, и оно добавляется следующим (рис. 7.4 (а)).
Теперь осталось добавить к дереву всего одно ребро (х6 х7) (рис. 7.4 (б)). После этого процесс завершается, построено МСД с суммарным весом ребер 21.
Рисунок 7.4. Добавление ребра (х4 х6) (а) и ребра (х6 х7) (б)
Сложность алгоритма Прима равна O(m3), где m = X.
