Bir pençe bulmak için matris çarpımını


20

Pençe bir . Önemsiz bir algoritma pençe sürede algılanacaktır . Bu yapılabilir , burada , aşağıdaki gibi, hızlı matris çarpım üssüdür: neden olduğu alt grafiğini almak , her köşe için ve bir üçgen bulmak onun tamamlayıcısı. O ( n 4 ) O ( n ω + 1 ) ω N [ v ] vK1,3O(n4)O(nω+1)ωN[v]v

Bildiğim kadarıyla, bu temel algoritmalar sadece biliniyor. Spinrad "verimli grafik gösterimleri" kitabında açık bir sorun olarak zamanında bir pençenin algılanmasını listeledi (8.3, sayfa 103). Alt sınır için, -zaman algoritmasının üçgen bulmak için -zaman algoritması anlamına geleceğini biliyoruz . Bu yüzden \ Omega'yı (n ^ \ omega) bir alt sınır olarak düşünebiliriz .o(nω+1)O(nc)Ω ( n ω )O(nmax(c,2))Ω(nω)

Soru:

  1. Bu konuda bir ilerleme var mı? Yoksa imkansız olduğunu gösterme konusunda herhangi bir gelişme
  2. En iyi O (n ^ {\ omega + 1}) -zaman algoritmalarıyla ilgili başka doğal problemler var mı?O(nω+1)

remark:

  1. Açıkça, pençe içermeyen grafiklerin tanınması yerine, bir pençenin algılanmasını istiyorum. Bir algoritma genellikle her ikisini de çözse de, birkaç istisna vardır.
  2. Algoritmalar ve Teorik Bilgisayar Bilimleri El Kitabı'nda lineer zamanda bulunabileceği iddia ediliyor, ancak sadece bir yazım hatasıydı (bkz. "Verimli grafik gösterimleri").

Kullanabilirsiniz . Alon ve arkadaşlarının üçgeni bulma yöntemi O(|E|1.41) , bir en sonunda her bir düğüm için O(|V||E|1.41) olduğu grafik çok yoğun değilse | V | ^ {\ omega + 1} ' den daha iyi |V|ω+1.
RB

@RB, bunu işaret ettiğiniz için teşekkür ederim. Temel fikir hala ne olursa olsun-üçgen-algılama-algoritması n kez çalıştırmak, bu kaçınmak istiyorum.
Yixin Cao

Üçgen bulma ile ilgili olmayan bazı algoritmaları nasıl bulabiliriz? Çünkü algoritma ne olursa olsun, her tepe noktasının komşularını kontrol etmelidir. Yani, özellik çok yerel özelliktir, sabit faktör farkı hariç her köşe görülmelidir. (Ya da bu bölgeden kaçınan herhangi bir doğal algoritma hayal edemiyorum). Hiç belirsiz bir fikrin var mı?
Saeed

2
Belki f (n) zamanda bir pençe bulabilirsek, f (n + 1) zamanda bir üçgen bulabiliriz (sadece grafiğin tamamlayıcısı alın ve herkese bağlı bir köşe daha ekleyin) ), bu yüzden daha iyi bir şey bulmayı . nω
domotorp

1
@domotorp, kısmın açık olduğu anlaşılıyor, diğer taraf açık değil, yani neden doğrusal aramaya ihtiyacımız var. Yixin'in de işaret ettiği gibi, üçgen bulma algoritması kullanmayan ve problemi çözen başka bir algoritma olabilir , bence böyle bir algoritmayı bulmak zor ve muhtemelen daha kolay herhangi bir algoritmanın, üzerinde doğrusal arama ile alt rutin (veya dönüştürülebilir) olarak üçgen bulmayı kullandığını göstermek için. o(nω+1)
Saeed

Yanıtlar:


16

Dikdörtgen matris çarpımı kullanarak yoğun grafikler için biraz daha iyi yapabileceğimizi düşünüyorum . Eisenbrand ve Grandoni ("Sabit parametre klemi ve baskın kümenin karmaşıklığı hakkında", Teorik Bilgisayar Bilimi Cilt 326 (2004) 57–67) 4 klik algılama için benzer bir fikir kullanmıştır.O(n1+ω)

