Изменения

Перейти к: навигация, поиск

Алгоритм D*

617 байт добавлено, 20:09, 5 января 2014
м
Алгоритм LPA*
rhs(f) = 0;
U.Insert(f; CalcKey(f));
 
//Функция <tex>key(s)</tex>. Возвращаемые значения сортируются в лексографическом порядке, т.е. сначала <tex>k_1(s)</tex>, потом <tex>k_2(s)</tex>
=== Асимптотика ===
 
{{Теорема
|author=Свен Кёниг
|about=О монотонности изменения ключей
|statement=В течение выполнения функции '''ComputeShortestPath''' вершины, взятые из очереди монотонно не убывают.
}}
 
{{Теорема
|author=Свен Кёниг
|about=О необратимой насыщенности
|statement=Если в функции '''ComputeShortestPath''' была взята переполненная вершина, то на следующей итерации она станет насыщенной.
}}
Таким образом мы описали алгоритм LPA*. Он неоднократно определяет путь между вершинами <tex>f</tex> и <tex>t</tex>, используя при этом данные из предыдущих итераций. Очевидно, что в худшем случае (а именно когда все ребра вокруг текущей вершины изменили свой вес) алгоритм будет работать как последовательные вызовы алгоритма А* за <tex>O(n \cdot m \cdot \log(n))</tex>. Улучшим эту оценку с помощью алгоритма D* lite.
418
правок

Навигация