|
|||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() последовательностях ![]() Компиляторы и интерпретаторы ![]() Хранение информации ![]() ![]() ![]() ![]() ![]() Софт: просмотр PS и PDF файлов ![]() Написать веб-мастеру Почитать историю сайта |
Математика : Графы: Кратчайшие путиПусть имеется n городов, пронумерованных числами от 1 до n. Для каждой пары городов с номерами i, j в таблице a[i][j] хранится целое число - цена прямого авиабилета из города i в город j. Считается, что рейсы существуют между любыми городами, a[i,i] = 0 при всех i, a[i][j] может отличаться от a[j,i]. Наименьшей стоимостью проезда из i в j считается минимально возможная сумма цен билетов для маршрутов (в том числе с пересадками), ведущих из i в j. (Она не превосходит a[i][j], но может быть меньше.) Предположим, что не существует замкнутых маршрутов, для которых сумма цен отрицательна. В этом случае маршрут с наименьшей стоимостью существует. Во всех алгоритмах предполагается, что это условие (отсутствие циклов с отрицательной суммой) выполнено. ![]() Прекрасно подойдет, если все пути из вершины в соседнюю равны по длине (цене, весу). Время O(n). ![]() Найти наименьшие стоимости проезда из 1-го города во все остальные за время O(n3) без ограничений на веса. ![]() Найти наименьшие стоимости проезда из всех городов во все за время O(n3) без ограничений на веса. ![]() Найти наименьшие стоимости проезда из 1-го города во все остальные за время O(n2) при положительных ценах. ![]() Находит все наименьшие стоимости дить один путь мы уже умеем. Что, если у нас большой граф, а нам нужно k различных кратчайших путей ? Алгоритм Йена придет на помощь! Архив статей.
Большая часть статьи посвящена различным случаям поиска кратчайшего пути на графе применительно к играм. Рассмотрено более 5 алгоритмов. Даны заметки к реализации. ![]() |