|
1 / 1 / 0
Регистрация: 05.09.2014
Сообщений: 57
|
||||||
Найти кратчайший путь между двумя заданными городами23.02.2015, 16:58. Показов 9569. Ответов 3
Метки нет (Все метки)
Дана плоская страна и в ней n городов. Предположим, что в этой стране есть дорожная сеть. Найти кратчайший путь между двумя заданными городами.
должна находить кратчайшие расстояния и выводить маршрут (последовательность прохождения городов). Как дописать программу, чтобы она выводила маршрут?
0
|
||||||
| 23.02.2015, 16:58 | |
|
Ответы с готовыми решениями:
3
Работа с графом.Найти кратчайший маршрут между двумя вершинами. Задача на взвешенный ориентированный граф, существует ли путь L между двумя заданными вершинами Нахождение кратчайшего пути между заданными городами |
|
Модератор
|
||||||
| 24.02.2015, 00:38 | ||||||
|
Если ошибаюсь, пусть меня поправят.
Задачу поиска минимального по затратам пути во взвешенном графе удобно решать методом Флойда-Уоршелла. Там на основе весовой матрицы создаются две матрицы - матрица достижимостей и матрица путей, по которым и находится путь между двумя произвольными городами. Если не затруднит, опишите свой алгоритм и структуры данных. Просто алгоритмы без пояснений, в большинстве своём, выглядят как тарабарщина. Недавно на форуме из любопытства за пару-тройку часов сделал кому-то реализацию Ф-У. Алгоритм несложный. Есть хорошие описания в Wikipedia и на e-maxx. В моей реализации сделано допущение по исходным данным: в матрице весов приведены веса дуг между вершинами, но если вес дуги равен 0 - прямого пути между данными вершинами нет. В процедуре алгоритма Ф-У на основании весовой матрицы v создаются матрица достижимости d и матрица путей p. В процедуре RestorePath на основе d и p восстанавливается путь между вершинами A и B. Это была тестовая программа для отладки алгоритма.
Если же вам дорог собственный вариант, то поясните, что там происходит.
0
|
||||||
|
1 / 1 / 0
Регистрация: 05.09.2014
Сообщений: 57
|
|
| 24.02.2015, 07:13 [ТС] | |
|
это и есть алгоритм дейкстры
0
|
|
|
Модератор
|
|||||||||||
| 24.02.2015, 22:31 | |||||||||||
|
А-а-а...
Я ещё его не "проходил". Добавлено через 13 часов 58 минут natascha, смотри. Если почитать описания алгоритма Дейкстры, сопоставить с ним переменные в твоём коде, то получается, что в массиве C хранится путь. После отработки алгоритма у тебя есть заполненные массивы путей C и расстояний B из вершины k до всех остальных вершин. Если нужно вывести путь от k до m нужно воспользоваться стеком.
PS Ты, наверное портировал код с C на Pascal, т.к. вместо булевого массива используешь целочисленный. И обозначения массивов сильно отличаются от интернет-описаний алгоритма. Добавлено через 54 минуты Я почитал Wikipedia и e-maxx. На их основе собрал свою тестовую программу. Проверял на графе из статьи в Wikipedia. В ней присутствуют типы с одинаковыми описаниями, но это из соображения, что номера вершин это всегда целые числа, а расстояния сейчас целые, а гипотетически могут быть и real. Программу проверял на FreePascal. Кликните здесь для просмотра всего текста
0
|
|||||||||||
| 24.02.2015, 22:31 | |
|
Помогаю со студенческими работами здесь
4
Найти кратчайший путь между двумя заданными пунктами Определить кратчайший путь между двумя городами и длину пути Кратчайший путь между двумя точками на поверхности
Найти минимальное количество пересадок между двумя городами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|