Скачиваний:
14
Добавлен:
05.01.2021
Размер:
1.46 Кб
Скачать
function[m_min,range_station]=FB(m_inf)%реализация алгоритма его величества Форда-Беллмана
m_min=zeros(12); %задаём матрицу нулей 12*12
m_min(2:12,:) = inf; %со 2-ой строки по 12-ую записываем бесконечности
%алгоритм Форда-Бэллмана
for i = 2 : 12
for j = 2 : 12
for k = 1 : 12
if m_inf(k, j)~=0
if m_min(j, i-1) > m_min(k, i - 1) + m_inf(j, k) && m_min(j,i) > m_min(k,i-1)+m_inf(j,k)
m_min(j, i) = m_min(k, i - 1) + m_inf(j, k);
end
if m_min(j,i)==inf
m_min(j,i)=m_min(j,i-1);
end
end
end
end
end
l = m_min(12,12);%полученную ранее матрицу записываем в матрицу "l"
range_station = 12; %число станций
m = 12; %число вершин графа
while(l) %пока "l" не изменится
for i = 1:12
if (m_inf(i, m)~=0) && (l - m_inf(i, m) == m_min(i, 12))
l = l - m_inf(i, m);
m = i;
range_station = [m, range_station];%формируем последовательность станций
end
end
end

end
Соседние файлы в папке курсач по ФБ (подходит под все варианты)