Алгоритм Дейкстры: что делать, если есть два или более узла с минимальным весом?

в алгоритме Дейкстры что делать, если в алгоритме есть два или более узлов с минимальными весами в точке?

в Википедии:http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm на шаге нет. 6, он говорит

"установите незаявленный узел, отмеченный наименьшим предварительным расстоянием, как следующий "текущий узел" и вернитесь к шагу 3."

Что делать, если есть два или более узлов с "минимальным временным расстояние."

может кто-нибудь помочь мне с алгоритмом?

1 ответов


Короткий Ответ:

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


Немного Больше Объяснений

подумайте о сортировке некоторых элементов в массив:

9 6 3 3 8

сортировка с самым низким первым является

3 3 6 8 9

если вы должны были запросить этот массив, чтобы определить самый низкий, ответ 3. Который 3 не имеет значения.


аналогично если бы у вас было больше информации. Скажем, например, что эти Инты на самом деле были поплавками и были отсортированы по целым частям. Вы можете получить массив:

3.2  3.1  6.0  8.5  9.2

здесь у вас есть еще одна эвристика для работы, вы можете проверить десятичную часть тоже, и вы можете определить, что 3.1 самые низкие.