Таким образом, это означает, что AB- C -G - это путь, который жадный лучше всего даст первым? Поскольку он будет рассматривать только дочерние элементы узла B для следующего выбора?
Да: строгий «жадный» алгоритм считает only лучшим краткосрочным выбором на каждом этапе. На первом этапе B
дешевле, чем C
, поэтому он начинается по этому пути. Отсюда он обрабатывает B
как начальный узел. Самый дешевый шаг оттуда - к C
, затем к G.
В отличие от этого, алгоритм «лучший в первую очередь», такой как A*
или Dijkstra's, сделает некоторые заметки о самом дешевом общем пути. Все начинается с состояния (A, 0) - ничего не стоит добраться до A
. Затем он генерирует ходы (AB, 2), (A C, 3) и (AD, лоты); он берет самый дешевый ход (AB, 2), но сохраняет остальные в списке. Теперь он генерирует ходы из B
с общей стоимостью : (ABE, 7) и (AB C, 5). На данный момент он падает (AB C, 5), потому что есть известный более дешевый путь к C
.
Теперь самый дешевый путь в списке (A C , 3), и алгоритм будет генерировать ходы оттуда: (ACG, 3 + неизвестно).
Достаточно ли для вас прояснения?