/ / Le temps d'exécution asymptotique nécessaire pour calculer la fermeture transitive d'un graphe? - agnostique du langage, exécution, théorie, théorie des graphes

Temps d'exécution asymétrique nécessaire pour calculer la fermeture transitive d'un graphique? - langue agnostique, runtime, théorie, théorie des graphes

La fermeture transitive d'un graphe est définie e. g. ici: http://mathworld.wolfram.com/TransitiveClosure.html

Cela est facilement possible dans O (n ^ 3), où n est le nombre de sommets. Je me demandais si cela pouvait être fait dans le temps O (n ^ 2).

Réponses:

3 pour la réponse № 1

Nan. Je ne pense pas qu’il existe un O (n2) algorithme pour cela. Je pense que si un tel algorithme existait, vous pourriez résoudre tous les problèmes de paire de chemins les plus courts dans O (n2) aussi, ce qui n’est pas le cas. L’algorithme asymptotiquement le plus rapide auquel je peux penser est une implémentation de l’algorithme du chemin le plus court de Dijkstra avec un segment de Fibonacci (O (n2bûche n) dans des graphes peu denses).


1 pour la réponse № 2

Hmm. J'ai trouvé un algorithme qui calcule la fermeture transitive dans le temps d'exécution O (n ^ 2) EXPECTED.


1 pour la réponse № 3

Étant donné que cela:

Pouvez-vous proposer une fermeture / réduction transitive O (kn ^ 2 + m) algorithme, où k est le nombre de bords manquants / supplémentaires dans le transitif fermeture / réduction?

C’est toujours une question ouverte pour ceux qui pensent à ce genre de choses plus que nous, je dirais que je ne sais pas

(Mais si vous le résolvez et que vous voulez un doctorat, je sais cette algorithme.)