
Лучевой алгоритм
Основная идея алгоритма, предложенного Л. Б. Абрайтисом [1 – 4], заклю-чается в исследовании поля для определения пути между ячейками A и B по некоторым заранее заданным направлениям, подобным лучам. Это позволяет сократить число просматриваемых алгоритмом ячеек, а, следовательно, и время на анализ и кодировку их состояний, однако снижает вероятность нахождения пути сложной конфигурации и усложняет учет конструктивных требований к технологии печатной платы.
Рис.7.10.
Работа алгоритма заключается в следующем.
Задается число лучей, распро-страняемых
из ячейки A и B,
а также порядок присвоения путевых
координат. Обычно число лучей для
каждой из ячеек (источников) принимают
одинаковым (часто равным двум).
Лучи
,
,
…,
и
,
,
…,
считаются одноименными, если они
распространяются из одноименных
источников A или B.
Лучи
и
являются разноименными по отношению
друг к другу. Распространение лучей
происходит одновременно из
обоих источников до встречи
двух разноименных лучей в некоторой
точке C.
Путь проводится из ячейки C, в которой встретились лучи по путевым координатам, и проходит через ячейки, по которым распространялись лучи.
При распространении луча может возникнуть ситуация, когда две соседние ячейки будут заняты. В этом случае луч считается заблокированным и его рас-пространение прекращается.
Рассмотрим работу лучевого алгоритма на примере (рис.7.11).
Для источников A и B
взято по два луча с взаимно противоположными
направлениями. Поскольку разности
координат
и
,
то для луча
допустимое направление движения вначале
вниз, а в случае преграды – вправо; для
луча
– вверх, влево; для
– вправо, вниз; для
– влево, вверх. Если ячейка B
будет расположена не справа от A,
а слева, то путевые координаты вправо
и влево надо поменять местами.
На первом шаге алгоритма просматриваются ячейки с координатами (3,8), (9,3), (4,9) и (8,2). Поскольку эти ячейки оказались свободными, в них ставятся путевые координаты, которые указывают назад, т.е. на те ячейки, из которых на
Рис.7.11.
этом шаге поступил луч. На третьем шаге
луч
сверху оказывается забло-кированным,
поэтому он меняет направление «вверх»
на направление «влево» – просматривается
ячейка с координатами (8,4). На четвертом
шаге луч
оказывается заблокированным, а лучи
и
встретились в ячейке C с
координатами (5,4). Луч
,
пройдя через все поле, оказывается
заблоки-рованным в ячейке с координатами
(10,1).
Путь строится из ячейки C по путевым координатам в направлении ячеек A и B. Если бы ячейка (7,2) была занята, то лучи и оказались бы заблокированными, и решение найдено не было, хотя путь из A в B провести можно.
Достоинства алгоритма: получение соединений минимальной длины и высокое быстродействие.
Недостаток: не всегда находит решение, хотя оно может существовать, при трассировке двухслойных плат с ортогональной коммутацией с помощью лучевого алгоритма удается построить до 70% трасс, а остальные проводят, используя волновой алгоритм или вручную.
Поэтому лучевой алгоритм целесообразно применять для трассировки плат с небольшой степенью заполнения ячеек или в начальной стадии трассировки совместно с волновым алгоритмом. В этом случае удается значительно экономить время.