Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Karmanov_karmanny.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
2.75 Mб
Скачать

23.Лучевой алгоритм трассировки Абрайтеса.

В этом алгоритме уменьшение временных затрат достигается за счёт распространения волны не по всему полю платы, а только вдоль лучей. Идея: при распространении волны фронт занимает не все свободные соседние ячейки ДРП, а лишь одну, т.о. последовательность фронтов – луч.

Во-вторых, лучевой алгоритм трасс Абрайтеса из начала А и конца В трассы распространяются навстречу друг другу по двум лучам А1, А2, В1, В2.

Лучи А1,2 и В1,2 называются разноимёнными, лучи поочерёдно распространяются (шагают) до тех пор, пока разноимённые лучи не пересекутся или пока 4 луча не смогут продвигаться дальше, т.е. окажутся в тупике. В первом случае, осуществляется переход ко второму этапу – проведению трассы. Для этого от пересечения лучей осуществляют возврат по ячейкам, принадлежащим лучам , в исходные А и В ячейки трассы (используя метод путевых координат). Во втором случае, трассу проложить невозможно.

8

7

6

А

А2



#

#

5

А1



#

В1

В2

4



#



В

3



#

2

#

#

#

1

1

2

3

4

5

6

7

8

9

10

Пример приведён на рисунке:

Прежде всего, необходимо выбрать приоритетные направления движения лучей:

Для луча

А1–вниз (основное),вправо(дополнительное);

А2–вправо(основное),вниз (дополнительное);

В1–влево(основное), вверх (дополнительное);

В2–вверх(основное), влево (дополнительное).

Каждый луч осуществляет шаг движения по своему основному направлению или, если соответствующее этому направлению соседняя ячейка занята – по дополнительному.

После выполнения очередного шага всеми лучами, производится проверка на пересечение разноимённых лучей.

Вывод луча из тупика осуществляется следующим образом: луч возвращается в ту ячейку, где он изменил направление движения с основного на дополнительное. Затем, продвигается на шаг в направлении, противоположном дополнительному и делается попытка продвижения его по основному направлению.

Если луч снова оказался в тупике, делается ещё один шаг в направлении, противоположном дополнительному.

Эта процедура повторяется до тех пор, пока луч не получит возможность продвигаться по своим приоритетным направлениям или не будет заблокировано направление, противоположное дополнительному. В последнем случае продвижение луча прекращается.

Если все 4 луча будут заблокированы, то трассу проложить нельзя.

Отметим, что при выводе i-го луча из тупика, другие лучи останавливаются для того, чтобы продвижение лучей было равномерным.

На рисунке луч В1 после 3-х шагов оказывается в тупике в ячейке с координатами (8,6).

При выводе из тупика, В1 сначала возвращается в ячейку (8,4), затем делает шаги в ячейке (8,3) и (8,2) и далее продвигается по своему основному направлению до встречи с лучом А1.

Лучевой алгоритм трассировки осуществляет проведение пути минимальной длины без пересечений.

Вероятность нахождения пути этим алгоритмом меньше, чем алгоритмом Ли.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]