- •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.6. Задача Штейнера
Виды используемых деревьев определяются технологией выполнения соединений и схемотехническими требованиями. При автоматизированном конструировании схем проводного и печатного монтажа ставятся разные задачи построения минимальных деревьев соединений. В первом случае не допускается вводить дополнительные вершины (соединение «контакт» - «контакт»). Для решения такой задачи используют рассмотренные ранее эффективные алгоритмы Краскала, Прима и другие. Во втором случае разрешается вводить дополнительные вершины и соединяющие их ребра (соединения «контакт» - «проводник», «проводник» - «проводник»). Такая задача называется задачей Штейнера (J. ), деревья соединений – деревьями Штейнера (ДШ), а дополнительные вершины – точками Штейнера (ТШ).
Задача построения дерева Штейнера имеет следующий вид. Требуется найти такой связный ациклический граф с использованием дополнительных вершин Штейнера (дерево Штейнера) Т’ = (Х’,U’), что Х’ включает все вершины Х и дополнительные вершины (вершины Штейнера) и суммарный вес ребер в T’ будет минимальным. На рис. 7.14 (а) показано МСД, суммарная длина ребер - 10,123, а на рис. 7.14 (б) – дерево Штейнера, суммарная длина ребер – 9,196.
а
б
Рисунок 7.14. МСД (а) и дерево Штейнера (б)
Задача о соединении точек оптимальным образом – одна из старейших оптимизационных задач. Она восходит еще к П. Ферма (Pierre de Fermat). Еще в ХVII столетии была предложена следующая задача. На плоскости найти такую точку Р, которая минимизирует суммарное расстояние от Р до трех заданных точек плоскости. Ферма, Торричелли (E. Torricelli) и Кавальери (B.F. Cavalieri) независимо друг от друга нашли решение этой задачи.
Общим решением этой задачи является следующее. Точка Р либо лежит внутри треугольника, построенного на заданных точках, либо совпадает с одной из этих точек. В первом случае каждый из углов между отрезками, соединяющими Р с каждой их точек, составляет 1200. Во втором случае угол, образованный отрезками, соединяющими эту точку с другими заданными точками, равен или больше 1200. Рис. 7.15. демонстрирует способ решения задачи, найденный в середине ХVII века.
Для отыскания точки Р, ближайшей (в смысле суммарного расстояния) к заданным точкам А, B, C, сначала строится треугольник (АBC) и на одной из его сторон, например на АC, строится равносторонний треугольник. (АBХ) так, что точка В лежит вне этого треугольника. Точка пересечения окружности, описанной вокруг равностороннего треугольника (АBХ), с отрезком (BХ) есть искомая точка Р.
Т
B
очкой Торричелли треугольника (ABC) называется такая точка Р, из которой стороны данного треугольника видны под углом 1200, т.е. углы AРB, AРC и BРC равны 1200.
C
P
A
x
Рисунок 7.15. Нахождение точки Торричелли
Трехточечная задача используется как составная часть алгоритмов решения задачи Штейнера.
Перебираем тройки вершин графа и находим точки Торричелли. Выбираем такие точки, включение которых в дерево даст максимальный эффект.
Задача Штейнера относится к классу так называемых NP-полных задач, поэтому алгоритмы, дающие точные решения, как правило, не могут быть использованы в САПР из-за неприемлемой временной сложности. Это обстоятельство послужило стимулом для разработки многочисленных эвристических алгоритмов. Наибольший практический интерес представляет алгоритм последовательного введения дополнительных вершин в дерево Прима-Краскала.
Возможно, наиболее важным практическим применением задачи Штейнера является конструирование интегральных электронных схем. Более короткая сеть проводящих линий на интегральной схеме требует меньшего времени зарядки-разрядки по сравнению с более длинной сетью и повышает, таким образом, быстродействие схемы. Однако задача отыскания кратчайшей сети на интегральной схеме имеет другую геометрию, так как проводники на ней обычно проходят лишь в двух направлениях — горизонтальном и вертикальном. Такая задача получила название прямоугольной задачи Штейнера.
Для случая ортогональной метрики доказано, что если через каждую точку из исходного множества точек провести горизонтальные и вертикальные линии, то решение задачи Штейнера можно получить, рассматривая в качестве возможных дополнительных вершин только точки пересечения полученной сетки линий (рис.7.16 (а)).
Алгоритм последовательно вводит в текущее дерево Прима-Краскала каждую из дополнительных вершин решеточного графа, строит новое дерево Прима и запоминает полученный выигрыш в длине. После оценки всех дополнительных точек в текущее дерево включается точка с максимальным выигрышем (рис.7.16 (б)). При этом, чтобы избежать в процессе преобразования появления избыточных точек, необходимо учитывать, что дополнительные точки в дереве Штейнера могут иметь только степень 3 и 4.
Рисунок 7.16. Кратчайшие остовное дерево (а) (L = 18)
и дерево Штейнера (б) (L = 15)
Рассмотрим некоторые эвристические методы построения деревьев Штейнера.
Метод Ханана
Метод Ханана (M. Hanan) заключается с следующем.
Все множество вершин с координатами s разбивается на классы S1, S2, ..., Sm в порядке неубывания координаты si так, чтобы у всех вершин одного класса была одинаковая координата s.
Анализируется множество вершин класса S1 и соединяется между собой прямой.
Образуется множество I, состоящее из вершин, включенных в дерево и точек, принадлежащих построенной прямой.
Выбирается следующее множество Si+1, имеющее наименьшую координату s. Для вершины xk Si+1 определяется точка xj, для которой dkj = min{dkg} xgI. Вершина xk соединяется двухзвенной ломаной линией с точкой xjI.
Для очередной вершины класса Si+1 операция подсоединения к дереву выполняется в соответствии с пунктами 3, 4.
Пункты 3, 4, 5 повторяются для всех множеств Si до построения полного дерева.
Рассмотрим пример построения дерева Штейнера по методу Ханана для вершин, представленных на рис. 7.17 (а).
Разобьем множество вершин X = {x1, x2, ..., x5} на классы по неубыванию координаты si, получим: S1={x1}, S2={x2, x3}, S3={x4}, S4={x5}.
В классе S1 всего одна вершина, поэтому соединение вершин не производим.
Вершину x2S2 соединяем с x1 двухзвенной ломаной линией, причем сначала в направлении перпендикулярном оси s, а затем оси t.
Вершину x3 S2 соединяем с ближайшей точкой уже построенного фрагмента.
Переходим в следующий класс и x4 S3 соединяем с ближайшей точкой дерева, получаем ТШ 1.
Вершину x5 S4 соединяем по кратчайшему расстоянию с ближайшей точкой построенного дерева, получаем ТШ 2.
Р
езультат
построения дерева Штейнера с суммарной
длиной ребер L=11
представлен на рис. 7.17 (б).
Рисунок 7.17. Вершины графа (а); дерево Штейнера (метод Ханана) (б)
Столб Штейнера
Метод "Столб Штейнера" является одним из наиболее эффективных по времени реализации эвристических алгоритмов построения дерева Штейнера и предусматривает следующий порядок действия.
Все вершины проецируются на ось s.
Расстояние от наименьшей до наибольшей координаты s делится пополам, и из этой точки проводится перпендикуляр (столб Штейнера).
Из каждой вершины опускается перпендикуляр до пересечения со столбом Штейнера.
Рассмотрим пример построения дерева Штейнера по данному методу для представленного на рис. 7.17 (а) множества вершин.
Находим среди множества проекций на ось s (s1=1, s2= s3=2, s4=4, s5=5) минимальное и максимальное значения: minsi = s1 = 1, maxsi = s5 = 5.
Вычисляем координату проведения столба Штейнера: si = (s1 + s5) / 2 = 3.
Проводим столб Штейнера с координатой si = 3 и опускаем из всех вершин перпендикуляры до пересечения со столбом.
Результат построения дерева Штейнера с суммарной длиной ребер L=12 представлен на рис. 7.18 (а).
Аналогично строится горизонтальный столб (рис. 7.18 (б)), L=12.
Рисунок 7.18. Деревья Штейнера, построенные методом "Столб Штейнера", (
а) – вертикальный; (б) – горизонтальный столбы
Временная сложность алгоритма О(n2).
В. На втором этапе предпринимается попытка точно решить, на каком слое каждое соединение может располагаться.
Расслоение можно проводить до, после или во время трассировки отдельных соединений. Расслоение основано на анализе схемы соединений для выявления конфликтующих проводников.
Если расслоение проводится до собственно трассировки, то для контактов каждой цепи строится минимальный охватывающий прямоугольник. Строится граф перекрытий прямоугольников, вершины которого цепи, а ребра между вершинами проводятся, если прямоугольники перекрываются. Граф перекрытий раскрашивается в минимальное число цветов. В результате: цвет – слой.
Если расслоение проводится после трассировки, то получают совмещенную топологию. Строят граф пересечений, в котором вершины – проводники, а ребра их соединяют, если проводники пересекаются. Граф пересечений раскрашивается в минимальное число цветов.
Расслоение в процессе трассировки будет рассмотрено в подразделе 7.4.7.
