2010-08-18 3 views
11

С точки зрения времени выполнения, какой самый известный транзитивный алгоритм закрытия для ориентированных графов?наиболее известный транзитивный алгоритм закрытия для графика

В настоящее время я использую алгоритм Варшалла, но его O (n^3). Хотя из-за графического представления моя реализация немного улучшается (вместо проверки всех ребер он проверяет все исходящие края). Существует ли какой-либо транзитивный алгоритм закрытия, который лучше этого? В частности, есть ли что-то специально для многопоточных архитектур разделяемой памяти?

Заранее спасибо.

Raghava.

ответ

11

Algorithm Design manual содержит полезную информацию. Ключевые моменты:

  • Переходное замыкание так же сложно, как и матричное умножение; поэтому самая известная граница - это Coppersmith–Winograd algorithm, которая работает в O (n^2.376), но на практике, вероятно, не стоит использовать алгоритмы умножения матрицы.
  • Для эвристического ускорения сначала вычислите сильно связанные компоненты.
+0

Благодарим за ответ. Я думаю, эвристическое ускорение было бы полезно, только если на графике было много сильно связанных компонентов. Мне нужно наблюдать графики, созданные разными наборами данных, чтобы убедиться, что это так. Но если это не так, то лучший из них - Варшалл. Я думал, что может быть еще. – Raghava

+0

Я думаю, что подход, упомянутый в первом пункте первой ссылки, - это путь. Слишком легко распараллелить! –

+0

@Tom: На данный момент я уже использую многопоточную библиотеку графов. Поэтому я использую их представление графа, которое не является матрицей. – Raghava

14

В данной статье обсуждается эффективность различных алгоритмов транзитивного замыкания:

http://www.vldb.org/conf/1988/P382.PDF

Одна интересная идея из бумаги, чтобы избежать повторного вычисления всей закрытия как изменения графика.

Существует также эта страница Эско Nuutila, в котором перечислено несколько последних алгоритмы:

http://www.cs.hut.fi/~enu/tc.html

Его докторская диссертация, опубликованная на этой странице, может быть лучшим местом для начала:

http://www.cs.hut.fi/~enu/thesis.html

С этой страницы:

Эксперименты также показывают, что с интервальным представлением и новыми алгоритмами транзитивное замыкание может быть вычислено , как правило, во времени, линейном по размеру входного графика.

Смежные вопросы