В этой статье, насколько я понимаю, просто распараллелили известный алгоритм. Меня немного удивляет, что про это пишут статью, а не документацию к софту, но, возможно, в этой области так принято.
И кстати, символ
![$: = $ $: = $](https://dxdy-01.korotkov.co.uk/f/0/8/5/085e32ec54104e1b64013222b24c436882.png)
например:
![${D_n}: = A + B$ ${D_n}: = A + B$](https://dxdy-01.korotkov.co.uk/f/c/f/9/cf9012d2076d018626b16779ec3f842082.png)
входит в систему классического формализма?
А в каком контексте?
В псевдокоде - да, скорее всего всем будет понятно.
Он в лекциях обозначен, как (greedy). Если я не ошибаюсь, этот термин означает, что алгоритм неточный
Нет, это значит что он жадный, т.е. начинает рассмотрение вариантов с максимального по какому-то параметру. В зависимости от задачи, полученное решение может быть как точным, так и приближенным. Алгоритм Дейкстры (для случая неотрицательных весов) даёт точный результат.
Кроме того, смущает сложность алгоритма
![$ O\left( {{v^2}} \right)$ $ O\left( {{v^2}} \right)$](https://dxdy-03.korotkov.co.uk/f/a/a/7/aa721507526afa9a2102fce87ee74ddd82.png)
.
В зависимости от того, как реализовывать алгоритм Дейкстры, у него получается разная сложность - если использовать кучу, то будет
![$O(|E| \log |V|)$ $O(|E| \log |V|)$](https://dxdy-03.korotkov.co.uk/f/6/1/d/61da3aa8cdd337ff43aff3b73c8acc0782.png)
, если использовать Фибоначчиеву кучу - то
![$O(|E| + |V|\log |V|)$ $O(|E| + |V|\log |V|)$](https://dxdy-04.korotkov.co.uk/f/b/6/9/b6911cda58004895dc890cd8db4103bb82.png)
. Есть всякие совсем хитрые реализации, например за
![$O(|E| + |V| \log \log |V|)$ $O(|E| + |V| \log \log |V|)$](https://dxdy-03.korotkov.co.uk/f/6/d/4/6d4cac0af20c921e0b2ddd63464bcddb82.png)
, но я не знаю, как они устроены.
Известен и алгоритм, работающий за
![$O(|E| + |V|)$ $O(|E| + |V|)$](https://dxdy-02.korotkov.co.uk/f/d/7/c/d7cd6d377a9df0c86b5b80a2be48c2ac82.png)
(Thorup, "Undirected Single Source Shortest Paths in Linear Time"), причем сравнительно новый - 1999 года. Но на практике он сильно сложнее и не сильно быстрее алгоритма Дейкстры.
Мой, например,
![$ O\left( {{v}} \right)$ $ O\left( {{v}} \right)$](https://dxdy-03.korotkov.co.uk/f/6/8/5/685a021f2494ab54a532a33958a6cbe782.png)
.
Вы учитываете, что в графе рёбер может быть сильно больше, чем
![$v$ $v$](https://dxdy-03.korotkov.co.uk/f/6/c/4/6c4adbc36120d62b98deef2a20d5d30382.png)
, и нам как минимум их веса прочитать надо?
Ну и отсутствие понятия связанности по ребрам и множдесва окрестности вершины
Не очень понял - это Вы про то, что в Вашем алгоритме эти понятия не нужны, или что в описании алгоритма Дейкстры они используются, но не определяются?