Мы предполагаем, что веса вершин могут быть произвольными натуральными числами или, точнее, они могут быть натуральными числами не более 2 n . Тогда текущая задача не может быть выполнена даже в несколько более слабой временной привязке O ( n 2 ), если только транзитивное замыкание произвольного ориентированного графа не может быть вычислено за время O ( n 2 ), где n обозначает количество вершин. (Обратите внимание, что алгоритм O ( n 2 ) времени для транзитивного замыкания будет прорывом.) Это противоречит следующему утверждению:
Претензии . Если текущая задача может быть выполнена за время O ( n 2 ), транзитивное замыкание произвольного ориентированного графа, заданного в качестве его матрицы смежности, можно вычислить за время O ( n 2 ) (предполагая некоторую разумную вычислительную модель).
Доказательство . В качестве предварительной обработки мы вычисляем разложение сильно связанного компонента заданного ориентированного графа G за время O ( n 2 ), чтобы получить DAG G ′. Обратите внимание , что если мы можем вычислить транзитивное замыкание G ', мы можем реконструировать транзитивное замыкание G .
Теперь присвойте вес 2 i каждой вершине i DAG G ′ и используйте алгоритм для текущей задачи. Тогда двоичное представление суммы, присваиваемой каждой вершине i, точно описывает множество предков i , другими словами, мы вычислили транзитивное замыкание G ′. КЕД .
Обратное утверждение также верно: если вы можете вычислить транзитивное замыкание данного DAG, легко вычислить требуемые суммы, выполнив дополнительную работу за время O ( n 2 ). Следовательно, теоретически вы можете выполнить текущую задачу за время O ( n 2.376 ), используя алгоритм транзитивного замыкания, основанный на алгоритме умножения матриц Копперсмита-Винограда .
Редактировать : Редакция 2 и более ранние версии не содержали предположения о диапазоне весов вершин в явном виде. Пер Вогсен указал в комментарии, что это неявное предположение не может быть разумным (спасибо!), И я согласен. Даже если произвольные веса не требуются в приложениях, я предполагаю, что этот ответ мог бы исключить некоторые подходы следующим рассуждением: «Если бы этот подход работал, он дал бы алгоритм для произвольных весов, который исключается, если только переходный замыкание может быть вычислено за время O ( n 2 ) ».
Редактировать : Версия 4 и ранее указали направление ребер неправильно.