Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторная работа№7-н.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
253 Кб
Скачать
☆
    1. Построение пути минимальной длины

Пусть задано множество ячеек дискретного поля, на котором построено некоторое число проводников. Требуется построить новый проводник между точками A и B так, чтобы он не пересекал ранее построенные проводники и имел минимально возможную длину (рис.7.8).

Рис.7.8. Рис.7.9.

Распространение волны начинаем из источника – точки A, вес которой положим равным нулю. Строим расширяющийся фронт волны влияний, распространяющийся на все соседние свободные с этой точкой ячейки. Каждая ячейка фронта генерирует следующий фронт волны, который занимает все соседние свободные с первым фронтом ячейки и т. д. Вес ячейки k-го фронта считается равным весу соседней ячейки (k – 1)-го фронта плюс единица, т. е. . Процесс распространения волны продолжаем до тех пор, пока не достигнем ячейки с точкой B (целью). Процесс поиска пути из A в B в соответствии с рассмотренным алгоритмом для данного варианта трассировки показан на рис.7.8. В каждой ячейке указаны приписанные ей на этапе распространения волны путевые координаты и веса. Ячейка B достигается при построении 16-го фронта волны.

Проведение пути начинаем с ячейки B (цели). Просматриваем окрестность точки цели (приемника) и находим ячейку, которая в наиболее приоритетном направлении имеет вес на единицу меньше. Перемещаемся в эту ячейку и отмечаем след перехода. Процесс продолжаем до тех пор, пока след не приведет в точку A. На рис.7.9 показан вновь проведенный путь. Из него видно, что построенный проводник действительно является кратчайшим между точками A и B, причем его относительная длина равна весу, присвоенного ячейке B.

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

Достоинства волнового алгоритма: возможность нахождения пути мини-мальной длины в любом лабиринте, если существует хотя бы один путь в нем.

Недостатками волнового алгоритма Ли являются малое быстродействие и большой объем оперативной памяти ЭВМ, необходимый для хранения инфор-мации о текущем состоянии всех ячеек коммутационного поля.

    1. Алгоритм Акерса

Наиболее экономичный способ кодирования состояний ячеек коммутаци-онного поля предложен Акерсом [1 – 4]. При распространении волны ячейки поля получают отметки в соответствии с базовой последовательностью 1, 1, 2, 2, 1, 1, 2, 2, … . Данная последовательность характерна тем, что в ней любой член имеет разных соседей слева и справа. Вначале все незанятые ячейки, соседние с ячейкой-источником, помечаются 1, затем все ячейки фронта помечаются так же 1. Далее отметка 2 присваивается ячейкам фронта и т. д. (рис.7.10).

Для построения пути в общем случае необходимо найти требуемую под-по-следовательность отметок базовой последовательности. Это легко может быть сделано по отметке ячейки-цели и отметке соседней с ней ячейки. В нашем случае цель достигнута первой 1, поэтому надо искать ячейку с отметкой 2. Их две: внизу и слева. Воспользуемся приоритетом. Вначале просматриваем ячейку снизу от цели. Поскольку ее вес равен 2, путь строим в нее. В ней вновь анализируем соседние ячейки в порядке приоритета. Ищем ячейку с весом 2. Это опять нижняя ячейка. Далее надо аналогично искать ячейку с весом 1.

Вариант соединения контактов A и B при этом заданном приоритете дан на рис.7.10.

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