2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 
 Алгоритм дейкстры
Сообщение20.01.2015, 03:18 
Почему нельзя применять на графах с ребрами отрицательный длины? Нигде не нашёл объяснению этому, только упоминание, что нельзя. Самому же не получилось придумать такой пример графа, где бы он работал некорректно, поэтому приведите, пожалуйста, пример или объясните почему нельзя

 
 
 
 Re: Алгоритм дейкстры
Сообщение20.01.2015, 03:33 
Ну попробуйте $V=\{S,A,B\}, E = \{(S,A,1), (S,B,2), (B,A,-2)\}$. Начинать из $S$.

 
 
 
 Re: Алгоритм дейкстры
Сообщение20.01.2015, 12:25 
И в чём некорректность? Наикратчайший путь к В через вершину А.

 
 
 
 Re: Алгоритм дейкстры
Сообщение20.01.2015, 12:41 
greg2 в сообщении #965428 писал(а):
Наикратчайший путь к В через вершину А.
К $B$ нельзя через $A$ пробраться, нет ребра $(A,B)$. Можно наоборот.

 
 
 
 Re: Алгоритм дейкстры
Сообщение20.01.2015, 12:42 
А, я думла это неориентированный граф. Ну допустим, пробрались к А через B, путь равен нулю. В чем здесь проблема?

 
 
 
 Re: Алгоритм дейкстры
Сообщение20.01.2015, 12:45 
greg2 в сообщении #965439 писал(а):
Ну допустим, пробрались к А через B, путь равен нулю. В чем здесь проблема?
В том, что Дейкстра не сможет этот путь найти.

 
 
 
 Re: Алгоритм дейкстры
Сообщение20.01.2015, 12:51 
Именно вот это меня интересует. Дейскстра действует так:
1) смотрим все вершины, соседствующие с S. Добавляем полученные длины.
$SA=1$
$SB=2$
2) из соседедствующих вершин можем перейти куда-нибудь только из вершины B, значит имеем
$SBA=2-2=0 \leq SA=1$, все ребра проверены, оставшиеся пути кратчайшие пути

$SBA=0, SB=2$

Разве не нашёл этот путь?

-- 20.01.2015, 13:58 --

Или здесь суть в том, что дейкстра остановится, проверив все вершины и по третьему ребру даже не пройдёт?

 
 
 
 Re: Алгоритм дейкстры
Сообщение20.01.2015, 13:07 
Аватара пользователя
А мне кажется, что проблема начинается там, где есть циклы. Ведь при отрицательной длине цикла минимального пути просто не существует.

 
 
 
 Re: Алгоритм дейкстры
Сообщение20.01.2015, 13:07 
greg2 в сообщении #965449 писал(а):
1) смотрим все вершины, соседствующие с S. Добавляем полученные длины.
$SA=1$
$SB=2$
Вычёркиваем $S$. Смотрим на кратчайшего соседа — это $A$, из неё нельзя перейти, вычеркиваем её. Смотрим на $B$: у неё нет невычеркнутых соседей. Конец.

-- Вт янв 20, 2015 13:10:58 --

provincialka в сообщении #965459 писал(а):
А мне кажется, что проблема начинается там, где есть циклы. Ведь при отрицательной длине цикла минимального пути просто не существует.
Это немного не то. Одно дело нет пути, другое дело алгоритм не находит. Беллман-Форд находит путь при отрицательных весах и даже распознаёт отрицательные циклы, если я не ошибаюсь.

 
 
 
 Re: Алгоритм дейкстры
Сообщение20.01.2015, 13:15 
Аватара пользователя
Да, я уже сообразила.

 
 
 
 Re: Алгоритм дейкстры
Сообщение20.01.2015, 13:15 
Nemiroff в сообщении #965460 писал(а):
greg2 в сообщении #965449 писал(а):
1) смотрим все вершины, соседствующие с S. Добавляем полученные длины.
$SA=1$
$SB=2$
Вычёркиваем $S$. Смотрим на кратчайшего соседа — это $A$, из неё нельзя перейти, вычеркиваем её. Смотрим на $B$: у неё нет невычеркнутых соседей. Конец.


ну а допустим мы имеем такие длины ребер: $SA=3, SB=1, BA=1$. Дейкстра так же не должен будет перейти на А через B, хотя этот путь будет кратчайшим

 
 
 
 Re: Алгоритм дейкстры
Сообщение20.01.2015, 13:16 
Аватара пользователя
В этом случае сначала обрабатывается $B$, у нее метка меньше.

 
 
 
 Re: Алгоритм дейкстры
Сообщение20.01.2015, 13:19 
provincialka в сообщении #965468 писал(а):
В этом случае сначала обрабатывается $B$, у нее метка меньше.


Сначала же рассматриваются все соседи, а только потом продолжают рассматривают соседей соседей, начиная с "кратчайшего" соседа.

 
 
 
 Re: Алгоритм дейкстры
Сообщение20.01.2015, 13:22 
Аватара пользователя
На нулевом шаге вершине $S$ ставится в соответствие 0. Потом $A \to 3, B\to1$. Зачеркиваем $S$. Дальше что?

 
 
 
 Re: Алгоритм дейкстры
Сообщение20.01.2015, 13:23 
Всё, понял. Тут загвоздка в том, что это ориентированный граф и перейти с А мы никуда не можем, а с В можем. Тогда выходят для неориентированного графа отрицательные грани - не помеха алгоритму дейкстры?

 
 
 [ Сообщений: 17 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group