Для ориентированного ациклического графа , существует ли структура данных, которая допускает запросы достижимости, не требуя квадратичного пространства или линейного времени? В идеале я ищу алгоритм, использующий только O (log n) пространство на вершину и логарифмическое время, где,
Мне казалось интуитивно очевидным, что подобная структура данных должна существовать, основанная на некотором обобщении стандартных алгоритмов сортировки. Но я был удивлен, что не смог найти ни одного. Все, с чем я сталкивался, делало предположения о графе (например, планарность) или решало более сложную задачу в квадратичном времени / пространстве (например, запросы чередовались с модификациями графа).
Страница Википедии о достижимости охватывает только один общий алгоритм (Флойд-Варшалл); остальная часть страницы посвящена особым случаям, включающим предположения, такие как график, являющийся плоским (это не так).
Наиболее часто цитируемая статья в этом пространстве - это Амортизированная эффективность структуры данных поиска пути , но эта и все статьи, на которые она ссылается, включают либо пространство O (n ^ 2), либо время O (n ^ 2), чтобы Обновления графа чередуются с запросами (то есть без предварительной обработки).
На этот вопрос не было ответа, но он имеет дело с более сложной проблемой, состоящей в том, чтобы вставлять ребра с запросами.
Этот вопрос задан для постоянной (чисто функциональной) структуры данных, которая здесь не требуется. В статье «Сжатые позеты» нужно пространство но она выполняет запросы времени; Я ищу алгоритм с худшим временем и лучшим пространством.
В основном ищем точку опоры в литературе здесь. Если есть обзорная статья о достижимости графиков, которая не тратит 99% своего времени на планарную диаграмму, это поможет.