Let bir pençe varlığını tespit etmek için istediğiniz grafik olabilir. , (sıralı) köşe çiftleri kümesi olsun . boyutunda aşağıdaki Boole matrisini düşünün Her satır bazı dizine , her bir sütun, bazı dizinlenir ve karşılık gelen giriş, bir, ancak ve ancak bir , ve . Boole matris ürününü ve onun devrik T'sini düşünün . grafiğinde sadece varsa bir pençe vardır.A V M | V | × | A | u V ( v , w ) A { u , v } E { v , w } E { u , w } E M M T G { u , v } E M MG=(V,E)AVM|V|×|A|uV(v,w)A{u,v}E{v,w}E{u,w}EMMTG{u,v}E , ile dizinlenmiş satırda girişi ve ile dizinlenmiş sütun bir olacak şekilde. u vMMTuv

Bu algoritmanın karmaşıklığı temel olarak matrisinin Boolean ürününü matrisiyle hesaplamanın karmaşıklığıdır; burada , grafikteki köşe sayısını belirtir. Tür bir matris zaman içinde hesaplanabilir bilinmektedir daha iyi olduğu, bilinen en iyi üst ciltlenebilir . Tabii ki, eğer (tahmin edildiği gibi), o zaman iki yaklaşım aynı karmaşıklığı .n 2 × n n O ( n 3.3 ) O ( n 1 + ω ) ω ω = 2 O ( n 3 )n×n2n2×nnO(n3.3)O(n1+ω)ωω=2O(n3)


Harika! Bu benim ilk sorum için istediğim şey: sadece bir tane matris çarpımı çağrısı, daha büyük bir tane. Cevap olarak almadan önce ikinci sorum hakkında daha fazla yorum veya cevap bekleyeceğim.
Yixin Cao

15

matris çarpanlarını yapmaktan nasıl kaçınacağımı bilmiyorum , ancak zamanı daha az sayıda zamanın etkili olduğu şekilde analiz edebilirsiniz. Bu hilen

Kloks, Ton; Kratsch, Dieter; Müller, Haiko (2000), "Küçük indüklenmiş alt çizimleri etkin bir şekilde bulma ve sayma", Bilgi İşleme Mektupları 74 (3-4): 115–121, doi: 10.1016 / S0020-0190 (00) 00047-8, MR 1761552.

İlk gözlem şu ki, matris çoğaldığınızda, matrisler gerçekten , ancak burada her tepe noktasının derecesidir, çünkü aradığınız şey bir eş üçgendir her köşenin mahallesinde.d × d dn×nd×dd

İkincisi, pençe içermeyen bir grafikte, her tepe noktasının komşuları olmalıdır. Aksi takdirde, komşu kümesinin tamamlayıcıda bir üçgen olmasını önlemek için çok az kenarı olacaktır. Bu nedenle matris çarpımları yaparken, bunu yalnızca yerine boyutundaki matrislerde yapmanız gerekir .O(O(m)nO(m)n

Ek olarak, her kenar uç noktaları olan sadece iki köşe için matris çarpım probleminin boyutuna katkıda bulunabilir. En kötü durumda olur , bu matris çarpım sorunların toplam boyutu için içine yayılır büyüklüğü alt problemler arasında bağlanmış bir toplam süreyi verir, her biri , R.B tarafından belirtilen üzerindeki seyrek grafikler için bir gelişme .O ( 2mO(O(m)O(m, ( 1 + ω ) / 2 )O(n,m, ω / 2 )O(m)O(m(1+ω)/2)O(nmω/2)


Vay canına, bu akıllıca bir fikir, alt doğrusal arama yapmanın mümkün olup olmadığını düşünüyordum (aslında bunu çürütüyor) ve sorunun kendisinin özelliklerini düşünmedim bile.
Saeed

Teşekkürler David. İkinci sorum henüz farkedilmediğinden, bir an için açık bırakıyorum.
Yixin Cao
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.