Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Oleg I. Khovayko                     2:5020/400     06 Jan 2003  20:14:27
 To : Victor Antropov
 Subject : Re: Кратчайший маршрут
 -------------------------------------------------------------------------------- 
 
 Victor Antropov wrote:
 
 > Как рекурсивно найти кратчайший путь в графе?
 
 Рекурсивно - наверное, обойти граф весь и ставить
 в каждый узел длину пути.
 
 Hа самом деле, эта задача решается без всякой рекурсии
 
   *** Волновым алгоритмом. ***
 
 Идея следуюшая: Из точки-источника пускаешь волну.
 Как только волна достигла точки-приемника - путь найден.
 
 Пример:
 
 Есть граф:
 
 1--2--3---4---5
    |          |
    6----------+--7
 
 Hадо найти путь между точками 1..7.
 Из точки 1 пускаешь волну.
 Hа шаге 0 фронт волны находится в точке 1.
 Далее:
 Шаг: 1  Фронт: 2
 Шаг: 2  Фронт: 3,6
 Шаг: 3  Фронт: 4,5,7
 
 Все, путь найден.
 В каждом узле, куда пришел фронт, ставишь метку,
 откуда он пришел, и по этим меткам раскручиваешь
 обратный путь.
 
 Реализовывать алгоритм надо через очередь.
 То есть
 
 1. Создаем очередь и засовываем в нее элемент 1
 2. Пока очередь не пуста делать:
    2.1. вынуть ссылку на элемент из очереди (тек)
    2.2. Если тек. элемент - цель, выйти из цикла, и перейти на раскручивание
         пути. Тек. элемент должен содержать ссылку на пред., и т.п - до самой 
         начальной точки. Это и будет кратчайший путь.
    2.3. Иначе: для каждой граф-связи (дуги)
        тек. элемента делать:
        2.3.1. Заглянуть в узел, указаный связью (дугой)
        2.3.2. Если узел не помечен (ссылка на prev пустая), 
               пометить его номером тек. узла, и положить 
               ссылку на  указаный связь узел в очередь.
 
 3. Ошибка: Пути не существует.
 
 > Hужно внятное описание алгоритма или исходники на Паскале.
 
 Hе, это сам пиши.
 
 -- 
 #include <best/regards.hpp>
 Oleg I. KHOVAYKO  
 (301)435-5885 || WEB: http://olegh.spedia.net
 --- ifmail v.2.15dev5
  * Origin: National Center for Biotechnology Information (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Кратчайший маршрут   Victor Antropov   06 Jan 2003 11:07:20 
 Re: Кратчайший маршрут   Oleg I. Khovayko   06 Jan 2003 20:14:27 
 Re: Кратчайший маршрут   Victor Antropov   07 Jan 2003 03:52:30 
 Re: Кратчайший маршрут   Oleg I. Khovayko   07 Jan 2003 22:32:27 
 Кратчайший маршрут   Ilya Rogov   08 Jan 2003 03:04:51 
Архивное /ru.algorithms/115225ec315d6.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional