La vérification de la transitivité d'un digraphe n'est-elle pas plus facile que (en termes de complexité asymptotique) de prendre la fermeture transitive du digraphe? Connaissons-nous mieux une borne inférieure que pour déterminer si un digraphe est transitif ou non?
9
Réponses:
Ci-dessous, je vais montrer ce qui suit: si vous avez un algorithme de temps O ( ) pour vérifier si un graphe est transitif pour tout ε > 0 , alors vous avez un algorithme de temps O ( n 3 - ε ) pour détecter un triangle dans un graphique à n nœuds, et donc (par un article de FOCS'10 ) vous auriez un algorithme de temps O ( n 3 - ε / 3 ) pour multiplier deux matrices booléennes n × n , et donc par un résultat de Fischer et Meyer des années 70 , cela implique également un O ( n 3 -n3−ε ε>0 n3−ε n n3−ε/3 n×n ) algorithme de temps pour la fermeture transitive.n3−ε/3
Supposons que vous voulez détecter un triangle dans un noeud G . Nous pouvons maintenant créer le graphique H suivant . H est tripartite avec les partitions I , J , K sur n nœuds chacune. Ici , chaque noeud x de G a des copies x I , x J , x K dans les parties I , J , K . Pour chaque arête ( u , v ) de G, ajoutez des arêtes dirigées (n G H H I,J,K n x G xI,xJ,xK I,J,K (u,v) G et ( u J , v K ) . Pour chaque non-bord ( u , v ) de G, ajoutez l'arête dirigée ( u I , v K ) .(uI,vJ) (uJ,vK) (u,v) G (uI,vK)
Premièrement, si contient un triangle u , v , w , alors H n'est pas transitif. En effet, les arêtes ( u I , v J ) , ( v J , w K ) sont en H mais ( u I , w K ) ne l'est pas. Deuxièmement, si H n'est pas transitif, alors il doit exister un chemin dirigé de certains nœuds s vers un nœud t dans H tel que (G u,v,w H (uI,vJ),(vJ,wK) H (uI,wK) H s t H est pas un bord dirigé en H . Cependant, les chemins les plus longs dans H ont 2 bords, et donc tout chemin doit être de la forme ( u I , v J ) , ( v J , w K ) et ( u I , w K ) n'est pas dans H , d'où u , v , w , forment un triangle dans G .(s,t) H H 2 (uI,vJ),(vJ,wK) (uI,wK) H u,v,w G
la source
la source
Déterminer si un DAG est transitif est aussi difficile que de décider si un digraphe général est transitif (ce qui nous ramène à votre question précédente :)).
la source
la source
Cet algorithme peut-il être utilisé pour votre problème ou pour une autre application?
la source