Seperti yang ditunjukkan Chandra Chekuri dalam komentar, Anda bisa menghitung penutupan transitif melalui perkalian matriks cepat, menyelesaikan masalah dalam waktu O ( ) (gunakan metode favorit Anda, O ( n 2.376 ) melalui Coppersmith dan Winograd, atau lebih praktisnya menggunakan Strassen's O ( n 2.81 )), dan ini akan bagus untuk grafik yang padat.nωn2.376n2.81
Sekarang, saya mengklaim bahwa jika Anda dapat mengalahkan waktu berjalan ini untuk masalah Anda untuk grafik padat, Anda akan mendapatkan algoritma untuk deteksi segitiga yang lebih efisien daripada menghitung produk dari dua matriks Boolean. Keberadaan algoritma semacam itu adalah masalah terbuka utama.
Saya akan mengurangi masalah segitiga menjadi masalah jangkauan-n-pasangan-DAG. Misalkan kita diberi grafik G pada n node dan kami ingin menentukan apakah G berisi segitiga.
Sekarang, dari G buat DAG G 'sebagai berikut. Buat empat salinan set simpul, , V 2 , V 3 , V 4 . Untuk salinan u i ∈ V i , v i + 1 ∈ V i + 1 untuk i = 1 , 2 , 3 , tambahkan tepi ( u i , v i + 1 ) iff ( u , v )V1V2V3V4ui∈Vivi+1∈Vi+1i=1,2,3(ui,vi+1)(u,v)berada di G. Sekarang jika kita bertanya apakah ada jalur antara salah satu pasangan untuk semua u ∈ G, maka ini akan persis bertanya apakah ada segitiga di G . Grafik saat ini memiliki 4 n node dan kami bertanya tentang n pasangan. Namun, kita dapat menambahkan 2 n node dummy terisolasi dan memiliki 3 n query (dengan menambahkan query untuk 2 n pasangan yang berbeda ( y , d ) di mana y ∈ V 2(u1,u4)u∈G4nn2n3n2n(y,d) dan d boneka), sehingga mendapatkaninstance 6 n -node dari masalah Anda.y∈V2∪V3d6n