Консультант Витте
|
||||||
1 | ||||||
Алгоритм Флойда-Уоршалла граф27.09.2014, 20:59. Показов 4575. Ответов 2
Метки нет (Все метки)
Собственно мне дан ориентированный граф,в котором вес ребра между вершинами i и j допустим-это шанс добраться от вершины i к вершине j соответственно.
Ниже код ищет самые выгодные пути от вершин до всех остальных вершин. Вопрос в том как доделать алгоритм,чтобы еще возможно было узнать через какие вершины проложен путь? Не могу понять.Ниже подсказка //Восстановление самих путей Легко поддерживать дополнительную информацию — так называемых "предков", по которым можно будет восстанавливать сам кратчайший путь между любыми двумя заданными вершинами в виде последовательности вершин. Для этого достаточно кроме матрицы расстояний d[][] поддерживать также матрицу предков p[][], которая для каждой пары вершин будет содержать номер фазы, на которой было получено кратчайшее расстояние между ними. Понятно, что этот номер фазы является не чем иным, как "средней" вершиной искомого кратчайшего пути, и теперь нам просто надо найти кратчайший путь между вершинами i и p[i][j], а также между p[i][j] и j. Отсюда получается простой рекурсивный алгоритм восстановления кратчайшего пути.
0
|
27.09.2014, 20:59 | |
Ответы с готовыми решениями:
2
Алгоритм Флойда Алгоритм Флойда Оршала Алгоритм Флойда–Уоршелла Алгоритм Флойда - Уоршелла |
27.09.2014, 22:57 | 2 | ||||||||||
DmitryM5, если выполняется условие
Пишу прямо тут, поэтому 100% правильность не гарантирую
Добавлено через 1 минуту А вы уверены в правильности циклов в реализации алгоритма Флойда?
1
|
Мой лучший друг-отладчик!
|
||||||
27.09.2014, 23:06 | 3 | |||||
вот код точно работающего Флойда-Уоршелла:
ГРаф задан матрицей смежности
1
|
27.09.2014, 23:06 | |
27.09.2014, 23:06 | |
Помогаю со студенческими работами здесь
3
Алгоритм Флойда С++ реализация Алгоритм Флойда-Уоршела Реализовать алгоритм Флойда Уоршелла В чем ошибка? Алгоритм Флойда Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |