Houve algumas perguntas ( 1 , 2 , 3 ) sobre a conclusão transitiva aqui que me fizeram pensar se algo como isso é possível:
Suponha que obtemos um gráfico direcionado para entrada e gostaríamos de responder a perguntas do tipo " ?", Ou seja, perguntando se existe uma aresta entre dois vértices na conclusão transitiva de um gráfico ? (equivalentemente, "existe um caminho de para em ?").
Suponha que, após determinado você tenha permissão para executar o pré-processamento no tempo e, em seguida, seja necessário responder às consultas no tempo .
Obviamente, se (ou seja, nenhum pré-processamento é permitido), o melhor que você pode fazer é responder a uma consulta no tempo . (execute o DFS de para retorne true se houver um caminho).
Outro resultado trivial é que, se , você pode calcular o fechamento transitivo e responder às perguntas em .
E algo no meio? Se você tiver permissão, digamos tempo de pré-processamento, você pode responder a consultas mais rapidamente que ? Talvez melhorá-lo para ?
Outra variação é: suponha que você tenha tempo de pré-processamento , mas apenas espaço, você pode usar o pré-processamento para responder a consultas mais eficientes que ?
Podemos dizer algo em geral sobre a troca que permite responder a essas perguntas?
Uma estrutura de troca um tanto semelhante é considerada nos sistemas GPS, onde a manutenção de uma tabela de roteamento completa de todas as distâncias entre pares é inviável; portanto, é possível usar a idéia de oráculos de distância que armazenam uma tabela parcial, mas permitem uma aceleração significativa da consulta ao calcular a distância do todo gráfico (geralmente produzindo apenas uma distância aproximada entre pontos).