- •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.5. Лучевые алгоритмы трассировки
В большинстве схем при правильной их компоновке, значительная часть соединений достаточно простой формы и для проведения пути нет необходимости рассматривать все клетки решетки. В этих случаях целесообразно использовать лучевые алгоритмы трассировки. Основная идея лучевых алгоритмов состоит в исследовании ДРП для определения пути между вершинами по некоторым заранее заданным направлениям (лучам).
Рассмотрим следующие лучевые алгоритмы:
Алгоритм Л.Б. Абрайтиса;
Алгоритм Миками – Табучи (K.Mikami, K. Tabuchi).
7.5.1. Алгоритм Абрайтиса
Работа алгоритма заключается в следующем. Задается число лучей, распространяемых из точек A и B, а также порядок присвоения путевых координат (обычно число лучей для каждой ячейки - источника принимается одинаковым). Лучи A(1), A(2),…, A(n) и B(1), B(2),…, B(n) считают одноименными, если они распространяются из одноименных источников A или B. Лучи A(i) и B(i) являются разноименными по отношению друг к другу.
Распространение лучей производят одновременно из обоих источников до встречи двух разноименных лучей в некоторой ячейке C. Путь проводится из ячейки C и проходит через ячейки, по которым распространялись лучи.
Возьмем для источников А и В по два луча с противоположными направлениями. Если А выше и левее В, то А1 - , ; А2- , ; В1 - , ; В2- , .
Если на пути луча встречается препятствие, то с помощью альтернативного луча алгоритм пытается обойти препятствие, например, если препятствие встретилось у луча А2 , то препятствие обходится с помощью луча . При первой возможности основной луч выходит на свое направление.
При распространении луча может возникнуть ситуация, когда препятствие не удается обойти ни в одном направлении. В этом случае луч считается заблокированным и его распространение прекращается.
Пример. Соединить алгоритмом Абрайтиса ячейки А и В (рис. 7.36 (а))
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
А |
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
В |
|
|
|
|
|
|
|
|
|
|
|
А |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В |
|
а |
б |
в |
Рисунок 7.36. Построение пути алгоритмом Абрайтиса
На рис. 7.36 (б) показан процесс распространения лучей. Овалами показаны ячейки, в которых луч меняет направление распространения на альтернативное. Вертикальный луч ячейки В на четвертом шаге «затух». Ячейка встречи разноименных лучей С (). Начиная с нее, строится путь к ячейка источникам (рис. 7.36 (в)).
Из рисунков видно, что площадь, занятая метками, значительно меньше, чем у волнового алгоритма.
Обычно с помощью лучевого алгоритма удается построить до 70-80% трасс, остальные проводят, используя волновой алгоритм или вручную. Кроме того, волновой алгоритм на заполненном ДРП работает значительно быстрее.
Применение алгоритма Абрайтиса особенно выгодно при проектировании плат с невысокой плотностью монтажа.
7.5.2. Алгоритм Миками – Табучи (малоповоротный алгоритм)
Из ячеек А и В до встречи с препятствием проводятся по два перпендикулярных луча. Если разноименные лучи пересеклись, то путь найден (рис. 7.37 (а).
|
|
|
|
|
А |
|
|
|
|
|
|
|
|
|
|
|
А |
|
|
|
|
|
|
|
|
|
|
|
|
В |
|
|
А |
|
|
|
|
|
|
|
|
В |
|
|
|
|
|
|
А |
|
|
|
|
|
|
|
|
|
|
|
|
В |
|
|
А |
|
|
|
|
|
|
|
|
|
|
|
|
В |
|
а б в г д
Рисунок 7.37. Порядок построения пути алгоритмом Миками - Табучи
На рис.7.37 (г) показаны вторичные лучи ячеек А и В. Разноименные лучи пересеклись. Путь строится по лучам, построенным раньше (рис. 3.37.(д)).
Формально алгоритм Миками – Табучи можно записать следующим образом:
Положить i = 0.
Через ячейки А и В провести перпендикулярные лучи. Ячейки, по которым прошли лучи поместить в списки Аi и Вi.
Если Аi Вi , то путь найден. Конец.
Если нет, то для всех Аi и Вi найти точки ветвления.
Положить i = i + 1. Провести через них перпендикулярные лучи. Ячейки, по которым прошли лучи поместить в списки Аi и Вi
Если Аi Вi , то путь найден. Конец.
Пока Аi Вi или Аi Аi-1 или Вi Вi-1 повторить п.п. 3-5.
Пути между ячейками не существует.
Если ограничить число повторов п.п. 3-5 одним, то будут построены малоповоротные пути (рис.7.38).
Рисунок 7.38. Конфигурации трасс с разным числом поворотов k
Рассмотрим работу алгоритма для примера рис. 7.36 (а).
Проведем через ячейки А и В перпендикулярные лучи. Ячейки, по которым прошли лучи поместим в списки А0 и В0. Найдем точки ветвления (рис 7.39 (а)).
А0 В0 = . Положим i = i + 1 и проведем вторичные лучи (рис 7.39 (б)).
А
1
В1
.
Строим путь (рис. 7.19 (в)).
Заметим, что к ячейке В
трасса поворачивает в луче В0,
а не в В1
(ячейка, помеченная ), так как пересеклись
вторичные лучи вертикальный А
и горизонтальный В.
|
|
|
|
|
|
|
|
|
|
А |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В |
|
|
|
|
|
|
|
|
|
|
|
А |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В |
|
|
|
|
|
|
|
|
|
|
|
А |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В |
|
Рисунок
7.39. Построение пути алгоритмом Миками
- Табучи
Алгоритм строит малоповоротные, но не оптимальные пути. Скорость работы на два порядка выше, чем у волнового алгоритма.
Недостатком лучевых алгоритмов является их последовательный характер. Оптимизируется каждая отдельная трасса без прогноза последующих соединений.
В меньшей степени этот недостаток свойственен канальным алгоритмам.
