Gauss elemesinin gerçek zaman karmaşıklığı nedir?


72

Daha önceki bir sorunun cevabında , “Gauss” un ortadan kaldırılmasının O(n3) zamanlarında gerçekleştiğine dair yaygın ama yanlış inancından bahsettim . O algoritma kullandığı açıktır iken O(n3) aritmetik işlemleri, dikkatsiz uygulama katlanarak birçok parçalarıyla sayıda oluşturabilir. Basit bir örnek olarak, aşağıdaki matrisi köşegenleştirmek istediğimizi varsayalım:

[2000120011201112]

Eliminasyon algoritmasının , bir satırın tamsayı katlarını diğerine ekleyen, bölünme olmayan bir sürümünü kullanırsak ve her zaman matrisin çapraz bir girişini döndürürsek, çıktı matrisinin vektörü (2,4,16,256,,22n1) köşegen boyunca.

Ama ne olduğunu Gauss eliminasyon gerçek zaman karmaşıklığı? Kombinatoryal optimizasyon yazarlarının çoğu “güçlü polinom” ile mutlu görünüyorlar, ancak polinomun gerçekte ne olduğunu merak ediyorum.

1967 tarihli bir Jack Edmonds makalesi, çok polinomlu bir sürede çalışan Gauss elemesinin bir versiyonunu (“muhtemelen Gauss nedeniyle”) açıklar. Edmonds'un ana anlayışı, her ara matristeki her girişin orijinal giriş matrisinin küçük bir belirleyicisi olduğu yönündedir. Bir için ile matris m bitlik tamsayıdır girişleri, Edmonds onun algoritması en ile tamsayılar gerektirir kanıtlamaktadır O ( n, ( m + log n ) ) bit. M = O ( log n ) olduğu “makul” varsayımı altında , Edmonds'un algoritması O (n×nmO(n(m+logn))m=O(logn) ders kitabı tamsayı aritmetiği kullanıyorsak, ya daFFT tabanlı çarpma kullanıyorsak,sabit zamanda O ( log n ) -bit aritmetikuygulayabilen standart bir tamsayı RAM'de ˜ O ( n 4 ) zaman kullanırsak. (Edmonds bu zaman analizini yapmadı; yalnızca algoritmasının “iyi” olduğunu iddia etti.)O(n5)O~(n4)O(logn)

Bu hala bilinen en iyi analiz mi? Sınırlanmış daha iyi bir açık zaman süresi ya da en azından gerekli hassasiyette daha iyi bir sınır veren standart bir referans var mı?

Daha genel olarak: Doğrusal denklemlerin keyfi sistemlerini çözmek için bilinen en hızlı algoritmanın çalışma süresi (RAM tamsayısında) nedir?


2
(şiddetli el dalgası yerleştirme), bu özel durumda karma modulo küçük asal numaralar kullanarak büyük tamsayı probleminin üstesinden gelemez miydiniz? algoritma rastgele olurdu, ama yine de .. Kuşkusuz bu sorduğunuz soruyu cevaplamıyor ...
Suresh Venkat

1
O(n3MB[n(logn+L)])

1
Standart Gauss eleme algoritması, daha sonraki satırları azaltmadan önce, pivot sırasını pivot elemanına böler. Açık soru bu standart sürüme atıfta bulunmaktadır. Sorumun başında verdiğim örnek, pivot elemanı tarafından bölünmeyen, farklı bir değişken kullanır.
Jeffε

3
Meraklı. Yap'ın Bereiss'in algoritması için getirdiği zaman, Edmonds'un Gauss elemesini analiz etmesinin ima ettiği zamanla aynıdır .
Jeffε

1
rjlipton yakın zamanda bölgeyi araştırdı ve konuyla ilgili Kannan Doktora tezi verdi. analizin önemli bir parçası Smith normal formudur
vzn

Yanıtlar:


35

O~(n3log(A+b))


Referans için teşekkürler! Bu benim ikinci soruma cevap veriyor ama benim ilk sorum değil.
Jeffε

3
AO(n4log2A)n

@Elias, bu ifadedeki norm tanımı nedir? Mutlak boyuttaki en büyük katsayı mı? Bit büyüklüğü mü? Ayrıca, bu sonuç rasgele rasyonel matrisler için midir?
Juan Bermejo Vega

13

O~(n3log(A+b))O~(log(A)) daha sonra alt belirleyicilerden herhangi birinin en fazla 2b bite ihtiyacı vardır (Teorem 3.2). Gaussian'ın ortadan kaldırılmasını polinomlu bir zaman algoritması yapmak için, hesaplanan bölümleri önemsememiz gerekir: Herhangi bir orta adımda hesapladığımız her kesirden ortak faktörleri iptal etmemiz gerekir ve sonra tüm sayılar A kodlama uzunluğunda doğrusal kodlama uzunluğuna sahiptir.

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.