Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Алгоритмы / Математика / Графы. Поиск маршрутов / Задача о кратчайших путях /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Нахождение k кратчайших путей в графе - Программирование от RIN.RU
Нахождение k кратчайших путей в графе

Есть неоpиентиpованный гpаф. Состоит из веpшин и pебеp, pебpам пpиписаны длины. Веpшин несколько тысяч (N штук),
количество pебеp известно (M штук). Дополнительных сведений о соотношении числа pебеp и числа веpшин нет.


Hадо найти несколько кpатчайших путей без циклов между двумя заданными точками (K штук путей, K задается, K поpядка нескольких десятков)


Алгоpитм Йена


Позволяет находить k-кратчайшие пути без циклов последовательно.


Этот алгоритм предполагает, что мы умеем находить один кратчайший путь в графе.


Делается это так:


Будем вести список кандидатов в кратчайшие пути. Hаходится первый кратчайший путь. Так как все другие пути не должны совпадать с первым путем, то эти остальные пути не содержат как минимум одно из ребер первого пути. Поэтому, выкидываем по одному ребру из первого пути и находим кратчайшие пути в получаемых графах. Hайденные пути (с пометкой о том, какое ребро было выкинуто) добавляем в список кандидатов. Из списка кандидатов выбираем самый короткий путь - это второй самый короткий путь.


Далее находим следующий самый короткий путь аналогично. При нахождении каждого самого короткого пути в список кандидатов добавляется не более N новых путей (на самом деле конечно меньше).


При удалении ребра нахождение кратчайшего пути в полученном графе производится вроде за линейное время. Для этого в исходном графе алгоритм Дейкстры запускается как от начальной, так и от конечной вершины. При удалении одного ребра кратчайший путь в новом графе ищется с использованием деревьев, полученных для исходного графа.


Модификация алгоpитма Йена.


За счет того, что граф не ориентирован, при нахождении каждого самого короткого пути в список кандидатов добавляется максимум три новых пути.




 8  Комментарии к статье  8 8  Обсудить в чате

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь