Консультация № 175842
05.01.2010, 14:46
0.00 руб.
0 15 1
Здравствуйте Уважаемые эксперты! Требуется ваша помощь

6. Теория графов

Найти кратчайшее расстояние от вершины B до вершин A, C, D, E, F, G.

A B C D E F G
A ∞ 46 85 23 75 81 68
B 46 ∞ 68 15 64 57 20
C 85 68 ∞ 19 67 51 27
D 23 15 19 ∞ 46 51 23
E 75 64 67 46 ∞ 24 29
F 81 57 51 51 24 ∞ 52
G 68 20 27 23 29 52 ∞

Обсуждение

Неизвестный
05.01.2010, 17:07
общий
kot31:
Здравствуйте.

Как у Вас обстоят дела с С? Могу представить процедуры которые ищут кратчайший путь по Алгоритму Дейкстры и Беллмана-Форда с занесением всех шагов в массив. Вам надо будет организовать заполнение входных данных и отображение выходных.
Неизвестный
05.01.2010, 17:27
общий
что такое С?
Неизвестный
05.01.2010, 17:53
общий
kot31:
Язык программировния С.
Неизвестный
05.01.2010, 18:21
общий
Язык программировния С я незнаю. В институте нам препод сам объяснял,но на заочке большой матерьял,всё усвоить сложно. . .
давно
Мастер-Эксперт
17387
18345
06.01.2010, 09:52
общий
это ответ
Здравствуйте, kot31.

Можно поступить следующим образом, если в Вашем распоряжении нет программы, реализующей какой-либо алгоритм решения поставленной задачи. Рассмотрим пути от вершины B до вершины A. Имеем:
1) путь, соединяющий вершины B и A непосредственно, длиной |BA| = 46. Все остальные пути не содержат это ребро;
2) путь, соединяющий вершины B и A через вершину D, включающий ребро |BD| = 15. Все остальные пути не содержат это ребро;
3) путь, соединяющий вершины B и A через вершину G, включающий ребро |BG| = 20. Все остальные пути не содержат это ребро.
Пути, проходящие от вершины B к вершине A через вершины C, E, F, не рассматриваем, поскольку их длины будут заведомо больше длины |BA|.

Кандидатом в кратчайшие пути является путь |BA| = 46.
Рассматриваем теперь пути, соединяющие вершины D и A. Имеем:
1) |DA| = 23; |BA| = |BD| + |DA| = 15 + 23 = 38;
2) |DC| = 19.

Кандидатом в кратчайшие пути теперь является путь |BA| = |BD| + |DA| = 38.
Рассматриваем теперь пути, соединяющие вершины C и A. Имеем
1) |CA| = 85; |BA| = |BD| + |DC| + |CA| = 15 + 19 + 85 = 119 > 38;
2) |CG| = 27; |BD| + |DC| + |CG| = 15 + 19 + 27 = 61, хотя вершина A еще не достигнута.

Пути, соединяющие вершины G и A, при аналогичном рассмотрении имеют длины, большие 38.

Следовательно, кратчайшим путем, соединяющим вершины B и A, является путь, проходящий по ребрам BD и DA. Его длина равна 38.

Кратчайшие пути, соединяющие вершину B с другими вершинами, находятся аналогично. Здесь Вам придется потрудиться…

С уважением.
5
Об авторе:
Facta loquuntur.
Неизвестный
06.01.2010, 12:58
общий
Гордиенко Андрей Владимирович:
спасибо большое,я понял как нужно решать ,если вас незатруднит(так как у вас глаз больше намётан), могли бы вы просто написать короткие пути остальных вершин без подробного объяснения, для самопроверки,хочу сделать без ошибок задание
Неизвестный
06.01.2010, 13:16
общий
Гордиенко Андрей Владимирович:
у меня получилось:
1)B[$8594$]D[$8594$]A=38
2)B[$8594$]D[$8594$]C=34
3)B[$8594$]D=15
4)B[$8594$]D[$8594$]E=61
5)B[$8594$]F=57
6)B[$8594$]G=20
давно
Мастер-Эксперт
17387
18345
06.01.2010, 16:38
общий
kot31:
B → G → E = 49
Об авторе:
Facta loquuntur.
Неизвестный
06.01.2010, 17:18
общий
Гордиенко Андрей Владимирович:
упс, точно! теперь порядок
давно
Профессионал
304622
583
27.01.2010, 17:12
общий
Гордиенко Андрей Владимирович:
А расскажите, пожалуйста, как именно получается решение? Ручным перебором (суммированием) элементов матрицы?
Я мало изучал теорию графов. Но мне казалось, что решения задач здесь получаются некоторыми матрично-векторными операциями.
давно
Мастер-Эксперт
17387
18345
27.01.2010, 17:35
общий
Сергей Бендер:
Здравствуйте!

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

А в чем проблема?

С уважением.
Об авторе:
Facta loquuntur.
давно
Профессионал
304622
583
27.01.2010, 20:15
общий
Гордиенко Андрей Владимирович:
Цитата: Гордиенко Андрей Владимирович
В принципе можно решать и при помощи операций над матрицами.

А в чем проблема?


Хочется знать, как это делается. Думал: решит кто-нибудь задачу -- поучусь.

Конечно, книги надо читать, но так ведь было бы проще. Кстати, знаете что-нибудь попонятнее по теме?
Неизвестный
01.02.2010, 15:01
общий
Гордиенко Андрей Владимирович:
могли бы вы ещё разок глянуть на задание, теперь мне нужно Найти кратчайшее расстояние от вершины D до вершин A, B, C, E, F, G. , у меня получилось:

D[$8594$]A=23
D[$8594$]B=15
D[$8594$]C=19
D[$8594$]E=46
D[$8594$]F=51
D[$8594$]G=23

Получилось,что самые кратчайшие пути тока на прямую, это так?
давно
Мастер-Эксперт
17387
18345
01.02.2010, 16:39
общий
kot31:
Да.
Об авторе:
Facta loquuntur.
Неизвестный
01.02.2010, 17:02
общий
Гордиенко Андрей Владимирович:
Спасибо
Форма ответа