Ми припускаємо, що ваги вершин можуть бути довільними натуральними цілими чи, точніше, вони можуть бути додатними цілими числами не більше 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 ′. QED .
Зворотне твердження також має місце: якщо ви можете обчислити перехідне закриття заданої DAG, легко обчислити необхідні суми додатковою роботою в часі O ( n 2 ). Тому теоретично можна досягти поточного завдання в часі O ( n 2.376 ), використовуючи алгоритм перехідного закриття на основі алгоритму множення матриці Копперсміта-Винограда .
Правка : Версія 2 та новіші версії не висловлювали явно припущення про діапазон ваг вершин. Пер Вогсен в коментарі зазначив, що це неявне припущення може бути нерозумним (спасибі!), І я згоден. Навіть якщо довільні ваги не потрібні в додатках, я думаю, що ця відповідь може виключати деякі підходи наступним рядком міркувань: «Якщо такий підхід спрацював, він дав би алгоритм довільних ваг, який не виключається, якщо тільки перехідні закриття може бути обчислено в часі O ( n 2 ). "
Редагувати : У версії 4 та попередній версії неправильно вказано напрямок ребер.