Im Folgenden werde ich Folgendes zeigen: Wenn Sie einen O ( ) - Zeitalgorithmus haben, um zu überprüfen, ob ein Graph für ein transitiv ist , dann haben Sie ein O ( ) Zeitalgorithmus zum Erkennen eines Dreiecks in einem Knoten-Diagramm, und daher hätten Sie (nach einem Artikel aus FOCS'10 ) einen O ( ) -Zeitalgorithmus zum Multiplizieren von zwei boolesche Matrizen, und daher impliziert dies nach einem Ergebnis von Fischer und Meyer aus den 70er Jahren auch einen O ( ) -Zeitalgorithmus für den transitiven Abschluss. ε > 0 n 3 - ε n n 3 - ε / 3 n × n n 3 - ε / 3n3−εε>0n3−εnn3−ε/3n×nn3−ε/3
Angenommen, Sie möchten ein Dreieck in einem Knoten G erkennen . Wir können nun das folgende Diagramm H erstellen . H ist dreigliedrig mit Partitionen I , J , K auf jeweils n Knoten. Hier wird jeder Knoten x von G hat Kopien x I , x J , x K in den Teilen I , J , K . Fügen Sie für jede Kante ( u , v ) von G gerichtete Kanten hinzu (nGHHI,J,KnxGxI,xJ,xKI,J,K(u,v)G und ( u J , v K ) . Addieren Sie für jede Nichtkante ( u , v ) von G die gerichtete Kante ( u I , v K ) .( uich, vJ.)( uJ., vK.)( u , v )G( uich, vK.)
Erstens, wenn ein Dreieck u , v , w enthält , dann ist H nicht transitiv. Dies liegt daran, dass die Kanten ( u I , v J ) , ( v J , w K ) in H sind , ( u I , w K ) jedoch nicht. Zweitens muss, wenn H nicht transitiv ist, ein gerichteter Pfad von einem Knoten s zu einem Knoten t in H existieren, so dass (Gu , v , wH.( uich, vJ.) , ( vJ., wK.)H.( uich, wK.)H.stH. ist nicht eine gerichtete Kante in H . Die längsten Pfade in H haben jedoch zwei Kanten, und daher muss ein solcher Pfad die Form ( u I , v J ) , ( v J , w K ) und ( u I , w K ) haben , daherist er nicht in H. u , v , w bilden in G ein Dreieck.( s , t )H.H.2( uich, vJ.) , ( vJ., wK.)( uich, wK.)H.u , v , wG