- •1. Автоматизированное проектирование эвм
- •1.1. Этапы жизненного цикла промышленных изделий
- •1.2. Сапр эвм и их место среди других автоматизированных систем
- •1.3. Проектирование технического объекта
- •1.4. Этапы проектирования сложных систем
- •2. Общие сведения о сапр
- •2.1. Блочно-иерархический подход к проектированию
- •2.2. Классификация сапр
- •2.3. Структура сапр
- •2.4. Виды обеспечения сапр
- •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.3. Итерационный алгоритм компоновки
Итерационные алгоритмы применяются для улучшения начальной компоновки. В качестве начальной компоновки может служить компоновка, полученная последовательным алгоритмом, компоновка, заданная конструктором, случайная компоновка.
Результат работы итерационного алгоритма зависит от начальной компоновки.
Любой итерационный алгоритм состоит из следующих шагов:
Получение очередного варианта решения;
Вычисление функции-критерия;
Выбор лучшего, в смысле п. 2, варианта;
Срабатывание правила останова (число шагов, время, F , перебор всех вариантов).
Итерационный алгоритм компоновки состоит в парных перестановках вершин разных кусков с проверкой на каждом шаге изменения числа внешних связей. Цель итерации – минимизация числа связей между кусками.
Алгоритм включает следующие процедуры:
Из множества кусков выбираются любые два.
Например, G1(X1, U1) и G2(X2, U2).
Для всех вершин выбранных кусков подсчитывается характеристика
Характеристика (xi) показывает, как уменьшится количество внешних связей, если вершину xi переместить из одного куска в другой.
Для каждой пары вершин xi и xj из разных кусков подсчитывается значение
bi j= (xi) + (xj) - 2rij.
Эта характеристика показывает, как уменьшится количество внешних связей, если вершины xi и xj поменять местами.
Выбирается пара вершин xi и xj, для которых bij максимально. Эти вершины переставляются.
Вычисление bij повторяется для вновь образованных кусков G*1(X*1, U*1) и G*2(X*2, U*2).
П.п. 4, 5 повторяются до тех пор, пока не окажется для всех пар вершин bij0, т.е. никакая перестановка не уменьшит колическтво внешних связей между кусками.
Выбирается любая другая пара кусков и п.п. 1-6 повторяются.
Процесс повторяется для всех пар кусков, т. е. k(k - 1)/2 раз.
Пример. Пусть последовательным алгоритмом компоновки получено следующее разбиение (рис. 5.2).
Рисунок 5.2. Начальное разбиение графа и матрица соединений
Выберем два куска G1(X1, U1) и G2(X2, U2). Для вех верши кусков вычислим (xi).
Для всех пар вершин разных кусков вычислим bij и результаты сведем в таблицу.
b12= (x1) + (x2) - 2r12 = -3 + 1 – 0 = -2;
b13= (x1) + (x3) - 2r13 = -3 + -1 – 0 = -4;
b52= (x5) + (x2) - 2r52 = 2 + 1 – 6 = -3 и т.д.
Положительный эффект дает только перестановка вершин x5 и x3. Поменяем их местами и пересчитаем (xi).
Пересчитаем bij
Все bij≤0, поэтому перестановки вершин не приведут к уменьшению числа внешних связей.
Выберем другие два куска G1(X1, U1) и G3(X3, U3) и вычислим (xi).
Для всех пар вершин разных кусков вычислим bij и результаты сведем в таблицу:
Все bij≤0. Выберем нерассмотренные куски G2(X2, U2) и G3(X3, U3) и вычислим (xi).
Все (xi) и, соответственно, bij≤0, работа алгоритма заканчивается. В результате получили разрезание (рис. 5.3 (а)). Начальная компоновка имела 8 внешних связей, после применения итерационного алгоритма число внешних связей уменьшилось до 7. Оптимальная компоновка с 6 внешними связями приведена на рис. 5.3 (б).
Рисунок 5.3. Улучшенное разбиение графа (а) и оптимальная компоновка (б)
