ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012
152
//
Завершить инициализацию
ПЕРЕДАТЬ (МЕТКА1)
//
Основной цикл
ПОЛУЧИТЬ |Q|
ЦИКЛ ПОКА (|Q|>0)
ПОЛУЧИТЬ(d[u],u)
ПЕРЕДАТЬ (G.KEY=(u))
ПОЛУЧИТЬ(Adj[u],w[u],d[u],p[u],u
Q)
ЦИКЛ (для всех вершин v, v
Adj[u])
ПЕРЕДАТЬ (G.KEY=(v))
ПОЛУЧИТЬ (Adj[v],w[v], d[v], p[v],v
Q)
ЕСЛИ (v
Q & d[v]>d[u]+w[u][v]) TO
ПЕРЕДАТЬ (G.KEY=v, G.DATA=(Adj[v],
w[v],d[u]+w[u][v],u,0))
ПЕРЕДАТЬ (Q.KEY=(d[u]+w[u][v],v))
ИНАЧЕ
//
Переход к следующей итерации
ПЕРЕДАТЬ (МЕТКА2)
ВСЕ ЕСЛИ
ВСЕ ЦИКЛ
//
Переход к следующей итерации
ПЕРЕДАТЬ (МЕТКА3)
ПОЛУЧИТЬ |Q|
ВСЕ ЦИКЛ
//
Завершение работы
ПЕРЕДАТЬ МЕТКА4
КОНЕЦ
Центральный процессор передает в СП ключи поиска и данные
для хранения и получает в ответ результаты выполнения команд. Са-
ми команды управления обработкой структур данных, как было ска-
зано ранее, сохранены в ЗУ структур СП. Поскольку в алгоритме
предполагается выполнить циклическую обработку и ветвление в за-
висимости от результатов обработки потока данных, ЦП выполняет
соответствующие проверки. Например, ЦП проверяет условия выхо-
да из циклов и условия ЕСЛИ (
v
Q
&
d
[
v
]
>
d
[
u
]
+
w
[
u
][
v
])
TO …
ИНАЧЕ .... После проверки условий ветвления ЦП либо продолжает
текущую ветвь, что не меняет порядок обработки команд управления
СП, либо передает сообщение о принудительном переходе на обра-
ботку следующей итерации цикла. Это сообщение должно быть соот-
ветствующим образом обработано в СП. Вторая ветвь алгоритма, ис-
полняемая на СП, показана ниже: