4817
правок
Irina (обсуждение | вклад) |
Irina (обсуждение | вклад) |
||
Строка 26: | Строка 26: | ||
== Основные результаты == | == Основные результаты == | ||
Декрементный APSP-алгоритм, разработанный Деметреску и Италиано, основывается на понятии локально кратчайших путей [2]. Путь является локально кратчайшим в графе, если все его собственные подпути являются кратчайшими путями. | Декрементный APSP-алгоритм, разработанный Деметреску и Италиано, основывается на понятии локально кратчайших путей [2]. Путь является ''локально кратчайшим'' в графе, если все его собственные подпути являются кратчайшими путями. | ||
Согласно свойству оптимальности подструктуры, кратчайший путь является локально кратчайшим. Основная идея алгоритма заключается в том, чтобы хранить информацию о локально кратчайших путях в графе, в котором планируется удаление дуг. Теорема 1, приведенная в [], ограничивает число изменений в множестве локально кратчайших путей, связанных с удалением дуг. | Согласно свойству оптимальности подструктуры, кратчайший путь является локально кратчайшим. Основная идея алгоритма заключается в том, чтобы хранить информацию о локально кратчайших путях в графе, в котором планируется удаление дуг. Теорема 1, приведенная в [2], ограничивает число изменений в множестве локально кратчайших путей, связанных с удалением дуг. | ||
Теорема 1. Если кратчайшие пути являются уникальными в графе, то количество путей, которые становятся кратчайшими или перестают быть кратчайшими после каждого удаления дуги, равно O( | '''Теорема 1. Если кратчайшие пути являются уникальными в графе, то количество путей, которые становятся кратчайшими или перестают быть кратчайшими после каждого удаления дуги, равно <math>O(n^2) \; </math> в результате амортизации по <math>\Omega(m/n) \; </math> операциям обновления.''' | ||
Результат теоремы 1 является чисто комбинаторным; он предполагает, что кратчайшие пути уникальны в графе. Последнее можно легко установить при помощи любой согласованной стратегии разрешения спорных ситуаций (см., например, [ ]). Можно разработать алгоритм, включающий только удаления, который будет тратить только O(log n) времени на одно изменение в множестве локально кратчайших путей, используя простую модификацию алгоритма Дейкстры []. Поскольку, согласно теореме 1, амортизированное число изменений ограничено O( | Результат теоремы 1 является чисто комбинаторным; он предполагает, что кратчайшие пути уникальны в графе. Последнее можно легко установить при помощи любой согласованной стратегии разрешения спорных ситуаций (см., например, [2]). Можно разработать алгоритм, включающий только удаления, который будет тратить только <math>O(log n) \; </math> времени на одно изменение в множестве локально кратчайших путей, используя простую модификацию алгоритма Дейкстры [3]. Поскольку, согласно теореме 1, амортизированное число изменений ограничено <math>O(n^2) \; </math>, из этого следует | ||
Теорема 2. Рассмотрим граф, содержащий n вершин и изначально m дуг, в котором последовательно производится | '''Теорема 2. Рассмотрим граф, содержащий n вершин и изначально m дуг, в котором последовательно производится <math>\Omega(m/n) \; </math> удалений дуг. Если кратчайшие пути являются уникальными, а веса дуг – неотрицательными, то каждую операцию удаления можно выполнить за амортизированное время <math>O(n^2 \; logn)</math>, каждый запрос о расстоянии – за время <math>O(1) \; </math> в худшем случае, а каждый запрос о пути – за время <math>O(\ell ) \; </math> в худшем случае, где <math>\ell \; </math> – число вершин в отмеченном кратчайшем пути. Объем требуемой памяти составляет <math>O(mn) \; </math>.''' | ||
== Применение == | == Применение == |
правок