Matris çarpımının


39

Yaygın tüm inanılmaktadır ϵ>0 , daha çok kez, iki mümkündür n×n matrisler O(n2+ϵ) süresi. Bazı tartışmalarburada.

Araştırmaya daha aşina olan bazı insanlara n'den bağımsız bir k>0 olduğunu düşünüyorlar mı diye sordum, öyle ki matris çarpımı için bir O ( n 2 log k n ) algoritması var ve ezici bir şekilde sezgileri varmış gibi görünüyorlardı. Cevap "hayır" dır ancak nedenini açıklayamadı. Yani, O ( n 2.001 ) zamanda yapabileceğimize inanıyorlar , ancak O ( n 2 log 100 n ) zamanda da yapamıyoruz .nO(n2logkn)O(n2.001)O(n2log100n)

Sabit bir k > 0'da O(n2logkn) algoritması olmadığına inanmak için hangi sebepler var ?k>0

Yanıtlar:


29

Bir çarpma için bir algoritma var N-xN-0.172 , bir ile matris N-0.172xN- matris N-2polylog(N-) aritmetik işlemler. Bunun için kullanılan temel özdeşlik Coppersmith en kağıt "dikdörtgen matrislerin hızlı çoğalması", ancak bu yol açar neden için açıklama gelir N-2polylog(N-) yerine N-2+ε Williams'ın ekinde olan kağıt , "yeni algoritmalar ve doğrusal eşik kapılı devreler için daha düşük sınırlar "

Bu sadece işe yarıyor, çünkü Coppersmith'in kimliği faydalanabileceğiniz ek bir yapıya sahip ve daha yeni MM algoritmaları bu yapıya sahip görünmüyor. Bununla birlikte, neden bu yaklaşımı N-xN-xN- matris çarpımına genişletmeyi umduğumdan emin değilim .


11

Şey, bir şey bildiğim tüm yapıların - hatta insanların önerdiği potansiyel yapıların ailelerinin bile (örneğin, Cohn-Umans yaklaşıyor, Coppersmith-Winograd'ın genelleştirilmeleri) bir algoritma ailesi üreteceğini düşünüyorum. birε zaman çalışan Ö(n2+ε) . O halde Ö(n2pÖly(günlükn)) de çalışan tek bir algoritmaya sahip olmak için, mevcut yaklaşımlardan sadece asimptotik olarak daha iyi olması gerekmeyecek, ama gerçekten farklı görünmesi gerekecektir .

Büyük uyarı: Sanırım. Var olan yaklaşımları ne kadar değiştirmek / eklemek zorunda kalacağı hakkında gerçekten çok fazla düşünmedim, böylece zamanında Ö(n2pÖly(günlükn)) içinde çalışan tek bir algoritma oluşturabiliyorlardı .


3
Bir ailenin makul bir şekilde O'ya (n ^ 2poly (log n)) neden olmadığından emin değilim çünkü biri aileyi yeterince iyi tanımlayabiliyorsa, daha büyük n için ailenin daha verimli üyelerini seçebilir. Bunun makul bir şekilde O (n ^ 2poly (log N)) olmamasının tek nedeni, ilgili sabitlerin muhtemelen çok büyük olacağıdır, ancak bunun mutlaka böyle olduğu açık değildir.
JoshuaZ

1
Ö(n2+x)ε>0Ö(n2+ε)

1
@JoshuaZ Sanırım bir aile üyesini bir şekilde seçmek / inşa etmek O (n ^ 2 poli (log n)) zamanından daha fazla zaman aldıysa başarısız olabilirdi, hatta daha da tuhaf bir yol olurdu - örneğin belki de O (1 / e) koduna ihtiyaç duyulur. O (n ^ (2 + e)) algoritmasını veya başka bir şeyi uygular. Bu vahşi olmaz mıydı?
Daniel Wagner

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.