Page 171 - Bkhargava_-_Grokaem_algoritmy
P. 171

170    Глава 7.  Алгоритм Дейкстры


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


                                       nм-
                                       стинк~   5
                                       ПОСТЕР  -2

                                       БАР~Б~Н  35

                                        итоrовыЕ.
                                       стоимости


        Чтобы добраться до барабанов, Раме потребовалось $35.  Вы знаете, что
        существует путь, который стоит всего $33, но алгоритм Дейкстры его не на­
        ходит. Алгоритм Дейкстры предположил, что, поскольку вы обрабатываете
        узел «постер», к этому узлу невозможно добраться быстрее. Это предполо­
        жение работает только в том случае, если ребер с отрицательным весом не
        существует. Следовательно,  использование алгоритма Дейкстры с графом,
        содержащим ребра с отрицательным весом, невозможно. Если вы хотите
        найти кратчайший путь в графе, содержащем ребра с отрицательным весом,
        для этого существует специальный алгоритм, называемый алгоритмом
        Беллмана - Форда. Рассмотрение этого алгоритма выходит за рамки этой
        книги, но вы сможете найти хорошие описания в Интернете.


        Реализация


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
















                                                         www.trk.kg
   166   167   168   169   170   171   172   173   174   175   176