У меня проблемы с пониманием того, какой узел / состояние следует развернуть следующим в дереве поиска A *, когда функция оценки (f (n) = g (n) + h (n)) оценивает одно и то же для двух узлов.
Пример 1
Tree1 http://i39.tinypic.com/22w6d.jpg
Насколько я понимаю, граница хранится как приоритетная очередь, упорядоченная по f, и, следовательно, поскольку узлы на границе имеют одинаковое значение, узел, добавленный в очередь первым, будет оцениваться.
Пример 2
Tree2 http://i39.tinypic.com/2wemfxg.jpg
В этом примере функция оценки B была меньше, чем C, и, следовательно, была расширена, но сгенерировала узел D с тем же f, что и C, в этом случае какой узел будет выбран для расширения следующим?
(я понимаю, что этот вопрос, вероятно, должен был быть размещен на cstheory.stackexchange, но у меня недостаточно репутации, чтобы публиковать изображения, извинения)
Заранее спасибо