Assumimos que os pesos dos vértices podem ser números inteiros positivos arbitrários ou, mais precisamente, eles podem ser números inteiros positivos no máximo 2 n . Então a tarefa atual não pode ser executada mesmo em um limite de tempo ligeiramente mais fraco O ( n 2 ), a menos que o fechamento transitivo de um gráfico direcionado arbitrário possa ser calculado em O ( n 2 ), em que n indica o número de vértices. (Observe que um algoritmo de tempo O ( n 2 ) para o fechamento transitivo será um avanço.) Esse é o contrapositivo da seguinte reivindicação:
Reivindicação . Se a tarefa atual puder ser executada no tempo O ( n 2 ), o fechamento transitivo de um gráfico direcionado arbitrário dado como sua matriz de adjacência pode ser calculado no tempo O ( n 2 ) (assumindo algum modelo computacional razoável).
Prova . Como pré-processamento, calculamos a decomposição de componentes fortemente conectados do gráfico direcionado G dado no tempo O ( n 2 ) para obter um DAG G '. Observe que, se pudermos calcular o fechamento transitivo de G ′, podemos reconstruir o fechamento transitivo de G ' .
Agora atribua o peso 2 i a cada vértice i do DAG G 'e use o algoritmo para o problema atual. Então a representação binária da soma atribuída a cada vértice i descreve exatamente o conjunto de ancestrais de i , ou seja, calculamos o fechamento transitivo de G ′. QED .
O inverso da reivindicação também é válido: se você pode calcular o fechamento transitivo de um determinado DAG, é fácil calcular as somas necessárias com trabalho adicional no tempo O ( n 2 ). Portanto, em teoria, você pode realizar a tarefa atual no tempo O ( n 2.376 ) usando o algoritmo para o fechamento transitivo baseado no algoritmo de multiplicação da matriz Coppersmith-Winograd .
Edit : A revisão 2 e anterior não declararam explicitamente a suposição sobre o intervalo de pesos dos vértices. Per Vognsen apontou em um comentário que essa suposição implícita pode não ser razoável (obrigado!), E eu concordo. Mesmo que pesos arbitrários não sejam necessários em aplicativos, acho que essa resposta pode descartar algumas abordagens pela seguinte linha de raciocínio: “Se essa abordagem funcionasse, daria um algoritmo para os pesos arbitrários, que é descartado, a menos que seja transitivo. o fechamento pode ser calculado no tempo O ( n 2 ). ”
Edit : A revisão 4 e anterior declararam a direção das arestas incorretamente.